From 589aca19f4a6379f5cf2a19857b21f28e8572b95 Mon Sep 17 00:00:00 2001 From: Peter Schorn Date: Tue, 27 May 2014 20:01:30 +0200 Subject: [PATCH] AltairZ80: Added Motorola 68000 CPU support for CP/M-68K, support for Altair mini-disk format, added descriptions for all device registers --- AltairZ80/altairz80_cpu.c | 662 +- AltairZ80/altairz80_defs.h | 20 +- AltairZ80/altairz80_doc.pdf | Bin 838149 -> 958349 bytes AltairZ80/altairz80_dsk.c | 165 +- AltairZ80/altairz80_hdsk.c | 278 +- AltairZ80/altairz80_mhdsk.c | 152 +- AltairZ80/altairz80_net.c | 22 +- AltairZ80/altairz80_sio.c | 510 +- AltairZ80/altairz80_sys.c | 63 +- AltairZ80/flashwriter2.c | 10 +- AltairZ80/i8272.c | 37 +- AltairZ80/m68k.h | 339 + AltairZ80/m68kconf.h | 193 + AltairZ80/m68kcpu.c | 894 ++ AltairZ80/m68kcpu.h | 1841 +++ AltairZ80/m68kdasm.c | 3443 ++++++ AltairZ80/m68kopac.c | 11948 +++++++++++++++++++ AltairZ80/m68kopdm.c | 13221 ++++++++++++++++++++++ AltairZ80/m68kopnz.c | 8710 ++++++++++++++ AltairZ80/m68kops.c | 2093 ++++ AltairZ80/m68kops.h | 1984 ++++ AltairZ80/m68ksim.c | 543 + AltairZ80/m68ksim.h | 57 + AltairZ80/mfdc.c | 39 +- AltairZ80/n8vem.c | 53 +- AltairZ80/s100_64fdc.c | 71 +- AltairZ80/s100_adcs6.c | 56 +- AltairZ80/s100_disk1a.c | 59 +- AltairZ80/s100_disk2.c | 60 +- AltairZ80/s100_disk3.c | 77 +- AltairZ80/s100_fif.c | 37 +- AltairZ80/s100_hdc1001.c | 36 +- AltairZ80/s100_if3.c | 47 +- AltairZ80/s100_mdriveh.c | 45 +- AltairZ80/s100_mdsad.c | 56 +- AltairZ80/s100_scp300f.c | 39 +- AltairZ80/s100_selchan.c | 28 +- AltairZ80/s100_ss1.c | 57 +- AltairZ80/vfdhd.c | 35 +- AltairZ80/wd179x.c | 37 +- Visual Studio Projects/AltairZ80.vcproj | 35 + descrip.mms | 5 +- makefile | 5 +- 43 files changed, 46967 insertions(+), 1095 deletions(-) create mode 100755 AltairZ80/m68k.h create mode 100644 AltairZ80/m68kconf.h create mode 100755 AltairZ80/m68kcpu.c create mode 100755 AltairZ80/m68kcpu.h create mode 100755 AltairZ80/m68kdasm.c create mode 100644 AltairZ80/m68kopac.c create mode 100644 AltairZ80/m68kopdm.c create mode 100644 AltairZ80/m68kopnz.c create mode 100644 AltairZ80/m68kops.c create mode 100644 AltairZ80/m68kops.h create mode 100644 AltairZ80/m68ksim.c create mode 100644 AltairZ80/m68ksim.h diff --git a/AltairZ80/altairz80_cpu.c b/AltairZ80/altairz80_cpu.c index ef837568..30f9af9e 100644 --- a/AltairZ80/altairz80_cpu.c +++ b/AltairZ80/altairz80_cpu.c @@ -27,7 +27,8 @@ Code for Z80 CPU from Frank D. Cringle ((c) 1995 under GNU license) */ -#include "altairz80_defs.h" +#include "m68k.h" +#include "assert.h" #include #define SWITCHCPU_DEFAULT 0xfd @@ -183,7 +184,7 @@ void out(const uint32 Port, const uint32 Value); uint32 in(const uint32 Port); void altairz80_init(void); t_stat sim_instr(void); -t_stat install_bootrom(int32 bootrom[], int32 size, int32 addr, int32 makeROM); +t_stat install_bootrom(const int32 bootrom[], const int32 size, const int32 addr, const int32 makeROM); uint8 GetBYTEWrapper(const uint32 Addr); void PutBYTEWrapper(const uint32 Addr, const uint32 Value); uint8 GetByteDMA(const uint32 Addr); @@ -254,6 +255,9 @@ static uint16 pcq[PCQ_SIZE] = { 0 }; /* PC queue static int32 pcq_p = 0; /* PC queue ptr */ static REG *pcq_r = NULL; /* PC queue reg ptr */ +uint32 m68k_registers[M68K_REG_CPU_TYPE + 1]; /* M68K CPU registers */ + + /* data structure for IN/OUT instructions */ struct idev { int32 (*routine)(const int32, const int32, const int32); @@ -262,107 +266,275 @@ struct idev { static int32 switcherPort = SWITCHCPU_DEFAULT; static struct idev oldSwitcherDevice = { NULL }; +// CPU_INDEX_8080 is defined in altairz80_defs.h +#define CPU_INDEX_8086 26 +#define CPU_INDEX_M68K 53 + REG cpu_reg[] = { - { HRDATA (AF, AF_S, 16) }, - { HRDATA (BC, BC_S, 16) }, - { HRDATA (DE, DE_S, 16) }, - { HRDATA (HL, HL_S, 16) }, - { HRDATA (IX, IX_S, 16) }, - { HRDATA (IY, IY_S, 16) }, - { HRDATA (PC, PC_S, 16 + MAXBANKSLOG2) }, /* 8080 / Z80 PC [6] */ - { HRDATA (PCX, PCX_S, 16 + MAXBANKSLOG2) }, /* 8086 PC [7] */ - { HRDATA (SP, SP_S, 16) }, - { HRDATA (AF1, AF1_S, 16) }, - { HRDATA (BC1, BC1_S, 16) }, - { HRDATA (DE1, DE1_S, 16) }, - { HRDATA (HL1, HL1_S, 16) }, - { GRDATA (IFF, IFF_S, 2, 2, 0) }, - { FLDATA (IR, IR_S, 8) }, - { HRDATA (AX, AX_S, 16) }, /* 8086 */ - { GRDATA (AL, AX_S, 16, 8, 0) }, /* 8086, low 8 bits of AX */ - { GRDATA (AH, AX_S, 16, 8, 8) }, /* 8086, high 8 bits of AX */ - { HRDATA (BX, BX_S, 16) }, /* 8086 */ - { GRDATA (BL, BX_S, 16, 8, 0) }, /* 8086, low 8 bits of BX */ - { GRDATA (BH, BX_S, 16, 8, 8) }, /* 8086, high 8 bits of BX */ - { HRDATA (CX, CX_S, 16) }, /* 8086 */ - { GRDATA (CL, CX_S, 16, 8, 0) }, /* 8086, low 8 bits of CX */ - { GRDATA (CH, CX_S, 16, 8, 8) }, /* 8086, high 8 bits of CX */ - { HRDATA (DX, DX_S, 16) }, /* 8086 */ - { GRDATA (DL, DX_S, 16, 8, 0) }, /* 8086, low 8 bits of DX */ - { GRDATA (DH, DX_S, 16, 8, 8) }, /* 8086, high 8 bits of DX */ - { HRDATA (SPX, SPX_S, 16) }, /* 8086 */ - { HRDATA (BP, BP_S, 16) }, /* 8086, Base Pointer */ - { HRDATA (SI, SI_S, 16) }, /* 8086, Source Index */ - { HRDATA (DI, DI_S, 16) }, /* 8086, Destination Index */ - { HRDATA (CS, CS_S, 16) }, /* 8086, Code Segment */ - { HRDATA (DS, DS_S, 16) }, /* 8086, Data Segment */ - { HRDATA (ES, ES_S, 16) }, /* 8086, Extra Segment */ - { HRDATA (SS, SS_S, 16) }, /* 8086, Stack Segment */ - { HRDATA (FLAGS, FLAGS_S, 16) }, /* 8086, FLAGS */ - { HRDATA (IP, IP_S, 16), REG_RO }, /* 8086, set via PC */ - { FLDATA (OPSTOP, cpu_unit.flags, UNIT_CPU_V_OPSTOP), REG_HRO }, - { HRDATA (SR, SR, 8) }, - { HRDATA (BANK, bankSelect, MAXBANKSLOG2) }, - { HRDATA (COMMON, common, 32) }, - { HRDATA (SWITCHERPORT, switcherPort, 8), }, - { DRDATA (CLOCK, clockFrequency, 32) }, - { DRDATA (SLICE, sliceLength, 16) }, - { DRDATA (TSTATES, executedTStates, 32), REG_RO }, - { HRDATA (CAPACITY, cpu_unit.capac, 32), REG_RO }, - { HRDATA (PREVCAP, previousCapacity, 32), REG_RO }, - { BRDATA (PCQ, pcq, 16, 16, PCQ_SIZE), REG_RO + REG_CIRC }, - { DRDATA (PCQP, pcq_p, PCQ_SIZE_LOG2), REG_HRO }, - { HRDATA (WRU, sim_int_char, 8) }, + // 8080 and Z80 registers + { HRDATAD (AF, AF_S, 16, "8080 / Z80 Accumulator Flag register") + }, /* 0 */ + { HRDATAD (BC, BC_S, 16, "8080 / Z80 BC register") + }, /* 1 */ + { HRDATAD (DE, DE_S, 16, "8080 / Z80 DE register") + }, /* 2 */ + { HRDATAD (HL, HL_S, 16, "8080 / Z80 HL register") + }, /* 3 */ + { HRDATAD (PC, PC_S, 16 + MAXBANKSLOG2, "8080 / Z80 Program Counter register") + }, /* 4 8080 / Z80 */ + { HRDATAD (SP, SP_S, 16, "8080 / Z80 Stack Pointer register") + }, /* 5 */ + + // Z80 registers + { HRDATAD (IX, IX_S, 16, "Z80 IX register") + }, /* 8 */ + { HRDATAD (IY, IY_S, 16, "Z80 IY register") + }, /* 9 */ + { HRDATAD (AF1, AF1_S, 16, "Z80 Alternate Accumulator Flag register") + }, /* 10 */ + { HRDATAD (BC1, BC1_S, 16, "Z80 Alternate BC register") + }, /* 11 */ + { HRDATAD (DE1, DE1_S, 16, "Z80 Alternate DE register") + }, /* 12 */ + { HRDATAD (HL1, HL1_S, 16, "Z80 Alternate HL register") + }, /* 13 */ + { GRDATAD (IFF, IFF_S, 2, 2, 0, "Z80 Interrupt Flip Flop register") + }, /* 6 */ + { FLDATAD (IR, IR_S, 8, "8Z80 Interrupt (upper) / Refresh (lower) register") + }, /* 7 */ + + // 8086 registers + { HRDATAD (AX, AX_S, 16, "8086 AX register") + }, /* 14 8086 */ + { GRDATAD (AL, AX_S, 16, 8, 0, "8086 low bits of AX register") + }, /* 15 8086, low 8 bits of AX */ + { GRDATAD (AH, AX_S, 16, 8, 8, "8086 high bits of AX register") + }, /* 16 8086, high 8 bits of AX */ + { HRDATAD (BX, BX_S, 16, "8086 BX register") + }, /* 17 8086 */ + { GRDATAD (BL, BX_S, 16, 8, 0, "8086 low bits of BX register") + }, /* 18 8086, low 8 bits of BX */ + { GRDATAD (BH, BX_S, 16, 8, 8, "8086 high bits of BX register") + }, /* 19 8086, high 8 bits of BX */ + { HRDATAD (CX, CX_S, 16, "8086 CX register") + }, /* 20 8086 */ + { GRDATAD (CL, CX_S, 16, 8, 0, "8086 low bits of CX register") + }, /* 21 8086, low 8 bits of CX */ + { GRDATAD (CH, CX_S, 16, 8, 8, "8086 high bits of CX register") + }, /* 22 8086, high 8 bits of CX */ + { HRDATAD (DX, DX_S, 16, "8086 DX register") + }, /* 23 8086 */ + { GRDATAD (DL, DX_S, 16, 8, 0, "8086 low bits of DX register") + }, /* 24 8086, low 8 bits of DX */ + { GRDATAD (DH, DX_S, 16, 8, 8, "8086 high bits of DX register") + }, /* 25 8086, high 8 bits of DX */ + { HRDATAD (PCX, PCX_S, 16 + MAXBANKSLOG2, "8086 Program Counter register") + }, /* 26 8086, Program Counter */ + { HRDATAD (SPX, SPX_S, 16, "8086 Stack Pointer register") + }, /* 27 8086, Stack Pointer */ + { HRDATAD (BP, BP_S, 16, "8086 Base Pointer register") + }, /* 28 8086, Base Pointer */ + { HRDATAD (SI, SI_S, 16, "8086 Source Index register") + }, /* 29 8086, Source Index */ + { HRDATAD (DI, DI_S, 16, "8086 Destination Index register") + }, /* 30 8086, Destination Index */ + { HRDATAD (CS, CS_S, 16, "8086 Code Segment register") + }, /* 31 8086, Code Segment */ + { HRDATAD (DS, DS_S, 16, "8086 Data Segment register") + }, /* 32 8086, Data Segment */ + { HRDATAD (ES, ES_S, 16, "8086 Extra Segment register") + }, /* 33 8086, Extra Segment */ + { HRDATAD (SS, SS_S, 16, "8086 Stack Segment register") + }, /* 34 8086, Stack Segment */ + { HRDATAD (FLAGS, FLAGS_S, 16, "8086 Flag register") + }, /* 35 8086, FLAGS */ + { HRDATAD (IP, IP_S, 16, "8086 Instruction Pointer register"), + REG_RO }, /* 36 8086, set via PC */ + + // M68K registers + { HRDATAD (M68K_D0, m68k_registers[M68K_REG_D0], 32, "M68K D0 register"), + }, /* 37 M68K, D0 */ + { HRDATAD (M68K_D1, m68k_registers[M68K_REG_D1], 32, "M68K D1 register"), + }, /* 38 M68K, D1 */ + { HRDATAD (M68K_D2, m68k_registers[M68K_REG_D2], 32, "M68K D2 register"), + }, /* 39 M68K, D2 */ + { HRDATAD (M68K_D3, m68k_registers[M68K_REG_D3], 32, "M68K D3 register"), + }, /* 40 M68K, D3 */ + { HRDATAD (M68K_D4, m68k_registers[M68K_REG_D4], 32, "M68K D4 register"), + }, /* 41 M68K, D4 */ + { HRDATAD (M68K_D5, m68k_registers[M68K_REG_D5], 32, "M68K D5 register"), + }, /* 42 M68K, D5 */ + { HRDATAD (M68K_D6, m68k_registers[M68K_REG_D6], 32, "M68K D6 register"), + }, /* 43 M68K, D6 */ + { HRDATAD (M68K_D7, m68k_registers[M68K_REG_D7], 32, "M68K D7 register"), + }, /* 44 M68K, D7 */ + { HRDATAD (M68K_A0, m68k_registers[M68K_REG_A0], 32, "M68K A0 register"), + }, /* 45 M68K, A0 */ + { HRDATAD (M68K_A1, m68k_registers[M68K_REG_A1], 32, "M68K A1 register"), + }, /* 46 M68K, A1 */ + { HRDATAD (M68K_A2, m68k_registers[M68K_REG_A2], 32, "M68K A2 register"), + }, /* 47 M68K, A2 */ + { HRDATAD (M68K_A3, m68k_registers[M68K_REG_A3], 32, "M68K A3 register"), + }, /* 48 M68K, A3 */ + { HRDATAD (M68K_A4, m68k_registers[M68K_REG_A4], 32, "M68K A4 register"), + }, /* 49 M68K, A4 */ + { HRDATAD (M68K_A5, m68k_registers[M68K_REG_A5], 32, "M68K A5 register"), + }, /* 50 M68K, A5 */ + { HRDATAD (M68K_A6, m68k_registers[M68K_REG_A6], 32, "M68K A6 register"), + }, /* 51 M68K, A6 */ + { HRDATAD (M68K_A7, m68k_registers[M68K_REG_A7], 32, "M68K A7 register"), + }, /* 52 M68K, A7 */ + { HRDATAD (M68K_PC, m68k_registers[M68K_REG_PC], 32, "M68K Program Counter register"), + }, /* 53 M68K, PC */ + { HRDATAD (M68K_SR, m68k_registers[M68K_REG_SR], 32, "M68K Status Register"), + }, /* 54 M68K, SR */ + { HRDATAD (M68K_SP, m68k_registers[M68K_REG_SP], 32, "M68K Stack Pointer register"), + }, /* 55 M68K, SP */ + { HRDATAD (M68K_USP, m68k_registers[M68K_REG_USP], 32, "M68K User Stack Pointer register"), + }, /* 56 M68K, USP */ + { HRDATAD (M68K_ISP, m68k_registers[M68K_REG_ISP], 32, "M68K Interrupt Stack Pointer register"), + }, /* 57 M68K, ISP */ + { HRDATAD (M68K_MSP, m68k_registers[M68K_REG_MSP], 32, "M68K Master Stack Pointer register"), + }, /* 58 M68K, MSP */ + { HRDATAD (M68K_SFC, m68k_registers[M68K_REG_SFC], 32, "M68K Source Function Code register"), + }, /* 59 M68K, SFC */ + { HRDATAD (M68K_DFC, m68k_registers[M68K_REG_DFC], 32, "M68K Destination Function Code register"), + }, /* 60 M68K, DFC */ + { HRDATAD (M68K_VBR, m68k_registers[M68K_REG_VBR], 32, "M68K Vector Base Register"), + }, /* 61 M68K, VBR */ + { HRDATAD (M68K_CACR, m68k_registers[M68K_REG_CACR], 32, "M68K Cache Control Register"), + }, /* 62 M68K, CACR */ + { HRDATAD (M68K_CAAR, m68k_registers[M68K_REG_CAAR], 32, "M68K Cache Address Register"), + }, /* 63 M68K, CAAR */ + { HRDATAD (M68K_PREF_ADDR, m68k_registers[M68K_REG_PREF_ADDR], 32, "M68K Last Prefetch Address register"), + }, /* 64 M68K, PREF_ADDR */ + { HRDATAD (M68K_PREF_DATA, m68k_registers[M68K_REG_PREF_DATA], 32, "M68K Last Prefetch Data register"), + }, /* 65 M68K, PREF_DATA */ + { HRDATAD (M68K_PPC, m68k_registers[M68K_REG_PPC], 32, "M68K Previous Proram Counter register"), + }, /* 66 M68K, PPC */ + { HRDATAD (M68K_IR, m68k_registers[M68K_REG_IR], 32, "M68K Instruction Register"), + }, /* 67 M68K, IR */ + { HRDATAD (M68K_CPU_TYPE, m68k_registers[M68K_REG_CPU_TYPE], 32, "M68K CPU Type register"), + REG_RO }, /* 68 M68K, CPU_TYPE */ + + // Pseudo registers + { FLDATAD (OPSTOP, cpu_unit.flags, UNIT_CPU_V_OPSTOP, "Stop on invalid operation pseudo register"), + REG_HRO }, /* 69 */ + { HRDATAD (SR, SR, 8, "Front panel switches pseudo register"), + }, /* 70 */ + { HRDATAD (BANK, bankSelect, MAXBANKSLOG2, "Active bank pseudo register"), + }, /* 71 */ + { HRDATAD (COMMON, common, 32, "Starting address of common memory pseudo register"), + }, /* 72 */ + { HRDATAD (SWITCHERPORT, switcherPort, 8, "I/O port for CPU switcher pseudo register"), + }, /* 73 */ + { DRDATAD (CLOCK, clockFrequency, 32, "Clock frequency in kHz for 8080 / Z80 pseudo register"), + }, /* 74 */ + { DRDATAD (SLICE, sliceLength, 16, "Length of time slice for 8080 / Z80 pseudo register"), + }, /* 75 */ + { DRDATAD (TSTATES, executedTStates, 32, "Executed t-states for 8080 / Z80 pseudo register"), + REG_RO }, /* 76 */ + { HRDATAD (CAPACITY, cpu_unit.capac, 32, "Size of RAM pseudo register"), + REG_RO }, /* 77 */ + { HRDATAD (PREVCAP, previousCapacity, 32, "Previous size of RAM pseudo register"), + REG_RO }, /* 78 */ + { BRDATAD (PCQ, pcq, 16, 16, PCQ_SIZE, "Program counter circular buffer for 8080 /Z80 pseudo register"), + REG_RO + REG_CIRC }, /* 79 */ + { DRDATAD (PCQP, pcq_p, PCQ_SIZE_LOG2, "Circular buffer head for 8080 / Z80 pseudo register"), + REG_HRO }, /* 80 */ + { HRDATAD (WRU, sim_int_char, 8, "Interrupt character pseudo register"), + }, /* 81 */ { NULL } }; static MTAB cpu_mod[] = { - { MTAB_XTD | MTAB_VDV, CHIP_TYPE_8080, NULL, "8080", &cpu_set_chiptype }, - { MTAB_XTD | MTAB_VDV, CHIP_TYPE_Z80, NULL, "Z80", &cpu_set_chiptype }, - { MTAB_XTD | MTAB_VDV, CHIP_TYPE_8086, NULL, "8086", &cpu_set_chiptype }, - { UNIT_CPU_OPSTOP, UNIT_CPU_OPSTOP, "ITRAP", "ITRAP", NULL, &chip_show }, - { UNIT_CPU_OPSTOP, 0, "NOITRAP", "NOITRAP", NULL, &chip_show }, - { UNIT_CPU_STOPONHALT, UNIT_CPU_STOPONHALT,"STOPONHALT", "STOPONHALT", NULL }, - { UNIT_CPU_STOPONHALT, 0, "LOOPONHALT", "LOOPONHALT", NULL }, - { UNIT_CPU_BANKED, UNIT_CPU_BANKED, "BANKED", "BANKED", &cpu_set_banked }, - { UNIT_CPU_BANKED, 0, "NONBANKED", "NONBANKED", &cpu_set_nonbanked }, - { UNIT_CPU_ALTAIRROM, UNIT_CPU_ALTAIRROM, "ALTAIRROM", "ALTAIRROM", &cpu_set_altairrom }, - { UNIT_CPU_ALTAIRROM, 0, "NOALTAIRROM", "NOALTAIRROM", &cpu_set_noaltairrom}, - { UNIT_CPU_VERBOSE, UNIT_CPU_VERBOSE, "VERBOSE", "VERBOSE", NULL, &cpu_show }, - { UNIT_CPU_VERBOSE, 0, "QUIET", "QUIET", NULL }, - { MTAB_VDV, 0, NULL, "CLEARMEMORY", &cpu_clear_command }, - { UNIT_CPU_MMU, UNIT_CPU_MMU, "MMU", "MMU", NULL }, - { UNIT_CPU_MMU, 0, "NOMMU", "NOMMU", &cpu_set_nommu }, - { MTAB_XTD | MTAB_VDV, 0, NULL, "MEMORY", &cpu_set_memory }, - { UNIT_CPU_SWITCHER, UNIT_CPU_SWITCHER, "SWITCHER", "SWITCHER", &cpu_set_switcher, &cpu_show_switcher }, - { UNIT_CPU_SWITCHER, 0, "NOSWITCHER", "NOSWITCHER", &cpu_reset_switcher, &cpu_show_switcher }, - { MTAB_XTD | MTAB_VDV, 0, NULL, "AZ80", &cpu_set_ramtype }, - { MTAB_XTD | MTAB_VDV, 1, NULL, "HRAM", &cpu_set_ramtype }, - { MTAB_XTD | MTAB_VDV, 2, NULL, "VRAM", &cpu_set_ramtype }, - { MTAB_XTD | MTAB_VDV, 3, NULL, "CRAM", &cpu_set_ramtype }, - { MTAB_VDV, 4, NULL, "4KB", &cpu_set_size }, - { MTAB_VDV, 8, NULL, "8KB", &cpu_set_size }, - { MTAB_VDV, 12, NULL, "12KB", &cpu_set_size }, - { MTAB_VDV, 16, NULL, "16KB", &cpu_set_size }, - { MTAB_VDV, 20, NULL, "20KB", &cpu_set_size }, - { MTAB_VDV, 24, NULL, "24KB", &cpu_set_size }, - { MTAB_VDV, 28, NULL, "28KB", &cpu_set_size }, - { MTAB_VDV, 32, NULL, "32KB", &cpu_set_size }, - { MTAB_VDV, 36, NULL, "36KB", &cpu_set_size }, - { MTAB_VDV, 40, NULL, "40KB", &cpu_set_size }, - { MTAB_VDV, 44, NULL, "44KB", &cpu_set_size }, - { MTAB_VDV, 48, NULL, "48KB", &cpu_set_size }, - { MTAB_VDV, 52, NULL, "52KB", &cpu_set_size }, - { MTAB_VDV, 56, NULL, "56KB", &cpu_set_size }, - { MTAB_VDV, 60, NULL, "60KB", &cpu_set_size }, - { MTAB_VDV, 64, NULL, "64KB", &cpu_set_size }, + { MTAB_XTD | MTAB_VDV, CHIP_TYPE_8080, NULL, "8080", &cpu_set_chiptype, + NULL, NULL, "Chooses 8080 CPU"}, + { MTAB_XTD | MTAB_VDV, CHIP_TYPE_Z80, NULL, "Z80", &cpu_set_chiptype, + NULL, NULL, "Chooses Z80 CPU" }, + { MTAB_XTD | MTAB_VDV, CHIP_TYPE_8086, NULL, "8086", &cpu_set_chiptype, + NULL, NULL, "Chooses 8086 CPU" }, + { MTAB_XTD | MTAB_VDV, CHIP_TYPE_M68K, NULL, "M68K", &cpu_set_chiptype, + NULL, NULL, "Chooses M68K CPU" }, + { UNIT_CPU_OPSTOP, UNIT_CPU_OPSTOP, "ITRAP", "ITRAP", NULL, &chip_show, + NULL, "Stop on illegal instruction" }, + { UNIT_CPU_OPSTOP, 0, "NOITRAP", "NOITRAP", NULL, &chip_show, + NULL, "Do not stop on illegal instruction" }, + { UNIT_CPU_STOPONHALT, UNIT_CPU_STOPONHALT,"STOPONHALT", "STOPONHALT", NULL, + NULL, NULL, "Stop on halt instruction" }, + { UNIT_CPU_STOPONHALT, 0, "LOOPONHALT", "LOOPONHALT", NULL, + NULL, NULL, "Enter loop on halt instruction" }, + { UNIT_CPU_BANKED, UNIT_CPU_BANKED, "BANKED", "BANKED", &cpu_set_banked, + NULL, NULL, "Enable banked memory for 8080 / Z80" }, + { UNIT_CPU_BANKED, 0, "NONBANKED", "NONBANKED", &cpu_set_nonbanked, + NULL, NULL, "Disable banked memory for 8080 / Z80" }, + { UNIT_CPU_ALTAIRROM, UNIT_CPU_ALTAIRROM, "ALTAIRROM", "ALTAIRROM", &cpu_set_altairrom, + NULL, NULL, "Enable Altair ROM for 8080 / Z80" }, + { UNIT_CPU_ALTAIRROM, 0, "NOALTAIRROM", "NOALTAIRROM", &cpu_set_noaltairrom, + NULL, NULL, "Disable Altair ROM for 8080 / Z80"}, + { UNIT_CPU_VERBOSE, UNIT_CPU_VERBOSE, "VERBOSE", "VERBOSE", NULL, &cpu_show, + NULL, "Enable verbose messages" }, + { UNIT_CPU_VERBOSE, 0, "QUIET", "QUIET", NULL, NULL, + NULL, "Disable verbose messages" }, + { MTAB_VDV, 0, NULL, "CLEARMEMORY", &cpu_clear_command, + NULL, NULL, "Clears the RAM" }, + { UNIT_CPU_MMU, UNIT_CPU_MMU, "MMU", "MMU", NULL, NULL, + NULL, "Enable the Memory Management Unit for 8080 / Z80" }, + { UNIT_CPU_MMU, 0, "NOMMU", "NOMMU", &cpu_set_nommu, + NULL, NULL, "Disable the Memory Management Unit for 8080 / Z80" }, + { MTAB_XTD | MTAB_VDV, 0, NULL, "MEMORY", &cpu_set_memory, + NULL, NULL, "Sets the RAM size for 8080 / Z80 / 8086" }, + { UNIT_CPU_SWITCHER, UNIT_CPU_SWITCHER, "SWITCHER", "SWITCHER", &cpu_set_switcher, &cpu_show_switcher, + NULL, "Sets CPU switcher port for 8080 / Z80 / 8086" }, + { UNIT_CPU_SWITCHER, 0, "NOSWITCHER", "NOSWITCHER", &cpu_reset_switcher, &cpu_show_switcher, + NULL, "Resets CPU switcher port for 8080 / Z80 / 8086" }, + { MTAB_XTD | MTAB_VDV, 0, NULL, "AZ80", &cpu_set_ramtype, + NULL, NULL, "Sets the RAM type to AltairZ80 RAM for 8080 / Z80 / 8086" }, + { MTAB_XTD | MTAB_VDV, 1, NULL, "HRAM", &cpu_set_ramtype, + NULL, NULL, "Sets the RAM type to NorthStar HRAM for 8080 / Z80 / 8086" }, + { MTAB_XTD | MTAB_VDV, 2, NULL, "VRAM", &cpu_set_ramtype, + NULL, NULL, "Sets the RAM type to Vector RAM for 8080 / Z80 / 8086" }, + { MTAB_XTD | MTAB_VDV, 3, NULL, "CRAM", &cpu_set_ramtype, + NULL, NULL, "Sets the RAM type to Cromemco RAM for 8080 / Z80 / 8086" }, + { MTAB_VDV, 4, NULL, "4KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 4KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 8, NULL, "8KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 8KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 12, NULL, "12KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 12KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 16, NULL, "16KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 16KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 20, NULL, "20KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 20KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 24, NULL, "24KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 24KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 28, NULL, "28KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 28KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 32, NULL, "32KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 32KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 36, NULL, "36KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 36KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 40, NULL, "40KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 40KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 44, NULL, "44KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 44KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 48, NULL, "48KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 48KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 52, NULL, "52KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 52KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 56, NULL, "56KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 56KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 60, NULL, "60KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 60KB for 8080 / Z80 / 8086" }, + { MTAB_VDV, 64, NULL, "64KB", &cpu_set_size, + NULL, NULL, "Sets the RAM size to 64KB for 8080 / Z80 / 8086" }, { 0 } }; /* Debug Flags */ static DEBTAB cpu_dt[] = { - { "LOG_IN", IN_MSG }, - { "LOG_OUT", OUT_MSG }, + { "LOG_IN", IN_MSG, "Log IN operations" }, + { "LOG_OUT", OUT_MSG, "Log OUT operations" }, { NULL, 0 } }; @@ -449,7 +621,7 @@ static struct idev dev_table[256] = { static int32 ramtype = 0; #define MAX_RAM_TYPE 3 -int32 chiptype = CHIP_TYPE_8080; +ChipType chiptype = CHIP_TYPE_8080; void out(const uint32 Port, const uint32 Value) { if ((cpu_dev.dctrl & OUT_MSG) && sim_deb) { @@ -1555,9 +1727,9 @@ static void altairz80_print_tables(void) { #define LOG2PAGESIZE 8 #define PAGESIZE (1 << LOG2PAGESIZE) -static uint8 M[MAXMEMORY]; /* RAM which is present */ +static uint8 M[MAXMEMORY]; /* RAM which is present (for 8080, Z80 and 8086 */ -struct mdev { /* Structure to describe a 2^LOG2PAGESIZE byte page of address space */ +typedef struct { /* Structure to describe a 2^LOG2PAGESIZE byte page of address space */ /* There are four cases isRAM isEmpty routine code TRUE FALSE NULL W page is random access memory (RAM) @@ -1569,9 +1741,7 @@ struct mdev { /* Structure to describe a 2^LOG2PAGESIZE byte page of address spa uint32 isRAM; uint32 isEmpty; int32 (*routine)(const int32, const int32, const int32); -}; - -typedef struct mdev MDEV; +} MDEV; static MDEV ROM_PAGE = {FALSE, FALSE, NULL}; /* this makes a page ROM */ static MDEV RAM_PAGE = {TRUE, FALSE, NULL}; /* this makes a page RAM */ @@ -1852,13 +2022,15 @@ static int32 sim_brk_lookup (const t_addr loc, const int32 btyp) { int32 switch_cpu_now = TRUE; /* hharte */ t_stat sim_instr (void) { - uint32 i; t_stat result; - if ((chiptype == CHIP_TYPE_8086) || (cpu_unit.flags & UNIT_CPU_MMU)) + if (chiptype == CHIP_TYPE_M68K) { + result = sim_instr_m68k(); + } else if ((chiptype == CHIP_TYPE_8086) || (cpu_unit.flags & UNIT_CPU_MMU)) do { result = (chiptype == CHIP_TYPE_8086) ? sim_instr_8086() : sim_instr_mmu(); } while (switch_cpu_now == FALSE); else { + uint32 i; for (i = 0; i < MAXBANKSIZE; i++) MOPT[i] = M[i]; result = sim_instr_nommu(); @@ -6350,6 +6522,7 @@ static t_stat cpu_reset(DEVICE *dptr) { IFF_S = 3; setBankSelect(0); cpu8086reset(); + m68k_cpu_reset(); sim_brk_types = (SWMASK('E') | SWMASK('I') | SWMASK('M')); sim_brk_dflt = SWMASK('E'); for (i = 0; i < PCQ_SIZE; i++) @@ -6365,18 +6538,9 @@ static t_stat cpu_reset(DEVICE *dptr) { static t_bool cpu_is_pc_a_subroutine_call (t_addr **ret_addrs) { static t_addr returns[2] = {0, 0}; - if (chiptype == CHIP_TYPE_8086) { - switch (GetBYTE(PCX_S)) { - case 0x9a: /* i86op_call_far_IMM */ - case 0xe8: /* Ci86op_call_near_IMM */ - returns[0] = PCX_S + (1 - fprint_sym (stdnul, PCX_S, sim_eval, - &cpu_unit, SWMASK ('M'))); - *ret_addrs = returns; - return TRUE; - default: - return FALSE; - } - } else { // 8080 or Z80 + switch (chiptype) { + case CHIP_TYPE_8080: + case CHIP_TYPE_Z80: switch (GetBYTE(PC_S)) { case 0xc4: /* CALL NZ,nnnn */ case 0xcc: /* CALL Z,nnnn */ @@ -6393,10 +6557,42 @@ static t_bool cpu_is_pc_a_subroutine_call (t_addr **ret_addrs) { default: return FALSE; } + break; + + case CHIP_TYPE_8086: + switch (GetBYTE(PCX_S)) { + case 0x9a: /* i86op_call_far_IMM */ + case 0xe8: /* Ci86op_call_near_IMM */ + returns[0] = PCX_S + (1 - fprint_sym (stdnul, PCX_S, sim_eval, + &cpu_unit, SWMASK ('M'))); + *ret_addrs = returns; + return TRUE; + default: + return FALSE; + } + break; + + case CHIP_TYPE_M68K: { + const uint32 localPC = m68k_registers[M68K_REG_PC]; + const uint32 instr = m68k_cpu_read_word(localPC); + if (((instr & 0xff00) == 0x6100) || /* BSR */ + ((instr & 0xffc0) == 0x4e80)) { /* JSR */ + returns[0] = localPC + (1 - fprint_sym (stdnul, localPC, sim_eval, + &cpu_unit, SWMASK ('M'))); + *ret_addrs = returns; + return TRUE; + } + return FALSE; + } + break; + + default: + return FALSE; + break; } } -t_stat install_bootrom(int32 bootrom[], int32 size, int32 addr, int32 makeROM) { +t_stat install_bootrom(const int32 bootrom[], const int32 size, const int32 addr, const int32 makeROM) { int32 i; if (addr & (PAGESIZE - 1)) return SCPE_IERR; @@ -6410,83 +6606,126 @@ t_stat install_bootrom(int32 bootrom[], int32 size, int32 addr, int32 makeROM) { /* memory examine */ static t_stat cpu_ex(t_value *vptr, t_addr addr, UNIT *uptr, int32 sw) { - int32 oldBankSelect; - if (chiptype == CHIP_TYPE_8086) - *vptr = GetBYTEExtended(addr); - else { - oldBankSelect = getBankSelect(); + switch (chiptype) { + case CHIP_TYPE_8080: + case CHIP_TYPE_Z80: { + const int32 oldBankSelect = getBankSelect(); setBankSelect((addr >> MAXBANKSIZELOG2) & BANKMASK); *vptr = GetBYTE(addr & ADDRMASK); setBankSelect(oldBankSelect); + } + break; + + case CHIP_TYPE_8086: + *vptr = GetBYTEExtended(addr); + break; + + case CHIP_TYPE_M68K: + *vptr = m68k_cpu_read_byte(addr); + break; + + default: + return SCPE_AFAIL; + break; } return SCPE_OK; } /* memory deposit */ static t_stat cpu_dep(t_value val, t_addr addr, UNIT *uptr, int32 sw) { - int32 oldBankSelect; - if (chiptype == CHIP_TYPE_8086) - PutBYTEExtended(addr, val); - else { - oldBankSelect = getBankSelect(); + switch (chiptype) { + case CHIP_TYPE_8080: + case CHIP_TYPE_Z80: { + const int32 oldBankSelect = getBankSelect(); setBankSelect((addr >> MAXBANKSIZELOG2) & BANKMASK); PutBYTE(addr & ADDRMASK, val); setBankSelect(oldBankSelect); + + } + break; + + case CHIP_TYPE_8086: + PutBYTEExtended(addr, val); + break; + + case CHIP_TYPE_M68K: + m68k_cpu_write_byte(addr & M68K_MAX_RAM, val); + break; + + default: + return SCPE_AFAIL; + break; } return SCPE_OK; } -struct cpuflag { - int32 mask; /* bit mask within CPU status register */ - char name; /* character to print if flag is set */ -}; -typedef struct cpuflag CPUFLAG; +typedef struct { + uint32 mask; /* bit mask within CPU status register */ + const char* flagName; /* string to print if flag is set */ +} CPUFLAG; -static CPUFLAG cpuflags8086[] = { - {1 << 11, 'O'}, - {1 << 10, 'D'}, - {1 << 9, 'I'}, - {1 << 8, 'T'}, - {1 << 7, 'S'}, - {1 << 6, 'Z'}, - {1 << 4, 'A'}, - {1 << 2, 'P'}, - {1 << 0, 'C'}, +const static CPUFLAG cpuflags8080[] = { + {1 << 7, "S"}, + {1 << 6, "Z"}, + {1 << 4, "A"}, + {1 << 3, "P"}, + {1 << 1, "N"}, + {1 << 0, "C"}, {0, 0} /* last mask must be 0 */ }; -static CPUFLAG cpuflags8080[] = { - {1 << 7, 'S'}, - {1 << 6, 'Z'}, - {1 << 4, 'A'}, - {1 << 3, 'P'}, - {1 << 1, 'N'}, - {1 << 0, 'C'}, +const static CPUFLAG cpuflagsZ80[] = { + {1 << 7, "S"}, + {1 << 6, "Z"}, + {1 << 4, "A"}, + {1 << 3, "V"}, + {1 << 1, "N"}, + {1 << 0, "C"}, {0, 0} /* last mask must be 0 */ }; -static CPUFLAG cpuflagsZ80[] = { - {1 << 7, 'S'}, - {1 << 6, 'Z'}, - {1 << 4, 'A'}, - {1 << 3, 'V'}, - {1 << 1, 'N'}, - {1 << 0, 'C'}, +const static CPUFLAG cpuflags8086[] = { + {1 << 11, "O"}, + {1 << 10, "D"}, + {1 << 9, "I"}, + {1 << 8, "T"}, + {1 << 7, "S"}, + {1 << 6, "Z"}, + {1 << 4, "A"}, + {1 << 2, "P"}, + {1 << 0, "C"}, {0, 0} /* last mask must be 0 */ }; -/* needs to be set for each chiptype <= MAX_CHIP_TYPE */ -static char *chipTypeToString[] = { "8080", "Z80", "8086" }; -static int32 *flagregister[] = { &AF_S, &AF_S, &FLAGS_S }; -static CPUFLAG *cpuflags[] = { cpuflags8080, cpuflagsZ80, cpuflags8086 }; +const static CPUFLAG cpuflagsM68K[] = { + {1 << 15, "T1"}, /* Trace Enable T1 */ + {1 << 14, "T0"}, /* Trace Enable T0 */ + {1 << 13, "S"}, /* Supervisor / User State */ + {1 << 12, "M"}, /* Master / Interrupt State */ + {1 << 10, "I2"}, /* Interrupt Priority Mask I2 */ + {1 << 9, "I1"}, /* Interrupt Priority Mask I1 */ + {1 << 8, "I0"}, /* Interrupt Priority Mask I0 */ + {1 << 4, "X"}, /* Extend */ + {1 << 3, "N"}, /* Negative */ + {1 << 2, "Z"}, /* Zero */ + {1 << 1, "V"}, /* Overflow */ + {1 << 0, "C"}, /* Carry */ + {0, 0}, /* last mask must be 0 */ +}; + +/* needs to be set for each chiptype < NUM_CHIP_TYPE */ +const static uint32 *flagregister[NUM_CHIP_TYPE] = { (uint32*)&AF_S, (uint32*)&AF_S, + (uint32*)&FLAGS_S, &m68k_registers[M68K_REG_SR]}; +const static CPUFLAG *cpuflags[NUM_CHIP_TYPE] = { cpuflags8080, cpuflagsZ80, + cpuflags8086, cpuflagsM68K, }; /* needs to be set for each ramtype <= MAX_RAM_TYPE */ static char *ramTypeToString[] = { "AZ80", "HRAM", "VRAM", "CRAM" }; static t_stat chip_show(FILE *st, UNIT *uptr, int32 val, void *desc) { fprintf(st, cpu_unit.flags & UNIT_CPU_OPSTOP ? "ITRAP, " : "NOITRAP, "); - if (chiptype <= MAX_CHIP_TYPE) - fprintf(st, "%s", chipTypeToString[chiptype]); + if (chiptype < NUM_CHIP_TYPE) + fprintf(st, "%s", cpu_mod[chiptype].mstring); fprintf(st, ", "); if (ramtype <= MAX_RAM_TYPE) fprintf(st, "%s", ramTypeToString[ramtype]); @@ -6498,7 +6737,9 @@ static t_stat cpu_show(FILE *st, UNIT *uptr, int32 val, void *desc) { MDEV m; maxBanks = ((cpu_unit.flags & UNIT_CPU_BANKED) || (chiptype == CHIP_TYPE_8086)) ? MAXBANKS : 1; - fprintf(st, "VERBOSE,\n "); + fprintf(st, "VERBOSE,"); + if (chiptype < CHIP_TYPE_M68K) { /* 8080, Z80, 8086 */ + fprintf(st, "\n "); for (i = 0; i < 4; i++) fprintf(st, "0123456789ABCDEF"); fprintf(st, " [16k]"); @@ -6526,16 +6767,17 @@ static t_stat cpu_show(FILE *st, UNIT *uptr, int32 val, void *desc) { fprintf(st, "%02X", i); } fprintf(st, "]"); - if (chiptype <= MAX_CHIP_TYPE) { + } + if (chiptype < NUM_CHIP_TYPE) { first = TRUE; /* show verbose CPU flags */ for (i = 0; cpuflags[chiptype][i].mask; i++) if (*flagregister[chiptype] & cpuflags[chiptype][i].mask) { if (first) { first = FALSE; - fprintf(st, " "); + fprintf(st, "\nFlags"); } - fprintf(st, "%c", cpuflags[chiptype][i].name); + fprintf(st, " %s", cpuflags[chiptype][i].flagName); } } return SCPE_OK; @@ -6551,6 +6793,7 @@ static void cpu_clear(void) { mmu_table[i] = EMPTY_PAGE; if (cpu_unit.flags & UNIT_CPU_ALTAIRROM) install_ALTAIRbootROM(); + m68k_clear_memory(); clockHasChanged = FALSE; } @@ -6699,9 +6942,8 @@ static int32 bankseldev(const int32 port, const int32 io, const int32 data) { } } -static void cpu_set_chiptype_short(int32 value, uint32 need_cpu_clear) { - extern REG *sim_PC; - if ((chiptype == value) || (chiptype > MAX_CHIP_TYPE)) +static void cpu_set_chiptype_short(const int32 value) { + if ((chiptype == value) || (chiptype >= NUM_CHIP_TYPE)) return; /* nothing to do */ if (((chiptype == CHIP_TYPE_8080) && (value == CHIP_TYPE_Z80)) || ((chiptype == CHIP_TYPE_Z80) && (value == CHIP_TYPE_8080))) { @@ -6709,28 +6951,38 @@ static void cpu_set_chiptype_short(int32 value, uint32 need_cpu_clear) { return; } chiptype = value; - if (chiptype == CHIP_TYPE_8086) { + switch (chiptype) { + case CHIP_TYPE_8080: + case CHIP_TYPE_Z80: + MEMORYSIZE = previousCapacity; + cpu_dev.awidth = MAXBANKSIZELOG2; + sim_PC = &cpu_reg[CPU_INDEX_8080]; + break; + + case CHIP_TYPE_8086: if (MEMORYSIZE <= MAXBANKSIZE) previousCapacity = MEMORYSIZE; MEMORYSIZE = MAXMEMORY; cpu_unit.flags &= ~(UNIT_CPU_BANKED | UNIT_CPU_ALTAIRROM); cpu_unit.flags |= UNIT_CPU_MMU; cpu_dev.awidth = MAXBANKSIZELOG2 + MAXBANKSLOG2; - if (need_cpu_clear) - cpu_clear(); - sim_PC = &cpu_reg[7]; - } - else if ((chiptype == CHIP_TYPE_8080) || (chiptype == CHIP_TYPE_Z80)) { - MEMORYSIZE = previousCapacity; - cpu_dev.awidth = MAXBANKSIZELOG2; - if (need_cpu_clear) - cpu_clear(); - sim_PC = &cpu_reg[6]; + sim_PC = &cpu_reg[CPU_INDEX_8086]; + break; + + case CHIP_TYPE_M68K: + MEMORYSIZE = M68K_MAX_RAM + 1; + cpu_dev.awidth = M68K_MAX_RAM_LOG2; + sim_PC = &cpu_reg[CPU_INDEX_M68K]; + break; + + default: + break; } } static t_stat cpu_set_chiptype(UNIT *uptr, int32 value, char *cptr, void *desc) { - cpu_set_chiptype_short(value, TRUE); + cpu_set_chiptype_short(value); + cpu_clear(); return SCPE_OK; } @@ -6758,7 +7010,7 @@ static int32 switchcpu_io(const int32 port, const int32 io, const int32 data) { break; } - cpu_set_chiptype_short(new_chiptype, FALSE); + cpu_set_chiptype_short(new_chiptype); return(0xFF); /* Return High-Z Data */ } else { printf("%s: Set EXT_ADDR=%02x\n", __FUNCTION__, data); @@ -6854,7 +7106,13 @@ static t_stat cpu_set_ramtype(UNIT *uptr, int32 value, char *cptr, void *desc) { /* set memory to 'size' kilo byte */ static t_stat set_size(uint32 size) { - uint32 maxsize = (((chiptype == CHIP_TYPE_8080) || (chiptype == CHIP_TYPE_Z80)) && + uint32 maxsize; + if (chiptype == CHIP_TYPE_M68K) { // ignore for M68K + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("Setting memory size to %ikB ignored for M68K.\n", size); + return SCPE_OK; + } + maxsize = (((chiptype == CHIP_TYPE_8080) || (chiptype == CHIP_TYPE_Z80)) && ((cpu_unit.flags & UNIT_CPU_BANKED) == 0)) ? MAXBANKSIZE : MAXMEMORY; size <<= KBLOG2; if (cpu_unit.flags & UNIT_CPU_BANKED) @@ -6910,6 +7168,41 @@ void (*sim_vm_init) (void) = &altairz80_init; #define PLURAL(x) (x), (x) == 1 ? "" : "s" +static t_stat sim_load_m68k(FILE *fileref, char *cptr, char *fnam, int flag) { + char gbuf[CBUFSIZE]; + int32 i; + t_addr j, lo, hi; + uint32 addr, org, cnt = 0; + char* result; + if (flag ) { + result = get_range(NULL, cptr, &lo, &hi, 16, M68K_MAX_RAM, 0); + if (result == NULL) + return SCPE_ARG; + for (j = lo; j <= hi; j++) { + if (putc(m68k_cpu_read_byte(j), fileref) == EOF) + return SCPE_IOERR; + } + printf("%d byte%s dumped [%x - %x] to %s.\n", PLURAL(hi + 1 - lo), lo, hi, fnam); + } else { + if (*cptr == 0) + addr = m68k_registers[M68K_REG_PC]; + else { + get_glyph(cptr, gbuf, 0); + addr = strtotv(cptr, &result, 16) & M68K_MAX_RAM; + if (cptr == result) + return SCPE_ARG; + } + org = addr; + while ((addr <= M68K_MAX_RAM) && ((i = getc(fileref)) != EOF)) { + m68k_cpu_write_byte(addr++, i); + cnt++; + } + printf("%d byte%s [%d page%s] loaded at %x.\n", + PLURAL(cnt), PLURAL((cnt + 0xff) >> 8), org); + } + return SCPE_OK; +} + t_stat sim_load(FILE *fileref, char *cptr, char *fnam, int flag) { int32 i; uint32 addr, cnt = 0, org, pagesModified = 0, makeROM = FALSE; @@ -6917,6 +7210,8 @@ t_stat sim_load(FILE *fileref, char *cptr, char *fnam, int flag) { char *result; MDEV m; char gbuf[CBUFSIZE]; + if (chiptype == CHIP_TYPE_M68K) + return sim_load_m68k(fileref, cptr, fnam, flag); if (flag) { result = get_range(NULL, cptr, &lo, &hi, 16, ADDRMASKEXTENDED, 0); if (result == NULL) @@ -6925,7 +7220,7 @@ t_stat sim_load(FILE *fileref, char *cptr, char *fnam, int flag) { if (putc(GetBYTEExtended(j), fileref) == EOF) return SCPE_IOERR; } - printf("%d byte%s dumped [%x - %x].\n", PLURAL(hi + 1 - lo), lo, hi); + printf("%d byte%s dumped [%x - %x] to %s.\n", PLURAL(hi + 1 - lo), lo, hi, fnam); } else { if (*cptr == 0) @@ -6940,7 +7235,8 @@ t_stat sim_load(FILE *fileref, char *cptr, char *fnam, int flag) { addr = strtotv(cptr, &result, 16) & ADDRMASKEXTENDED; if (cptr == result) return SCPE_ARG; - while (isspace(*result)) result++; + while (isspace(*result)) + result++; get_glyph(result, gbuf, 0); if (strcmp(gbuf, "ROM") == 0) makeROM = TRUE; @@ -6981,6 +7277,6 @@ void cpu_raise_interrupt(uint32 irq) { cpu8086_intr(irq); } else if (cpu_unit.flags & UNIT_CPU_VERBOSE) { printf("Interrupts not fully supported for chiptype: %s\n", - (chiptype <= MAX_CHIP_TYPE) ? chipTypeToString[chiptype] : "????"); + (chiptype < NUM_CHIP_TYPE) ? cpu_mod[chiptype].mstring : "????"); } } diff --git a/AltairZ80/altairz80_defs.h b/AltairZ80/altairz80_defs.h index ef229502..20ab4774 100644 --- a/AltairZ80/altairz80_defs.h +++ b/AltairZ80/altairz80_defs.h @@ -26,6 +26,9 @@ Based on work by Charles E Owen (c) 1997 */ +#ifndef ALTAIRZ80_DEFS_H_ +#define ALTAIRZ80_DEFS_H_ 0 + #include "sim_defs.h" /* simulator definitions */ #define MAXBANKSIZE 65536 /* maximum memory size, a power of 2 */ @@ -48,10 +51,15 @@ #define UNIT_NO_OFFSET_1 0x37 /* LD A, */ #define UNIT_NO_OFFSET_2 0xb4 /* LD a,80h | */ -#define CHIP_TYPE_8080 0 -#define CHIP_TYPE_Z80 1 -#define CHIP_TYPE_8086 2 -#define MAX_CHIP_TYPE CHIP_TYPE_8086 +#define CPU_INDEX_8080 4 /* index of default PC register */ + +typedef enum { + CHIP_TYPE_8080 = 0, + CHIP_TYPE_Z80, + CHIP_TYPE_8086, + CHIP_TYPE_M68K, /* must come after 8080, Z80 and 8086 */ + NUM_CHIP_TYPE, /* must be last */ +} ChipType; /* simulator stop codes */ #define STOP_HALT 0 /* HALT */ @@ -81,7 +89,7 @@ #define UNIX_PLATFORM 0 #endif -#define ADDRESS_FORMAT "[0x%05x]" +#define ADDRESS_FORMAT "[0x%08x]" /* use NLP for new line printing while the simulation is running */ #if UNIX_PLATFORM @@ -100,3 +108,5 @@ typedef struct { uint32 io_base; /* I/O Base Address */ uint32 io_size; /* I/O Address Space requirement */ } PNP_INFO; + +#endif diff --git a/AltairZ80/altairz80_doc.pdf b/AltairZ80/altairz80_doc.pdf index 44c12e1627804dd4bb9e4ba3ac4f8615cbd366ee..dca92adf990b9e0f7ad908b930d9dbf7fe6fc2cc 100644 GIT binary patch delta 904227 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 z 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�B2BQlw-6JSUDZsRqQg^|$ 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ξ9go8kXBsU`$75=Ye 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

G3TxKlb(V**HJtk>d6ADiKO({}(;0S3Y6 z@o7jJOmX>qe{NSQPz~ZF90eie0WW1rJe5ksQ`MtEHlvHJo>sASO1`zVDW4iWMWc%g z_jj?bDV<$iT4!oh-W1O^j>^TVOw3$2Mk@+aOm(UhQLR?V3_@OYb-?CyC6P!@v^52L zkvl$~jm48SSvt@5VwIBP9YQ|Y*+D>-(6OUqPlwc@f1FzP6MZhyfh&weDy=K;&>B=E zp?iNw23PVK$Y^{W&10DFFnpwdjj0==aodSc1Op!C6Z_zM>=W3D-&TB2 zrt52>e}1(u80p|z6WGJ8*|`yWK5ij^7a(9Dgfb4&f2}woY3`YvbWHT~A)d-e4CkZE zub8kvZNGZl+|j3U4ULD-Y;C-B!W0^D4^M9%)o@A|zkHA`=&z6#%)EN?lqr*oXPiIK zPlHZ;Ks$Hx!U4$I;rO1eS+Uwn^b_jldN6`se|`me`7HGEc6OUK<}K4(7IBwpmqmQs zveC5BA}urbn#GIFmsl=|N)Jb$G>JDQ`q(B>s!A+Lpu`3=qBzDY@0IRA0)<#pcp+BG zH`1rorz96GyE3IbE9pM1N2vBxiz6IcXWJCrv27`~o7gsXKu7}7@W)hx89uHLV4~HQ ze~j!$2?b3k9`4?*Y+4KVRw3V(r)LP*L+{jmCf+$ADb@M$V0RqZ!-jaW!+Yb%7goCB z*ZH+_vP?MT7@!7NwK#k@=>*<_xrL5SRyCf06lc zez%CXX<;AmbG*!?;Wa&g(D#@Qn2wl?SX=F2Ul=Bc7nvh&!Q=)q$uiv5dIE0A6W~w@ zA>ITIXO>age+(wKuQMonLme`0{4yo(x1cK9hXb1p&YFcbJaNbB z$vO=Eo5KjZ)saJC=&EUk@uiOe#(u(lyIyAgnSWZl_D}R+&+RN7Vcs1(u`JDzpZ)NU z`yYMez<#vNDBuP(dPyyLl-Aj7bC0dTqixh#kay{JUc%5Orpukzu$$_xe`>V<+_cm7 zuK8W-zM6NNKQO(I1t+8i=_d1?(i-Vm$rJ<^3}L8}k3nHImI~^#l-;*`*pxIOl`qdm z5U0z#i-D>lAQD$zwcBb{w#r}@62)p$R&`sLCDPg;xRP;qY&x(0FvOIWq2N1>P)-!n z)r>fR@XzprVFPf)32*ZXe+IuX=V+q1V-zpZb|x9Mdh>}tJYSO@Y;)e?=rsB$BXoyA z^opVW%8(j{rB8kK+MECL>e9eVf4Wo8YjXIf45>f*+XvU|-Mi+2z0!g;bLU;N=c@kF ziOnSwjVDTT8H(H?T71u*H&@>C<{q?NFWT-Iv|Snr%ri*0`HPM2f3XNFzR=p;W7i8$ zMb}qLXA2ibE)l*NS)yJo+#LB<<9CI-BDXfK$v)EXK;zTdXB&Rh=zSv19;Nmti2?HroTc%Vt?O!)KEjt^@}{q-IpO=p#qoHA=05P6rU88el~!$gnC_CE06Z zZrcId5hQ^l&2=h?e+aHkY)BaPBn~8wB&3AWQ~{BBL4E~iC-Nvj1)xI20_VkI!-3>~ zZDofyY(y6k%fk__mK#XWJ15sey!-ju5iP5u_Jasf`CzbF0S{r&Wk$e5&%Q#oaw*4? zOAyciq<6=`7fS<7`ssl?_CEOFUV4bHub~z^2A-eZqU_7fe*lJFI8mB<&z?Q^-1Fv} zm`&GVHa%au4%R-P$v3-LgLS%XiSGvA?Y{d>kNV9#qSNe&-R0;l8rUYTN3f%5)^bor zQY-7V>A5qx&PuA@?vfpLw29H|WLOZ}<*{X|i$cB0*6G1yh**q5vZ&2%K7xgb04ykgDFyPW7T=l^~MHHWSeDc&=6u-^oPZyLi5AR^tP&*A= zNm2Y8oRBFk*n8j1g%LkcmULwHx>A8R4kUQQ7pbw(e3@CVAN{`z{;uQq6aU+PsPNIm|cosll&Y1%ePNh(xg_iI(z(W)vG%`?ZU)8j;ykU*7a zJ~v&g4X7H;l0nRe+MJ$R2ChVxSu$m9s{Mj;-iA;+zJ?1HTx0dbvm#uUGbgBxIV%Q5 zbEM0_lU-%~exCP2dYJ=p?PDhTl2z6I>QF}@e<2j3V-svl5*yz{oCZ6?2?6zJr;Lk@ zhc6Q;j&DzlP6+Y@FL$NMvC?IFDcZyz_i-w%zo{q}Y*jCw_)rKzj%gBxZHEjx+u^=c za6I)1{f|eh%ZT~8RcOZ?Yem>ml(A{288?i|xuT5CB${F;$(U3p$$&tr=yPyq=tY~! zf3c8hqkjq768VyIJV>Gr{x$JC^h`F9K?ZUCp{v)TU*bBFD5PMQDKD@m-KIcImYhXY5_IUaF6wr>=}gg39=s z_ObPC<8xJRe>i>fH!go_VM=yI;y*zre-1PznmTWsbY?!EEG!y-#d3-|?}fKjL>*Lv z@Vb^c7G+K>btpbz>$kmZ`>pMe&G;?Xt*+IsAGuz&|ITg-S!j)v^{DW@N()#F2D1fK zYqB+fRUN!O*{C>bx3I@GZ@ievn2U@FCWornG=>!}Pg6MB9n61Caw5on89 zp3YVPZ-nlyUSOc7s4A3(O1>o+fVVs@)n1~ zYDu~EM5;Y{W;u~sqtf$`2xXZm$xKE~rfOKwEhp8YP-6>)i_mCrTdYM0;>aimLB>xA zp*-Pn&06d6CM|m)zC!?eZY02t8%b$r&UwX%DHnG0?--Q0qxf3Fdeo*V|F z`~0*vfZyOv2tJdn-+6r)`pZW6B`kPx82<1*?H^ZkqjJWBMuG!a$ao!kroxS8m{ZPk|sSS#l4ev!8qyh0Z zuVd?c&-$gLEoo0WlFp91tDa862-3tFnSUOB@HtqO-!bFT*M4;64ub5OPygi7wI^25cc$fMUvE4 z43*P@fE8@8j404fCfLdVXVg=)NkyC0lr93+T%y_iVlnUS^gid6f4tk+62Z@`8q~g7 zlds3O77&iX_Y!*!eWseJI&_J^bJ+)+LxN_n)X7ts{J*4+j4Xy90Y8p>n$Gp=&TgGQ zLK(|JP>*v*hF%dj{GjyIdF0)&B5m(rg=*HwwQAXT%81OAoYa)OIZxFA0y?IaY(H_r za35MSCpBnK=7Ke$e_N$zf=?ouwKcdYWD!JTP(C>qLLw^n)3f0?#(I5m?e}eU)+mzdK&jz;#Up2le zzZd+7eH8kKcr5sjkXNrE0vV}NM5HrF)@uz*GfV)BM9WA==x8lSB+}AMZ$>0a2^j8c zIG-d{=98?~YA@t;FQAkOBuS-Dt?W5YEx`q5wXWfnrl~TuWWDB%#qyk2k^-+}HRqL_ zI9+S0@JdjNe^lm`B!}=yl0$eU$uh5G2QZHiy9T}K0B(N(KziCBoC}W0xdvNJQH>On z{-V=Vbg0Rs)9EnvAk+7A1-X2TQVl+d7K>w}M6dzCtQ58R&=lFu zox=#}-6-ok*_}HIKJ|Py zH&IaVH^2!f-4y~#{Za5y4s{D*9daZuhkLUiH=8^;Ov(-oyGk`nQcZq!o*{ZdtUxmd53Ww7GnB-z8h_ zUP9>f2jukTm{^4}han^MQc)f_Eb@$XWt1+2yz@{*i~#R7K%l!LLaFCf24Dcv9N_TZc27Ng!*Rm z=qS-hR5b`HiGU?jKqYy|ZR|nU0D%P0_oW}I!3unMo%&GC9Cs{Vh7pV)k=SezTb-$B zfBIk>Gh>WEKz@iLd}wfu67q%1jFN7mj^IIgL|Vb*P~_t8bp^xiy#VxpxzqluK#Fi1+V;ccEc zF+t*Rcs;4XcR~K_+q;NXqEG$(-mueMe`p0mWFz))bCE;Wb3kRr$w4eZVaM{ZK&9}i zgWBmh@Y;f*4lkz6j;;w1O<=U?8UwuqMw_lN&`V&n>7tTzq?_HHsx6l6D7dj{k(Fo% z)*T8EE#)vtpx{^WJyx>V)#s53`QD{DagZL5jY^wx3{W1$e5ZTl~p!FyECvWnO(AbOfP4DXa!g z^B_i53wsgHgb?#)}@UKX1^}gia zmU=bycFKhb)YszkwqS*Ba!BG%XMWI`iKgPcSQc_kDh^aFno1LgW&NhcCLSAx$|ROl zeT(0!7XccLYxEL8E5skcxW$wcY66Kh&n2Kz5q}FYS=MV;*3{%Vl_do#e~Z5b0`Oex z!|U@UX>}li?xd`=dmk^&37njBl#E(#9 zT9{!3fzV@28kZUm7>^iDMy0iG8za9*UoftF880}mfDA*NpR!m#EgVFdR-#?~FA3L? z9?u9MA-081$uZl8QxreIa6{Q=M zc*Ge9at_ooHjACj9bqt}JaXf};qQ{EE^+EVGs8CfunY)ypQek?>s<()>m*`Cp47*v zQT_zIDJ1+^v$+T&W)_!CdoyeKwoY3Q;dM%|yN8x$4_{lx3kaf{R<3s@ zApkuRp~6?9A0fDdsndmQMV$3FeCR{Utlx&oI9u7%3 z^09(lH}<@2m~I-NO3Eo>nOjQv>C0l5iw4_}vO(D}e*73B>Fam|B40CK&Bi2-Zt;aC zHYaS(h%&wH)QPQC!C+Nk!u98dBTj3wWkQa9o=uJFD6JWLno+VkV76K&U(6PbnQD-N zvOg#prjB8Ye=hiT*ynTDB;)C0N)L8U1G9(NEcf7EIR$kq`co?iH3BOL8M8%km03K% z-YKw06G>$)2malldaD~nf7r18%iHMY8*hNArJj3_m@teNug0fFG>16@d3?7)am~1e z&_$3;unZS{TxIO=F=j9v=Y<3k1soz()`aLmS*1Slf1vakzN1y}3zIbP{iCP>ax$~` z1f=L3bN%*fY=8Cd3%~{bD?;|a_RF9Xg3m&WsnP1uw455G@~MeXtcHKL8^m25SFAaC z)VFV)HI90#JFt%hV~XL!(pe!#Af97?C?DXP{9Zh0z%%@tbZVeIF@uY~gzXypU%fwb z;2+oAe*xhd_E+=I#C`Z0udUO+#!;$Ap;fGhevQ@&ZwB0bLY*KV#8$pr`h7Sah+D;Z z@0Q+EV!^l#UnHH2%gzvcu6!WiPo#|?fJJjIc8s44-OR^{1X`L=FbQVCf^Td?R*qIp za|v#+gS>(dcT+~?LJ;;Pj5_Ct5JgQ|4AtZbe<3NTLJHZ246;R8RGQ{M{jL-0fi#VR zI$<73xMr-p+KT$#Hes|dMraqt3W(2z@mTMw1M81y!USQWFiDs!Oc74Sl2WG$rwdbs zGlXfvnGngCA)F3NkV_m!TsHGzMBoM@vygmqG9bAD1Z_3oe&X;t2eg`x*-^23kl*OHoFb zpYaCBm-ZVAIG2Cq2r7S6)w%yU=Pt8kCbMKROSZYmBr^$KqNPiL@*)&0?nW) zVF`i@1PP+FLbM_fP=mI(R-#p)V&!H6n6Q+nPrLe{`f9bWt$7uTTJxkWVyk54|2ubr zO6&jqmm9wOo#p$TINEZ=^y6om99YlYWLtuaZw(QnUB^ggECd9C4 zMaT6wC*v902$6ns{Y|&8NXB!YCM5m3mF-KGC*$NI_@tFcNXBUdJb&fQowp_9N*j3d zO>35o<>&JB;+vP;Hda6R9pcLBB{#Q&pJx)spRbHj$7Kt&&p!KXqdi#@&$;xZ_ceFbT7~Dx zK@cj&TLJZgplIQ_euK4K9RPQ_bRKhu%Lfxf!gH}H6ZL=elJAyx9TyIe#bhFq55yMm zhKL0_IBACIMoXw?t;O%`7L4|G(f@B^T1c-ui; zpo5@OAc=ph!FvxV0TK{;3VBZvCOjoP8MFKCwPxW7vKhpLM~RJ6;z#KZ_uF;dJkoDV zD_3jn!uLoMh!IVgO@=@W#qI)Z7hw=@jFn8#RoK{XPA#`Xeg_)80}a`MDtqy!dR#?_ z%kSt(mCH>L3QZHw8{%TEYf1OstFstZyczwLxz#u%IRo;3HHtmQqm7NHs4Y=&C= zXd{1xmib#1R>x3KtwX36vWOdbHwxKs3ct`G)9`B1G%n1)&8fR zW2Cy#sBZ3eqs5b;1j%1jQto?Ns*e- zZ%XAY^TwQMx|p}$l3HGKLRd%UfEc>m+3)d|uQ?`+)4NjK@6F_Zju_1Kgy2aI4N7wJ zAvqyrK@nUr*+Nb%-LKX95$A^NCzSo1o#sknZ?IqU;bx~0=lmCA{IxOu?@68*VyAzT zPQhO1e7H7?y@$dUv)_|F2r+hyy-dnbz;D?AAAR;V8zeR0Zy~-Md=Pvh_|aJIPyGXI zpdSove=KHo^UkuDW8u=VfWKfY;K>{dINjy71?(mEBFRD#zX8t&e~}H5Jn)m?UhpB- zNq!1`m{pLe;D^Tezp>-o#Muk%2$_Ej-XBZlP0(Tn&JM<8&Yq8vWUQ&wf1Ewf4v-9p z{wNmAK<57bV7}jW4CPVw4C{<#`<=CB_9Shg=ONTf-r}4%*;BDfUPw>uxZ)pVJ*-Fd zR;mSRiMm%PD<~@|+bbvqN{Ldb>{V**>^@8&dl>we?ZCT|C=AvEQb9dzdrW_<)M`i3 zC*Chcy72DRLv46>=pll)T@Ufxb9$(TZ6R|&3}tKrZ3cCL?j$1K8$sU!eH(O#p3;fX zde8>UCLKU@0MP+NhmPm~q63HyAUbpeuek$=4js`3L>mxoK(y(IHXz!7Xak~6NAUKx z0nw%-nt*5mq6vs59nl0t6A%kcKs4!yCLo%CXwsJsmXq6~;K9Z?2E84zVa zl<9~vAj*I!)0aP(2^fFuK-ht>17X(@b|CCP*nzO?2s;pVAnZC~7>HpYhJhH?5yLG3q&svy*i>7h+ZIibwm#kJwWsT(W4`Jfan3D2Z$aW(E~&e5Is8L|9NQGowUV> zwU%|!BAst0AL)D(c}wSakUpJ%o9xy3x5!;O-$*KTzJUaFj-l3hC-EC;%wK7%bz=&c z16mAP1KI;R2s#Ne=%G`82)zSJunIL#v>E0Y_81NtP8y_xhG7G<$#djA@;>WyHYt-xP|MO4R#^6@x&Y8*W|jvgFG z?;l5NP3%f4>NA}}Dj5_&TU1MMn*S|OWiT`iGt+%XKJxfu!Absq0eU>iiqtToAA$Nn zdqH=BDnaF-5>Nri52_4~1FS{O8!PfScnFjWQb3i&?Z!6I=`gB;%u4t6zhWgOUQehH zxMQ(U8Q4H9GzaX3SZJxg)z9_<0Vf(xYi%5HFJ5a4}D`?)InMP4A};k(P^|BQ;im**=RJ%M$yQO#ONAG469*&PH@TkaX}V&MAXA} zoLMOBn7;|5Mn|nO~c|2Y0sEb1Ej4lRiPK6i=aRxEtbfR!E%qP>i7{(|m7X%z~xtu}HY$ZWm zE@-xY>T)9Ga(!uv;UXUpue~YK?VvVo$E_>9TGvuV>D#n_o@XeU5NunzY$fMQ+O_q8_Bw4-pib$V zpyU22`(>UzAyC&xUaoI$>3dmiuZvAkC)5X))J6Mis#|I=t84ogb+uG~O+~*Hz2ws!?n7y6RVPyKidgGm`1i85md2`&o(^Hr$q(8=da9cTD4d z20b`6*Sjh6s7UC3k`j(;mcVq)3gTHMwI#JY3x3A4Qju&M%kplTnwxo)?jOstBiRv{ zPA&}u;rK?aVs4|BJAY9NHx*5V3cha4*6~Nr_LBNlb@+#Pr%s*gIxm&TIpLE3`gDHX zvwr>hb)9&v53eJnQ5!eEQJXXuEio8>P*q!96lvoxr3r$b)@L%+4nz<0_BG zGIGmNLw_ZpoEIdy>L@{=r=X{#r?R)8x1_gHM(&ZlNc8XJOKGfhuRuD(>nlRzAnjs$@O$Zzf>&xs6XrU;<>(c4dcy&P&&`WcqD6I z&tv>a26Qa+tb>pWsbow~;;%0s#Bfz~lw|3&k7S8KoUusa%q5DiN}S<&oU;!xlj8=7 z)7TRu&ynBILaLB{`Wf+%zf&K7oj_*6IzPpE;vg9%-^1~~ne3)cl8@8q0y2w=kO`BW z^s&UPi4VvXcW>=b*Xw@inB$u4q?%86x( zRoEfrk!}`FyqS211WAc$rkc3^$D*c^gZ%4iBk(}6=p~$QPV84 zkgO&fNH=+w{G2*zlk}E!F7d6zSy*8jDMXuAkq>AEoz0#REs1G~-;!&|Ao(f!%m0SN zYsG!iwegz7_Y*JS^!);VHPhqtMX6l6Z}iT@lZoeXUl}A5ppk1(&re`3w0g z+nm@;W|H}+`4yT?6&i%b-()_viER?zAmh>7REP<|P0qBqbr^db6v zI?Oco5&Kj$ir*1G7e}RFd^rAj;+n)KICE!^tI0;P8M^%e=_iNCzms3%R`PG;0=3i0 zbR~U~YIK->#7r!Y&0!sEH%`w#60Q+;2``Ej;&kyw@ip2H(YlRt9%LHSeZBKl3#vW{+}-=#mIuh3u7 z57A5PIPjOprm{NJx`y2XJ>A6~WZy;Yr}#|=E-8M`{>(lRBq2|jB&-#l6f|K#I4%51 zw2MJ;yf{IeBQ6pX7@2bEN@>2dUpgSYB%PD1<>hjR{J!CTF2mi%UyhC&{X?9@SH`t? zKWx_sOWFucJV9^?2wfZ_KZi#D9W5Rv=P?QyG?#|Z?kd_q8|iHN4SF4Ir+3k<^a1)X zeT+UupGObS2WCLq!>pFgXG>T+yPIug_u?+&5If3##@@t*$_QHS5duP3m>|p&775o1 ztI>x}T;<(=4bAQno)u0BZwP0F_k|IRnn%nL*NYp)N5p;NA@Ntz)zZ!QdrCSf4N1R} zE=m_=CTGZ5a;bcSykGvKK{iY>G#R!V{=@J$V+YNm_AGOWo9PIW zvvKOMq326|z}o0yc)?Fp1IM zv0?FLb_Mx0ZKFPMpRii`Im;ynFdOx-5vuN8i_8UE*dF(oPx*2l` zE+0t~S%k~8J230*N@$746W>YPo>)VE0qkdgw3vQId*KlSKvd)2>!h-=O`ZU4-%TEaMgI}jY(@{3kzbJy$*0ta zvGI{&5qwOu^CKeS=kQp?Cbiii|F^^9l>&ZHlau>AsIQ;npeB&JEiR;LZaeu~t zs0Te-hWd>trxAKyOxBUT7{Tw*exxkNtUZqW8U0SBlW{#zOjMM#8?)9B+Vnf}CulpN zx2qWQLLFU*vOXo>Aj?t1B+^9tFak$N6=v2t;g`^NKDCqSG><+FTpK(z6_?*t(z}$A z;`lX*$!wKy0&7eH>AhIJGRYNmEm~oJLqA4II-Nr*;`7jkH>eZ4i_?U5Z(Sg&Xd`-f zwjS=$!&ZcIa{*B5y({Y!jkYQETEnd?yX)KPN{VS;ig`w0M!UJBnDm)b5KKWx^8`Bj zsAn401I$xDrH>J#6YG ztc#EtdNrCnLo?{rD66o$)yNK|uXw0?=YX9oZ3|nL2bM3nu0<1;pp1IW5k|drnrGt~ z@0U>&j(zghujXb7-Sys83K#C~-l}Lrb6dWG&CKN`M58DJSXR)`*4==As&`_f8u^h* zV_Tvv8r^~_aabtOdzI{8@+4Exc7vjs0@DL4yKiX2&}4LLWZvz$v5X9LFfmLr>Xq*1 zmO!pnlNpFEsmtnfk?wi7_xn`EcX>`pai86hRBT_WZ7g81el^ezr6=?BkS@+cjq|?H zEahzs%))+LQ$Xqf>F6TWqyl?D z>HdVk0s48#j)dh+ziC6m6WQ$16&TZyjKh z0v&eTjZDHpkTgNJOQKUsq5j-lKEOK$RI(Hit!r*eGOm!NnK7b&mg2m`+IS8IFqxCS zfai2w%J~A`7Jwxm;`bILT{8y1_-C`b)9P1F(Wv`>$Zk*OH_i_<;&h|bcejmMZDaFg zv1C41DD;NBv5=NFqeaMMNaG=vDd@Q{%Ig+=A%aMYMH36~Pv(t=cL*>_J%K6>n!Rmi z@*Oqj=8n0{zhVY|492g31`_8uN@rif#(JSm36Hfi*=lX-W%0{eXXzFin=#|C#^y!c z-R8^k8Zei2cQ*u-hVHiRB?F1Br2)kr=pJPI*uL(Lddxz}0Ubyj-I1v^?2Mu-E9n%N zEhE$W0(9HlK9z36@pTYaOv<+AmKdXKM%(mgUq13$1{F+yxq2%5B9+T1JVqKR3_Zq- zdRFG3N=TP3E9wb)d>O8n^t7Z9(kNLrz>;ZpT`n4pmSDq=o2@GBW~#_~(1UUnSqi>W zT1c*v7A6wnIx-8i08}f!OCI1doDA7y6XLr-^FTZB(Q+$$7Ppb_l6wh3q1@yMP69Gk z6+#r81d=I#dh%s2ez7K8mhyiS!Q}vvzD5xH7CeTp$syR=Ui$F?&rU(>_+!QDXv1$0 z90)r>X*hlHXA=HalY4QB=wwd|wc5(~U<>lTFW>reM)w4&d zNe#mGi+D{a%XQ>B3h=@WB)O;vLl;$vd`=W`h--Fze2_jv`R=vmu*sMrn+*drN6nNU zr;}66=38jckZ;4KsDkg9BJo+SzttN?6|J++jE<0+*(2visiTTGs;VZGrRAo(WZ4j! zG^sLwu#@`6tzT5RU?$r}eLvfHZ->&EwG=X6P!VwZ$H zDHDj132(znHS7_EA#4^IH;>bZiDb1n;ZnzM88gHh*dT3PdkZdD_;Bu|h0@W_8qkib z5`Pl^iqR~lr`0P49Rt}%3STW24QYmSPnsv)8*Z1{3p?f8teu5#Tiy&UTf6i2n)g}v=cSpH6CeoOd_(^J)|>zLoPkv!;sBQtv%^l^HO zzZ*-d%7c2qkovQjlgCc0HfNPpaaNgivhlR{)l>`8tW{<&r?jds@5K;`_Q`BUbBmfj z#XQAYkyimd&a%$PYY6N$|1i%?TBF>G*V5Ls0=FC1S`i6`^uLP8q%Td`Ag8-LZqbdc zJuF=zS5YNn&(`~QU2%1PWbnV+wr>9ThqxN>7~*fG-EqgAvr3C6Q|;9Hoe6R>{$c!0 z`unV1+iss5nU(1rKXu{l&v(4M;;%oqu3c7ZGGu%c7e;T3Z%fjx>~`@s=^?tCJt97TEbTEG1(G6{8n0(7 z#Wv#xYVZ-aTttHMEOMp%4a~{{V+y|Rpc+{aMMaWbk|YZQY^jFDP#i&wxgVSlp{@8ia28g9bM=~{KA zA;Xv@WxF%3%AA=stKdKF?>J18d=0*D1XuX358e}e!1rK(#@>v<%%5cZG}9u>)^xY* zbBE-j^r&wGyNB(S56iF0mXndU?JPULe1fCcny-e(NAlIYLcDz0ku~`j^I3jFHus;h zR9obVY)Z22*;@8Lvc>G|VmgtiNagDUBMWlXEJsbQnrX+&n-R&yZS`T%V6mEu`4omc zog-W4kSK`9 z)0)O+`pron=2y1VU0pxXp2Ge({?YG7x4#e{*tzBEtV*A;p&_<-yAQc4%b*tf2m-d;DnT}ZpGK@wS zoyo408_aWZ_FIq0M>2k5{;B0n^IMj`8$PvKvus)EDy$}5O?5j?OSYUE zou_)h*}ba8mg;OuZA)dTUMF9Tj`%WvBXpvZZ*uyxm59#sijq8BlH}ejovSvuST9B! zn^#5_JDu>Felf-A<=&H@Vj#J+G(D-*(wxOPYjXDFh&i@gqiVH9jK1tK4+$rCJ5cg@ z%v2-%Yn02Y7P@M@YK{#rxTTl-FU&q1tr^u9D<>KU2`6tPgmex$&SRHE&%>X8_@e^| zGMrVsGcgZmTEEFWO^?>**65#sqGz~Qwd&QUs?bs@uQZicpQ=Jx`lq5OwqD^dwk6fn zF;U;5V5X#e$dypAf{!^7a`j~_jc>pVvWI;}y^}sT82|H@Rn+yy2zAP%s&Lnm>5D?b zZ40lfuBLQe>7!2`-t~K|_~H0}PvR%;*fEpdv~lx{8ThnE@ePKEQLIO95>vxA>c_SB zL^jbrolbZBf&PP<43b;QXDyDE4vA8h=5jdG1Q(+=J_6Z-!DKeO(#`leNs2jWG^t8{ zN5V|lH!{Sm?%~zL^sw#&^pO%dJ?hRX02j-+4mW~}PIoa{E z%G@g&R!@wdm5z?Sw`XR@w);nSu?hPYRn%?2XY?a<8b+n>{q=pPfovEgCbX=^VXje4 zO(xc5(o939)25G2lHb&SX4-7(MS>*A1{`_>8=fRz|VN^Ou6|H z(Ptd%m)d#||@NyWdT? z`+pcSLx@ftBt<~CqApmUC0%w~B0|I%@kRo5tln7ftqWKbp|ohesjaB1Xiw48@;<{} z%VGJjMJqa8G+dNQib{)`ka4o;og%qN&B%(>Al{{CN`_p~kdf_%5yi{~zFMj|qQUNP zgfg?Tf*~{1X|o4^oep(TMVo`JfpP{|gKEpj3}$B`ZA}(!%c5CGJ5&%1hUfq-iV+e* zZ~JYg8qU>8Xm<#rA+;7%4ayHiLh6(&BBh~Ip?5-pE#wb%g#;2(LS>;uNDTQ3-%T1} z@>IYbyLz^L#6DVm0e+4{>xH$goLw?UeZwX|!s#~EvQY*BH;-H(i3gnjJd9*i+_lRc`}kmgBSWL#+!@id)d zd>Fynx0^P$Z8o-T+eu^F#x{1+xUp@Ujcwbu`R1JSyubgK*?V_C@9fMq*Ih>(nba|% zVfNY$&<(e?alw|TEyu+P8Q`-Vk+-%P%7+VmxLsJvL1`(q_z=5*4Tkf8M8-28uhkpCaz5*PO>yQE#_1C`*_ZneWC63Tcqx2l z@NBRvoCGpkwG2pgF~6@ks&P?w*)?1;fB3&E`7S?|ifY-d(QVqG>T6f`q9UlrO0zVV z!eZH^;HA(ovnKy)l&R_$gg6b^z@r(durjMJE>wL$n?Soz)s1Zwd)DNn-RWD3cg6sE z95^+y>6eGsr`s>42S0^KuCsjZ1m0$COV4yWUc5H7J3QG(S0(o^p5*yHq~G@2P+qf^ zy1E{(-(Nidw>~>$0wLi1Y2u@p%hz#bjO8E_QgxxUUcxkkVU&xyg6@_er7-A5$Z4)+ zs$&XgyjA~6oZQ!n-0VtM5**_)ksBZb+oa-Y8HkL=P2K$|CEEaY?s~yyDFtyXB-?qG zy5|bY{$rlO<2A+VZ1}=(rGK;F8J)MW@{jso^_)rS_Oe>z4GY_g_Q|C1qm`S%IW}7OpTgcOzC<6c|NN&B0(*duADfq( zk8}8#duqQ}RZo02tI+vK6_u$n=qvs#NDGzJk-3;yhA6Y7S)+Fat=mazXhfMr2Wf&Y zfj124|Mr2AVZ%UqDbgyrWu?}ziBRAiQ@ zvo{J#%Wp7>o*aJ`DzkgQ+Sv!J6viP7gQ>hRa=nEkv%1}{Q2s)H)L}Y38y|rjWXuH) zW^=a%JUB*VIvD9_-{Gk1GP>xNV0s@7w1&$MEb`%e!n_>Gw@r9^mw#rIfOyF>g`wdtEZo#qk3SwaNle*930Gqc8w6Bg5rpzgyQr#%n?DRBJ4L_dXwg|?=jb`6On;3aJ zZw_-hrSOi)#P;1iesVoJ)O~vO_SSTbA5@)W$6e%hmG+l>7@jX*@!KTlnqUg(L~sbD zv^A7-YZ)Ww97mIpr|>pcUVnKzD1>5n`9!!)gEG6S2^*J~#3})^ueA^ z+80u_d))Q}otfB|&n4sC6`D;)!c^J$yjbs_59i0)O>pneHLLH^CNE4o94_r&=QvL% zr-*2-uK3<11BdM5asbaF61uIA1;5MEeq-d$sD4YCwdaZbWM479s(^nBIJ51)|(xeKjS}dN=OpV{^Qy*#O{>$mXbF%y&r^m>^ zz|4}I9Snw^TuuT_2`()xB>DBz{9i(knHPpT`7bP#ZSwFRDA;5ST5ytN0&xhKWQ1Kv z+++<|Y<3cz@)%r`u)yrwgonKH$v@R*S! z9FWG3eMw#djfEgZ9KTDVk{}aK!KQNY80PRnB6>Fn)oT$xL0V3$QBPAT)$AMlr$YWR z?0B%rxnEdWWNq3J?QksU;M0O(e(ahAO=x`d?YeyRp(yWoFnWK~^*V3J68;<*@7T)* ziIdRt0oF(OnD}il&&gMfN_!;+uHHHc zh!SR3=fzb;S74ukj#2Bmk0*BzQ^|$R%%0rs+efDl|EgMES(0 zl!$QbciDHtu=RSTQlAY`%TnDsx@J#<1_PeARY&=r_r^5YHKhrynD<3N>`&JE_E|P% zv%GJHX>FOsQPV%yNOXSC${k~IeG~cz$vVXV8Jv`frJB+3g6VGBIK11ky>h)5cqapR zyJn>5-3y#|8(8q`h`J1I5a^NDKE|9>2zh^+ucxC{Wg6Txv#OSxF1~2rd@BQYaFp#w z_uGW|!dake1#;f+z<)x;<@?O+Uc2&B`68pWXw?=_OpD@eGb$jH3cgZICsQ21m*8S) z`B=>zAdUm0BKy*t-$#O`;IO~peZvEOP}bvb<9|I%^uRHKPeI2^$BXXvx=!nQthfTb zGs8aAkNK?lDx7CK%ce)*Vlsb1YkO=p2eo4?0b}vKPw||t+Z8FqUA)~g*rGRD(aW;} z=Y~7yPVQ$diYz>dv8k50%+Mw7_z2nvKz1?0;Gh@2D54ar*woaBqShStcMhP|kq5bv z*6uFys{*G7)g!AQDk>@BJ8@iu&+ae{WtZkuiQYk{Ot$RNF5nqq?`IpFRX(?lPF9`E z9lRy0qTGo~NA)XKRoZRvJ^z!RHn7QODUI@C6Vv8o86)8)MP(vv`RxnfI}J4+#9STE zbdFj{ZxE)1FM(M<^VfWviUoQ`i02AUcZ-Y3ge~Kte`1&{N(3eR*r1bTepa3_nv1?; z7Y_jY2os)pCqLm+q)g39bF65|o48vEL;u>%F9>!<0N=u|yUv;3D%Y}vk}^^Gu~U7m z*4IdUkOYo|(^m{wY*9Cox(#VlP9`Ouc*bruj7qE$*^>n$5 z?VxX>e1iR3;yoQ-U}Bap-vFtYDyqr{#O?xo#}b^ z8eDN$;jQ|B;856G;*ssBz%#K^y_B+|q;#3uqChKgA^Ut@YwZo6hR}=SfPOQq+K&bP z6683WsFQ?_9l)eDo2Hnim-_)3GOht@kcCAOXv<74C7)Jf>PtcU-C?c9Rjpuo&LZ&+5hlVYckgv~&75IF#m&unohn!*(VP zKtLH8hIBXalxp^UHgEQi>^#ExNIc;)IEA>y)Baj%o%{<$gko{k{oh#smCNcZJ z_lre2^;7EYfeNxL?r|4XX_$2w+`J0NO$Y-N!6oZ~R1eT|vFeG1UHV=U&jHHwcWBpg zf4mBP2&$zHwDSG|dehpL8H>4YgKrBJ-2P7QRRP%kIV~C~7akY9G5q-H#{@x1d9dtR#~hV%$$1H^y8Ewk5trK2!2m%nhh)pq33 za}SfRKqZ2>{lqT?!HEb#_v0l%sJLlbT5>`~E+T%QA)oiX`r+^ig$hvgXNJ8Z5H-+W z#QeVR6Q1p<3=Pq}ZsJ&Gx*7ex!rGr~*e&WQxz>ei7_s}|SZ&XPiaLX4UW{6>&!L$0 zO?*ux8OYay?t6D4)WLmZhqj;&>g#5PQB66a42`H~fezXrFk5Guoqa2Mdwkst===ov z*URf$5jCtoC^fj`xPHO^>;7k;_S-dj+n>P?2Bv8 z)l~Fheab6jS!4}pV;gup)%*YfqPn_H0)hBXK}XLr2eEQ8`VlwiBh)ig`_DjjVy~ z5aO+XFHtYPo#V6=pj9g>39@WtojqwR)W%b5o40JxFrjXWWA&opED7o7C0aGq#h|GL zB!*1aqPSrK2qOM))H${$MADQ5xY1+`az%#C&(%mV^J!sY8a?z=!;&$?V5Q*AO|wq^ zMZ3UMj+c%Mwhzg1)t%<;UE)>T!}fl~%&WX$OhVOkJHSb~Rg`es$l#ZYe73_!M6~CJssvD3TBiV1_KHC6|4WJ zj+@ea1ngW+S*TZ&TdqHM~d^f5Ej6{fznxIZKz+LT7qAH#JJU|gkq zt$gS*L;~%5C`0<=SoqtR^;q$TO1`sH{ztn+$8u7_%wV|~Xfb))S-OlXmN6ge-lulC zo9^GJiKX`ag2oL2ZJMbCm~bp^JB?FTa5amSp``I#0p@&t>-m!g|Ee=qHV9AcC|W-? z8{^=x*R-8vk?Tl-Q^=0Fg?Zi^AZ}w7J1b|>9H!hlDw>VmrRmqyLiDYT3;TOOW2%VB zdTxa&$|Ji?L+Fm_v|5CDnP~ldIeVH-Lj{WO<}$BgfyeYSrh1RKM=Bm4?kIiu#Hh>T zI2t@JU(rw-*(X@a5}y=|IGnhC<~C?pZfQ~}x?-RQdH781c`DV7ZHjUN@cDg}U3E{) zRZJg00|yfM2|mx)Aw;p>S+vO>O*jPVWBRWRa+c;Q;2hyY0l!%d%LBzmWG5lJh zp;I%zFFE|L#?mq<5r$GpLJFC`Jb(U`%H4Ogzjvr;LxO8HKRtGE$ri}uLz#M>+cbu+ z{YlMFB4(NIsMQ8ouuZc5gnW#7TZ7a7cJqyV?E~SG*86wg8R1$dL)ByBj76)@WZdhF z;l<%0e1q2-dXYC64@}mr#>?lu>Avv2V`0BhyN-dk;@*rFCvU`V+_9M75+u?=ih5Cbhk9w~t zff{*y*p9p_WcBfOYy!RxBT;KVv#yDZK-%|fwL>r!B;r@JtJ<{sk?0H3d+bMF6M54N zSv@Lk*BErl0N`K!WVJTfbVWN;#)8*z?$?-Rfq;ctgmHw3=V#+99e;;DYWjSp)EItl z2<*Uj1{1{NC&5d75;H%qR=fR{GRX7wjLXc+nxS@%q%7_VcB!SWy+0FtkYyW&`@sLy zXdKat{iMoL^$#2F(~D20;P1=eMzD)*no?VO&}NZ>0FKS>q}!!FFns#ftkJbc@r}UK zj4vH<=no>?2{xlvZ{6}o3v^~896NaAJH>oOKca3_O^RBTWYd?^n)$CY`X=KizuXs_ zlH%`zJX_^?t6OODGm4&Q4WFsL@&MvTz{_DZ+S#qS3CijOzW$~GeO*?a+q85#$Cdin z;gwoF(3)u%m|=VPcndN0!gxL7Cmz0e`?*CR6|O=vp1>v%BN@y>j+gwQ<2own(aIyN zOIr0O9y3L2-_WF_R(`q4Tb|R#qPD!|PIE)ePW`g_~*WS%GcHp z6NifVUENRg!btPNY|bM|ppSZ^fdnIXDYh^Ha4iWvaJrJ6nl#nfobf#%di~{{=#0S6 zM)(zUVX)Dge3RIoyxG%q-FBVi@TaRA=+pZbFhXg55&K<9BbA8ukD7$K#9|)8yZcDn zkEC@nURu0(-9$MlJLw_@OMH*icFj)FkJh&YZ-tK*#}r4r4}A4#DwL7QMCK7Jn5I2V z0Geh#iC*hL^CMepF2%B_Rrnp_zN_4){I{xr6I>_ovCB8sWASE@No!|P^hYODI|POo z!3a0WQ0)zaRT?T%y7gy>E$14A8C0`qG8``G>oQTP8U3spOtL*g0tMxS?;yo~@{{PD zG`bPrGv%@8{$P9PgAptCPRKJ6TMYaSK;D_oPmJUR)3&31^_X@9;tIDa^14jPmbN~E zy`=Vnkx5N!;-;W{<3PuZqunis!jiqZ$9ngCtMe3sv=F-Z?1mgOBKJJ1ku_k>E_R3I z8Q_z~XCQUMTW*W2mY1kua^c^#DQP%=+QYLN{(STg+Oc9E6VDjEJ%?T6V5DgZuy}## z$ZP)=lNvIAXKa}9R{UmKOQacu6|5=t%5b?b)Bl&zu17kWkXA|EuyC~|Y3n+c%K{94 z(zd^}iQ0mcK+>1Y!^x5N9dt=vgX}dB&PXg0WIE8Tioh`GE%m&Qr~Qe*_44y?iiR-C z9o=oMl3K*G{TGaZrIe`#PxYA(v>T>?SZxX-{LB0NX4jYpQFeTIN9QwEj)_B{ss#En z;eWC2OdBI5Zq7HF$2YdjRK9y#=vfQZum*q1>;LQx>a@$U5Jr8Rb>%yd@`d$9JyaAI z{c!CJXPefI+)`iq>A0XjUzzzE3KWs4b`+7gf7KInDB@jb(nL3&u)~9=sIWmmMf!a`13O*Q3De z!H*aDU~sMSZVk2hjZSyBOS4}ss*IQCd8>E8 zid24+^YOS7y=5wMn}eD#;FDkJDkgh>S2|)Z>Y@2lLksyQ-OSr8G|bJdx30XcoU58? z@M_|PbN;f8+I;R1vYE;`g8IzhXIf<$HkY$&`z!a!0SvcLF zIUNM6{v7NK8VDmEc+$4pEEy;e+P z>}$EEMM>zVR!pD1|IWoOskhn3&U12b)3)+eRID$Z(Z5xPP{SgX>oQOdJV+bIOnMHs zWXr4gcf63Du_CeG2W;sW*=nJ|a4&!^l(*Ne{!z<~W+Neqbk&BNq@`%jB3I;`7+&Sm zPNj!y^jNeIa<{inGnJva_<&{Wl9)q`%7xeWu<)|3#*^I)iakM8rwZ7_I%iwTFh@=f zQmRug`6#euDyX5i45nqEuXeqPV1$+3$QG2gr3*jYKi(ad1V*f8!P{DYh>AJ+61LVh z=#!>_C$I6G%(89l`;VZ>D-)QhRHmLX+TPsK0i$$BBpLoUVeyCg2%B-eQB*RY2>%{O_z zpBuD42dlv+Kb=~f>Q)ve*fcIamDbXzE;X=^y3fU|aDYfz4;%4Cuo9IPhM#A_wIzRJ zS-Z4H4u?<}GwD+b>_@28(=h~dR}F>=p3IP>j9ew`rI-UO&V#vKC8;7;BEky`$2N@y zR8GwVjD}~wo7Bo1D0eWJh7{e&SlEoU5c>GJMhlkY!BE3r9%(Uhn0IBD<5?|l>3a!S z5k$gO;sVm}<J@F)c}ADe^87RUAvoq{6CmF9Z3jvQ=RBW?y=azT{U*qF!e zEP3ctJSd6w7`1o@ls#;fzkoiq?e3W53bC~eUqGNu5P@>^Sjhv0_RnVi>mQ(tu;EW5 zVFye-D8HQTuKe!&wQMWS=D1J=&*qceGR16D}cz>(}XLD=MaV(;0@<0Gt7<8^?4upo+(?q@E||pwz3vV*v<2 z1=yH1U;z%v5|&FsGpGozfwX%XrM*BAS5-NN8%qg=*P&!bW0<%h(ui|LYs} zw-&1zkG+Wd?la$$muydvV5c#yxeOO|@jp^JS(0N&6gZp&A&#-mb15yEKgdOcSB*WRXq8IkX;4-cV~+=-6yI9c%GS$@RJ?pYe6}4N#QFUUUA(!R+g#X?3dD}9hSj(q`knobiJUweY~^rmwW^j1-YkqmUzau z>i7g}V~*8czn#KBQHQA{crv`nMDmZihg!6!nUMLqxQcje%Ou{NP@K#yne8A+fi<8yBNDJWhs^Q#$!DG!E_xDl6(j@^nvVSNbq`aS{wJ$E0&>>C*B_a&8y{1lLR6^6Qr$rpQUA(OJ1p4(q7?z{bK zY4-^gV9uP^fW7@q^eBEU6U$ZE#)OlhWtz86nmpvCE$>D+xorLj%~bU8Oaw2kY+HFa z);Q_9fU)>58YcZVV)cjD`6gYXGQwJ#CtG!9`OMl{>q-i6AFDs~Ru(gsu30pUPlgGL zT9%YOAFy&(;!m5azW= zOuCU=9f*csIlh*cbEQ8>b&D&SI-;iGA}9Wtx<9M8VD?{d)J|bOaXWLc?+PHp8_Ov= z6vOq1Af`e7*WOwb%&4ZW>zo+Uv275+qwcZbMH*9Ot0O&9#AY3cVZ$-+)Y5jC$8bQS zM9~L`IYaM8_Mg-Iy`rtzvV$xF=h4*}ViS?i(B6}(F5kxxYn56^xXQGzhk&FBRpLtW zEq}Kbja=BrD{=2i|L0rG~Hax53 zrl&T)(p>#&E26%(uBcFoMq`^6|0HT!!9K@g=3!HvlaHa+f?&t2c*fd-y7-UoU~pCy zugYoC=$7dt@jYl+g-o4tdmYP)8Fj#2%~i}aDPcTCdZ|M}$;Q>oH5!i}s%SYtEv*tr z6oFsTm>ID4&}H0e=_iXNx~xuq^pN*@e$_p@UG7=KRowGGvxn!-_~+=Ic|h(2TdfeD zfll&!NnDxI$qZ@rykuYiHpW7(jDezjm`Q)sf(OFNQbdL*LR4h=<6K;gueO-MK}p+N z@%7#%EPhFEbHzz=^TBKKVuv|XOK}ru-7PcQ6fW9!d^8&N0atWTYjH@oo+{`3w^6>z zW#ip#xp>GPnt1*Tj!E-wLQMrZ z)@Px_H>HE=)z3(FGI$afatjsbpQez-)caU6M_6*r;oo$Q+ePX9Ej=Ir=|u(jSFoF( zec_msHB)j0(%=2M;jr%`dQHt}QpOYsi|d{pmmw`EcF01M_2!oP7rup&Mvl~6-D5l6 zwY~xD(hb4D2C{~8S0%d9b1KQOhQpDjB{~$fMyx$nfZDFE(L?(O{8{_Hv`x*8-wp4+ zyhf(dBUfev&nd%5OtO4Zk+KKi;z0o&oz$ghOSyOpO*}4v@HZ%2i?qxmsKq|FSqH7| zR~C8MMP#Icub?1Xc`+>@E*PU20+apOgODIo&YhXd7rcWBa86G#r4 z2h)$;ul&MDa&9l4ONwj_W+uYQ+!pKkefJLrN4Khia{8SX-{fcKGtr&%VP3g1;0@HB z7Pyuy$}2G@v}Tn6c876g$6Lyp_nz4Zy1#{mu?!yj<~zp2I|E?Ay8%a6?d^P~9nH=m>4i(~gz*KuB<^x# zZy4Rb2T0^2N%Lob7%P3!X7c3iY{XFVV#W#{`c6U($RMmWgsB_b-Btp7mv&QylU|00 z%LP}}n5TXBKXiiOz9nTjHn4DM{{llKj91=;Lb3oef@hKlQs27`pRgE+l*ZSW)2@ex z)2hw!h)ctyo<4+)Potdz?zmU{^(MQgSfAHENqd}11-K)iD(&Ie1c7QSX(EYAojMJz zgsYC*$Hr5y(7LGw*B7E|G1mFYbdVUrE%F-Y-chw5Q+myio+NEm&FHjlxUsz=#f#}# zHAR~l!5Dusfq5O(7&%x?e)maU<)3@Ty$MT9-S@RV`~78x{Wn92uf0=R9zk7)UOT>^ zIygd1& zsqS#$ifV{kB;&ehra{bhtf4;2((vG4+)0CF%mGDU1c`mZH+^}=dj7#O*U}a31p=yL zj2etLWz;dX?$MZFD9Ld7$FlJ9V4b`fb;9|?LakNpzO~+l?7zbaP&~08o*WRoxJ74s zedXq}LJrjZiBs=>@|gPx9?I|8X8)jQzGJ!2dG~VBQ2dFdmGgqbhk0Li-58BS(t0{MHK&L*wq%0Lm)H&u9; z>co>w=A?P?$uwxQa2vlmBBz~l-#h%iOzW`?l#rK)X@K!_H+hAhj2ppnX(pUJjHM7$ z>F~V{wOVC%Mn1nur_wKL^muzERlK~-wmsYTaxZh6O&_3Ge^0}G32Q=b{|P!gj*dU} z7CUBd_0_$14GW1|IGd>~0~q_TK7_NtSfzJ$-sKmrFgkr&kU7PX%Q~=`|5>K$JTn&xcm64gUb~wU2+lk0tD;^*-xD{#gbH7|ugp`SZbBTEn0`W7ELzsnemd8|q;|EvWV6X`YvQ8X zxHfQ}8l>~{#ZIpqy5YafQnGb33=}*k6C?Zo*NU+)CD-IYvw~@;3MokZ4_R7o{*sER zW5X0AzqP>7fJ^-E*8ikptzS|xI$RiGKvRRb1xgZ>1W|3)oD{_0SOpTf+a#fx7=*~S zS=w35SYW?!H?A61F)O-`V~c}p;$e(EAdlmKf;sO<`RL=rg*$uV_OWyG(e|-KdGvYF zaiXMEb$;DtJlM5XnO!o!qPevqK2m%gexbwAC>dM62o*6Ux$>la=fs_BSB`iVxU6hG zX;ry6e>S)?I9PDjNMUel@uEYqV@e*B_oVS`Drg z@e@^4TC}y|;ZBkw__t3qoVG=hqDB9fKW;Ddk;!C5A^SA_!K7|aq)6!>5k@4F4Je_V zlLm2cmV}}kk*dC-F%i*@$Vw&yyzFM9R-_lyHI3r&i^d57I$jyc$XJ91evT~`=i4a(C8-j%-GqxGazqN9RN;Sw(UzCs zXSO?E;xN=COe$;KYO*9QqAs|Mjo@f&;dmd&l-LDCl$%v>rM2AKCb76UxHY)gomzL} z?qfTHG>)(L5DN0Mk3q??rby%r`C3@{= zo6<-w%N4jqdruaSl$i~lPk;j%eG5krcfqRg7%DaW7TIhyj%iPt1iz?Jfc0~}0FR*? zKJR+NZ!1Bm6iUiN1$JlZ+O&_2yF!w0HXqRp?EJy?TV1%jcG1^*gC5p@31Z}-KX7`)EeEa<6qcDj%vPc>4?~{H zR3f22x*>vq`{&DNMAd+qO0L82$BzW?*MQ6Z?HZ9>5hFw&y6}sPHs&oy%|kh zCMUW>i}Y6q2kJKy><}tnh)lQ-CW1n!FYJhS>tB1s#y7w(dDi*raPSGZ`VV#_{U)0F zoexnGRcDICvlE1%=Sd&jZ zDvG}+b=eH@B<~TF0s~-DqNF;G!d3GTZcl!+%#@-Pr=EL|=;!PY>h~gL6{l69p69iU ziofjsUYln0abp8XExCV%{|EeJUz^0SK-US~2zhsBE~=mTL)iD+VF4D9|9Zn@!T;kBBTR)&9w&mq z#55!f_xlN+yCi`6LlIVl5wRaU7c=y$nEXxzBMp9%9KF~Mo{WD8gPCkf3}X+Zuxejb z?ypvbkeC)6ndc$&@-6LH&i$ z0@s3Bf#dqd1NLAH8wPi}Ap|AC#64G|tRtyLbK$j~2iSJtfUwM*f*qk* zICjmjx<}%Ir#hLqWz>gN?SXhdTnEVuB;Jz$$uIO0G(0P+&WyNISmHeDX{1|=xFx=u zE^4pyxXhute=i=)c^Xp>G9cp4KhzGY??BuerAH`sE&I=exG?9>j8MFLDEmG*XV>-u zfj)M;85H8q5}_5LmfkBsCPygGi@Z-%3tJ$B56^I%X%^W#uhYvXE4vE_G2F)QQim|9 zHsTDh4l}*Qqw~h?W$l!Rk{#N8pW+{I>CwA7A6`E30(GfL$M8XTCVzHCh1dGygYnWa zZ%(|^CW^QB+JLIpRJF9I>fYP5;TBsp-qgJq7w{H($+T%OEej3QnRb4P>Y-4jM=9=! zcw-!7(;pcITykX{jNZ$tBEY=QpiZ;!v|LqBeM=nBrvL4G>on!r*VOFzhs^5vK>0xT zw%|bP*4e3>r-x@F-9)aTnMO`Jx8Jr#lLoz?Si3ps3&E*Dq9vVxDhYS^rC=QUC#o66 z3>};woyfs-+ZhQsrc@%a`=v38eZP%1*ZgZSdpDwXJu`2DVo92#rKdfPjozhhP>8xa!!X?QKD%xky9kn!>)@OmpsPHsG(?u zmBhnRc>NKyLd?`k=O}IP_S`(Fv&_Muu9Kd+JULu~hI$Ps-fUOsDEA1Za1i%dN0djU zS>qvfyUBk6`(kv;VT8{DiM|+}K+Jt;a7Jm`k}pO_vH~$6YR6Hqo9GY&){zYY46Y@6 z++b)}X6U}FXkqcb43aQj_%4&^Ru|q!8XW(JwGMy?lK-8`3SFt3GaDN(&0J;gRxlqC zL(teC0ui2nw~7Mx0P3+j9VbLxVo@f4AmerELX&sA_~pJHuYkXXXqgsjWad_x46J5n9$E| z4j4UTKluofP75kK!dAKRVbi9^&s!3{$8&iiUN=!#e5rI|g_aY#>EhSfe6(JwHt@ml zhs(JaiSqpD73(nM^E713D_Lk|xFOFNjVC3k+O(|r+6&5K2$ZX)n@$f6(tyOCv(EpM z@<{1pN+*Y;^8-t>z$!+6vl=UKmthmN2T=9@xx&Ig1W`m5ikdjc8C^z65FLmgi*{#7T6RJ4gQ%fj0W=C!` zF(oYBow?30aUPmbe`n1TQaKl2J^-94+}O& zWImwo@Un4_iX$>}F^<*m$nlKG=k&%>mk^e;9=>@+M%iZoy$=wWZ47tfk zDW`(Ag5-V27PU?#U*(U0WB6G%r!-DaQ~A4%qq^xPL;C&=|4Y)`4?;S7t|L?Ter4x` z4YBjCBK}#uz|ZWDV{6Jb+=_BDx7ydGx--@X^e>FDFZxFols8wEaGBLJ>(ngmo31Z` z7C*Tym%Ze**@qkO(PA7&E`c_~bqpn$3|_E1vuRv}n?Ny4cEjUQf*W8WC5w@Yp8Amb zkfzI+p;VfXC{=V5`;2~Tlcbk1&i|UF7+x8DG7a)n36|;1%W}=Jjf~jJA=33*42Z&y znKG*u0>7>Mb>~H8r5|Mt-xjDdu(C{R4bv9FJA`i_Uwa5Je2?@?n|?&B+J^DKu{&(K zrhTJZGvS#;xXHS8bI4%|&n%J#p(IU|s4FO#DVV{I%z;t&XcDY*lYY%NnpvF*nGv7) zS)N1}lgvJ}IEpYVKRP*TmqN#;6EzuMm{({pt6j)k$PBH{l;9v0d-KDj>IS3Eu#$m2 zr70D#`bY)};-ie7k6NHN`9JOH54PMpV~R%7mVegP*`G-C4hdKP6B-K#6dO>3bdW_k zUy=qo9K(N8rFrlRP}}eREQryHo^(IH>(O>mlCac&&_~5YwWgI)!Okp?TaMz+SOvJ2h!w} z#BtLiNZ#zU{Y2;IXCiOAK-vEDx8bARTHz0(g(ATfun0ck%et&7^)b{}(6Y3^`C_=T zG1sTpb5gYq^s&0}zcISygzA)oM;?V+@EuAiM0)Z?M_otx$Amnk=w-(t)9}v@&s8-e z8bp98rYY8Wf4jCUhT(wsH+oM0dI_E26x)AV{-ffSxdqKUZAfJs>x{e)=4T5_E;S8z z()wM7U}w||Ay|x%B4`&K8{IU|ysN<;?%R*>m!BzEI+FkH7;md_)xw_{ELY4=SkIYx z?OsZbWeY%8I-~IY#6Q6{tp7o(O=;gT`t$%a)ltdN#jx)g{+;ZzsysA!IVm&&T#RP7 z)zOR5QO3NMEnq8NsJG9M2LqJlD9O|EU(zj2F0uOW=h_PLBzNtR3$yqdS88m((-Sos zZjUc9-H6ltPyN2nD9qB8YyCT#%{sE1aveKT2U!T>Y6SgKVkS>X)hh_fmJ^`6#})#H zCKd6%U_NHd6!W!EXM^1hhQZ`JH(sU3Rgubq&bHRjmw%$S@KA((2{v?7oI$ihbV&_x z%_yVB^KOp5-)-BF4|BanO-F>dds#=+Q+lGk$N7FwGrtjY!i!a_lPJq{5S+iWP%ctQ zN|vRgrKC$$(Lfx@`kRb1HViLwRn`eyYwj{Jw`V%LX<3F-FQ+6NRZ}dLqt_Y6kxdk5 z^G!{ap7f~cz=NBPQ=uLU;4rOpCQg@@4Ou=_Mpi=q!U^vrDG_v>?~=51kUamQb4pcJ zR5h{}AXMJRTYqy6B~1)k2z8awA*$UglJE_NK4LpS?D+D3v+OW)$tbN;YtRMkmYQ3O zIvXmhf8SFqnSz@(u0q2UZzg@2i48qHv+J@7CiTSvix%Zi4~-r4Lp{Z^D|H{izlpLc z$@#2Gby)a1`REjG64231Esvr3?Q?~#+YKS+q=+%MGAXm;j2GiAt)JA(p3`GqEb|@Z z?^h7Lj&zSSj;6Ylz`4ww4if?O+C@crK<}+Aa-vaI`~GS{ijsUskuX{>FR!+WkGt<} zQ+0~3qA*7!*YAB!xC&l4b5CxX`Jd4$TwT0t<#nsmr0_7D1I0VL5n0BLT0r*6f`E;_ z%Orx9L24v^2KukV7-M5|;ToioVs$TcR){xG7gNGDHTFvWL{Icz>|4OR%B7n$G|WrJ zutWa?1$mU{S+t$_O3s~o3KDalXt_g=$2imUV7K+zpo>dTcqR)3Lm?%xd6p0_bz%26 z_g>haK4dgAIof884;)2d-mtO9g}7z{=g;X|Ab!*GooTadNqKu5{1l2m-}c(ej?2$~ z{Xz)3d-L8VK1ivieBl88NhD*STjTDb`N>gSh*8-i=93>a((+V5o;;VnOqo!TR=fuy70*giWR0{0=uD2bIv%=@%6xl!cCc zYSzB^a(9{EHOuW4GuI4B4R80WzP@PiA)^+&+=Q1G4x}NcsG-P)VWER3o9hR!@SDYl zv%DFvT28Ydgb@VLWO4$x`VVu&k`2yww4{;0`yzd_s)pOa8?P5F-t#c`0Mg9c)XJur zAID@|m@4TPNpjXC8dIr+B1u4=cys^H5!{*3RyfV&A%+=h`wrv1{-8gD=KX{*hn#RN z_8h-L;rK~rC(V=FGfe}~M}Y!S@QR{}Ew=#lEr?;-EjJ`UP@@_7L+0BS>sEui-hfl& z*{3LB0Vr`?yGi)39QgwJGPwkd>m0A|0NoV6CC>C6WA)N9&38{I5eZRi_CxMb@1O zW=N^<_u&s<4;QoWkA+hEh?A z)E)!gNMV-+1V1glo5c(0IVf3Y}L6Kh>oES-W) z(kVwX925`A9qODuj=cGowYF`pbdi7UcMt>a;#c^W9avsW!AwBXwb+*-5!b@D|8zo? zyfCOE?Fr92=Enb~)sSE7!HZ&YgpO8{&feH6N77_@C6EVnqrA3Z*{s&XRT!P60F8n? zQRh$p&(V|uvv>8R^hDKe^7!C2(qHUOT4##`Wa_UCG8EtC#Zm|!>FI||+y1E$mWKgM z0eMSXe}4WBEG!_8q=(WX*Sf_u$nt5*cs-*5N0>rhH+hKkFexubtFsViG_t-C`K)z* z@a0NN{^DtDS`#iZ{vT6k9TQiy_3Z-1-L1HL@lxC!in|wgcMekA-QAs{#ogWA-HL0G zZ`ynBn=dOl>+H##`D2nvCeL2``K>9Sb3V6N>YqC2GdN~46bmzmo&2!dR7h!PDSM`0 zGG)j`XWRzQ^$DEp>rqJPUkDW64J8?gLhMXPRcWLKJdHVQVFR^%eeoqiC(3BQ@M}Sz zRvR^AV#Z4wc+$*g{toVT#H9F4qOPl|prGMLp#S-^pg|AAjN*C^9WC96h9~`Px=}DR ze&JZg(IBi`9oy+313zEwUaY5X>o0TbT~ZhK{=wzMacAsBc^AsdP8pBKj?0DQynt2P zPB-mBU~y&&rP=XVCvw+e&i>}KSRB};z1vfj)l0qA;bxpAJn$hh#3qorb?Qj#n3E-jFeOpSAiJtcJwpt8ECNiS}u zT~8!5k2hDE!I~wI)N1$Ck#7ywW@@Pn?Xk!L##p-b>n7!bHb#;x@}Bj}Pl8Na+<7adHDGI$}3ITBs)ph}PvyrcvX0GE5P?nvz_!8!r7L4AHuH1EN15p=mC>*W8O7H~THKp0A|k&#-nQfr(_T z$i)1R@%bd%k(Ic99T#!aVS=dNXd1>~gfU^u-}y9VmSp&pTG(hZ@Fp}^>?NtSos4Ia zhxLkn6>(Fx79YwonmNriP8rC%j%Ha=t_`GX z1hEVKk~O?W2%uWpYRlWrT)13beb?tOJD>Va-jV)rPZE zP{uA{M77#CA|f&=Dn42e^*LYdS#^$TdFk$EM;@| z?LJn^;%ul4W@ zcrgX*9YBo+8Wkn~iC02*7w89%CB^!|{6}Zdf?mU2dO`W1;EN5O&%?le1c7&Dda9`t z;R^2Sq29#WibsDGw_4NYN(?uJb=#&6+OL;bQ{AN}Bx!xz$qnG3rxzOd#$HbryZIbH znC13T+A+B0rDZ=`i_noF0KDUo(%c_{i90lWthD6xfFB);Q<73}s4P!_Xv}Zqtmv$N z?KaV(Zjf3txL3zdkfz7SoDE-i*jIRpcxg6Fv&^#8C|skqO(u#ZV&|>kvGQ3mycuSs zAP<&#lIq~vRNOO5z?bEya8k`MwxQQZ3&UlAfJF67^D6>rt}5pa*ut29mtqgV1a zF|l#I{6Tz58PrJ~yQu5kyVS#=yQq73?3^_{DVC`s_j6x>x(LRqrr#m|hM!*L(2Ame zBSihx7z55o)W+OgLwr#`Gb(9-?5v$p=%@J*cJFr!>o;H{fmsLAgyF$84HP0fQS~sDX>@;Jp_@l{~A|0I|jF$u~ zKD{m{osGTq?8Dncpwt#HRplw2m zW$`<^s8K(Yuv&Yz?r*#E@x7(q)5tc7=J9bo9^J62ZMp=gZ)52Pdg72dZ@pgna-5Rg z=kA9mFwN{`Uq#ET?X$aA@|{xng{ z(7D&CsN2wH18`c`SgF|5Nemkbt)R^WhAA35o+vwtS(=zqPRiWQx?=IXugM*EgQd1{~yX!wHLiYt|jS z{aLJ7?x(Ucm6E?T&3+?$KC%AU9(}RC`f#+-Ziw9h3E)plMJ!5sHnc&@jHL}>rKzTJ zq!f^G@sqXny$^;H()Rrp>x<`n|kXM?m7W`-KXZR?ne7N zuq{DPyg!utd~z*oK_N#u)B~uBxDW z_fj11IO6|2(5gQh_>0SVHed6ZVpxs*f<;obzg+pM?EA}o)(Z(I73?VaD6CCwVPVlq zg_M-VXNE|TMfCL`ffpWG1U7q&y$L`EJK58sH5X zuy41f+@$_YE25mneJ(MW_=nL%chmnwV{wo5;&=Zj(`HlngD5ZA`Rt+fm+qj>w}4BX z-O&A+i=CeUJbKIk)7~TGw$RJDKI3>Xnx6vw37Mgf{$hxfcY2R!IX-F0}EMGkAeF>q%O44$4M>%sMKwjNHNI5eS zf~a9H>b_OUnGEi?PNSDX=Y|`M^8*2c>%*U7y?mRsWe0J(FIhqm{YQ=abSvFgIN7;4 z>n>`RoxJeqh%e2Gxn|bwbePz}fwOugVT5FynK%h2IBHd2s*$qESeD%NH?tJP9HdZQzoWgpNnq*+A~q3wZYuTZUGjd%`@K^Y&t-H>0`We+mc%OY z8$Qn}s|{?<(}E|UO(Q8b--`ZB{99JrilO)TIM2!ek%J=jsB#ZGp4$tLBmgXK23p%V_!L>Lb*&DKhQl#$Kw)c^9id+ z>TSSniKr>HFq=`zxI}mq4sI>I zw9=Y+e*Tnz0#lF@l2cPSDjPu~F?mVl_ehyLdL<}?Eq!a64a|A*ez-K)9UKQwFLj&#>)t#O#6q?#En+Zhj-*osW_ot^BN}nJVFl(-p)sMj zBvn6yPgEtubr`>A;sBZ136eXuS9&AI2UOpZU#MPRB7H#S5!bkv?-ojz+0q;McoX~r zrcKwIQ!Wx2LGlJao5HVi*YKI}3QdUs zF(Be%=lmYV`x|xUg}%W(Cyw(p&9FJjrn%aP+}Crmpp9N`_u^D7bEq*E$0lmzgyh5v zEU_+XR@%sQv7y1Htq;o+KY=I8gv9T56@)RcCwtLLnuVAxzRbh+_9p_%g$2|j92BTh z*>MH;6>()xP@u2+$cVv=pakOfgE=*@==&RT9lAxYpNxru!5a+@DXS-j3jRuq!1_}!Un=bfYqeS^zMM5b8 z{|e3k98|O-Tqyej2@ncZ{~DlxB+@JdTK;V~0{;r`pWowy0rfxaM=lBytLutRhMK~Z0zM(lz4pZ0WOW6yF+OH2jE1v?}O`S&6q2kxLK z2)dxf#J>tBhsMBD!djs%k=Fo{fwJJ~A30#H6b<5QWWdvv)!||OmNW@H@xKbJ@dXt| z9()KRaf|Pf;(r==o-_$)^|$?RNFwlm$`#E2m{%}&-g($xz_9Ljnvz^=EHU-Oi!t@2 zi!nO0TQEDLUFdw6D%HFIL>1bOv@nc8Wx5TymgHp*V;5>@@h+LE%AEb2^PJZlBjV^d zIROvkz00cu35HeH*}C<*O~?4PCgeiu!554k>k{aJN)y(Q-jclP>COZ|&}<4xh4Q^KiMjK^s| zI38}eQtULctxq|7t&%GB;IZn%!wZ~YKSAcSW7*DK1PH4hDbUFKXk~++#y0XvYI>Hc z%kelWrNT`@YAlF;0`p$$?ZIP(J~F)>yqgVqn3SMT8f+Bgon9rDXFnqy zyHM+_>^|hSW^2WDmRun5;>a3A9!+O+^oVrs?VN+7xVuC6Mc-25i`42B-`z&js1k-%y>W*jfjIs7P1 zxtquo8z$~d2JgiB{Z=%cB;UZ1EB2kgw1IMH2QX5r;?>Fo>O2mpvW88C5=VwNuzV&!%dZ8h4oNud~C(;1a9(TazP zuQOj?gxhr#{)F9!^GeChTxVzBGkK_10ou)Z1pOmhaCu_o-{tbz4X{YB+_q>nu?1J1 zu~&b5vtBnhzk{WMHAWGvaXFTg62uaL8h3Jt4|Z*C<Xsf&*RBu^h5SRzl%&OsLoOr{^m?LJZ^pr)Z#2;i>- zv`&{?B=HyCr>y(01kf>3LKu2}92Qfb*+lYugxUWk4cDzt{>#7AOQ*hbOoh8F89ki2 z%rx*s_dv@Srw}97skGm#pshNA{i)z%plB8*Ol6JKymCA}BYz2KZUF^Rtv)!&QuJ|v z^zb!&u4&F)?}Yr2Xq$WxF|Ock5GXo4BH&2F#V|cI!|@)tUQ$mBnt!6{pt_%he8%Ft zNI#b32oc-1bYhe>!n5+PPqlVb%!ZtGj%o)mh=c@5zc{@B^iWI{3S`>JhG zh};j2Vc#LF>yZLAg^@PyP!hN?ut^oNYwzLjGxXb$FJO_Rp72#gAw+0m6qs#n=@*v_9me&4b|;o+K$EmbTzjAX%5gKU$@ie}S24I{Gs= z$nwaLx8RJBRWv>BL{(XY!z*1~Cs;A;JmS32y!b?>x~-2FnUXXUY{ip4;cAXMp?s*u zmhExG9-;O|(eSiFxcJgx0UUZx&^WscIRKMn*Y<{|BdHqGcG?-|oFT-8!kQ}F>Z?fbF}1@@ z_M9|P4M~NscPPVmtz|toD7`WH5bGV^$H0MlBH~RSIAZbh`f#KfdEglFYq$1MX9oMv z)g_1fi!;xPWUUvrcjX%kWQ+GH#$RF29)I4p$L#pJIbHd@Qx~Sb?%m^t&4NASzM?h7 z0fn8cMCn6GH3VaZ?PqNAyJSx?8w1&Wi#IohK})o{3j>zyE9WctE7jWX2P=E#SGSp) z>kn?5H{P~inYe5X&w=l`@1)vW^o7thv@X-k9`Nm*(w(`R!*>C1#Wn6{<(IYo*5Bo8 z4wuW%WbaYMLOGFMBKMTs2-+AAT}k9mpLSnh-S|mt{|+wTznQ*;+J(j%`acFOkOE{;m2Nkd`4#lW@&u7 z+B?s2E25 zY|Qdw*sg{M=fJNKPngto+AK_}KCPYT9r+yu6YCV0$VNr2eBQ$IX(Th-mX5O)2!LB> zP+M{_z3Qgw#^(2gE3#{}{pP{O>09RDdFqz=HP6md;9>O!2S-LCu>*wV`%Ldm4RrPP zvqN(7yQ8Sy$qZ9iHE$Jg=jZ9%tryy1gpHB)&ymGrJw_V

DWhDGv$9)k7Tq*;xToF_!%7!eXLZg?(e7UalbYqH zzzzloJPJL_8iOWgfZ5;t#x`jbBuU80-~#L0b2dfFE)mnbf3 zWtW0EeYP*(76&@|6AGf$8R2W-&VpI1RI20_>#88Ch*~!6qD32t@~qXTJ9{nU24S$K z({E9|N7_=-d1wpmLtIG>k!M*5QN>G>_LcDO&&)D**oCKNMTXMNda>Hl# zSFmLlW$nT**e6TlN2f~9a124guycJa%n;D#XmSf*uax#cvk?l2_`@B@+8Eqy@X4F; z+MT8uQh!Xopg$?vV{|ejt+ZaAst9n_*aF01RuQ}4h{mkuUYk~Zmssd&{XSKBZedMd zk;CV`M~|p(A;v;WE3fBJQ*%w~JWdc*lqluX)VX}t?l6r;2es8y@#vdfoa`0!6F|S^ zTs>ApH$flW-!&Pz!cfR~N28$dFr1jIgS%fkX}?#y|iJPnz8Ri=_B9QHv#{k zBs#pjB)_7da%+0w9nGAUk(nR+i+rZ$MfBs+Nn@tU3Mv|<3KyIeoF^}0{^RL^)v%}2 zUxB`w32OJ2IPSy@*yb9P5BYqql9>iSOB8I`D>Tu{qZbkrYkz|sH@vMZ+}0|d$Ps<8 z|3Ge;(pi~~m_Cxw6+AEh`(SUp4+W_70(9CF51}#ELj=4>4a?0{e|1#l)O=P{wfMOr z`WA>a+_ag)lB>Bt;IODkxIdsC)}$5AfxBKfymas*8cQqyH~ckR3+o5Nv_IcTrJvwq zWnECEJO6_NX67#M(>7fLB&lk4>s-vh&!yg=#0<<1aIJ6Do*^Pr&^0_$D3Jhr*PY3j za{fy}?PHL{k|F*U8WB7gd)eHhq8^Lik#$hwLG=|==sH&a+}yy5_}A{zB_1xtCMDIa)Hp%NN!SZn8`$|DE7;*Gh3hUnG0 z4ml08QB-~3$BxUjG@rHBz&5GK6CE3TtfHmzKpivDC!n{{7|aMMS43%SE3fASLUN=UUA6;#`HBIsGUh=O ziD^;cY0{S^M08KSZB043NliyHomP4iThA2n3`sXkbCopSyPp8E4x5N)^?G2QgF{b6 z`q)?~mhGnI90|)Lu)t^;b zpfZeqst0VEg@_t4z!n?jZeBha@p>U|qFa^^(j=r!{cto>@|&;W^3SC=i2rHDHShFi zc|c>Gay4Xfkx-i%7eBq1!?cY<6aAPFQs>uTS8TcFQ=zK4(GY;g&O+~$?wMGYGe~~& ztuf8w+nwkyT}5jevU+CCgsoDJ?AmYu; z&w;dML1*02hE@{p+g&|=U>Lv5^KXJAvN&~aky+{sUI4HY`>^B8gxhAtlRyh2wi14a zr#m6mgNe#iZf=|wOY_m%+O+*qEP30Y<@XOa0(wLLC@~i6f2G#!?Ck${NQ{L&84M5Z zzo1x6LQzme)6=oOy?G^TYhq_L2$g(?jv4kL zqtp{7SpmC8UGbc|_b4+L)h8cVb{{q#HX@5BO1~afgZ4qzPqYFFI4jNa*)+xBaN(J)#)>tNSm3x)@k1N%n4t4 z^@yPFf5CF|<8xGcyfZICR-@B$4_Ny~Xv@v>LOS%zEYY_`TeJ2K#82|m_89pq$qW}U zDzsn8PdOV9m+FWW7SbgN6tq@lL+Ap4kX+H+P9^qrahILFJZ3g%veE;lSVZUCCgTZD zo0S2zs^N;awbY9Q9jkZ8J3ErL>m`4#V)<;YQ_@3;r6LK>+z%7X4Zzp==A+x=*>W98 zc_GK&3N2a-kTZ#D=*|Udc+8h)pN1>70b_a6Djp+QLb_F8l(0hE zRbp9qaY~)-;^#rg0k1;7ZpuYyRA$_s5iNOBhGYX-u_8Ri2M(w{8b^UNFdrf_x+9pO zDBt_3KRF*I6kO<5E5#5AE(F9={XQ8(2btyYz)AUHh;%|2EemEN)t7{v44X-%*}WHt zVA9HiCx*^IYC^BTg9O>rED2hGAZ!e{Ik(elDBWtJb&|9rq+%kK8AAvif3D1cgz!bQ zhz<*9v=}S28Xj2kH41ycm(&rquz)Wu?L;+yLVMeWY0G11tip;+lw0&WAq8y(iM9T+ z<#=a^xSCBgf($zU&e@T%xL;b8*Y=VmCnM!nVpukmMfEhCF~Mxch>rlwW#CqCH#T)R zwa$RK2&+!w=~gw=0s9CF9-_0raG}(tN1-oV;W8W@*|BLLdszV*S(Vatfn-sf+^+tK z@+Z~8A|hpk)EC+51VPdc*(6JeeFNiwot#hVl>zhL7;b9f!nouT$;?BG3e;SnW)iRv z>LAUhQOJaoM9rx=)sFz`m_jz{UTW-?(}Zodk8KLLBu|XS`0ROavn94ESo|eC#0vaq znLV#_doyWxvXdnd(25DAQ)wgZDZZYCHxnhch7^!qBh<9e_Iqv&1r0IUQXdsR)?sza zh<;W={fOCpLT1d$mTtf*rXhPiLVNPjI*>kT9t9p2lc^WQa<2p!A*9e77Bw7hFSHPHwdhtYfd+)XtIBZlhqY{V;%!wUUv84SlTLWX zGeH7MmmOW7-$;P3twHaxjY2yw#6arEboYgu%oraK{qPO(k$Dc=@4+`3l3%}BZ{Cmx z3sU$jTI0Ccu;#^hl;1>PstuxNst1gOyNP9MpXmzQ9H+$%+l%}$oJUS{OT6o*Yqu>x z7ZS*dE~eS~1NGQ>C2SaagZ=1}21D4uA_7yik78AAj18P|g~v4U$ODuZ0QC+ZImmyRu zn4Bq(wC@}5b7QWTCm*Xk%kggQJQzYOk6gW7GfOZ;+!pS24s4|E)qk-V^-97Lq^UVX#pcLysW-W8EhIpL{$1KMwBQ@|MJnE;`>^ z@ELfC>L0h@0H`w&x1;^1K?q}qqQFxkS$$giQez()34ssIfn=p^xLXqefuF374)eE^ zNM(rsRp@6wP*MDkF30^JT_*hxT_*h>UH(6zH^qPGGQ~f-jD+R1(*z_{8|72zNmG&Q z2@jHYX0}jtM!HD(&{ZaTv8zaSgn7jol~G&}j}OyV(z3>cGw4Gd;Z3njsZQxmp~eVH ziIcP=OI==x#ikvnY%iTGoqpM=Id{J0ax3x<@-FwTehpb~T--1{^vH=R9`(l1f?tRJ zl;1$j54kP=(Ks@};t}}rND%Dp!t*w8WiPfM`8tc{QvZX1#=uj02{eZq)5By`ws!1P zwj=QY9?!g^bcOj_VznEsOOfY8HcpvF2driUfmH2u5Yaq(j?I+Zl*c#B5;SF~YkxM- z`##p>D6mcKlUy3c;1>jxQFCHvhc0W#z3 z)y;uaT=JpC(i1&%Z&UW{deB_4FUgjzHKji%wrFLr{kHB#k_AN?vz*Yq*MVdh56v7sa0` zZYISnxLJs`C3Jwo$6Iq`__8sag3LL>DLLYePLiMMgcrxmm}e!N166E_4Z_CqU0-rE z{FDu%H-mqJ*}%QEHO{tbcp`W+U-+CWoTHs@)TW@1KM?;Op9w6iTr~2EW>(iKPP8O2 z9&FfOajjRiPU6@McacsnCO|V#41s*gdevn8+6JC~sks6e>-PDh;5TTo3DYf59tVr~ znCIC=CThD#fN*^LhIH&E8dICrN=6yZD2vpm;!l}TtmF-FOQkgc?|WeGakL)72UOy%S@NgQit`qE7nYbjYf zV$!gV4zPhbUgo5)j#cJ2b1bZ_p=p{Hk;etLgmAp{WuLD zjp#|zI55(doxjZldBS;y{Cq)t_#u>#+*(UnP3dW|P%!XpOVd-!tbNgWx#z9)$%b!@ zjoXZmm*=}G90@be-1iM;t!(VG?Npxj+>T&V7%Vv8zT}*z&LGK5ZS_?6GdJUSO&Y7d zSigVwn1*!A=UyL0y0OpVlH5dFHIDF5t#eM-lH7V0E%i#NHK%+h}&)S0^$T>pU3a(-P-jiF#PBLqGJ_Y7M~Lar}t??cv^gwaeY*MWbiYuEP|_xP)s z>0=K(79&<$!?^agc{%5z+sWN;xX?dTccVf&+ocyp$@rT7>rD98cdCI3(_7}1 z$fA~I0e<0L)_fOq>aPqPWum5n+vQ?AZ^LSUK#Ap#YTrvtln#psyyJ3%Q1yrLZX2rk zpp(zl{^CzL$`#vox!lU>rxw|?SWc4|t{Z7R5VSwn*@lQ%W_cP+zDksgfE$D5_IOe% zzNJ`=vW-VwEuSEDAI1L0RzmSLB~js zivPFDFf4a_P5>`20)h4VZ%L!7+V7It+*(fwIH2PTa8P!_8t!sfQE9i~y8PYot=Iw{x7;PHTAFequB03^P z>ML}I88JK&B{QtiLRAlFAR8cyf<6*_=4xfQ!fZR3^0-x#1%o5kmC49OYtcHdCy;i} z`du6_mZhGe?$1;}8fFLVWcK~p%SYjroFt~?4=+!SPp`^HyoDK6^8q_1dB(k~W8>2+ ztt0R&raO{q@l#d!kyW&)&SBX|P?ssSmi7o!ZudD-NJjd|h$BmOmm8R?@0;tpII=j& zRb$q@!d9zRbzQFdT`l>-c7-Ol$yB5464Gu~Ucc^nAJx~`=lHAoRsoWQg}?`ED)W}~ zHSR6`ZDNsfVP>BVKTFS`H+8~m=#iTzyL#I)q3H-M!i6tSM^I~+JRE6C@N2}{OV;y| za8fVavg;DK3;!Q(`CTCVQDL9iIQzPBWUe^I7TG;EA8AGK&++2zR{~>>TfK?2OVzc^w~xtgh~zblVxX6V_dGl4uLL=Z}K@te{ZY*#ewZ$-H%pW3_R$aqvFwJfVH1V`#(Xz1*mMm+`QAGAZL#iT{r2 zH|L*x^;Wrxg8897^nYxbxIHN14GQ&P+B78){J^9?#1qZ(yDaGVSJ=3bwH5E`kWU|> zLG;h_Gp>jaMq5aIzYoFq(wnY1e6Tl%F1mFF_HWMtS&Z8HOO_*KlLm(t>3#0TxIOoxH-5tTwZ#YCxU*WiBuV#X9I408{McNXLWv+ zG1W8=@ToXTCSonxJteYfhe$d9)<~D-2jNe|?WYrcuqOPnP~>hTmzaS%HM7c0y2sDT ze})W!E$@@j7sY1=_&P7=WQTxr_TNRkOOaonNPJ@EXZUo-tM{Vm`uO^)cY@U~IA;US zzBXpu*Th?~v}US+j+=2zs+iQZmVEu0Sxz6Q19Z!wlIC#FiQcx~2tTU&$@ZMT48F>j z9G_S(WgFgpHUU|yvw1~}QyJ{RThsm5OE6o<*3~cYCC)rf1@}-KgmW{31w+Ba2qw_+-U80!re$g{wal&&uDRT z2^19@GIj5hvCnF2XRSx+T)h2Ab>p!&-AU?WdB&_M)}Y}YZ@Cof^DP-@Uo3Z%-Z0X- zB-FjH?ERyM{|8$kgU`TyY?StjFQdM)-gzaf@x1PJ?Y^ZQd>N!E?+ttVP|k%(rY>PS zMRiNzXlQd?nlM1J5gNiPA?+@~CF5M-3#?pCMD_6La(|B7KQiX6efY9**z3kAXONvD z&Oi8yYbwl~7kGIg!Y?~?!(N}^VhDBdU7?=7r%Fc%=>5gIB%+O+5a*XgI8cQtE(7Fr z60gGIs?ppBdbm(LKgU(&iC%v8OVi*q(dU=#nb53$!FwVc)>a-3TblHR-$fkn0`?!s zSF>@8XWouOL%l*Ba5|Y`>s_}O%VQXgIZ4B0B6jH!4Oq>*-swSnSxGs*ohIKcp^1Wn zw){DHruv9xEHt;uX$~FN4=dl~q;UQpUuO4NTN(+wW=>8>e3llAroDF;_Xt~S;V^ux z>G6MQ%WW2RfHF00W?`L~g#rqTz7V*im)VIGB4!QL*gW?Xo!n^qxTltQYEDl*M+ViD z=9gX>;wxeQQY~SuWz&Cp1!~#ik_OzR4`#|sTPl=oFOLpR?+AGZ4kr4{d)kUO&}YWu z6|*S!58m`}JUZER z$1Xeiv^k95S<0YHiU_z%I~jZmwVE4$9NXfo3AC9OrvAa_yT37DSAbe|F(AVpN|rdx z`NN-b^+WO(dbjdHv6@uA>EDt+m*faW*MH=- zsVka72c4Z?$P|v%XcDiJ8TNuUy%VOVSXWJ=-1wc|xWbXg{SaetaD8(r1+ za4$4mOA}i2On32+Ji#zCL(hWJl9wvor&B|bG$|w>=`UR#`Ae4*nfbbBfA@gs@~4lb zxXspxvV=guZR@(Be^VcVrf*oYjmc+?MRUPi(E*%{WH)uQ&wi5QFZ&jX4%hG|6^}#gKM-H1pe| z$XL4q_9XSDuKZS>Si+9*i?Di5eQYT?GkSY{>D*;ER~TW9F-oIlhqCkg8d=s>#75Xb z5MBnDkJB~%u}s?-wee2~VRdT62b1Wuo}N?<^271indzOvxeLo`28lJPtW}nYPvPy` z$yejV%#7+k55!wDnq$KSj$C#}YgO%o#yv4nX$?!aHs5klnsP8_1UPb0)btK)8Eg1Ht|jWqCaJo zdS;H9RxL2H#W5t3AYX+nYFxs|9CD-0X!(h3(?b%;VrBTaipeI!<+?6j*>M5bHNELf z0d^(dBiV_Q5_v-fZsVo%TibHC(*&11r_xGYIGl0)N8Q;oM zUyBvBPK26Tl6Y)<*5Bu+`R{-(sW+p=i%A$X^`=r$KlQUF?aUE0J)AzG;;DWzj z$coj|m*K11!R|P6<%Yv%P=h+*@SRYop$B#Y;Elnyzf~?hW_RB;f=>0V<>Xq!@7V)% zID(>5dekDBL5HmpQtTbE52AiI{vZBF;P@Z@=i+2f4*3bg52Y?8D=04XAKnk`g}|3= zM+wcB9772j9QUq;flmfGNqLg1o8h67$;6>~lbO9ir2oIq{3HGJJ_uakEUd{fR50W~ zp$9A|%(DIcBE$2-YM4CU+N74*m1S5aPErB}U5GdiUxE}TwuU1>j8XvQM96nbD6v0t z3r+i5d16QyjH(S~39NMJbG^&YoJLixKV#+Ub0YzbjNVu#8xL!+C6yPi{O|AYl$|%+ zqZghN7cUbR6_O7p4Veit_>!d7!-)id&Udeq0R8vIy%QVu*a>Pf7AEZl=jFsur-^fs z5nHC#ofhNJ`Uj7^1e#H9?j*_?Cp@nnhwtPw^dEJ9y^Q>}L^o##=er6^lolIpPbTI) z7>TkJUoC!!QLR4tRg3;fFR-Ngm*sw%4Vfe+bazA5d}jW2MI`n4xCpL->7m6DkSNp_ z6E6f5er-vY=^GZrWFz7&-DQgPucua1WO8>ou&$<;s{FGSXU$x;bS0?M5z=;jx$~sw z?fe`OKpz;>fOnnu;mb|Jk|^7_pq}^L{8#Zj3I&II>ErCCpP-p9VNXFboLsmQi0-Kw zRtOW%L=Kp&Ec43}R&{m^B9K%Lki)axOWss#xXP&y#+r8fei1r>z3d59FGkW~s{gY0 zu^PwpvV=mxYNFzrZSR9B*iOP%ymUw(PBZSK&qE&r|HA$+5^*k)+V?Lf|i|Az)#OHId)O&b!rO~GWYXbXH(GZDYQ(!AFAleUrE1FUCoP$0? z$O?MI1tr-tI4V6TAoQj8|p z0r6+Ubb<)CWqyC5%Fz|uuysg*lnb2T9BFF43gMk^0q#JjcUKzuZ7c7|P}x`Vb<$KC zbVYoU{p$k4I4c~Z^yzqa2vtuNTj5$Zf<0jhygj}x=Zf#3p_q6@_s9W24z{ABv=K>1lC8j6j+vE*Av)p z1F9MdILb0X6=nwZ^Dzkw%?3DwV1KhLO}o-a*&M}ZSrM2Y1RSJPUP;Um$HDELnmxPr zt2EsOXxUp7IkqM+eXFR~?qc?&5D+aK!brHt_q#z^mQOP&W=Z0;Z;Bq4TOwfUGY!3^nKy)(kqfuzU1bk z7R&A&4K5*kAt*@pNA`<`-Xyx~IKbTtfY6_M-7Z1w|)DmX$XhLg&gB_q)P^ zdI!Y(X^>T3u-Z^SQI;~0TfyDyAg5fqE(8#zHv9e3JO5?#QE+?b1@etY_9H+PQUrr} zTcT0Zt`M(3DMk}(QF-}kZ}OTq0b-g+{FRG(jeU#hwt!FoNw$p|VFx^Vac?DW!)L{Qc#F~d*Nlds3I(I07ZyjT^L7TB_1b`Bp)%>+d;{HDWm-s>c5to(9hw6>tKZh7`d@(SZ`GUxO4$_6zxd z3PuVp(kCF|`|s9}_(umSG3o!Om;(vs{(9%iq5aGt|BC05l`&wY0I(krFwiJS5ZfPm z{@w=r*?j=r8W4;5;(!@`3_*op2JeGGArpwe2|@k);`ZXLv^c&l*d8^pI2b6uFACfN zBPQSX6Z_vK+|cxN6}&J^FfNn}&XR$CFyh(gn%*uX2yQF=U=l8bvl_p7zp1~4_}|@w zGzE2!+Xy5h$J z;)ms@>fab}?~fEPCUyp62wVj0v}w}CD2>;Rt&V$+2ak{F-h`wUrjTJK_B@x3I6Nr&n2AXA+bHsk!^+=$0dLO3%cS3)Jd9INQ^E8!fJ z$CO+PMaQ2#JRnu9h!_l}o}P4;z2gq8yo)T;J>s-@lik9j@cwa<7~oFPr_e+hmKS`@ z$;`nQWY3}f##I8d2R8pG4Q4qDCsxh_L-@g6khUZ!L+%s$>@58XN>g1XMD@}z?FuXg zgex&#$w&MMC=i5DuD1}>yPf9Uou;4=cOetwO=af*e&CNf+WqvZWW|@uSq2hV);0x>kf(*6^FUkT~ zmSXb+8wKjzk&^h~wxQ(fyD9g6^4~@~=v*H1aEEhv5{l_m90Bf=!dXAFT1TK6hC0wa zY&p_GJZzMqp9mRx>!y{Cj~V$7GHUVx8sFiYVkjIx^W{N;GAL)iYh%mQN(_mu zb%RFWg?7ezj=^VG3$Qj=Txl(*gOk6F8mhb-R@ufZn=s8`ZYmcQH+>szD}C+)exhu;Iq`7y zeom-gIT*NrAr&(zV1B$id^2Iw+gxC2lHJTCS|}GG&myv!<{VdHGRNO3UE7%Z(x>zh zz6o(yho`|jYACrCuNQ^eB&0iCiC7G*o7f~(stl#qgGD98AOg+72V}Ry1ljGlpAfk^ z$8A7%I{>7&%jaOf2kGsUL~f%+H3cP47(G@Gki}At|aWLI^P-w(I zpa$J!DZ~cjMjm78g=0j9DQBaXa;(ImJ>$%We3<`^m7O?DA2hZY^a6xC%OTeK*;_7l zuFV}=hCQZz6-4zOogZC)9_TMy>GY|j{^mRk5NWi1Z{8xveAd)6&F|P)EV++nwR=~7 zsih`7v^*g{?Vrhz*+Wrg;%WZiBSgjX|~z4Nuxy*3O&Ls+lDfvh^yqTW_V6 zPzu^iD;6l$>>-UO4IcTGMVLJoTC2|tZ0tOUyR?rVxcZ#*fy2Fa-)!6 zGI-pbVXbq!8l>A{>IA@cSdJ}(Oj5fj&4!7+kgi*Qdr13T_fK!9*ZKS6d7(aoX>!RjX8ZkcR$~7{13pEmG$D zfp-xfD|S=JZ@-L}vczCJo23su&MA86{Yw7SEhafRFijL8%F0wHsi+iMp{Q+$8`rDx>WXNsLZ6?&qOgg7pXY{ZN~+i5SL(3044A@fif-G zmTirSv|InnuOQs}uXOM1oY%20E1(3*tIGe!)?Wq1)pp_9C@;t&_cLoXmRW>^|tK?&=!1T&$(ocU%nr4?tPpp$-O6 z2IGJMln`J5Wk`GsrEk?g0A+pF)klxeD-)qJO$;H|L?imGL9vvL7xeO-pCX?*p2QDv zpBU-Q=#Z_Ow%jq6!ilJBeg`aMSKKZK!czljL7$B24{TAX_M66^jQ(R?R}>M z2j*2tA;X2i_egd2Ly1`pN#t2HfYm2e<`AV>!+r3Hz@`9d3`763{%>>@0P^<2;N|q; zd8dd)Kw(n2hy*{eC@zVqNasK#k+D5=@%09}Uz5!)sgO2k8uU?HSYw)VR)^@`oLlV60hJM&3r^9#wqAJT#Z7 zU$xDyW~!T_LJjh4!T8A{ebBM9KNvq5+faL6mv91kN6yvb@<74?NdeNPMKj5{$u-# zV7-r6oAXA@7V697i<5K=Vm<eqFN9*b>eYqr~-iqJAc=!1Xz6C}Y%N4Y=M8fXS>!N&Fdq0S~W3ke$_=+vz(% zeuFDP8sx48;jvI_Hs51bdtM`}N!=Q=I&fx)S{t;4a>wBDOVFO(8TATQFv;yg!H2yw zVm+iO+}lg&9T&hyrK8Snmc5b|u}J3-)uz#9&@>ZmCIjBa`PO2F`byy@FMw!LA`!>(D zExlM>uQTW}L?wK6!t4OfwwIFqj2~<>Y3&TCqcfs(B;KdO65cOq&KYQA+VZ`=I1b(xdwgK9=Fql`81l$YgWUodM_3 zF5Dv|SHj&TU&k*neDWEsbt~xN-s(`$l~+g9a}j|nWVOq35%!7GO~z?yTn&4@+tkdI zeUa7|wq9CKCMol{$4x?$QEy);Qh;t{_qaw78N?NSznc86_^P>76dlIFb4RGsP zwGB#IKy(Z^gg-T=YRg$jE*v^O__xL{KM9hQ@3-{$()iU!?Tthaoq6zM zFGHSgvfJpP*H|*@CS_1GR*5XjjE$!3#e-BuJzA7Gx53;B-okcNpIxXvw!U;H#2pxa z+hOFL{K-#vc60TZb1c?v32UquxbCd;d>s?}L4dJ%J9 zvPR(1<82$I;Ql zVqm02c?d)FhS8g2rxIf3rd~O9G&42JFXB~EJsFnfD(kmaF$rO(v%2DxR9hvUHtn=~ zx^axTb0Nvw#>f4nE3SUsWa|8FgHP#(Q5rdR^i5htR?2c8phyv|$ZNS`YZxv%s^Wf{ z6=}5RvPFN&i0G&;&0^VNkN8>jsfqmT_Cq#Ta}swcUs$oc$MxK(XDV65u4%c@FxNPD z#f-Y1#A_pkSRC4nZbzlhUTRM`yc?(d(Y{GdUYJK@RgLuI9b~9wer{o8fyePlW8uK} zD(>%kg>@FPfLEBy=c4s&(yue&X3jGltJWNOm0gGGMU0lflKmv1ABr{s0u}Qu?HUMZ^ZsrZf82dJIa=mX9qj6-O?f!KxHF%W04EbN3Aj$8-fGjWe6MJfk9sTwMilD zh6kVu@p6til!@sry7N-FfLISv?97;9O*N)-^is%GdKl)_n9&+s`a|^bsGy)nd~AlL zaLOSxrjm)d)gxN*!iD#OiwzQ6#4^B!zbB5)z^6*%<3*xK1QvOYUHWRGR9QU_w~RIn zm^?`aCQpXMmOtj2Y%j$+T?C_MwkfvhC;^GKms!v9EAlF1~5(wqe6H zkLy-UqP@{{tw|-s(NJj-*))$;z*sviel&*K=!*uM%w~KN!xw5_F`Zf_?9By=_<@t? zjd%%I)if7L6A!YFD{X7jwAWS1B6Yj?+1(Gczu6WSs;Bi1;(YTwsOsmb0s2?QQy|te zKha&&;pb>ufPg@wT>_^uxr^Q163qWf)$c)>Qe+A_{@>SQyF3qh)rback+w8!D{Ju=)4kl z?~+{(U%P)F0p%i(#Ip80&qZu?F^wCYP}V%>8LzRI8ecEvyC!w4`Bnz>69BzI1gA_k zb@#vVR?EhB*%)b941UB1#)T!%JYgwgerri_dTE7^G}iy z4{g?TmvZlVVn0lvD99Y|Q8tP6TZBh}P4Dv*PUSbTPa{lcoc(_0xD=aPkRPO?ja5*q zRl@LX)GpnDvfZJ-8>^A7%$nZ2!hr8r|D< zs@dszUsKmq8D)93Am;)8p6s-Qe^&V~u-ZiM^~*6^$5@BM;|04)=ZD8*%c&t&VatD5GJ6U;q2(Z z&N}3^W9ISAOm`fGkv!Ratimyx9{pA>(5tiS$Tw5R<^a_lH8~1^1~lg6Hs?q?g*NV2 z2e0*mt?|O+7Z}pqXSS#(+WJG^?Y+lu#9dr8#xkzbYlSA?RZbqNGFwaRq-9GaeGZ*n zWS)FAT+e-cv|29T*-#C%|AuF3TQsQKDVxNpn5Z)*B=#oWGdczoU`H)s#qN+XP^s4@ zA78rR*`|_r$GHQMscI>GaVBLWYA+%93cm%HI+m!7;g8LH=9#?IooU+}bGNXEYcQ38+m>^cGOdT8%)FB%VaxcsFV-0@t=?_QT>rflgP zND8UDD6VuF{i}smr>p(vRGp`?C@XtKW6bc+iPX%pont_2?n7;@)s@}&`kuVP{U)oA zK{z$VpZSyw^i*Azm3yP^FhTck-E`}PzVaRKG!Lj*v_I$@u(2?nEKf=G!z%jMG+D;) zy*-Q0`JP*R$L}(IGa8FdS`pdGxyn}646aO9YELIVIQ^b9OG>f&tuv}FO22Ad;Mtni zdVj4j5`hX>4f8f+eoxfNq@8w#Et)dhDbA58+$1IK@z5gPyJx9He5bYIZ9r)gh)>d9 zrQT-R1F?N4)d=I=n8ZCsxZ!nvkVE26Nvw8ueN4-%^mBXg0Z|3ADlfB|c0iz3VyT*a zyQsU{sDaie{E~Q9YGbG0z;}r#2~#a;`-ZW&eLw@elcXx^K>Pz%nom2&@Rb%6E-cU8 zXs3ykke!n=QsTPbX{YHZNt`a&nFR+t%X=-iaWPuO+QhcEWaGJ}8)m6bovc`Rwsc9H zZq_O2?qJkm2okXPl!~HLg=_5gVQ{6@vgs-;g&23Tb}}1SPTZ}Wt$C~kZ&k@DcAl z*lNYot3MKJP43XN6F*8`bX73;#TqsF3t^p&%87+_V>;BUkbX z7RlX{ z>Qvuhw9ren%)dPB#rXL#s@N)@#8CukrM`(hqX%Jq@tUN^ZmhIU8Dz@1kT#Up*$$B3 zCX{}OG6sI?|GY-3>E^d>W~riD0sSRt_ukB4bQiZ=J1HEl;hrh``@01gMk;;b49H-4 zY}a(m?3ST%-LncD3RNyutedl%SEpb9F;~$$pEn<;-ftYC$*uVuog+mBhMdwSBuhv- zXe1UB;07yF zwl-@W)9Xmt`7@e{D8fn9vCK9v>ywA%Cj{itQR6|=_xU1Ve>_XbZkjRzH51`lJSwsx zt;19&{CY14JCSq!Wh!L`huu2W5yyBh|1@cfVp&-fE+!ytTeY~#pXw8Zl{&lmtoqT4p-0G zXepR{<`i(j|55BI-YxA3b6#Q(=yxBsM4%z9CW0W)!_!=0dEbMw&ld#+5zY~4KD@bj z*|XHZ-r{HPV>+sHDwMvvX`FeOzUbk^u^00ib&}TjvPT@8;EAGsMx0yZ+Ey))E&m=& z*yNRRX`1+=`WDkOQ(kIIi_!eAe`ih2PjkE#t2NfFh*1-|RKPd=sXY>zn1NV*QH zChA}4r|LDfrIwe2>E^4}F&jD;JrqeS%7tKMmUCasvDMMtHZ-Z$Y58+m9#3**4_Dak z)WHN@x|oK%)l4}(!6+z+SL2WAJQ3F5Ot=zXi?~+G4n55cc8Iv#i5t!fuYftxBN9@- z&mC|mP{Zt*+;Uo4cGme`TGn{!%b#2V?rw+!LfXBYycY6WU2g?yt&(^U+_#7?D@LNG zRu&pQC#db!CFCo}G?P%KTTV=nHSLU%X?Vc8_B&?||BaoqW~Xk2!<|tXp4$iMsz6)g zl)aF|k?!$INTo$_+*+?RDavZssxtE2(CzTFk2}*>Aii_z4z|M+EY|0oQ%!v z_NK?c-7}_qY;$8Ha=h&P`^z15&*EWvenN^00|h?8Y}>u)y-D>R(Yp!w3^5V8&_ z?ZoXMiwJ0-XsegQ!d$DPUe4iju|r4$ahkA8YL$nVi!z=*cRI!p()SHLuh)QMOCYX1 zjjM)WN$7K$n=uRXy<5SyId?>B79px9#<#phnu*xp zZ5NA&s?hrFzv*->sZ`Xw!-)wg7Imp?Y_D2cfBwW9IB~qJ4{s^#z39KJTk`HdV7ZR; zFs!?JIf(Ed-?A&t8n$;KUdngc-2>|QIs|-&^3I+;(4P{RQk{SF@3u0VEM@ZE&S)gn zo}6A|>$iB~pNBO|@=;G}dxj$$Lv;;`|H58@c;))^T!bd+!SLvVxB`H7}R z-O7fscrLdg>yZwt;YwPE_?2Po@4FznlFqpsaR26W@87Vn>{;>dQ{H|jXnvmKcKXCr zJ7X3rrQ={~&W#(jj0)Usg_e2Fi3zsH54D|u&PFTccIxa%*X`D15PmmhQ*2QV&1AW|k0q9+|KjTq$bupZ=Di;re@< zwuvNVvE59!DyBfX6SC@9Z-vu#aydjrU-}@prDZ->e^~4zr7Q4+KQ~R7k48>7Yatq1ah?Qx;JFT8 z^h({$pA>rc@?)Qlol5sS@v}+8Cjc4O6Z;3olx9Ps5ikmHnYgN1_HJ0YhxR5pR`QEL1zmeR%JxCv{4)?Fha z=_&&SFdJ^aTzw;dVL1OFZbuIFqp+x|r(Zr1??=tcjSu{IX!ucC)B^(pPWs@r7iYBh zX8LDHxZbPDkR|r`d!O*Gln^8x47k${x1QJ;!z7ne$_?<{B0&H#9k_l6xlnbNn}GqRS* zwuE}^Bmi8#iV*scnQ$H7wWU$=vX+%X>m1pa%Yxk71yj?1 zn0q@LNmELEk#)qUqK)MHaCQ}i&=6K1Jjd2jP z-+2sCzS$1&WoPm>k|_R+P020vA68K8$2g87g+?S77%Mn+1UgOrwGuJ#9Q2|}U((Gi zpO1(Z6vZvF3_VPHD{|CZers6x#G>kbphlbR1i-ii5ZAAU{peOM_~z(gKP0BivPA+z5{3pCfhRo6#i{o)Dy%fI8OQOQe_ zfFnvv=(rCr?1r)Fq3K9j2+L_2Ld(mr+w-Z1)g9#jqfo={f{gjYl5BYAP!t07rN*O` zQOl$94$S*44`7l0&egr0_o8W}e4znN3|I~Ap6AxeJ`h__Q%s;hKe^_9 zfS>atmh_=~fPcWaD9U?e{u%Umfrj(sqdyx%2|Jn<0XsSfV>kV0V+0o)R7-~+`Y`#( z9v?>MgQ^Gr_K~>Y!v*<4d4NzMY1Qta+~Hg#4`7yI z@vWF_aa&ntM|-qA=waK7*tGYiNEzUY_Y8UoSc~^7j=BtTx8s;hn>W}-t#!R)4TnAW zvk^bwCT=B0`8q9H>gIoc?K7^MhiPHDY+I6BoLg?xl#f+nY8la@V`G1{QuF&{N3+ul zAB3mEn+uo!`{{AM_>6iF((?NNHg`qX8EP6?j2mtBp92J0tm*%c14IlU z7Z&^Yk2Ltt`eFHxH29zM1L}YHK>+qE)PKW{hWFp3{+{{;o{wTMXqduk5Xy!mbiaxr zaz6wkLMcQ3JB0lT^WSiy(fv22zm@(CvOhXJHJSoRI&2TZ|1P06p~06k!r_ptuzfga z#;`^ogIP%ie&MjA8UH&RsKSkpgyQ@Hm!v?3ghRY7iXDjt$&PqJQ=QipiMOb1Ao-gR z#&xzUvd0l)Q8{Un2@WU8W*>iKjGxD>`MMdt2iNt^Lz~gvuvuNt> z6y?VAf||p5!MnmIPz8ekuCz60b>cwL0gMKa2cM_#z`;l#a9ndKI`XRrKF0nx?ceD} zdIoD2Yj%Q0T&LVoDej@Q!b>G58j&=GuOrDlbAbeBEO*M*jLvZO;asG^E4+UaJjg?| zbf2^yzei9fpc4(%qNHdxN@j8TvupmpEn7-rF)qZ;C*NZI2M#*ZRaov?0gDdK zEtVfl9%N@VlZdGJ6xMdw6Eu$rly35mVeDIlAQzEY9r|)c3;+#%5`&Jt#oU+S3WUaY zGYxN*l#;k3u-iWRO#1YU&4aah8OX=rN63h0Cd-+2ue1ckVtXNhZ{0(59@OnniS*|0 z<~FTVfUf zAF4!jt9K$m0klXP&QIJ69NLHnII)E07T@EGA0V|Xp0rPtxkIgK-$q|B%VWxu$Bv>P zpemW>-l{w_<-=Dzia+WZK@PAdR7qx$k|HP3^akZd_#K3hU3+ z{Ll4a%p+I`)6YvP${L9j%D`4j%HJFvLqa*hkiG}RW->KgB=)mwg$cI!YA2RG6@_{C zjy2k+*j|mBcxWRv)Q`^=!RiE#Uy6IkSBrBu>CFlbEuI?2AH5_RO4ywCGBAbOPE603 ziAZy=C$fJHcem|eB%pGepSwMKs>dy97?0486ASN=GQJ2Kd^KfNT%WG}qYH2_mun!B zW?}=j({`HWdVd9bRR83aIQUZ|Vc8PLw7Sd8kSQ~{aR(Z@_OOU@Q1^y^0LM1j;?xWS zUrh>GdI=~`UVim5>9Z^@5$tfEyl@2>QnMR!|NL%aNuUdQt*4}XGFBu1 ztQN<5nJzydw&=Av^v+#kWfqMruh)6GRLG>S+P5$Z6MC>xskb}N&8#uk9dR7+b&e7+ zc?|vL>*jiR?5!K|B%zlX+rAkZ+#0ybPB$*MgT9*Dx&KF)?tVBOc2Y$110@ zRXW)eexnx&!PrZydjQIS&%4lzUKVYxB{pXW&Ek=) znY%>)O3m{Q!Ov?O4ILq*>=EuWNyU~BxVXQQ3$UQ3$vL5AWNm(_$(jHO@T@gWqa;cM z@I)}>@X7_sN86g-_g6)BDq>G%)YHFVw6ea@+_+6$-=N-X2we=6138b?`d@W#I&PQ( zwuQ)$Y;q`46~Z*JTtLSU&(N=b!p;h_YR(7Vf2*?}{9n@tl~16|fqL`0^WP_En<78C zkgDLS0c;h>+e?F&+lLjf=i}9%NHojWS}jxl(V2Hu?w&2`=1ack0cj{J|9P}oN@R8c zZ+(1au2pdqKvaOOg=fV{$ej@hQ2TsVPF6slE}FX$EHk=(=&cnHB!8pQ6(hg-FhKt% zu^YA{P#9)(dr3S9M9$o+jt!vHn9C&;u1v0>0W5DkXE!e#xI`&Yu8A}E2e?m|uL*Ah z-2L3s*4p8TS;p>iranJkT+TM}A0-aIrTS01W;Y!J7Sx9r1x1G>gn@Q%!p1jDqXxXz zOga;db)63U`omE&_tJ3r>%($B&~JCjpS)&eQD@?A@I68z+0c)w3@X6=cF50=&#d^{ zeDBc!mCnxj@O%7Z>Pt<{qR{sBcGkvNhCDV1b{Ts8%|Gw};x$pPw_<1gP<78lb&2kd zWM&D#d5#9VKJ>dr-(X*3-YB-FV^!N-508kfc3!Ea40bQivEp{NlhVVpJ|vHreGLEV3Fb+!`Pif1Z5SL5Gai@uPgNyGgl)E_xd3T_W;+G-63yFP5et`9)+d6AYYLU+<~ zk?M(XG8U^Yt(d7JY;GHLU2ebl`vYIe}av1+brISWdgb1tsk2 zBoCa-LV@5_`5xQZ5ZyiXzUOfY*LIZhI(f|~q7xDg8p%TlRr?^lys>ERDT^mNkM$c4 zGD|AgnYfy{E2t~}OCa?pt~!o7m}=OfBfj1h>W;1Kh~pm9ibKB|*bbc(H7he}@9rw# z+J5RF-~+sPULJ2*9V~SDOvo(lTSL$r;RN&j^=$w3?Fx1!(B&bbig4|{hNUr9;t*=j zOuYQ_@n-y?rE2G)@(kq6q#QGC+~#T8fuPt;7TP#hxB*PNT#{1*Vk*Gd-pi9Pus2wA zH3u?mGv1;h?pmP_Vlogo5JwzvNMu|3P#Vhkl~~U-w!BUwT<;~?t-ncXp|3Jqe}+66 zUA|-auT(x~y~Qm%Q*oMLg{!6fw;wXQJE2$7rUl)xTOp8ua!wVA{;k5$==kv6A6=~! z+(V0!iFlJBfnl?TWK1BA!9k)xzGE-A^qIWnjS~U_Sl{3%VO(Q}3<2*}XZK%BHqGKxWfpHT90WiDB z$kP$I5h~qYP$2+T@i9|yi5UDVy~X+yt>Uk)3wk6lc`Xg$Z)louO4C0@{HQae$A^*d zfvHRiul4^lf>VLB7s6I#h>a373QpvuRcNPYB!a%X6ORA(N+NM0vWZ{MIn5S-QU1%; zA=)HjNBu$AKki{yFGqBPu7mkAB_MJ6J}CCR`}LgYP#@#ZmoDSa`<7lanV#hjRG$<< zKSemd)yY04yqLcjA2wYvJZ6{lJBztvXtz~E|Me#pRqh>wO7F+GW~o{L4O0wK)TZp> zkVlEL_WyAXejE-J^-cRLvR~w4e!RyoRGH@17KS`4EJtiwPOWPm1DHL#)NRXKP zLG?ska#ehB@b@8Ww=+erK*d$A)qui<=X^M1GHGPb*{P6zHQ^A&HKm2>j&6a^gSx{I zST#poNu*$=g@0CGVwP`Z0B-w6WvYgsebyqqJX2AzQ$*3*NV^-D6kUH9c7I)GhnalX z$@C>!M~2~kc&pnG@|KxW-=d{qpt+gj``Uq}6P8zFka)fl$+Yegi43Dd=nd0q<4NF& z1ghXF6Qxy3qHaZ80Ms7J8(kTlQf*T6O0yAt(zlbpf%Qlm&-^Y4!p&jK+38+BP*`nk zp_;lzzzgJd6`h){fOvu~Rp+{ffjS%ecP&RO!4!<8BGC6jv-7`>gLg+PokPv?3!&2fgcJA%lU`0Ri16nOS12G zxq0T|-$ZPRi(f$WsCFw4^Sgg8g0T1d)_dLUVJC(Y$|ZG7CmMHBuWD=e_r@kNRBzz+ zS4!qB73=oX-ed)m9y`xFXPh+d&Q4;|_02k?jWsYN%@VhU5o!8U3@15Xp1qo`{IA-K zgg$%p4qtZ09N*j{x_M004#%4*`>=RbjAxQz zi$pV_*~_WTg8S9SzX26i+RKYgr9w327Itmb7NP7R?-rn_GZZ^-Ixer{aqPYMpA6&U z(>jT(^RYVldra1;M4prtAj0Cbj(U*3>LN_idH~}->)*hT4B#~NQ>{_rk*dvYYQx+J zw~otk@on-gdD*ZPSh3TBQ!(4w4aDBhQiM`QW>j_NPCsTVz(J*{y0n| z>z%Q=vhe^5&pn@UdQcK4XOHlPtDuE1H|RPf?8d5iLNPI-$j0lsm*r&oF0|g)<~`lp zPj2#cwLcdq1k};jtw9c3LS|1xCReFsh4O`v7|Bz(*2CYg*!dRFuZG^|<1QPED3&<| zUftQ3mxIw?+cohaxxD>Dr`6$>*=R!rREKMW@}nttP#*Ez;|hjX59-QP+%Ju+@_#yA zPHY9m3+%1lQO8rCcwE+O)ohv2F)`Z)Y)M_N^vl#F0vY(Fl0J1g94XhPPOf@bzTB4V zVKfU=LuTfdmL$~N3&hpk8MF$3c4=cdUF^tw7jJKymhAAv<^FE2wLDYUPVM)2LYk{* zDC=ZQ$&e35A^DoeFbk#A=MZvG+EB$PYB=yP^%mIvBT$l1c5wOezqqS;NtA_=)u6W^ zc{frX00pDk@Yl~d_RIE)P4)5We@=VWDeWn-?ke=3!(i94$}!`#PAv6?UyMK8(_z8Q+ISG?pcvs*ST8^{JzZ^a6kH|sM>|(xrLb`gBf{PE z{T0rvqUDg^XkX7i<5?1?1gZ&LXv(Z}P(fQz_MJiXjS`sboB2W&l@OF6JCkG_`6!8*RC@jqw2dF{qmT!`Mum zBr16MV`nmYono(t<5n{l3HLV{SNs+j8bytH1PIIX%+*`XbWhtjPC?~!wkakicO%&XrZV~` zNyM+5cPH|f?WiZK{Pyo_?OU=#_&}5$_bX1Gw=})Fw5gzu!$|#3^YA7{9d+Da6?Lj+ z5a?1}ZX0)uQEQy5ZdG6`Iq_>HWYSqInL*y-ZcqxrxCt)K7Mf|OU6WqhWL)`fqvK1^ zH&=u+OM@JFXIUSO<=C;O@C;nwnLS@>U@!bF+!(irT`qoeOo^S2ZRexnT?5qq8aAT` zvd?l#B-Av#X`f_K;PGC_d21B^Q97}wLNtEISF9|00qSaDm7@HOZni^%l#bbtmy}A| zD%JPflu8LlWvMFP;zzi{sbCzToK{CWJvRfFDUOl3tF4!Wu&i2HlhdvNv*Gvv`M7gK z$w57DnnujGX5`Ciocj? zWwDu?lVcQO9D0!wFXlBru|}VWx4@DeF<7!&?qSeJ_PYG-$#k@zQQGVCn{aE?VLe9Q zv~7!J=%uf^tSo?LJj>Pa=k0Ek-q4pd@!PtEM3%`3%F)i-0~A3trzjVB{pvSp{C*^e z?LKMINP~3g6Fr+1v1=r@&V?^MYerQmiu`g|PK_t(RCJsib8Kk=OKwXZb>ox1dzM_| zf5-Mx&*h(ju9A9t5&Z#aX&F3?ECr*lv)`4dABW?As|FddNq?`=tdKUr+tZLppjBsK z90oOX)y%N&MH9r*?5W0zIV@ZJL3(%7_F^8LHGPLMnj;rX_Wb*h&byluWQQ-Bd(}r^ znA@041>+~s&A9MxG)nPO1S#56c=oxqrHt#+=GtGrVGkcF+;f%^ywzgb{)}~lh zYVuYgm%hU|yBWge#tVs_2h@3Fuin0p-E2o9xU}aCb zR6%6;zyl7Shr{6}UG5{$BuQF=_sL4g2ndjfNrsHDc>g{2AKmQR|6cnqv<_A(}FW~Mnh}e6!&31zce+4 zzXCYhp61d84-GGe7vcJg0`L-KH(pK!Jw4$D!LB_++> z_ab0?dUpvmZiWI(OTvzeAfNN}ZFg+IRPN?v2W5kX^%US^s zDIk8Oi%HkPrs^|uQ6gGOV#QJO%h69>bjMyh=FX$1ZJCCKSJz=m$g==on*cJs&$lKm|NZWDI*b$aaX=NRfb)X zkLo2c`E(}jJuedf;_+Q#cD0?zmGU#dI;(kTrzYzb6T`z>9G+-E(eOfTBCIupES>a) z{d_)&S+?|b_Jr$L{=~hCOVUKo=f`6#a|e&pyvUx{fwr?ZDZ~T^KVKFe;Y~lbzO`$g z=jT}Pcc{3%YK=)i9!~fGr{n`3boVr9rkBbyfbT6u#oXSM zdtP0i#gungyhf}=R(g+GCjZs@{o+Q;L61v*|C7^qYnif(S@RF-uv_sQDLN27*x(I3 z%@Dlb-ArpXj#TWOv?m!O5yuM;o=mA?9MK@!xBNk2)@bNs;z3QKBGoufw(_UV>VB%0 z_ngR)SRZ(`&nj@msLl}1A5F4>1}Qf`BNBvWf#_3GrqdXr2%ayI9%VQ1HZTr{A~Htd zUw*v483vuD!3D;t(9e1VITJVh=CJ^M!Gm((XhpBi=*wBdqs=I6t#(;V)!h8`hJw=$ z6?h_?`HPf7ukhqAn6MT>wpZCtH$Lqts9Pa%BrfPOG1EpG?( zEtY~GCdV>SE(S5mQA)*Sf1S%(8trZs%OPKbAjUREE*`c*@CUDev?K-n-ePG~zW1V0 z6;5%J^eK)R|KF|O5g+xifD$@gbP>_pVU@agdE97S+Fd2SpJ5#0`-)OgDo7(jICrL= z11Qq>2gR-8c?UkOU+T?JSJ3GPju=7KQk;hha$Ol7`%t|dxR`3^afl@ZeVf}ALpI_Q zq_^Y?QCi1?a<|5XPljqjU|I7t+B!%fr9Qt!2xL`N?duVMroL?@{=5F|AOg`=69#0(G@MOreYX zA&N=AED@2#HIj*xTC(@Imy6_}j6It^5}*kazC+vY+}Q4senAEoGurxmH0=g>hxIdd zIwP+aafqXs5#L&X4fNZk7jF(%+;{R*iAeA+g_2GZs&kv%=f!UBaF6f#$*a z0-LN^=sNr&#*k(4O{p)F6n0cU6ncb;J=1qMoZX5oE>>AtzYFNm&$s5d)Vc7wz<$Kp z{Y?zx_B-lQ?+N#zt}WK=H*xyTdk`@e=|tB4 z((vu$x?+mbt8!lw!e)n|eh2j-+OqMB!y5kZW&W(rV_vzR_lE)z4;_1%O;579+?d}( zhW+d#a1XzZO4X5ORa~mn^py0pJ2X@f<5dc@m&#`OA2Jq&U7gDHJD@B$X$hvGR79Y> zJjE*Kk0y-(Iiv6CPthnx%`6}y0ZA!B4+Sa3<7Pe|Bt{5_`Wl#e%vrc)2{zF9|8z}} zszY&G@*n7~aYQ5@zYZXCB_(elrlG`8(FFLu-u#6Ui;9GY`UDGZv(=RJ|NY-(Ik|s3 zxZ{>D_x~W)Wn*F#Rjils&VfXamepC*kuA>aZ8!Hy&&ziAf!Uz2Sl4O}kxkT3`0 zzd3-1`ESG}X@tSU_h0@U9EB(Rzft(e|Dy0Y_})K;i;f1TFUd@X4$OgTDx&T;&EMA^BlX zaH@^@TtB87cSRm*BE$b1dC4Eb{|(=NTI>usoAmJmD|}yeBo4F@TCfNStVAxu;fPwR){_bG$=kJh<}I9eec(^7dGX+;ckrQ#^QYIGQ`JT08)F!HU1B& z{q=%&zIT+>;_Gp>ifj3u8Qwze{q`N!y5J(d5T&)|CZK(uPjG+c`^{dpo|CdX# zdz?HG?7g3(2x2kVYITv49BZvE*_?4o=(D7NH67K7_DA#+z`G~~^mRg&Yt;LDvsKR2If7Cgyr)pMfm zd#5NCpn>_iCWBV6s@#v5dHrQ0<*2#Nxi9>P-{9W0JuG-%!qopV_+1v?-6x$>1i3?+tbM* z>Kq}(B*5@R81r&Xc4K|(!wu0TLkW@Luw~6*y+xOEO-VP$=nm&@N@232oW&kSU2po2 z#*_-Px}_h9SGrD@zD1DIr4nIvy9}D9J|9|yHiMou(KB-Ny{c^yB}}C&X-11 zWY6!0-Yo$}=kRq*-wScukmY183g+)%Z6vZ?`Y?3zzrks9s;=}CiiWS^eytd=!#A8= zW9>1@JxXL?Eco=bWjC^1*=WprlrRUanXR(IX|7;Qq0++QDUhOEBQWiQzF=jQnNz)P zMHqj5k>gkGfT2FeuNBLU{Uelwd0#?S($XZ{a}9EUNaf}rYEI_Qw~mUc@RoxvoMKL7 zvqQ`{vt!8l@SG>q$X}72Fcz*MQQE(EXPY;~DK1=Vowj6-`L9i_$T-bJ`$F@cJi&EQ|Lw6j;7$R_woCyZRv zC3xrqDu0REabvPm>U*5{ECQw;K{4+@^I0GSerBV?sO-W~>f?Gz7 z_#8(30O4s0{hyDabG~jaR`~6!^2=Cuacms&gRfx^l%$z^Hh8&7sVn?}dMd4HWHYlC z<7<_LQ}((xlCKL-%RU`dk;`@mW$GOBq)(;5jKe!fqaAG_q~l0j|2DUZuR-Cw%snFb zxiONIozowWwaORu8k*jSCp`h*a>)K>3=2|#kA9(n@)#y%QBVfnpCheFq|VR3xW1!a zFSvTbpXSq?bR5}2qE@pObG3II8C+>xJF>Ganbd|(!$?4d_Su#xA(cnt$Fr8ns|!ZbB%p|6~G&wnC2(KND(H%SnP5JGG^Xmk8f#w z4mHEU)}VuNB;c4xg09xSCE7@EtKANR^0JSe56fp>q&PsmEng#KXB3X|J0{RByu>FU zvQ&!-)ar@<{a=MNIkHdxGQ$5=u^!&ub2zm~_bG5jH;* zBsgEOz?RMNN|#8Q`c5TEE!L;Kqdm?ldU(Y?X)$?A#pJkWb$eYQOzKH!Y774vLRQ@pLgHa0I# zwoQWjXs44|kl`GRYfNusbrBFR`T7OTlm3qBkw#1?zsOMaSH!RrO;TmP&VkQfqMpc^ zphtM_*Z_ZlM6dDi3rhdk6x=eUUzKM2LdWsm^q29D(#_W=8zu^&(?9A0T#9_~V zb(|llG_YE_UqW4kUU(RMaav+nr+8Ntw7L+d&V3IbkMa&>cLS@sX%_Te&!TvRem7Pg z=wN1A(PXmUxIx)co}4lIiLvdbyBFm7W~;r&TMUQ(GHp9RqcMVfm2g#db^dXk{e;CO zCD;5;;ymPy=1KeHanUL`L#+P17iI!)Ik5O=dL#({$1C9z`Kxpv>T*_pVvX$dD6A`f zYtn0Q`W^4w{FOXI@{ zAV%B5S1KO#sntvjWcG9GQx7GHmqV}*WYilTmf{q3a)4ao=u35LU_-S!SCn^}Zcocn z#EH5qcWahF-(9si%ZKpaX$GFZ7Owl-!rZRY9{)eG-ZH4JF6_31;1=91xVw9T2X}XO zf;&4va7%D^cXxMpcMtBtrBCvH_ulT?wW?TqZR(sKoPsL$eC8NH`OC*OQ-VFF%gmd` zZ`qD$349cl7(WZXI^~9PU1T_RnX(y;k4&-VJY2ml^-&qOfN@5rVQ8HB?6kW+6Ti|8mhl-2>OYX9iF%Dpyupt`Thq z%0+Rbr@xr>5qj1;G_)nl&4QF^LD(pYNK3NvqKiY(Ll^xe#`zkC8m4u~Cw3e@2y_QN zqQd}coY)asnKRuTnvS3nK11*RGSbo?*MYjF-s)7N#leLcCcjtz_$sEQPii2-Q+?C@ z6Rz4YpAF2yc4LQw`}^X^p%h+jbW%8G6?|E6Y>+h)L{K3j43ZFMn^hXL{iX~uNzVHZ ziv}Y|x@YFIDxuDg#dVZlHi+1wCoF^qKs%Cmd#o+M{hJpOijaCJts zfor3sG&q1g z0599O?-sc&Fi=d+E5sR4`73IR5MAW;(}td=Gq^SkT?}(nZQKNwf~hmAjeEe?ngPAV za`*3UgLd(pVwE}iGqFkNsvQe+qInCAr7pEhMd=*1X5ucU-#q*4u4{_(Dg1VFggYxg zZKfucx)aiuN09FTERDV__yZKn3eZHx{Q!kb$POF50K{2I0?9M7y9oKLaYll61 zeR>axX637Zko+X_p$Fe}b2AwAc*VSI*g%g|?SkXk@!P>SWlK1GsVYuS{8pempMu>) z_A@6q&-l?9uF=G@%;Y!on=ukOGrpiAQ_s{Cjz(++b}~$MxAM6aELV0e)BS@WDQWhF zrk++Eva3J%Q>sOZ7vgN3R+R1drbr!j94py~@ezME1$VOcx4+xwyO}Oh5T?upa;DVp zfj!yIq@_l;cF^ZIcvEdYsagUFbDO7Hxv=|hZ`zo)Him=hRhrE?feNs;V510HJ+BOh zPp)GsrQAxEF9{0419o3POk0e@+^}dS-xwNL{cH;?`v5nWcT7VWS+h>@@QTSu6SI=s zYPb;_wWn3Swq`Be1g^RHIDt6v*YFBr*V3@(lbD$p5(&q(YLU>dvA96$YiY6_w*cd; zQ%lQGJtOahCZ)~oME`wLL79TV*I;bp6q1;8+__F8Xi6~o5b*r+zKF7E`p9kHK^etp z64r5rtxMY1Of=Fiuj}2)MQ7Os90Y>Q7?dz>9%3uJ6W+wd58&lZ8b3mcQJvuN%}@46 zW@4-*+~XSu{aSy~5csLL}mTduqU=>&VsLI?XBPBcQi;!;v_`OKk+1^9E;+Qtgo(w|zbj}!xIchpe78lBs&R(>452$h$tNX#117Vy@+n#o}UJ-}KKgnk z{Z`fZHxYV`^R|;iZ2KPNuE{)!Eh>#@IwwZfx~;lve?D9klr1G$jh0=RRF}=LhaNDe z{h4o0ma0lC=0*%$2E+dW3|uzf=+~rZ?sh#E*DdYvVmh%FrW_;kYRmfSAE-nFQ`tOC zx$)_Ml-ebXqTKn+B6jPCOLMAov|!0})D*Yt*ooL1!c0Gyh0MH`+LI5N&d^bVk564! z80NC(zgzxXr9zGb2-P^6^%C#KzO+kP$r7zW1g&IBD2ZC?$VwGg)6sCKrN@Y_!&v1Y zx!mEEN-J26C;s-`6BZHQSlY-gn5>(qQ$J7zdZL}qB0U&3+83y9%I0uW)a24nG|a8O zh!5O`m5gLfR=(2)sH)ClE?Ztcws}w*d#137Omr27E8fvMlPI&gZF(+FATYv5y{SJe zlow`zbWE0E9qFFENUH}4@nZ%n)sc;ZhZeWFhuWvn%Y62&zJ}lI)JEnsr7J-;9S0-H~LXC_LW(-h;ziwYHESKjlRyod%R4J z4x>6kq>kM!o=42t80phTD+4QL{c$=#bY}vtVq7S8@Xv%_C%)M%u@QH(Y9-3me z0Uuc({(^;a35;^SWuDFHM@_IV0W%KOHu6UPCsrpD{-H}!#WW{6*dg-ndGx{M2ciw7pRRVyi;059jUO!2>;$LWl_4OLJHoAqdAA}0pKE%@Jn{qpeVcP3CA0(C;QFV+9NXXbm>?h&er< zaAlY7^2m*7BX_;@bL4D(iU&-SYc~%Mny}0!ti5ENaxTsvcOc2weg9^Bwmjid9|O+V zEwoN^0#Us55%-YjAS$CP`411J#N^A3@bdlSrr}0M-M1@h+$q;zRg+U@TRzZ8R2L4t zGy&blu=ovl(29oNS(aj&fjwjA2{gyice7!W&Dq^oJiUh;C?DJI;V0iRB%xFeDY3&+ zbRXOZaqSkCUaUC(gDkp3+nwQytR+Ki>(yyY;ykeX@Kuqkb=JK*&C+4|~ zY3{j!-{fy|vNCGnJ#1<6VI`_2EvVL4 zg+HZ#va}RBgbvls^-$< zlXiwPQPrxgBieU5H4gHIa<`&Uz;@ZZaxPWDoa%ffV`RopAHGZ*{hGYj8tIgCA^e?0 z0oHogi6~vg32h=RwHe17h`(bGt~(oKKX^v7)=Nf#xMLYzGd@nO$nWt` zxkB#`=ZC*vWtLsWIquip#yMKuH_pbEh+mJ2JH_=|cp5H#`8-1tZ#2q#!+971#Fyzo z#0GVhC1UV2W7Z5(Dar1JM%2T5a#V?NzvL$3RN63=-SM2hV#UszI7KoSQ2uh7D(1;& zUczyGM5UCN(ZmblmO0v4EyupNfs{_Jk0^@J4dO$$C<!qnFsgclJ32L+(Tx zUlL!QFWoGQT_Pn$ErYVKnXM8Z;J@#%m@m1aO3>s^icr$Bu@NtF&3Nc|&Z}Lx3Vr5o z-lD^}YOXow#*)0gCFj?mOs8K@O{469EJ+tXeRYRZq4c6FRL3H}88?P|vw07!*xzio zaFX>mUFA%md8W)c`ZX;a!T_6+)fAro; zUAAOn0|YMnVa}V2GTmyho}pYpQ}aINcKL5%y`P+Rdn-!NG%er8$gC^8k4X>i=u1*- zJCd5+m^6Kllv^JR<~U@h1+2RVc5M)u!1!bJuULd$)iB=As&fj$QoaRrfED@&*1xvH+Hu-vV!O0 z;b#5cu|GHKzpgU0jFQ9`E%ASldQhOx`7ifp<6!=Oi)mT^FEK6iUp?(7-TzNXnKSX< zB*6c?+y6`gaQ*)#0l5B60${Lk|9>X|cv#u~M`x>v;I1-Xujh5a7X2gH1ntw_Fppsp zBwOf@OISb2iM@Qz58(dkUzDjnYh8-Pfnj2z?1yzrltpWUF!z`=MQLeY(k`iU7d93a z(5$VinQrQrN&+j_79^Mg$6oI`t4q(Fvm8eaK^5 z)XLA*G_R>t-VP>Ey|5@po;0N-=9WF!UPgdVM%1Xc>LvLwLtoRp*^{wysp?-a9X~Ps zi5e@_Px89AUNl+oJ)LkWrFDJDZjgkp6zFiiI+`_~cp4HwZLl2Cqy6qQj+-HYB*^RY zbnB^KLQ%|fAM(~9OH%0`b>~0DtOPL!Bb?Rm#FE%J5)oh?t++M;r-nq1zQg0SprQ)s zU45G`5HUj56;W1f8`Pr@zwa9px9p(eba4%n&&X*ylPlIWF1b|@GywgBz$%gVxP|<^ zAt35|+BXa2b_6N^A4?RjOXIw>zR;MaK?5P?Q)1{xiVA4tTd!<~qinZ{ztE8M1PG;X zh7K~-iauPiDrHQ+`ji{JVOk-E4s7MV+vxf?g_?`1AiW+yP_Ph6IV#+JBU2jIkV;qMD?2rUL z1(jipPkxmx=V7rIS0#<3Jos!K`pg1$UpnArOu<%4twKtvND)FdfKOukV-H>6rzf+O z08TMcgbH%narY^i12X%4msyR5ysi=9AO8lCgjuVy$nPWl%nKRZ#a5qzy-*#<0XLLv z6YBBkd{fCu$FtMv5qhqJ;i3{gdbL?^6p6%E<6Xy6H9`#261x5BwGVKIH7vTw;SR;w zUu1b4B|nA>LkdF|NJcac9;-=8=*gL+;{fT%BcHAsADH&O-Q*5QzwM&F4ZyxzhEbt= zGuKl;Op+7BV_t)5j~p*RV;v#dZxGS2ZlfWCyoAv>`^&!|Z zZP3`@^3`EAm5gsxzdj&V0#bmPG=dHXwZ^GL82k+$NQPJJXX>W%?;JyC2Y-QeXLR>> zn?>%{-#n~t2&I0@S2I7uiu*XrIF20fomy#rt@Ih1f&o$OIh;zz zziS$vW5oN7gpH*4z~W$v*H_QNK0drIeQx+0{Ucd&;1blrnD~1>3N)zM22SM2*XXBl zlAI|kVOS={zyihcUzNP1zPflLjKet0RfE@|*1sBx9G+@i)cY;1+V8J z{AX)b`rp!45|dHg&(1WW7$MXsil1`eQK3lTL5Ct?Ng(&LDCS>y{ogLL>VF$ljw;E& zX0s~E|JYyy|Jq;y&=<@eNYGLVk@`gIR|J`(MDlM#3y}&0o&Ijj-~TO)9FaA16OK|YR?b&Wcy}C6U67jH3!FNfTAeCyLT0NMdG_|i zi@tl!3x<^k5`jfci{}C0+Z6tFa-feKZzUZF@^R($oqb?uJIT9BWOc2JAfy33=~#j= zrH>n6GEG@ILM%Ce1w%;9h~ar+QE>TsL~tr|e<8#o*C=gv=-^7-&&V1ulmYf9z}25K zpyZ2c7Q6x&$XzQv0(uR)cnLqG9y~2HZkE-^aJRXUYr-nQmRqZ06B`X*pl|j{@GReExN5NPCD_J&bo{IdSmQBZk++0y1gi=t7}i{c1jTfUap` zM|Na#A$|m2O}__nm_^OVA0r=8ZCzxdYRE*pMKnRXvZI)* zryM@BEAaQ_a_6lJFk=V6nb{tv;xkpn1T%f9#^WU*b0I`lySp zv#Tps!E$cXIGMhE*EG9s*En0=+?={*yfaL~Mm-5cbC~TW64Zh=yt~%{5F|q=koo6rW!as zuw^cP{=1*_WI932(ArJ0uOvpehI+woK#9;xw&jU54uPxTiDiDmkZ8GwmaC#xoV~Nz-#n z_MiM@zaJ*m@L*+4E*lJhtuE>NL#p`(1m>}}-Y<&Q zt1Fnz3kCT>)18KqDmV$$p^Ul>!q-u9){&jH(<@u{>`#T%YeL2P@y9f81HPX1#SClj zCCkee@+^hyk9>G!)h#RE4*eU>c{bIW?hsZ=;^PBNwO!!v zbgNR!{IvV>ZC|c=2|VVCn8Al4=do>zFAjNvgNqyza)*A){muCBA1(S^r;7~wt{+Yq zm?TSRg)vErdw63@5HZZ7iX6Gd7#X>{TqBFTsVA-%XPf;#h1ypaFj-WGVKcyu78@nQ zc4J2_TRl>{FmeFpHhsj`>tQYGZkeTujxh=EPtL$}t=V|W{JP`z`yWvxT}C)E=p^bgz&-6q$!7=sR~2WKxkv~>VVDYVM<=de^wOcYOucFgv9 zAHR;U4lAmpA(cko5Uu4VR20vnBLSRN)=8tcJ&Rr z0Wt8Uqqp2Q#iMI%QbJ}Ajat$ytKeqZPp|e?_F$ahd;(m_^^Hq#I@=h_kmQ-<2dw9sPC}3j%xG;XWLJ^SJG;X8-LGTBs%;wakN#H5; zFSVMn|x!kZ=@ zJ1{?qvM;8XZ!TS@x48Wi7z^o+#I+;@>QeR0m&@iI#vEuptgq#h0&^|VytTd(R~^{^ zjDYwJ`EPPSOnn;c73DR)^M`BvUD91P~65>R^*llzZZTfaY^a!(=$MKf4Tos7`00%eBHATkb;?RR}v1MzItQm$YF`~M_TQ!>A+pk9o=9j zPeU`WPOrJ^MwS z)QD9>yuet7d1W=%a_}KV2lr)am-&r&T}#+z1h?%0@>THklcL98rS0am&`orphztr_ zpX?5eVQ3Q$1~BKX73x|IaEhf?GEB$dB-0M&M~Ox0MhQfz6BMS^PwY=H{(i0)uV`Hp z;?Z`!bL(YqGg`unGCXf#iCrK=lSg9&M-30SP4|fIzvSgk z*Ae{q=Hi*8JE%5G)L3iP@XL3?sgKkZd!EwmTVy^^J-STe591u%kk;YYfuK)a zg|{{VFu&v-%-i+8VH8TR6E2ya_j_*&J1$xe@~(#bNeU+1 z^Zc#2GMLsRQt3J|y)aAj#PrnV0LE5A)OwT|q;4f|1xTt<(N*aYj z#q4E|(0&$v8yv3j+7@=9P3e}X3DPWP7E?Dm2sb#^+y z^p?^`GLw~SfHHc-67MA)ZnM`}AUdRXuIm~oMzD58ySsY&l~E?nkc!$)Rh5BkY@602 z=)mEF42u3EMWPe3eYlP-zob=W&)1=oxl@H_oA9`vu|BaqrFWa{cxI)^%-vGEmP2|! zA-$qb%h7g@R5P*H&?zn!-kNGfVVNn=oeaXB7UG?jMeb0A+>0LMdUE>tz%)^-SwI7f zoz?_^LE1?0ZwmA4_#NgAmalR5+h?ku6RT3U#3-K}5(a7>*?rteyxqg$#*KuO_4o() zV%@@BdKYJ-k6Llim9F|qc3??;W|@|iiiCNQz}p5OxU83(RBgehAQBdIUrioLXG#bY6IDDs`u4F>K4I&0lk8@L!P9k1&D#xlBR$ z9csx1Za`fKpDUQgFWNd~escIs47=PLFpiD?4TCWs@>zM%vDD>DQ*m`x6StD0U3HM@ zTRzrscVNvez2z<`E zxb@o8ZgZxoB2P!`#amm$=Uae%zk)r_L4I;QC|(2Qji4b*V*w>J>!X237SGCG8h*cI z{SaAvf1_v*)~Y|Hg9dDoUj9=e?=WP}BA!}G=SFAF?-lAG%Fe-@z($PK$H#-ujv?2n z5g83tol7NjmlC{q2+xBGlRer-9tFSLvI}zBHWTCFZ2<9ukgY3UJ>XDuN|~2}#)+n$ zo}XBg(&tt`>cU}E!>lW|ir6QGCUzouuGWSU8chBNxGBS6NLk$sUXDPAW(|R^Ndno{ z4ZZ*|y4m;ly-);cUU8{3@XbN;c*l&iOe?GtZYu5WELAni!jMvMV|e1qCejqb+9j84xm-5^;%*Jqo^o#brsux=;YMt+J7o55<`r>!7!zSlkU(z;28! zJzn6Ha&uWk%;u5V)|geD(7N}cU%+JUJR7EoHTpHqBP;**cIuLBW?Qm%)aPBFcrODM#Qr>UvCub|Phbqh!`<&6yT=`e!5Os=DUBh8T&PGmS_?j3uUMi3A zfE?Y9puE|yXv7`pH)4yN+-sTibhgNymtq|A3>goB<3)j3fi>ftwOXe-vNH|2k9s8$ z*MG*0J6!nfU$iUtpr<#RiPO`5KkpT+tTcDT0xE8t?z0Zgf=j;2wrZ|OqbYbciNUtC zQk17YH*&bEH!Y&tyl9h&6 zw6T65D}y(z2`eZ%S{#feqq-`CQ23*?8NYM|aynS*OW?!PY*C(?OehVyyGSYD!oHCHO1PdeHj=+YNAv>x70 zh&!t28`y6Z=_o%Y)=F6SQRnZzS6-xW5cO)u9t__=3WW17diY*AWZbeACgeiZecc#s zQ}@XH)3NvJ#}&DKJ->U~LU5GZ#(3@C25fM9b&p}M;E-HSZ%w!LjMh6lCU5+3LrD&> zL5reJJ6n}cfd<>A1u}R2oD+!5*T(L)H!&o1dg3!R2e}+4ZdgB7(Jh%KdER&r+F$$3 z2;S$qj&YZi_LB3j>W!k*ou=U7cATcP5@N&Dulj6Gj*anS@4!z|WHe`R@pt~=HlxN| zbG1S?Dv&c*t}TfAV_r=^z?HV%Z_if^yk8b?x0l_bU)?5Gdh@<~B%Tx`B66|YCzn1- zbOe7LB~xI<+T3$2FfXkSf`FFWcJA+y7LiT~$WB!U`6U!VCBA*9RfF5j%OH%z>T7s( zZ1#UK#NT9ula=}ZBqNE;LU5eWDl%V1L}dS0F2eIS7vW8`r-TvuPvCn-4~>@iP65l6 z*hLQwnK< zX7)s80t9lP-1Bc7GJm)7oW{l#Gq%T>yq1I>l>C(yQdkByaVTwA))F2PmOVg}>NB;w z9~fLiU0{e7iF>H3;@>=kx+rZdi}C}-!sNn&R+U~!dASFzZ&9Gc3T*?1*_&G?$oo5a zFZ8~T_%9E+==hKMI#plM8lY4ZOg@tUtWRxx9mu`={<>I$q+9YUe+*9apr4Mn(?f(c zvoT)sah>%~^EJgZ_bJD7 zkIl~FeZk`SHfpNUt}`2gK;EHKl6SG}0*xnRk*xSsXOYEfa?1C~9tkrhD$3;$P{%_R z84w0?@mj+FN`GT5NIbQA0de?i;mV~%evan`?8@pzZ>!;Y9Mx0L$^r#gCc!%A?PjOn zOx#1PL=9@adeq<9CL<=Zd12D|-0X76mSd)Lyy+nr1hQ3*;CR7=dnHvBgkYl*GD4D- z>FT~*M$iXHr2B0vp?!jD2MCNk(gcYZKt7v6qXmrV7h`BzeNRMcK2R?b=5H@D517Ks!dLa}ioDL6Wv&ph4;g3gxR?r~a>oPmyPSKrR z*E!|Kn*xhvliomC7HzFSh`ZJ4qqD;ySN7%TI9v~;n5s>pQRlFUO@jJD{H6=hQMy>+ zF;Fcs2)jc}=J=;tED*dlLwQ-fHQI&HohUU*Gk;i!Rm(@~Ii-hk@P#H-D(mA{xe~C- z#B1tJ=98!biq)eitVA_~K9`tL=4$C;6*%Q^lPI;Od65`1ZoqnsSNzuAdhVC5gJ_E? zt1?!Zr$PK~1Mx4LB;!<;n1m#b`W&V>(t3j=hHv5cJ|>qnk^qOL3kGK3Og?n+_p~Wp zDoiC#_gwacEw4O@V$?_Ces8GrZIKxP=wp~1C3Yb;TrD=^VoS_kl2UebE!`G$^lydJ z?)qa~_5Q+w#YrPy2n06}E!oI}=MajqYZtH9mJ3_&Rw<>*b~=-tVzXr z#}r~r>(k%04>>v*{E7XtulP1X{Vp3r74&$um$TK0=?##pbZttQE?x@F$VsLV?=UIw z&^`zdW7JM=9*AH-0tk=$TOwPDenKErz_7p&jIqJtv&ghcAr3u2f|tZj+ti*bEcaIQ zbGr=I<8kugM&&!LFN`43i-(}hZdbH_Yge!bc01%7du0yp7L3FraMerN_gMRan*vW1 zUJ%N72q@MXz~oSNXM`!SF7gliBnkE3D-+3NMm$|-t>NE9x~(E-3l0$f)}0o16CWBN zHZ4Cz$N4j>?XL{IiCK;ne=CMudQP%2_{^?ee=t8%x31LO*jDDJZ#AOR$51R{bO!0Vfs*8z>~odkw<)vSKOuW6n@g*lXaY|BD*v z$6aKMZovlnB|#sS^|OG^!3{C{l!7G6_V*@!V)_9B z4(|TvI0(g$qRoE)H6cHZAc^vzfNtU^PJq4*eEdZ4nfv=UoWDZgzn6$0Au#Cj|5gBl z8})sT0Q>6&?sWLfOXP|AbN4#|%w7{X&&MH$&ruMLYk!a2p9Up@83{-}nEf*W`w?>f zX9E5!0VWLE2YG>^)nJ7GE-n<_e~YB$f84;LLMX4FZy~1bKRx*!!sHN#_(Du0|Gk-* zMv8zBTmk$XFO&;b-K`1tRcHbB1)$GJ)E@W6i{0SzV#Y222yVdfCR4?K5x>U$3xQ>H z)Yh2OwMFKsh8ly?1>sayKz}cJ;aTx#SR^m}(b}Z&saD6G#`(r!#w5l^z(MBURaqxl zK3NzU3E2_w*^toEZ0`)K)7&MkL&hx}TR{AY7dl|w32I9+`8(Bu$nK_KM3sKuA>@5KiBLlR?*7u%+U0s33IvqrrZvi^DnO4!%}r% zHHDucKn+ZWe_cn!J*eg{^BqcETJ;Vf$2h3#81|XAC?!qKo6;;#yN(3N7;zoclc6ZJ z7}Q5x%P#69uwg#VM7Xn=>zpI3sWBg7>Ihq!)lhlvMiyPC%JO9$&IoBiCTZk4u7I=- zf1>i&#r)H`^D)0Ba4!L>&NPmx>qq#@OOY4q*n!wOg@IquCRLgA^iS*+G;hUBuwa|4 zK`QNQ(RDTh0mkDD$}$FE4;y__M#aoo-jDuT36b#0J*0j_27g!ZtYgpz{`J4Eqc&k& zca#UrGU@n%pw1m^gvhzY5asEWFAmOr%a(krn^$8qv9RvgbHwwPd(r!J(*P`tO+R0I zwv>>T#-af4&V-|Lhs4&_5xJ(t*3JVvw@J4~4@DvuCI@0HU_Fo7djC1ofh)I16DN@C zxT7b$BP%@e+`g5gaZ^B6fc`~VS!_0Buco&LLgkl@&xaT7W3dy(`<~-32^H}vlS$8G z>dDsQY-2<>+&3Cd**v2$h7KAt^fdo3^RG2COAb^Y56P$r0m%G2G!%5YB`oeA$6fpF z3BWr_RzkPeQW#CS-8P-8Q<B@DK_;KN9U-YJ648}4LIoYZs(oKOHHk` zA~ZOiV3u;}aQUeyeey{)OUSB+mB=fKJUaavFS(neSFbk+ z0lN_V9|E?pJK_a|fK`$%VFraAbYsjCU-^i)s_4)VT^m%caa{$qOa38XFB4W2gtAEe zA`=f8dJhWi1@cd8 zeSB6*F2i{v7Sd98gGJ)xMU#2GchnMW4{78gZAss%w zQi&V2DylG?E(n1o(j7xHrgTvD7gMbQgnynW<=c6gK?K;;CnyjBwwO2z8&69MMsJGu z_%8t#DdXmty~VN!K4)c?K z<09R;suCg)|CP1K+GnxjrXN*WYS;=d#XfuFsq(@rV|Q$(~s zeYlMkclyM_Dy7m;c)K4ZmWCYy$SrO|XV7o?)W%f8s-5CQ-VK^cLz*|1w zZ@X^_^Jzdw4q7^sj2p4qfZRD=)YT+cB)W1!S-PR-%L#pghZi}SvqDn=Lfes=vQ7q_ zKLOrDks}{?D&G*k%2f-*@vO(OuV=TEzL`11_fze+%6IF1LQ_^)wqJZWFme=j9{W6K z^H=u;_Zd!Row*2&3i@jLXuU}ybM=TM+mhWAy)g;~58-ZUx`OuUibE=LwU59P=w1nC zd~S`yYB4q_=V>ISXXv#=OOM2l^L=jV5`gZM_{KQ4&1cR3XMf zax+R_dG%?O_8*|0W0iM&n?y4$k<1JA6XFA2#XtNj73XYx9T-FB5Pb58_vJ$>f1>?PYTlv+srYKphU=`{42={pIZeX* zVe`dL{Lm+%|9W|GNy(M#8DD;T^pWL=ZL$Spnd& zHe0OWIQ9J}{q+s|i+@es2ZpgR^u5X7D*Mv<3b~zrPcK@M*#_AY=i(6NZBF4g#lP^S zn||bsFE@#1O^>WnUK<$%uA19oFS?E%zgk8)H{Q1CP%Mrt4p$C!s&`b{a5bjx{&pL@ z2o=HwIIe7VRQu%cj_|O-Ef6{lt&@4}~$LKxAxzq;RK%zm zBkDGdv_fUHYp+ld#_Gk&NfApHvRLz6Ycy+bPzzCC{6Ze7q}5lq>#|RDRKZo#Q=Opu zExQ(HPRlIIs%yPs{ZzYbl3`@WY0uVa_tu&pi&+II-Rg*)>U+8~E^KLZM4JzThBYy; zcjgQShai%Ip)@do!Yquzwmdk2r-X5*eHm~r%bFg zM<`#O_HI&o^$oIeHQ)Yl3nABBLEj`|qk89`ib)-Wq6y*4i{yW`o5iatOXo&Qw^+gtScu#fj8-Lp(tIOL_mo2*ArD zOq!-T)V)LJ9gORvIkiJ`&2>FxZ6w>Ur>H)uH%zx3@Eq&^=-7UQLuf*|maU#@HiCbI z_!=vyk|82GZ^R{lt4|?B+L>4+7iSn~7!OSAm9@q@L#d5Dhs2N#g|C51j`;sdj%*AA z`^)!LC+q1`=*U!da^8H^L3+@41gTvU)xKpQl!n!}i$7>;!>cxY3)`6bJZ0up>Gk^H$3A1?TUe)i3U6c{p%f|pZn0BXwE0ON4rBnK?lOI zrGI8+_MbX@Hg~rFf)1r8gn{&df*ntT50*uiFs|i>x1ga8dv`v=Tk8*Zfu0SpE0*DXt8&^Gvq}Q z&dqf2ViNhuX`?t3(H>#wY99XX;_T=x`dBEXJ@X>E zWi}QA_sw+*?rfoKc|}QEnUUjTUZ^ShhkS~D-%PhQbDdwuMA{lZfy~5{5eGAKkoTAG z)Uuey*hVdUId2HfoISgH7Dv%VUo_DtgRYVu-9w%aex*|ZWm*-3!*^L+9jbz`gh|t? zO6STxL2E{-)nu5!3TZx0Rso;Crs4%$>64{MhV76~P#S!55iD4J zcYTfCUncDoK35rVY8x__C~E*=Y~zyA@=<#k60a)Kj~hBBWA})_fQK!aM?QK-ynCxIFrMdVBqu66v#|+%NLTS?ivFfcY-m;%`lrsEfVTj-v5I zPkfzH6~nbvufN`3>(>vQosx4XA9Fu~oD3{8t04vUgEAbUWFYS^QseQd8hdE3|00g6 zqxW!Z1earZiMBv}Mtu9CI5USwJMZ{A$k4zfk1rLWpck;RI&(}j6Y!Yv&C93zGuEGp zcUO9KWhbDsj3$+NOH!WK_0zZ@ZC;+Q;^Ft%SY8puJ#n_vr-lh!LCPJ(d79aQM)V81jV>Ze+^eQ1Z+k8U*-# z(AM--$SK{Qv&5x;O?w^GQ{K=rj7P_C!u_ToLdBCYP>O9=u<&HGV(ca(621Q7VE<*g zrQhu+bA5ZvMuSJ!eB%Af`mZ@IhD-Ks=UmQPaq--S;(h7nJUwm<-vB$68MYIxeD5e$ zk}Gduc#4!dk-o#kU&cC&(d%lG{QuyBkE4d-huLlDXz_Ge-$QZPwL8G@WYSQn1AIQ> z69x(jFt1FSRQ|!$9|4NpXxf#O5nKs2=4zT67w;%^$?j@4HpHV>mhg{kiDho-{}g?c zzd+gSy}xzkG{BaUJ2cp7K6~`s1cj` zF27bTyW9`8f>msq#c4WKXl+z}a8Ry0vyp`CVg^{30_$J7bb@bx&;?BkV zwMBR!2{*t<9e(@ zjKTzyc<$DCyOVp&aGu$;*x2M){2ig;EV0M74Oe60<#%%X->1p|gJ{)GXBnw|sfA7mNLPd-?$GJo+K%Q>Y4ef_3h~y9~&B0C)7yw9JRkZzKownEG?~*6O}p zAY$w23%&Lm)cfac+-9kY_+Y|tR&1W$iswg&0vP)HLPV|2EkI$Ty5pCl5|8E6r}^r^ zYu5MrBdF0yjq4E&N8!eHbQqigk0Y3a+ z@DiW6fkjf@#f5sS1=T1_T)MPU9ad|E@So#lW8aym`NH{k2cFwBNtH@z1Emk{_1qsS z%UIt=m4!lph0!^}QuR%@&Et8#|A(x9jIQhZ-nikWjcu#3ZKJW%*ly4yjh!9awr$(C zZ8o-jr{CZI9?uxhJ?0r}uC@0%ug;6T&zkddU5`zx$;IsNp^+chz;;64hS>f28Q^@O zb4pUj>)GzkKXB3&K8a8t{FAwIY!54brf$wGIsWNxrfg0<8Mu4;7;B_sqOI{~M(4z6 z?g9HX{xLSF%PZ|-pcKL>6*j_Y0^5;d7eeEbZn(U38&k*9I=PM5ofm$ThhG<`i76d{ zQd$Gj zYb>YD-RJ!J3do;m+wGDk-%OxMHM#@K?2RKGfvJguAE=#({5U|X&9*;6e)iHkLI3^f zO7NWv4%?Ku;i+5w&I_7}j3G=Mnq(u9%!sLsX7WPv_tmm{R43?8YSQQ)UrM{5&Lf1K z3e=3LSj!|wm4<{>mgwRD4g$$GN7e1wEKglNlIsGiS~0lkmz(K zfZTR$09pLk8)k)~leP!RYdAGsCL<7Y+WOJ*Tp~vvaNqwC!non>tmDPp7K^`N+Y$Xf zev21k1hDR>m^;gGy+g-&#-yGZywB`2%GMbFGF~n#7^Bg3WMkV!rX4RX-laz1Q12N| zbD^uo;1~?AJhi)PbuK&!3k6OM=vFZ^=ZTaYm+m!}uwZKU{({Dy0B0>;&Z|NC6)eoLY`Z_9s0B?aY9ts%K~7Fzj%@|e_S@P9^s;gTYt2t8 zN(Cl!twDv}Kkem$ciZ^QwbM;b&8@tB@%cf+?QAfumVf0!ZCw&;PQqu5w6VS}+BM8r z?@4N*4yX8eN|9)?r?TGTtwD(wV2(an2P!L@PArOBt`HwXjLT`IemZbL@VQ`ND>|?t zxsTPXu3SjZhf_2;eM*gebKM1*TW_pi{OKd=bAOr{y>P&-_5tc(1Lz>k9=BOIQZQAM0jh}A@8$AeM63F z5N=FwTB6IS_GqDxqsu6O|3s6re}AG$7n>0;N>&*mzYxk9KG7sv^RG5FeKe9j94#KO zRf9pjZPTBx&x%W!a+4*O-JUQ$8$JRJUB>K^1;_u;BvL*W95Ha9Go4p$`@CV4yuh!C zzA*<%y(u=y6s<8f@eeWtFMuMYjG?n#O>MuM#h`r6J~#_L{K&T2v5gkkFS?zrUv=y^ z56SydB|eB-SQ^bTILk!cB7~KL)%#mi!@h4Q%2+*R$MN%p4m{MAF~&BlRXHqYdkb!d zsy`EDQvTcVW++DZTr5QYF7%zuGUeK&IBhxB)mT}G5rxc{*8*~+9`F@kVWM?M3)WvjG$<}$HZ5JEC@X&ZE9kc2DA>|4T1@y=1t*# zBjXHf_{5hX%mV$AJRzW=iheN;5+Uxu=4eYwjd@oM=l z#ku~9c^va$7N%j-gKz<9!aGDepUyxk}^41FE*6Jyc7`<2VxSKoZ_0Zc?uR9Hx1TdGgUhzjr* z%?Wkt9`x$$iDkk54>F2roITm1zmj0VbKm^(f#4}lXYhF($i03WT`C_zP6gE(&I<@O06kL4t0OnsCF9Yg!8G;Vm^@ zLX^3Fg1UN1YI}UcnBASZ;2KQ{g*Zz|qBuTMi8Cxx<(qI8h);nAS9ypc6ng?Qibd~p z@bzyks`Yik8gLq+vw8og75X!Xjc~=w6!?}S^F8n2bB_8SS@ek+`3HUd4>MBwZq)XV zIhqFjfr2O_z(V=I1TvlXZ}l&c{TBs7Ndo@`wEox6p!#1S?VCcyzk1q#MK+=TOPB)x z1+@N`|AN8~#18=R%l;o(T7Cx9MT@NIbPQU9;l z=JUT28wh6w;o!f*+m(0r=#L?=SWq^o-^fdOJ!IZ8UsFNZimN2lKBrV=V1EB19})du z0Eh`fY671D{XYvy0ek9yPLlsDCCmTc^hscWOoRPM6#6e=AZkN@uKuMf;M0SV0LJY~ zbCi3Tqo4aQZs+94Z|6ZVa_3=6w*R64?h`PQ>|a!j-bpg=UzK=Z(ySbV-`|2v`qqL~ zhg=6&hXL4w?kW7MzWL(v4da#@yZv=;aJhGlaMp6;^}x?K%h=ucyK%y|<9O!q(AqOv(o`C zOY&1{6c+W%QPxP#=a>E-deb3zWB5V~f)~Zu+FoXG7*#Ev?kE5L^=e9%FTvk$=*?}4 zk?2c$y2GhQzuF)AA7s>jT^`i_DVUD)2^nSjJ^Q1s8lFHXtQw!7bX(PgR)V)q(|H0v z5sYiV@+^>7c)AV@dyG9Y$~V8%HaGCW)0kplNSq*ZKnrlgThEbqf2Y1piX-nVmkYcz z)y$+SZ&#ur&uA`|_CN5UIU$Ph;yX9i4^Q^JoqgVYrtEw9MS?!M%S)W?jR!-r1ZUFX zS#)ZK8EDTPM|XDhGR53QJFGk71db2PHRjNxFIDpA>z4B?CS2w`>G!>5+3KI*gn@2a z!q0Qx*|xWz=5}bA0vUoSf_%hW$mSvX_5u6|KI~ymKmdkA(K) z$?PNN*WK}a>54)bdb@RCb6&!9!^Kcn4)ih?db7>h-Df&0tZF!dJ@r!3)$md@YCXSct2{ z;%q%J?-|u%5sDG5`G~NhKBY+`i(oHOTJ^cElt49RuB%G%xp9YbfPy5FM54x+*vN~y z`hP6Vp1SwcCrcy4I=nOEi(L@{KP4_QIW1lexv937)+X>anjZTPrGX^>htk0Du$^T) zEvuQxr={m3-C~V?c2bb3927ogEJ+<4X+E}D7mzO_V*6H3gR#W^LurJ6m(~sdPf->5 z)-#R=#tq#r_|IZTVz*dCkF=hQ)Mjj_81mE}6nt4hH+a`GWY|Au&G1LF(On^cOu~r4 zBdF)^t%FanI)T&Rx2huFp*br#4vPHnXIiw#XLND~4+-tKrPB7Dg|THA@$ENkHVTPC zrfTaT7{SyPTQi`KR93_{Oqc*d>|{;n6=P9Gy8h#fdtD&ilHGtqN`v4u(Me4ex=nyGQ5P z%<}j9kkX#Jp{JL$UuhUNy6QhrqN0~CYm?3kRSySmb#E~?w(Y0xSO_wJ$Qp$)J&~bD zZl1`>gOmPMdsb05lpJlD)ghu(_$fiIu(en6yJ?8unACc@2BFJ_r}R9&^!tN-D%EnY zLWU~{QP%umQMryQf-gsfw`6#Rbho+_DND4!Nnf1qc^3w0KPyWmF7+?zjOcRYb*iXQcsgkE%E;IGl6owUo`R8`a1nXw~ zX#MJ4$w^r2Nc-IS-}l&Gz6T%|a+8T^AC~-g^e2tayK1dEWqA%meY1X20((1z?cQPU zut*Qnn+z~dWl?AV@p*BXH*1ahDfMq83uBxmvU{0(%Z7N%U-Sl_#ia+rdqRY(r#An_ zYlug(cZPGO`>SuCf@OGGMQNgY#D2P<{h*9LX;9fiRv7~vwf1?v#`wrGFb4ZpcOrM> zc34a-KPjsQ4b4K{eBQ#d*$rEdWe1%1hSrFtn2JWN1FZvKZ7u!NR}BB6qrZLhjXQFc zd3kovW$FfIQn%gmHwm@i9{9q0f8c>Wf=++tL2n(rBldXi<$QE_Gz25UO*QqqkR`|DY=C6b>KsiQWJ9elOE6wOJUfOnv^2gaMNpWtJ52u(Sj5Za`Fq_2-N&ksMvQCjLoiqR{s3FSm2t;oH$1v`)ND zXirE!Lsk7!r{o@OsU}7iP}<%&aX5{6SVBMTJ?Z%4{9$4Ep(r^cMw1Ap26o?Twur5o zc;W&q@+~50TepxCt|CmSlpSvBvlbeHN*&UEN@yDEjLG1~&;01)2CEJ<1N-D?lt! zsD+MDZ&5r7xya7)|0pTW_5Og7UDgL7u#TA>(viWbd>6Grx9ATT75NGR;cT`yx%j}3E zYy&nK0kxbg#Q?s6bLu~gMpc2QUo&0C!14q78S3qeoq@RpkHZg>qUEv-8_W4y!0czC zl5C2zOuygtm1<%T7$sG;l&aU21Df%;e3$8% zr!cA#Dr(l_w}3m7^iA<9f4eJIK%ZCZAQE%IjC4}bHZg|zI|lk!y}1LrQf3--*5mR3 z)=`7I>6RMB1!ju&1>MyY9TiF5BVR&zAEWTg#=9yc<|O3Dpl37Qw6s*3U>G!J3+C=gd=I4$_9&OxQj>3-)sJ`S0SGBlE)MtSn^Y&j)S$s? zkdoR4JDW2W2H6CZ$Wc*i$8N>GS@NxgOAiDRvVL!*jW*kje(w?D?AAmkqZRExPQ#I% zhttr~i{-@Ml;WXcP3np>dHh;@)Rxr@8Tnit^DyiNgKgy!O7}i`zYklk%QkMn`60BP zGQ&Rcz`k=b02D=vK&V(6-k{aT>5!qi_*x0n1S|xIfQY5WIeW`%(2R({(5GY}PgK=? zd2cqJTEhDps>sTa+kGukDHk7o+tcGsdo!8jH|T~%v7HwEsZ!7lE~+mB1K*b%vXbH{ z@)mN)WRO#hMGkNMTL&{VUpL#LOC3Fw^)Wm^jb$O`55R@-0+-3ZFq*kL*}rmZ1D#LC zvW>f>sK?5K+AW_@ZKl?cX72j>`(_P4)^gy$g8q}C86W>-XmoJOgKxvU>DDZ^hLp=+ z4N5;5ns96^^p^2M3nMgDz^&&RNI%E>j-*3%OUN}(=gm^+R)7b|@h2oSXg3hAOHMM+x82sTF z%jWAnvzR#nC##<~K-vLpLzfiySzV$W)y`AJ@wO-3V?Yh7hu+(`cRpe+qVC&~B}p(% zp972{w1mL91dm$`!?whBu&mpVjs+?{IdxRhC1kaNq>%HAu(o458-mlama#^;wzC%t z5n~MEK(r1?z~Tl>og0+!UBJXnHy0F6OV|Pv_i?3I;bJcF$+Qtfg;M8Y)b8D)Q*&F} zjg$QfF2J=xo1TAVUod)3Zvl#CMWU2MtRzPO zso))Uw=ncolgecbQy15Fai&{yDX#J(#{_$H)Oh{AT+mLPelj(2TxB?)8Fh5%3k;U@ zM~fCEl#9(2+1A3-tUrZWi0tO|xe4?}+!UCMgMg?9$G4+i@_N4Tz=C+WLG=O^FruXUlw4#**D2J`^@dWS68%+$zOPG^WmLfyylyF{z$18 zwO21QZm%z4_$r6e!<*#gc00iCxDQ85T<;)|Z38@W{l8B- zpaF4C+@ryx9?C`9GoB}-Cdx)+DVR|kUx)&_AKE>e{8N5`7!;Hr(r^<&Q85m@Rf+l{ zxpVetru3=%8kV%wJC!uYRDk3Ls%xGki$N$^t;8i=(;EEnFn@s`#v zQx9U?v^soh_qM;v^7v6k&L$r}iC$T2bxS(8;C6AQs}KYbyDz#%?Ibvth*<^2NTm+ff|LvFY)zq&VCNe!{%JiC2rB zsOz=L)mEwE{wAO&TA}qcZ}0pu2AnOL7ADTUzbyAuc`mzZQA;FwyG60&h5xoJR7);8 z>rHxW!ZaJK7oM!&St&SxtZ?KV%*>dxV?C8+0tw#68;w>WtS4R<{h?(o+5&cTAl`UP z8XB$XQwKYf2Zw3dW%^AtHDVe(j7_f&Bv)o|i?;D!G6fT*X3+4SE-?h^zUHD~mUo%X zGdcsB|E{on%|*ft?=qcZ#P*(s3=`F3IsUf<70r#v1`+-i01hiNIOX-vMX9 zncqbLCQA9)V;rWa7xy(66*Hgf-_l#5#L&+h30xEtQy-5QHjIIxrwj4~Q(y1%;sWDo zSJk&(03NnALLVXk57SX^$pMy|;q&SVrkJ-4>c2s0kOMj_x9i`)HK3q}3pSw8@VoF& z(>+=iF8GLk7Vd%q{I`7u`Ol#$!WNSv(A%~NI7~xK(|7e=g;~?tx<77e?>YmsqW|OO zu%T1x;TKT|1}?AZY(x7mx!*AH zx(=rpKbIh3@OXyA3~XQj4ab-`-qlF|28F>T$guFPr6R*u0y((Wa5k)}#TrMAqF%H; z3p_eKDV*mABm|Fw$VREd1}#AqHogA#|PBtO_XW+k)IJ3t6jS|BB&4$%x| z20l+%JS4*nr&%squ}o+b-EsufIJ8EXGf$j5E*H9X7-f(48vZGY<}505ghng1o2CWV z-}F0V#s6_rQ8(z?PAcGPK&cx`DB z?HPXw(r+N9u_hBZNC20QQgR~y*O;RWUfma=bQfWv^;-dKRCC5P&+s}FGwPW$@py4# z@qY1U@$Y#fZA4kDX3KAtJYSL`Q3auim60nk%yVY-r(Bc#t$aHS-OY~y3-3+Y= zw{WilcPq0}zXgssU#2rvtUQrTFax5gc=G@N8`E`W(kqjUOtW1j+>X41=+efoWN` zri6^7(g1*sEV;Wc!%f*>o!DYMSfA9_9}&LOt_z4_)m3}47>YoawZHF&eN zZa{Yzce|*h@`XN8rM;@2?tXU?&}XB*((BzT=({ib`vYq-uOV>@=!a)>!e<~KlzIgCVK2kzR4q%we0a&hz<*RcqP z0B^4U-qGE47JQz{rqEf=B}RlbCFXGhlh(Rx1zbUpr!bp+_Ic^ zQ|0F!U{;#aSr*)=oV)v`sagMO17}^D&3>Rvnj@%038UJH?FQ6|f_%Jvpt9YTsBo2;Cl?>8# zSymZuJ^i@97n4g6rX_EA@ zp4FK#t69iU!2^?XQ=?eME5_lVrlb zD~#dXliFsUNptnX95Oc`0(yr@j!Bt^ARZs+Z+H1@`JY(dT#jKi9Aa0mI?NTN%zx4s zOvDh`CN?Q><(!i}#JnlVj!V*d1;oiLRI45P&J~hGvc&4f984Eto}mp!K{ltXN#N&z zY%A~K6Us%Cu-2mM$Js;DhLg??IT&H7i#5cu7ss+misi)?Ybp+Q1O9Z1UVOBKx--yR z5xlf1KZz9yVn-zqT<~`HKV17q`z>eohg0SZixc%cF7icPy*eo3B_3|q6I_YzzP`r0 z7%@;V;h&9>I7ML$4$KkRGbZl{@~OprxhdiWB7pdk*S0skhfsV~40Qj6kI9Tq9fqE| zPs|HFCF&#xyi~6<_gLy@v+emje8>(Jo>_mYv!!;eEcsRe831V*#yOe}Ds^A<&isz% z&fpA{Sv!-kM8Ysu+n@f~Jwz7->yIFJq4%CAhzkN) z`drnVc$`CQSN=CN5C0C~&K`D-LfI#JVN94Nwsv5}$yykO4*zJNxO-39Y;k z&K|ctPDk)yYW2wc8Ri+$BaTl(w+oU1yddj>QDqb$tHt^auQ{wz+qylv)PG;iz69~7 zC{19}Lr5tI%GbZT$GB&|#{sj~py^u0r{)2A)xXjI!Ed(*qX%j%MGlvc4#^sw0KGA| zwa+OpQ(|#vGj`^Cv8t;W7j=4kGHx96KJpXQ6V?-bNExgGc6|NF%LqT5B}*)N_JRK8 z`x5~GqX!4Cx0@fDtt^M)sNiwCItkHR#p5VaBUTrb*T{R%FO7N)%@qq#-kcq*aYIb$|`V z&oe;#iuv*-e9zOBwcVRXOm0g5Rz*WXHR=IKR!x#tjX9o+mCmEWlafQe^;#pFAXCjC z=mEy3sGJWvrTOSI`Z9(29AY6Db0=fvj%xSZsPa1k>`@5AO$0{Pz&tx+{}eC!I5d1c zVf+GR8~)0+EMojPMZJ%-GrmXi6yZ*J_Dw9@kA*iwi;$1*omDxRY5=;Iig;3QeViP? zFzj~+r{fHA^K=4JX+f$1oe-N5r}MozRS|D@`x!j@b`WwaF#?ihs;<)QZTSHD+TxyuX_s z;SNEgVZeRXWM^-i2fTUVttXtHR#EQkWrg){z7d-SrV#d#>{u7RBG|A7`71ndJCW_k z6k{@5=(QMvX6}E}D)~%pY@}!FZcd>|h}(xBE93&Y;kk-}_tEyuOOY1@4K~1>G(uSSp@NsBVQ)V>~FdBoLt#TSFa*o*qX_gQ>__ zudJwwke{BNJOvLb5ZuVv1oRu=nYp<8sg&fHI&Z*+rR+;2mD5Fm#lfYqi7mTVPuACV zn8eus%E$E$jG2zYRK`z1>0_2Fm|-y0Ta3TBIQ#D!P+FXCVSZqt=+=~?gn*L9-?SZ_T!<-J{@zj%(Lss%46MT0>(D4lSuj2%~-LKte6B^8$rSf&OokAnBuE^y%r;K z_gQqZFe0-;K0`^JdC+HK&W$xCtx8m*27I8T`LCq+6<{(qKA*&tF+sjfZ=IyHTLc46OEVV2K^Da^O;G2Q&5nd=VX#pD>uatHh?L^ z5X`lp&wSDY&d+#>mDx#7&Bi6O~Mr_nn~p(dl2*IYW+ zaJBsKcRRXxhN(*iF zT<&>3X6yz)Z1Jwj^7m>>!*rC;5!9LNnPz5mQD-TZaI##WwY1h`VVg#abffn5qQGCP?Nw#5SBQpBIm-Dagn8uOAtHbR>{C>a2 z+wcK+XQ&LgAMbo-8dUjfGN@gAaV}Ty)n26_g1RlQygSG|+cw2Hgza~$JsDF~FcxCQ z;2%2;T(?GO&*4yN=%*EIY1)rRlY(hg`D;~?ZBtFJQ?!t$VX#Yn>T8YRtqf&#zt!kC ztF$41`@LqiWqq+ZCPMB#*Mc1_0u_|_npy%2bPsYA6AJ%Ph2qT*f%U~xhtsqGEj}6~ z@F|3hh}u;u@HNBW?bkuE^2*JJK<|=m#><$>4S1RFK32&!O8d=YY0k=PtYfiZ@l<

FmY@AZoRNp#t+v7 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 delta 790037 zcmV)DK*7I_zdD7KGmuk%cGN}|hVS(hTDfYkMHHP|J$HsQftdsx+({;xQWzMJIsPrEmiIM_jy;TB>$0qpZ<{+CI2(prkiJ7m(JVp^Zq>jDZNO) zdT>>wr&nnn{#~6iAM+1#<3}gM@_W zLO)5tHKu3u_yB~NDBmhqKZIey35bM+^fL4tT;h{|2$QcuzbIdZ>+>nE)_Ie)6=@4~57XMF%_t5- zmK4Rp)`z+XY2rVdY4YHyg8V3i?$4op#){RYvu|u9nLSzsgTs5C&Yn2A`kVTFZP9f@T-sdJSHGy$Xtvhgy5vbVj|UC5P!@8RnV{ zA9_BbJ2iniK-WbeB9({9r@VG@({h+dS}2MJu_QQQX&;Xx}dLMFh_B9=$GXs*#DmUqljPZ_SoT`fHm zD*zjsoOQ;1GEsHBNX#bItEyULRnxIv1qVlq>Z06o@OWo8D-m|@2D!^&kZ+thqsL>G%Ln-@G?-yL=;pv!!bb#<`~dt*Ek&HMAOESjuZSYD5fP~^ARQXCQD zESGp%Vb3+uV3~1{&~uEx2@t}80Rm?jo{aNyUS;#Pbhr2>XB6feO{F z-SE`@>Kh`7Cn-wLP%-n42kniAi>-=zg?p2mo6hA-kKgG?n$l_JM>eXksdE4yG>G--UDK zB(Mmi0^4zuFoubR?niDXZnEXu8v?AYIAK@^*siD7tpNLo;4Gx5OpC0tBCWQa>PH_& zi8MKzQL++qX;l5f(Hc#EKUt<8%m_VBr^U$NfHsU;f8rZ*%*m+uVsGe$pt;%{NRqYC z0F8w4;mmh3y24^@#P98RRyRdI6rl<0-PyARLtE0Re*%!tUZ(1tGT zOM4cN;1IeH5@pr@`~xnb?>wF(m@zb-u!?h`u@U*n#o1Q@_>zTFW(3g*C7xPIB&5rC z65w2P8nTmXrs_t2g1tJ|-LXQ}DWr(ie}eEt3T?{NqZr~PJ1KtNor~06ED3}q>YhMC zUAnf6?T@_RyE=~|?#7)Y5qE9jWvcoE5((1>9gj06Uy(CLbXY;=R?O_XbcOoTmVnZ9r|;svqPdY7vzfn9n_G|ZJcuv7Y=i>nFO`WaKW#Osrt z#NO_W-t9*1#hV~oLg->cWc}6#`DF0qZJ7(G5ikMETLZ`MMxLjdbYoL zLs7Hgar9$aqkZj2C?C>aQ!%3rTA`3H2DOsSzz^Zdd(wDG+ObjJT1&4!NGdA;2zNyw z;8&BGJ5z)o_2Jp|2+rUJg=tL%s7zSm3}Ll1VMJ5HzyRhOWbf1xEgZ425(C<~#L~zy zeSnUC=7`$L%vvh(HdBI-4Nd$-)%>@zAwO;ojat`v`u6vr+lFuD@L zrYq7vLg!uA4J{;uC&0sr&NPTScZCQwG8ilj!gd zn-yMjaN|%x$>;%pNT#h-#FDA*_+}(}?A>*MvQ-|I{}kUN(*^#^<6}f+3t)m{4DXis z*ol$v7{Sp;--ai1IcI62G9BY0eoSquFz`S>--a4(rlrs47(xxiS#9bEQ$g#A(WM*zBfDYXZ{&VO;2t-y{j_vla z7ukKbBcp@Q=DFSw_J_Om%?}gbEyHs(vS29eN{i66L>GQRHm(tkDx;qJp&v1A%ZHUv z$Zu9*KTRAm57&h)p?;8``2(5V2$N;bvsJX5@A4H=T5mGG`G7Z>Ej=ffqrl8Ux}quxfeh<^NVIkGnv{q4 z#leS^N>5ds*KCZ?p?(G{GVR6=JLDPP`NXBMSR|V#f?FGn2S}kGct!)r*+bkZ?mhaxH6rnIX7&HoC)rU_LVHq#qJ%IZc=(F*7AbJgV8GFr&zY zRRBk>pRgB68(>2@=y?q6h4n<_VlujUAZQ~?f(zkb1h8;D6yE~qKhAifSrqIWF>*el)~NI7xnls>vu_x1^o?~SB?+kZ?!8qHlff$sZT@^dK*iz7Y8RC%7SeN zMISBX^!ZNWc+a#xWZ>C<&kmJqT-JQUvh+H*wm#zd#>I94up15OEnAN}Y%d_Yjh@-a z!W+v*T`sb+;d{9{HuJm&QEj#ICX3?9P%AFKCTgemEkhJg%go6qHq>3A~<_qqBc00 zn1`GGc~;mgK1O!x@;lJ`;DnKyS5Dzlyn$6>2N;9=PCe3AJf6!oBZ)t#@5(#>o1I$C|hA%Av7$U*0FJ9`{mUCrSl+H_0zw)EpkFsDq z`5ZkU6dfnOcJofBOqb@qHOPpvKWUZ(Cm0vP(V_AO4Kd3Olc%H-)3b9&k#rX?HD80? zCoI<~)q9yVOQ38vWxS>@) zd>N&X(1U|W3dE;JlWcD#0W-`@A5QHC-30+#j5#LL)dwL$h7}kjAZo3Bloctp+pQKEGlwMaizubsEB2_#%@E8 zr50M-K&V>8{J(owF@d@Q>8EIdZCsduffx`sjL0-{i3#GV<pWiOm?`1}i>Qs5@5? z58^OxZ@|IQDrO%)aYObn!pG(?Ttw|WT!YT2&<`hny~CMZ!;@Vq!$wQm9b@tcMsx4VjyVBXOlQrM*@^b5l=udIPE(&9F0Xh?@DmPy1 zNmLv0ADp^*wyHV4T71&oBglxBK&|gBxWluCgloAO)@NI~ZRd=(*qs{?_N#0UeO1#8 zC#4pD#JBly?h(x4s@#l=$h}Z|rg>JSeU;XU@!H9|w!B*|q`v z>1a3{^5U~DZWRjXzn8x+|6bM&{yXCT{b@X&PUSe*A5Y(ue<*(}KltdmE+3!E%KrQO zh%Z#frkj2@FNUG)+T*#Ys(+?+>eL%A0a#^mWLij?Jm-w!jIE?d#LAuf}=~XJ*ODIF<8p`s=rLoKQk~D)h~G?5cWo zCT7bx47Jc1?Qpzw*oO`iwCtPXsj8~Fd|&n*s@d^7#Sg(dEexnGe<=A&^u~APw`(>x zR;S~6aC5$&taJJi&wuoT(73TV4x^dYS+H(0+QYBXJ$34igPGG=tbhPug0Em%<>9@3 z(U*sx>75_w#n6esIPeb!t2< zCF8D#{@4y+hN&YQ7@CPm&=^{haF3aP?urzrG#JdPuR!17#D5TqEj$+=GNm5Vqu!3E zV=#qo)!OdVAG-#oy+>=)t?OH~ZaDW*F@-dM5)lII+zd1^V7dhsO9`wKYS#6~!7xTN z%htdYri&#UjRff{>Le^2OeYhVU`C2M5uIeQJe~YI89Q73FZLbK3Nyp=_jkoaIgUok z!;kbeq7$P;EPt=~Z_T&|vf;l$C`C$|)MI^Yu`K&;HM(eRbX@I0C`rq%jb*pcXFNs* z?8Pm+F_v9J4@M&(6dQ=UJfS38+ZxNRhFiC`JEN1&?H;WajF#vm>QZ@HBt@j*CQB!3 zuwJMc(Mc9eVY-G+PA~wYPI462rt9SC#DeWaCpj!nCx5S5c|5-RGf~15(}q(jh3Ahy zi5jCj9fxys_Fc1}gqd&?mXg|nwQ#wD}^@bPP zeOsGe20bna2)eUL=xrUBO-#&zmV@|eVl$LWrIeG%nf~g1~2c|GE zLw^7rte%1pS^^LP5}p7ouwYw?`Z)r~A$bCLa8b$chzK|=L4k(*Zzve?#GwY34IIOy zPrq?^AGn{Nxu5j+j|hw*yegs3ygi`1U?B*(n%x)sf^gp61w2*E6>4LQtuy`$4N^|P zp-daBT#>ttS-HDm29~$n0vkv9*g|rRX@AYi-68@%wZYAYe6eP~Dqn0;^>&B|cTKHt zZH^u#uE0*7*$ClL$~oXPN-G;|ecK!{QnT*T*<~%P%ig8P8I!^+4Q({T5lx2bS@|=Q4)3h6tKvc#h1t!pcz^sC z{?aml`Y3ucO;=-wi-tt#Ifa<+ZPci4ZJfh=t7pIMl-O?Rg@^U8`j0(0-NfU&9kfbHLp6X#(r}aUuJ5M_~`f z^F#<7)z5|W6g=kSMTnG|>a#fE!+&?*l&4d=<#mVM%^tg(QTx}bNk;if0y_b$$C?n< zQ~*Ps$G;F6k>a@jEiulc~g_tc3Ul^V3rxSr$RHrZJ9s1+UH4^-4B^ z#Z(=2;;p1ZYqWn`^>KHnCI%vC;pDwM(A&YY?`pD`y&7v~RhmI2I!ex}S$}j;*e~;R z6oM(~NRS1djzZjM>bpwn=%_y=qX>Mh znp@~d3kEu3vBbP|D?VyL#3$^sPnErvk4(&UjImNfG&7zoF(h4?)ljxF_utbY@>GBTJ;SSJKi zvX0>Mum}q0<|5*4I7}&m#>%I$rmGi=AR#2}MNkMFb>e2$$szq;vJNM&F){t*fB;APCu+w?gge*O|wKgk?l8x<* zC_;M5)YzSP;&>EtGJhy~6L#;a5t4*f>62jG5f2p8l}Von>%V7;5I3?!y*@$WNZ*fB zhN`^pP#gpoi4#Y%V2Ie*%?2T&1Y)%b?^&#R>Me8Pg|z`|4vy5a=3q-E)o{-i{H?QX zQX_2RjQfOdr)|6*2W&Ps@EUAqUgv?-NDv*)XQ=WJY%e2Ex_=-I5=7e*&KE`fE)*NC z9hVzo%6GlVzNtbc-&OVifyROjnhrKwAUUIVZ#~tXnt+Lw}0KMN#~o^ncQKS>iBTy<<}2 zxC#}(@`^KT_#GBg_6Se%ba7jC$I+TdFb0>pL)gKAV^W#Jpl+tzByIv`fo3^@U8vZb z#7)eJ-*K=?0##=KZe zw{-nHy?+0v|C5Pncg|*4&Nwq@xEwo=uR-L5{&oBXPxESn4+L*_N9c|#$u{rsd zq>Tn=RcdVVlsyev(p_~vG#ZzTqL`z^cEczHONo-1p1#7>F$WGu6MqgzHC61)FtWua z9lOpPIPA@Gs%b5Xl_XfYQ$2+Q#av44osD)>>q!f> zNn&kAm~}5I>SY$^IokD z3V$*wl+g)1mk}3@=9KXdRSHT39Mw-Br1%Fn`bGAr!U+I0I^EO0?rY@RbKM4gp3 zyD+lV2)i203K4E(b(_ROHzMtIt5^`Cw=5PWV8Ol={*Yq@TSWnBjTMsq#@Cdm!J9Gs zf_G&&Qt`-v2#Q(opV&uWUxPfCXZNS_fZMEWD1^SuJ`KYLTR1Bc1~JMhor6c|3V#V> z5B1bI)DwXTtg(-TY0U|`s=^Ip;V|Zkb&70GPV?W>+oqklN8mK-Tbt!b4RM4`T(e2V zn&OEg1XB`+V3?jbLfo}VDh$)ei2DwZl`AiKlHh(1!Fq?(#+1%3`fTgT)KN2vTg$?rirebeK z0*y($=#;HRFJ^s#fcG?1pqzU;DhR>$q=FFl3Mzn<Eioitir6@*|qTWbYN z^L|2zyEdg19=M4Rn14i=tq}t0E)h=!7I`l!$bnr*1@L$#21o-HW%jH^SNXU=_$=31zzO1go?nf3JatIrTmMsh^JYaORp#A@6@-{Shx7|h$J zn4}ZP@70&-Hne6hy@v-fwc%zSh{-tb;DJP4=Ua>X4*T#N_hUB?1PMi5%TwWk)~0)s zB~8?m^LB*WntvKHiog2x_>&`}&n#{>?12=AU=L*G0Y!Z0{>Jf?l^|5s4vp4o+~Ue#by&3|wSb&a$AdN6E8rMz=ouz18} z&>Na5ut00BmOkTfZPZMGB|~;uT?m3Vg{@+f+jqjPyi>9J+;fudGEbaJE0sh&tGKAk z_9V_+C6&Z!p1QO(&7?-aBsK9oaav@7>l79ADlP~1|ARO|MX);U?o^BDQC-95X_dVv zO=tsVLx02(*voSOg@~tO_u&9ypY$yDT(Cpec`gXSlw6?6PmhM=3K50G?2T8rB19}K zkDd!G@?Kn!1G|t5_)0R~XI@_2%=^qMLW>kqagcVLbdty1&5T>svGge$D@mTFhvT^g zOBhl-I?ZIDpZ2L39$5fgv7wcM;%Usa3b+eGUw<<}@$hrEqW*tzw&Uk+O~u}d?fAJ{ z*S1zesM-lFjE*PN5KKv^g44%=_NX7OAXF&&%{jc%nQ2d`7I`m1&4FD=sDC51;-A;$ zAK}F$``&&EDSG^Zxz#z2#eu&@9wg@mF$_DI{MnzWc>c_vDI1U7+-Cy(^1N=xIJ#cor=AR5z{^8<(?gisT48NsbVJr%NWB7g72Z#gi}Z(k5+aGviyOFp8C&-tXnvp%|uLfBf#J~da$slhZ?%0*zA<;A5_v?>zGwSQP~ z`J~zK!8GM7Z_^!D9E39ze5G6#48*3rQZ9=XTq(y=hn2-6s~DCa3y$!9;(M!1Ac9!5 z@Q3;9KRE{BxH><2osKiP!i&S=I}B^iHGu*ULV6a34#sxGEl_TBt|TIpPh`UPcBCEF z%kz*)CmI?m_A2GDAR>W>%)Xzb3I4$`Ume>g`9qY(X9cn}5wSnd%cS^N;ivs}N^xfq|19Ud9yWVL>kKiORZ|DU4@S ztgs7l$&y3(9f-n-iHIr6j~`YJY}V(e zpt-Y0j402pP7$Hd3xBjdU2O9LB|olft0S(SoaT+AjP!)I+A(*|&*s*LqpWK6sAvK+gbLgCX|8BA6O1&ptV@E$oxS^6c{= zdl>wJjg9SxZ(d;2`Ug?XKRfS%4D)j)p_vf}yurBirRPU7C<0U z9*g)3g=x4kPlU&9;A${)5a1`&y4Sy(REwuYss*DkgK|kZehb>jUuK44T&^8eiq&86 z5yxiy?d1}nsqe%~>u!j7T1S1t&VQ4gQ;tFe&y60G7-8j@DSL1%ZCu`mvX#G%R=p1u zf@N5VGOUG=sDEdr5Ox?ql<$<<;SBbYBHCMgf{ zhLzJ=X2Z(0jyZym-nhUG{XDwgD=L9L$W37}Mt`}d?|(AWp@)RLZp??eL0YkP2vz&j z5m=4|RQg1E3J~v4vwd8?+m$vP&p2d-DCO$?X|A&Vc8FH+cs%3mVBLms@WAPfsmaoL z^$|xlyOD7P!cdUUxr(bN5F(y9G7YOb&~0k zaj!0U#FR9?V?yY{+w=~CzH^? zqA{8^N*E(AUo4pGES-GmR8CchyH-hswVDkhoPYn_nA?ndU4$JYPF0zZucH$_=a2>S zV&*f)0Kbq|!Jfhszx6$>_WU;pl(hBMNbbc`e?Yy|TUS_bZSKts4IQ33p3j1tWs<4&Br0!RBIQ-%GMk6M%tD;Jcq3VPwvp#bRnKF?6eT3I{5%9 z!hZ?v_T|LCfTqQ zC@ku~5;=qpqibs>iF!Va9)Z2QG1Fo6so0yPjvzO}9!9@yYt55B>|ykaTdSas2s^S$ zy&hz(5rHMBV+Px4LM0LIS|t^h39V5hG=E{!V$JHQs~)IBNV)UW5h7n$K~EhyFi#y2 zYA`w^jiDE(7wgn9g-1f_n8;)+btr45qmB^FQ^yO*55C7@ngovJeX$E2u#f!cm^#*5 zyC`-a`QfR<7JET!HPjJeN0a^nHzgXDgl*1XJ59_Z!d{Wqy|GY=-1A1TO2Il5H1raM{}snbdst#aL9&Vu#fj7HXr)T9^mBW=T4^x zV!kn#1)WZ#YyJiHA3HkHZ$hZV=zp_unDx3qvOBSzA=v>3wx+JTsI}>-#9mf}zD6a^ zxTMw3OQq0K_vE_}cde32zQfVvjTaPy?}WIK=R1qM7vJT;Jl}mv3W<%FY?tj5JGnEq zV>>4*+Y+qxn@n5+@2nG^qsG#o4De^$nPGWvD0ukE%9EP#v^Dq(xHAi93x9nQ_IwV6 zCMPinjuo~iINA|d%9LlKKB9}2U(&{g2Red5@F2CR*o#bgrNHSefw=Ifud&C2)Ksm- zG8Fb=R9?Dio=1|yGwViScs!4UU~-N%;28x3Q0%d*(5mXP}a#tk&d#v zthQ1qnQC+tLLWLXbASsvYT7U>l^bT%URGUBPvW)?zABA2(RhQ5x5Icxe$jt#4_{J6 z=!v;+@2D`6daPZSVr~9Ww`^b^a9InCW_moj2B*E-8kCkCkC_Fa=zr9BAf`Os%pQSx zT7Dt#*>jg|gRpvU(m)|tg1e%rS{`)V72-zJ;LsG@h5cwe`fKZT%+h7dyw5%13Vo=k z9`?DT>aDfXa~9bThkNcnq_=3AyV!Ga;ItBsM)N!LS)~Ya2`xl*Y-=pQz=~SyRL4i)lbMxvZ#9gx;MMkg*C}Uc2MsT`%;jq@V zYV$fmjw+~^UtZmW)m#JfO!1j&^V-FldCfJO*TutcaKvZDEq~$7>vWrDBrl|t^5%5} zCQRNLN6*rg(r+0m?sR<5u&tkN`Qq#T3T?-gVh4b z2j?ky7m74I)qj9~CzUdHC~&g^I}|RW8)wgfMX-}bxucTc{sq?cy%F|Kzw$JXOro(TEeO@oK%{My%q8G=2BDhd`)d@=QOY3ovXBJp+Gjf7kxC?Fantfd8LQ>)~{2*Tw$x{A2t3_I>-=>yLf= z_G5dr|NZzDe{ehulY4JoEK56$hx2ee4$XhtckSm-`22WW*7oUbJC62y{-39J?PpI< zecQKBKec~oyT>;V?bLQ(KeV3?ZTB1e)3;q~uf6)^p}|LgduacoefqcdizjPo-0*ol z%*!xy>#ejtpLVS`+tz>h^Fuqf-Sb0>#{d0vEH%{+XnH)2+?MZYp?{_$Pydy+d^~^l zhkiPr?*upZ{oypu!zFNI-nzM84#R1hE`cj_cJ5Dy`MCC5II~I;^VDwV>BCQUp3p*m zDa^xqn2vpNC05($mcB3;<8rum+Ls9nw4H~;>3BT$?YnlKVCKYEnqPt|BM8*DzqI^E zbm33!Pdm=7VCnI6I4{AP2mQdf+3|nW{}YX6XIP%^X^%xY&hzY%{R&UvO^(6cCk3#6 z1Q0_64py^QAvOH24gc__O~ht&4tv87tOBG+I%g zV!u#gZNJQiaRKEcFqnhc9pG=82sd8G-J$ZI{7??-a5&CKnsGmr(rj_cE3JPX9-6F= zT2F`7xV%hncg;59+i&RYbea#-0M14W=c?Z3hjbpn1miBEMoQCH@^1heW^9BJ7_W-m zI0buPH)GeyO~5?OhsF4W2sdSuh>lLD_`Kge*ACx>^1diJ5(lobA$iPAN@jK<`?Y95r}`~H~4V{p-vNZ zqp;R!NMK%$S)=i&>v8mB@@sk2$#~Q`WTKf?EDXPY>}I&+QS-fH=f;FbGsV5BFjNN2 zIyVN>dk>X!tI}QJJCK1aC#-T44e8D63nB1&K8(}KxP|4WFz6I|G0{Gna=znTl1j0@WgT&=T>&G+-2%`Yu+Wg&mP3;ZdC@8ZhBA>@B(*2T@Unqg%fCnt8%yhyXVcpzMn)n@C7U8c9YW=mnn){H!tIkCIFxA{iIVJKIp z&S8XL_jDK`?hStqV;&FdrLm7Lv9rhpj$h<3YGC3pINf;TJ;&ph95KA2NZ~gm1@Y$p zGX)d71ngVMGN2}Il06?^H64c)KG$ozxBPe1>c9Fw=U9Xz4vxkCLWcdHwFeOl{W158 zO;)5)jZwj^$r9vo>->TZt)x*9AeSDZy>c>2{1{0giokzf+<%E9p>=F9In??rT*-nN{tn9lqIR0U;X<(d z9rA|Zc4r+-Y(j*a9xlsYrBTA)rn`#2F(;qfuPlE{n+|)eWh=3k-V7-abw3lpQ3%8^! zi?!yfSgZw`3uF-%*U*G9Sr(i8A9r0Q+J!Sgg4|qeP)gC6dnfr=M()#u$WfT!@g^_T zd{Tb^j8M5Q6cz?L--?1$nx{J7q;C@lGLb%18zI5o63}RP)qhjK=z;qAH0PqY4I( zX&qe2At6Vo;`m5f=muZ3&k=@PYOoD0z9oiH?C?x4D9E5xfPxBo{~X5@TmP|6hh=}n zI(8i@2rsmI7N|Ht6XJm}x5ZMEPB^<=cyl3GV4Hg>xS1-=q!Pz4@Z6y8-sZ_RK@#WQ zT-8h-+r$-WY&+uVaF??KHJB={sG=$23d7vfWU4z=*#YwV{BW7PkXwhO%m;55IpHahND>g5wQ8-Nb+2O$6A>U>o-`J~yiBA9c1(IyX1&)8;IRJm< z%d@0nioe5}xtHEsDP$QoTAe?KJV_v@UmPpBMaGe)7?{5#J1bZGjLg`KOIpa4)WPGQkAA>WJ*!C$@^8-m}|Ouh>?0?=ZsLU1h@n46tHi2!P75&>kvOay;`2c>M4qG4{v zvFxS2Iq&}@0tk^)iJl_6mk6K+R+RP-QMt{THq7r4IJ+yX$$jKorBOvasks!@qNhrj(DtT-! zRsFoi$KeUTPzD%Nf0%zpT9P*g7*vetCdGrH!!I0Q_+rFpDb!l^sny1}%G>;EkywN1 zkxPgaF`2{~7R(QsZp3u4Mu;2ngS37h;C+(sv57T?vlJtyU}zV_ZGpKOYgn+tS`#mt z4Q6eup){%zYm8gD&&3uXl8y7hBm3`lv4)RRlyV<+s20)LoiBf#U|PAagkyEM+Vb~A z$gc?-Yt-hE7KP9%{mM6!xRYXIjcRX7IZ9zyH*%jATNP_)!E~`k4NX{*jWrB&``J|m zrq)!b$y(;tfP{L3$tiu`b$jGo@_tzUG@}blf+(ACn zI17;vOXh}ES_OY+VdcXT&V8JPl@Dz*1*dB`x;neQ~GYV-HK~CJ3`yE-v_T;ou?-BSAJ6_EglaE z*-e_>lLANgvC9dsDvME#i}ikY*>Gx(bM?kV#NzrzY)DRer#MJ z6H+rZXP@4O3RQOv%6Ru>z%pobzL%BMy8tJ>b z9&#^nnbEaAum)P}9TS-%|= zn$6rf$){5+D!7gnHXK@6g$;*Ag$S(bYRqX&-CR%^*%L;%spT)8Fq^+X}}E zZiJR^WYEzy4!JOj3IkaNt%CU}0YAU-9QlX!Z1+97hDU3+w{Mir!ph*IYa%dN$S?hb zV>Ex1(kucBdp?-|CqAu6f|B&Bg14XtlQO;CHG3y-K}Xlz-dl~sup}xh^@|)v2zF10 z5#pvMTfs*Yo8X86TXa~9qIMHBHpjn9~!i1-F0cnhvX6=`@^ie8zzDRd|SYu8Z!WDk`0h z!Te`&Zmx71QJKT$)|Oe?A<5N%zMEuiItL4<&>Ooa3m{(Q-JMCF*z_8v-6YZx8_OSR zFa!8!kyo_RefYPYY2Q>D;OG`y1ckO@4 zCmZfsCDKIkwvf>=`vxV_sVM9kinlGsrN^DUQs;eOLfS?lFu{3x?)Hv#R; zfCReEG~=vIJ68q2Pv$0&?WH`tWuO+mFdD)@EtoEBuc1Y&J$-x0Fc7EaaQ$LxGp7Nx zyRa1?(^y7;bYO+qP}pR5VWm+a1Kod-vt^qxMiNRj4@*m3F+3s4W?Ka+7f4SQi>jb<|raN-DfL)YB;r|WqhjP^)dvq}mR zOXd<>?qAYXIR<29wOBYj;Bc$S zMwxan3p}L!kfh3l#*EVi05*TacPPOyGjf32|Jr^B$DhbYFL<__iB6zXk@ z_gL}MS%Fma$I#3am|wskolbxBZipR;IXXLg2rVC-o$u3*N7=nc^vAGIg#{gseJ((t z>-mMlC#<HlyEDOVPjiZJQ59iiWPx?0tI62P56y+x(D}`{*k8oG?um^c z$(}A7S)6BNI6XRtQ8Ry1!AE31LBdTG9R)HU2UZw3g-s^&(HdoSnU; zY{HK?+^3nm6ET{Cx(&;*imImu1GBO{=dHMkCaX9LW|+0E$|`?F!>o#`R|ONBimF}} z$FCq^RwHMRy=FSa%#zYUkqnZ8ol_n@yw^W@j33DOSh}q+qQn!2(=L9r3$BN#QSjMg zKg+DWpitgp`D+(Pv@a*#6xQ=`y}X$MoFT2&Y87d#)(1ajG(&9I2bd`vPw1wxZ zj1V~1z{I99X={Ht*O2zBjiyJNAOLF1{Hidb`TdqcR{XSqi(S8e|Ke-=GO01KrpC&i z*Y6tn@hHryjdDL{C62{9dS*|`<^r|Px6d*bi*zj8k!Rp!n~xy~RWO4CkOva*)K44FM{o|G(OWS0)w4(5iF@jMFhtPX?ZrtW`!AN!ywb>OHktZ}VCY(%jX+0iJ8qFKXdYD5lEI);T ztcO*>F4e<)s>>AB{gfP!)-J!iq8={-lf|8k0cgcV{7JmY&kO5e(NIdW$xT+>Y<3r7 zJuK7PU9)%A!*1_wen`b(SP~VMI*nr?w-SdDg5A?$gt#exucqLm$=Y$sqpltgZldTY zOafrR3InIG$?9QBqmZ>rB=J3k5?}a8zy%c0#Yh%wIxCC$9sd?tED_}*W_O1O^N8-8 z$|lq;#G&R_6V*5gzY$%^@5|#1@r%Z~W^RO;c$05t!t%UFGx-**!lvy=VcfZDM{O=P z_pGxNg{@|Pn(!hEX1I#qiPhE38Lrk8wi=k&R8H1wIFhV;t~TAN&ehg%wJNkZfsIo5 zn}jw46_lBc{feL%NAsx%T{eT=tyzTddYlBcqD%SpHsRMm)aFK*i8uLX=Kg}E=#dL( zMrTv5A$RV2O&r&P>8M*n6PlE$JDex^iRaXAO>!-Nez3c$vsJ;wrXqE#I5$wYF1I=E z(k>h%$2N_xl++D4#mSb}yFL^`4jNdY=PoNYyDg8!%jw`|x8-JDcDKDpGiA!EThQ#b zYOv*4u!>UYDw@zEOIfIGru@qO$g-KLYT)iF>`)zl56l8wPk++T1VVZGvJAKbmob9gZ4chC5V zB5u|MmxX5UQ?hU>U!$fz|nq z5I6E0`F;F%{{&(Rjq#T;*8~$3Fd#4>Z(?c+H8wLc3T19&Z(?c+mtpY)Ad?U~5fd^o zATS_OATL92ZggdCbaNmvIhTPm1t^!&@dQj7G$1iIATS_O3NKVtF(5b~Fd$MOFH}@D zATpOh*aQ@lPgOgAy_#*0+_n+N-|JKG9ULB4%9O_f6mN*hQs~Ud~JR;w&Xvjt-ChwI@31(@bJcbXYS3@ zFZb5m?oHwU_P2acs=P0YqRejZ%pZ3=FN&srHM?6=RsOwj*xi|@yPY-G z?B1Fm%;uY$t#M}aVr!n1X7ikbH5=paeer&q@#xdm{AhN6F@M^5N#lY0Hm{qqK8$XT zqu1Tp=-KJ$uYcZ}%4{CChQYt@iqufHWaz4^4r2wR348)%_s?m`tHS2i_5GE)tF6tu zsxBYXotu|`uC`5HcFsMfy9C(Uc6nX2_Ov^(k_kPTQ$2ln>-EG4^QKUjZSD#?X^D$t zY#N)GjH=0hui6`jfttF^yP_zpxihsxOn11Gy&v7Fa3E{mo5M%Ljd$kll+U%c5NAEw zeBWhwoU`8J!r^o-cki}%-v-NX%x3Q`pLyl{4(G#v-`@DgciT)ZKKKj#gY(z^{NA@e z`S!DK!*|+=KG4r@ednLI8N)@LYacjvJ(7TP?jVQCr($TQUnniW2Rzo#R2T)J;_0iM z7fD;(nUS^SDFb|?9m!|eAd-T3?}yf2Rg5w8JY{$lzG5rLPSp`;A)$m6Ex@Er)8~yU zHRDo$NH-i*l~A>i=O$sXt;@S!+;?qXOwSxq5fJJcH;wu_()*Nz&5_=jYD`D855pd& z`e03;wi*0;m}<_Egr{G5)#=BmhC6Bx*y}t4ltoD}ssrkvhbj4n8BCzIMQNHkxK|be zTF1mMx!3;oqZ%1DgV-4Jyuh}s^S-bM>_@tP%yPWMRpm|RQ34-Tgm=AC;croiMB;mB zfWtmq9#kPW*8pq)Si-)I2zCX0xLP5EcQHVCN-(@pe1sQtwO@k>O;vS|$_7y++lib# z&N5QYE-I^gLSt}upEXSwS==L8(|$^43PPU*eVqf!PE$AQ%Dk|B9Safxio@{%P$r3g zW1Nn8K%LDCHwsDktBtFPi$79?lV+3*l;1^!mdFBwj#OcTin0Xp z)zCqQI7gAv7MIOMCvS0Om%DKql(e{iOcx#rXcDcU!hfs9#h}J)o}Cy!)X*0VEwI@@?u@?R<5rk z6TX65sYQA~*(QYFfLMW%iKdJ(Q2IfjGe3(7c*)OPD^V}afN_s=lpdm#Dr^sbX^7{g z!MHAO+P*a^#1*tu<6PHJQcwsP9~dA$4Zr>{cCj=%&l?0QHhe(FAb0kuWB62V-f5M_=;;~c*k@olLdyD+baLD zImTt&AjgGVP<7Wz@5Z^qG7Z#!3PXp#TrE`_lDdl%?_>6$D{umB6r9%R2o|tqWg?+2 zV1bJMe13YL~Y? zDm#cYudi$=zE)Hd*XDbg8PCPnQQ}}06NmF0ZCDFN0?h+ECg?Lur>b~=biy~Ybh;pM zP$4d-jIz5{dUw^#LB+ZZ9yO)1?ls2?glH*CEY^nD(J-yAVA7JVQWAqjIEN#sPJZtz zrPMCDPt}t4seh_(roa8KUn?KK&7_h;4;TV1Ge}EBWGqT(tg4||&eQA9w$G~`hgGbX zO_{9IN=gmmRFWKdamrqQ16wP@w6a~pf!QL31hLIFUGa+igxLP^^Q-$0!o0i?4xa(Z zRWg4mi!Qh9cBybzz(~T!HrjDfb7hb#AX)0iWm5oYkmbT0rYzc_Anhwu6Ohg#Nm_44 z^!5{$h~j?n?GaZtx7TMImNq?ukL5|TZL(}&douoU*oChR=-1Bci` z3!{>U6DvGGd8+5sk~qgt!HS>K@~y@Y&e_i4ed;ZTmUY&lHztoa_5HtdKimArKh--g zm_R}jgw6okHS?^)^Vu`)Nk{mHe?TDMRgssR$IJ3^o0@)q*Gm4uj}wwcH>!6orJa@n zSX9`a@T#+!U*T2vZ=EWRfMackzu%! zJ<&m=OV)IMC@o(5PNE=k_&f93687ZIN(<>fK*7(80{yaJf1!1 z?pUc;c`}i*O{jiH5=N#O%awFDer7Y@PrOZ$>c_{5(-~ufcyY#FZoXB}G5KpifSY`H zfXSGwKXV0RJ;>}btsnJ=6EeG8F`uwp2pxa$@9S58H~#!y-%3tw$p#_6tim-skl-2; z^d?jv`KnlTZoXm+$o<>|vcUwt;|&Xv85{71VQy|rFdRr(j6>?|!$B)--eUaQpA3vI zPw^F*2J@UFRwgsY-C%RU9>cJ*WaXK8Ax2k-U( zh(1hz=h%wj*Eyr{3<`Ay*jc44$ z7i0vVL`XtM@}YU1IP;hKLh$e)m=5?5Zt93c+Io?*&4czXHqVG+^P0%eq1Z4ZhHu62 zxe8SAASN%~;kiIEqTU+?pXsge@$h;Ce8K)@f21Pl3@UnDME&}IIR1z(moe7_6Bacf zFd%PYY6>zlH8u)mZe(v_Y6>zllL2=xlRIDWf7_DW#*v2a@f5i1i7;C@qj4#T@=|tC zmaXw2Y&tfmAt}kyi1v&nt>1DV$zN7xRaf-@)#$-QtR3DU18AJGPXC{$Dq#Lr{<{2I zSvUOOv+WP#{%|PA!R_wemcK8*FF*MBzAkU>%gX(`zu|#u-*kE`KZc>~+Wpj2Ra4yD zf0iFzbG@pDvAn)1+t%G@yX)KXgX`}xkEQpA2c;LMrN92>s%*>M-Bn59e>_yV zqUwgC+d~`5vX*ArCk?s&%Y4n-s@~V#e>6RjxW2CUhqiAn5!Wx*uCIrEbLhHD#AO=W z*N1&yjrFNGLCMTGm8awM{+$~qN?3+M-;DdNs%MdSwv63SXF8)D_KzL*p#z|0-|P=n zRn_Hf*>_a43ulV&qBAW7s>|=n@Q^?8b@}cA=jy5{$GQ@>I?xx=nXLnTS3Antf9|w1 zzd69NzT7ps8FDZ@$-^9o?ZJ&E+{*-tnAsL%Guuf9|geDdAhrg@QiT8{X@)RxvH`&Q5BHy7g5qujuyO zm-^H{Vu7MxDbb$&NsnIZjdyQ!uXPiJJe9k>6Q!r@VSjtl@K;wkz;yj#-?fbgj4963 zVTlYwZlDGC!_@BE0o)gAYUjs#+9ZqXrNWJfarKLbiffOa{>!JmsIe-l%;^}g%d z`dFygw|wP`C9N-L50yVJ2kTMH+C4#gB4-)x$6hGtg;&nhGO`J-J(~Wi5J<4);Thrb z=U^2u8-5L?3X*#yfZrcfkjYEM-YIhQ{x4P3R+I_{74{oYiU)M)>VtLc6QFeL5%^>% z6`hkRK0LqT*85`K*3M;kQlXjMHPMhB%doYWn{0quSD2 zlm{vr<*bT&c{u8J!V_u6a&QH1q^#&>UvV)kNe84pX|4mDZuW9uf1z{C*1+S{?lW4B zSu)q*ciIo1=+0T>LJDTAztD54o6Rx!igRe?;0r8wTQf2|L+6{jqT8M=d&kW|C~+zb zrq|U9XY?a%4gM8Q1zX}UMjQjpZ?ri+nb;PZt2YTQuq{{n5$ zRmsyIxZl6R#5jR+f5Bv^KrKln(QWDjhFfu<_zge9nHNY3wGr=$gSnbZK{8xa77!y= zDm^rd*a1$8m1#eA1L^gQ8|b@AF3mEh$wo%RX_2SQ-M(Qo+wG0P$j$n z)+78Y;5X<&7oU5h{dPlVaEEwXivfL2?9&W{OhZ(?gotUSf3mFLG9?+*%QpyGu@@i-GPHFt=N~>jte>{zstp1q8WkuOl?Y?UoKe{WB z`)nDxT{Y~-{#4jn8~z2Y$H@JUx0L)A^#EEw|E+?TuHaH*!jHCmf zCrJbPC~LE^b%ZD+Ipzq_oH8Nfw^oEyQ=Qc5u|`siZQQn04!FI*b4}zdFd;SHvFmCU z?Gh$9ba*B>t{4-fGo3k3k`;;~>GyEW*!0a+fu^^F;^w?~adbXiQ6cXV)y7(THZNYd zf5fqOg+ty&n{o*u4%L3>CJ5nxyuyZ~KXTq@-%m2R6!PNRy-y3>JR#ag5W?4KqxTuw zwju5n?=z9}e@Y1H%mDfm6#b_Y!hz-q2+`FnOL$5`ymN~Zln?KmnK=4M%hsWj8B_9< zy|2#(5IgIzDCa`!5X)Il237Ab!7up?e+yyE!_iBLpQERo)8q4(LB)$R|0oq-SfVrJ z7nYsymUy%6yFTsx(Ar!`j4cc~i-%_86FNYAL37E}V3{kVJ>b1X@Iph=@HFo%wNt;Z zx^}WkKLHgQqKBts!q;hHVm38sC)ZGfsfTuI86>Ia#^#Fu6g4*=kStnMXDv*OfA=ug z- zWz^ci%;qLYe7CJEnK=SO$U8Hql!SB={noOe#?2~-eU*F>5j-~c4UrYhm9}sac5;9k zq9<`Q+3GXW0bG9nJwBcA+&%gpe~rU|Zr{o|r_?z0B|fD-yWBG*A9|T>i^BN1{KEr} z`~|)#Rr!gqiyfsBf&m(SQ&o}?qKiQbMB_kDg_K31DGM?%=q8@XE1nu#HPtndOkB@| zLTT-!xSUhkp~>804Y7GLa5GU_D)C&}Lc$SkzvLw84GOjsCpjS9zE_$wYDwY-X!xf9B~YlJxp1{SXr9XBoql^y~U@-%QiNI(efZBuUbZEaiPt z!+#6Oj`X{iOc33VHcGRG%ib`Hi=AtuRomD^AzR$UWjwmUTGCXGY+lY~*8VeEPJdYT zz%pW@dn~vsyo;=<0qHNUm|rQ#!HG7jiZ8uvJDLM?Rn_2!bVa}AfB45j@1`Am=b13! z-fB*jGuWATeZD^J3)`zVq{HnuO(Hd@SsSq`8=@z1TIhPR?c1gU( zAPWJFhe}G>`jFDDGio3_^{j7s6t<>Q0xH3taS2vN$tf2bqU1;EzQ+4}Qh224x3 z35trSM`TqqvuE;JNq2}>sbm-W+Kksr{5@IKD@|pG<4xSu+$XyoyLl*4rMstM~Ij^eb<(&S|W6tX*NIM}!8}iuTf6@7&UWf~q`>r@$n0L|}vaJ6s z;8~5qc;i#0Q`cs3OmUkrN-UbeRAFSdJ4;h|JNUrT95H6o-;01Zn>cHFF9ST<-2vXG zm>&=LnfDC4vBNVy@S@>nkieRD8gwDYMGl{4IAk<%RBg>=bgsB00^=n#_qIT&$pikb zPgBTzf5fsJpnAbemvdrgxufx6xlHbVK>KSkB;i&EF8YW|WZ& z%~(<0u@*raVCGYzsTHpU+^Tazh1EG_D}2F4;YAzN7nPO+Ov2G^u^aSB^c#@St$H=I zkTbfqTW`sHAQ_IZg}-d)Btkl_pbpsDlj=cXfAKiQ+_>|mM3j0{D$s6ygzvSuxQOoD zkK=d-T*ud&q`ukpQ!UHh{c@3|MC4Jk`t?)vK4Y**yOYERF2FKMYG_B!3kBe6vfarF zE!wby`12vCB1w!XH>DPgTO&Gw%jF3*{TJC}-U}#z}n^EL3XqTteQBuv6s_ z!GRF{Y2ZrTC&g~W7!NUv_>D0i)1#<(e+8={_e}gRk&52`uY^|r?wNM%Mx7{Vbzh>0 zC%T^mt$D@n--r)|FQRNET74rH<*Y<&Ea(5xYVgOQSrhoq#Q_1Wu4A77tqq~T5v+5Q zUtZ5)<#b8+PpDD+RzfSbquWky%L;tXpk0~U%HvhmBh`F2g_rVO@ry893D>E4%3m2mb=U2!)I zLZ-p-iWN}$>TS*kWF-TiLKzN8*Gpq(mNTR=7>#Awf;iz~OxTg!V5_I3K8(FBZy z%G)TnIg`X`57eZoSAal~CndSjf18mdIh?j4ReNS#!wHs)-B~QlJT3Mz=Tze<^tBbg zk&zP0`etnPsl6Pyb-^pZXVB~bmPNC}`x-Py!S4c^ov0OQ#K*o6a73W*s||fF5NxJ8 zEHzpGJsiouHS!}p~y z52Pr(tMho6$M8HmM>PMnJg3}yKEr0OQ99+m2Ig_I@v5?k zik?^O4)IwBSCSAb<%pVH%w#&m$Mrdjc*|ry1>%E#-;Q|qmL18E?TGhTjVD1o7J574 z-S9ktVsCZvgP$f^^>x40e@TzzZ7x;zl8wu|)s(GHjaA}-l1`(O5FN}IJO}+HF=?_a zC&nQ^60-pOv|d?{e`YzVXj->C72_%eZW~Gw;od)qWl{N6!Txg;7$FeGTHP7-t@w@U zVG9pABOHQC_*Wd@g7AP|2&-B-qgR>P;T{|q*4usIJOC*`T_i-{UvU}Kgq!fLI1jft zgKvc(yaayh87moiT#!?RJ&eH#B5E5oRd&0AK!tn&KiK*>&`#<`}^%Ny;u);5K|YdijcPh@c$5yqwFT z)^om8SR(Ve_R(+Ih3xfQHrhOKaB?&e-s^VZrupdR*QArZqVya?oHw5bP}{N&_Q06y z&~F?Gfl%dFe}IU7n!(QlSNsG&GPMtkq-E^H(6VSlrVMD3gg+HwV zHnvgxn9#;quEp;Eyg%ol=7n6a%Hz6nk zz~^qd1bhQueyqpNs=8gJg(hz_ph3=moB`FAZyO0#eAj%(o#_$%h6Ts+M+a=DUor=t zZo!mi!Bj4+t*)_g;>UFOCF5BB;(7puzDE-+5BnCCt>)A$8-dOxSN7izCC=p zK>k6D{?0rN@k3C=<=+|e5MDVrWSTMYf5P7w6ptw|A@z#Iy)R!la6NZh5-z}v?_sf} zH^mXc`J*F&DO-#LTlBvyXCUGuLe>lJUYB3tI@n~Z&)EeWr@_5C!Uc3l*wScz)8^w_ zPxb_(D1~sta=UvJcRlqdno)Xu%~vpNVh`%k-_qL{GFqeFbOtn{;rX*ZUB@32LOLd5 za=9{1?SRtHK5>Qp!ELWykJDUoNc5$eQTp97R`G9WM@QVK6rR52hpATS_OATLx@ zI3P1KlhI!t0y8z2apMORm(qy@CV%Cf*^(T$m4@%@De|&9LM&D;wOvvqHKJ`U7F%-6 zjOU_7Qj0A%X;ZYvZ|RsBzt4OJKQar*N+40)EqWp*x+51P^59@O|5<=U{i*tG^{1+C z_+N3{?02jEzS?cw>CbPf-&NPu{f8gw>eYv8?fyQz;)V69>2z-w+ilggtA9hYUN?(Z zZ>!HQdA?q6ch%*qs%>39f4Y2I-M_r7tGc@UuKM?C`SQs{)m6)<7uCI{T7Jo?u9lTc zd+^i6f=54JRR2+3{;GO>={SuGKI~STZL=9lua2c}_9vw;#-(5Vcu}?0^3N9)h5y@r zohzztD7xLZLs`D2nfh5pE`R?p&3U`7S9Nzd+!47=U9a}-ra6b)HqG6p-maQ`*PTNy zQ`t?uUv1XAdQ8qn$wWU@<9>Sgo$Dt`NDqZgvs-oRdU7Prma*K{nZ{_htDAQFwqt-+ zn`X6Nuh(_;w%T;C*$pX+pMsPY0jjH?s^O(R;fLzG6PaT?R=av_(tqj({i3U#p!t)U za4$hy{ykm0y4kGO4J-}B7Rc`uF)y{bQC+uSN63`*@S!nD%u#F(8UDHhz|?xOUg&bf z?qz7v5#6S(V`A`FcQY&kRZp)js*MAS^dPLaht+m>*u@3hl-pfvt=G3`fUE^AN|ip# zG{j-QTDM(O&Syrtn}0eOi8gqwLDvp`Gc~70U%YX^3&QWJrLKWu+L*#fdHL#M0XqNS zGQD$0J-&9=%JlnX4iuVQx9WDy8T~;gry#r8Q?ZjqD;nWc_Vw#GuVImmlB1 ze@AtkhFhr49059x{(-X7JS6?_hP(8@Yj@46tq&tHDIM7;VSoB?dFj}B>9F>`l3utj zpl@ISZVyf$TV5r-x~R6UyDVw%a&b(v*>&}5$LJMC+)kLgZUZnh6T(~{=B4?|N7R#U z__aIIwtF|y7;jgu%2bw`z3%l6Pj!vOz%^Y+$NkYAv;AU#xIG+J?KTkKJ=RYa5E(A7 z81QBbG1l$GAb+4hn1aC{on7>;9()X+(Om2Y zc*Mz6f{Db#BcBcnSy+t9_ z9bN2Np`bN$?C$DS+jYB`SXq-c>$=S`O>vHUy{JV$q2es=j}pZh z5i9DCNO7WV03NR#O?NJqZ83!3$L~H~hwuD+VJa9rHJ z4IS&Qo!1|$CkFDSmJQKSS=D!NL6hKBb2Q91_7F`w!;)dTp+0xCn&|+a2cWk*e-aVX zN@V<=s&e|QddWQ&+mq*VTuJQ34pkC<~s7f>J=jA>~Vh7=Phty;#2dHTmQkkV6~*l&?LofSA8voQmPey^IS zgXstg<)kA{2aI2TZ+3dR^iA8Yx&v|Kq+Il|J(Lg;V5>_O^x6$^$OP(HBpK9O7=N9= z=jiwV*LIFrUBHy-muxPqzfF1%usaTH)3(BMf<^x*l2oV9{tK9Tt(=&Fi`~`gfwr3C?OE( z`ad052^NwY(<$j643CBbqrmWpol zjO8SAu%H}w=R|d1YM3#=(t6@(Kh?dCiV!arq-BoL0YU~!2}mB%WUl2I_wgcOH^t1Mia#-O$f{D$$yOSy;K2@(9TP$ZHZo5o(2{Wh$6!4HA~wUz={ayj zURsM5fV!b_?WD@UD8M>j0|iH zQNo~vn;Rc}l&~juj`1-A9(|P1k-h`tW5nX8Ha;Z!(%G^f1Qmh}6X!zXL;jDBy{TbX zple|Wt_CTm28WzP6)XhtHcki{f-R*OR5{}Va-kEZJSyN=gUUOJgMTv!?EG3)cIEVx zUTUDKh_F5(XCX^N5yQYF_4yYw|#uuKwnNgYP~eYcg_;)?Xl`2P0R*J$kglrac*(Fn}`00>{MNQx3~oQBVxtSKiC@SE*>n# zu!NgKzYn<$#Lj~LJyuMz*I8NNVs0XRd*~mt_^F}aW2{U%1%J9?>^D#Go5x=vr=ZE_ z-p+gZ_`b9BeoHcD-`9Hj#HBr!-6yaImqBMy|FerRDcw*2dM?^F=!X$xQ*aoY^SMa{ zTmXI%6**zB7@xFnc}uLA(&+V3Z{M1ep0_+VEJoNd89MZqErQGm6Ko}ikO9!f)>GyI zs5tO7ORSgh9Dh>=Kp|5J0E+Q`xo$J{^tNY2HfpmGu_6E(^H`#jegy#8Xru2l2(%>@ z*>2mY8E%X~ShAb#mW6;lzjug0fZM^wq9c6=2sC1`E?QrM^dU8W#Sr3znS_8Lgj_So z_KSYS@5(Kwu_RqC~nMBHt%mF*H1AlQ|!@j|gpi_AnYi&4+Co!V} zRB{hOCg*xeI&`o&NeS6fDN(Idya*Xs0(VS4@}BaF3q}?-R90~pmaHcpN#;T%qYr3E5S1_X2!5damVDC9~B7=9T`iuO#1jech#U*_WIlW-aEPT6# zZS_oTg_llg-#mUQ7V`Rr+07N}8nJkT-i)v_?tepLA**kiPAiEGhNkEo4c-i$-r#k_ zZU;QhBMO;H=$lbBOM;`DQugj;+N_UtM8q7A1q)xlU^Jm_Fhnw>2IUromwE(#fP_Ez zbxzlMW^>?>_5Qxm23iU!(0_4J{t@byf{VzVVwjU}}S+b=CPvmuM_u+f^>rUbzwvXgD*XYzB9*dusE3?8QjaO{Wx1CKN+5P#J{ zI!@wbE@WX2Ls-I%9R{1{GKXOxc9z4iV~i*DKOqa}Fo^W+^tK`Rn8m3UjrBGy`lTc_ zGOY)pyOF~H>dGGGD4DcQTNpGCwzz;sf(!ZqJ#;BJE4UF$%7cxG&?~2bv9n^2W_}7Q zKxxPcdEPq`I)orgMo76hFrl?dgBHFE zM=|JM3`r70hXoO4zLKn|r%F%K_Pi+FFP7S8FO-!A_KC9MLUyM=zL(gxuJPj`pKc z4l;?0LufE|!iGzXp_nWJ zan{s)$nMRJonCr+cJI*G@l*5Svp_O4L(v&KBNk^N#-#F}vbskCEFo8<>a74xay&>p zst4UC>E~K#(WAm~Nqm&oChd{YqWyXw7%h<09Hadwfk#RSgny15lO@Xp^S)CLCq*32 zVM*V||F@S3ej*_GQV62b?8`9VL}(#{M8*se2r%O*kAW26f*V>H0P(MfZ(z>wSaA0b zmq|z@-1#AxGKfpCw_?-D@M|!gG6UEIw;|Hg58t9ehk|&+Dl4iB!&skhu3?iqkeIu7 z+?k`1hr@c$SAPW*?Thz@ePllLBfa3O2ZO_Pusmss&N-iA%n~a#xk9EAZ5x|2%k`!J z7elg9T}Q-nh%=a6Au;2zXhxc0YvUcIoEcpzo9nO+iQTEqb!gW+&u0OW z&*5a>q~|D{Pi%9^oD$Z^jq(sCJQKhOLS$j-1a)B-ti%?vBE_?X2?ulhT8 z!FQV22!BIzOrbs^I%N>oFddQfp1tW8k6MraL%EFT-s0RttP4uCV z8Sy6ayTftuUy;b0#i%)79R=sYYhAzb=q+%Mfc11*cWOBI2b#-SwF115^Bh=_xMIQa!<23`xB%^KibuCKm! z(RB!RZ)J$7NRbo%^}uXix6)O-ju?kSk)gg27K#-$)qti=!biejH9tbySNkmEL`5tXB*un3vBltWSZsvM#_XeMii7DKRhngv=q-9}t zDZ45ROKc)Z1)|QjOOwRTV9HuJq*EsHC10aNWTU!{*ekM2M?4lu{aN2HhwR?YF2(a6 zh~24O>b^!1={vAX`xgC0?9#MMH-EMUy{_wH8)dxRc%%U2b4%$S$jp^z3-loBwly>- z)?aI4o9oY&>k702n)O^zf&B7(vvMcDc1~p8>5*=14^M*;5x6plPOD32jvbToZ5syWXd)CG?A-lJS z+@9TE0CFAaJAm8~i&HHcyMHQ0rmHPon=)O!fru4XyzQ30=7F9>-e3TUeQsz_Eq~LS zoKT#yBTdl1xpXrAo9s8fyB#|mcUV<@d!!b+$^%^F{FaujoVRQs91|-NDH^vCsFy>v zG>O}Ga8R=vh_Eeb^X15p`BGx+;HV{;x2!HEBOe!|? zTSNh^00naLmgiRF{EeImni5^fSM5Vy#iW$37gVMq@p5AHZdi`A5`Dq)QI#1s%}@hs zrgWv~II8842Mx|Ooqvwtobp47Jk`5u4=;}Y<*M{ht^VKc2Hj|8g|ZowLmWYTf zOONy;PDi#_j#CzsxT(@3r9?Z9Xcol0+&t-#ZjQrDCtJkpNCf7ljE0!GBBP-=-i3ez z%!0KLDuqshB7Z#;FJ7Jj7#wS$5nR1l@Nq!3J!fjQx$bb-)Jg{gRLB%_xHeF3WK z>41Br{7(3wB=Hr3`h9rmf&axL@?ze6;Y=2|bRwgq(2S%+n}&|1r=kv2nFw2ta;oujvMWl0l&cV>A z*FQB9Nty)|UMeN1OgvB8pn@V|4?LCKDaa9YN#H?{wEfa{wo-~80UDanoXe;Q`yu3| zIiqX%O@FUdb6|!=#DX}@gkp@zg6JP$lmLsFT|ky@%ogJY^OGk&gHOZ!wMYI0GLr+~ zv@}{mZ&}(0S|rH$UPeF7YKb&B$gHvg%$xZ2wr#qMlG0EXq!JxsqaLBl0724*q#|d!mX{|nFaF(7BElu`Cy)s3DG9QG zL?w$CA;M`iNPMw|C_Mt&4O^G9Yk&FBAbArfKfA@J0rtIkL@PaB<8S)2E~9h)s4G4o z?H;*+?v9AtiOZNrH#QRHL-`N@PAVQ76b8Gg5#`WrN9ZdNY(ICcR6Rp0vh1dR=i5BM zkW4}hM|EsAnM!)YE~FYs;D}ZZDSEpuq~$m~T>}zR1=!Bo#4Ie}rp)$xn16+|3Y&Ai z&i|;R{Teb`n1z&cTxN!#1GQk-z~B_7owVk>=T{tipU1S`@EK!Ty#HberV0Io!75iK zm?k%&fGs71$J;~7DxegwMvujjXo#M+UsNU`u1u#HSm}Qp_zt?%p$hQa|I+$NDDP}o zNfL{PMHcD|SCVwFLIPA@9)EIZV*5(fn+&lLQ#m{#*1JE{+nAV%z{KM9m@I%&ws@T{ z3A%j~m2hJ}(I%RA#2<%-Jj+ka|MVW~kJlLOB7Hmi*kMZF*Z&U;CGAWziwlM=f|J2n zB}G1)u*1+Pj&dodNDF@Czm=fL-E^iy6TVz@3%c*b19QY~H^Q8i5`Qw4(5ta`vuxP? zFlmeRW=bi0Ib0d+l#p0LwZ=SxD`zd}uEP={8z82epPsW14O!3~5i4xc^*WC${^tcE z(m6ioY?V>3PZ=w5&1unjV1!N73I}93 ze(#s_y_s2ZWE*3(n-)D>Ish{r>oBHi@9sD5Ye(!3FeYTGOd#s4@uHv3EM~6=W5T-r zG8hw9%?f}8)@ShwpOd=N?oezG`6_=WK`Y;KCKnymh3Yd=j$TZ2P=LBW{*=7tvHYoW zXQYXh3jv{Hj|vimizt**i}wA-ujx%{{={m^;Nr;&x}w03#fb#c=8&*oxOtmS+9PXp zj@j%94Cx1H9OE~hWkz9qmsK?vlJHmg(*EzMH4DHzE~I?*_bS}+j@^95{*XH{4y$fX z0T_OVRC1riR+`_l32?_C;~iFVC!9$R!dkWveVCu`xVh*oTpoSLzW)Zon|EYUOrgn@ zS!jyR+-|Ci>~11g==v#=8dquRJQY*tnw_8LRGG;ltDlw9N|N;z=I%_dh;hVg#Sa0QKe4Qcnrwkpm1a9nD%PpAH%M5@{JzL))!E= zdMmn0e+(%zu8r5W?AqqZ1o8kn%?4Y~#aiU1y6KnCLkI4;_Rs4dkW*#8FF=-_Jd^tx7s;6*;Mg$cV(9JdJ%#kn(Ia^qox*h&fe_DbburgzRSLIC!ci@Ok= z3J;Fk60qbE7Ya1$+DFH?$Y1B}<}ZOm?&{R0&ep59S3K#P)M`eqVwXbE*yB9OJ7pGbMR`MP_*}tOP!j~@To{d^0 zdNxY@?uV?lmnm-LZNh&%*%%V6wI$uF=>IrL!9HXVX8mwZdve$V%;oy@0puDQoP7Hb)sr?dp@;k^zd ztg>k{1DQKVu2wUB7Y_5E=V#R)-@7YzS40r9d~GZIq_w$0%KurOhxrZra(}n=r}yKY z8#8p8AGtSG zARyw`_8IwmXCKYRgW=U6#dh~0oXy3iVDChX6y#ve2pN+H&>ql)a0%y<`rL^4Mk{Q1 z-e~R8Bk{%n6`~M>Wd@qJie6=Jr$0SSn-SW-O?RUb#G(J<11|kGi2(Yvo_XylG058STS2 z>8H%5V--u*vnCI^p`F7P0~e{M!DD*&nlax=kGj(UW%ZR0nN0p4B;*8;A6E}~l&Hj^ zI3hMGEvqZ}$fhM7Sr9y-F8!j5xq^>)@YEsOWk4-0V!UrC?HyC;Xk~@sZw}hrP%)OJ zD3c6oaFxFFnw6yitVR>Q=k~Q%YU(1z$O_~x*wRR~)td%y+4Z-EwKDEp26tAagGZBw zyp0dQf8N97XQD66eI92|QR6#Xbv5rKzjzsqL0zrT#YDuL0#n-15nnVdBwitIw8np~(g~c-Q zv|&EDt!|9hakHpc&yq*!k+3jOsEIh1pkIagL(68ddx*a-*S z!n$WuPkoYIC#&v@smo>z67y+AFx+{Wvu`Qw#GJGa|MP~HjBuc`+Ek_uy zUUtFrfE__;hBooF3?_W|NDvA`TS2g6)VYVq`+MGj}u&&^p`J zgK|>;a+{=w&7#yve5Z_{Dlr=$aVEd$*@x$mhn}lVns#VZ8}&%0st4E#wS}kSGA=4# z01HG)J;NqYwr860yLu$S(s#6GQhnYU^Wprl=OfrYG`o3|8#~R6$1G52T^}d6uf1H1 z)G$Z!gqgdWL#wx<&vawLS-IMT4@e_Dugi=}BQv4xxO-LJ1ipo}g0**LkV31n;P^D{ zW9&lPe#-b>w4}=dV+V+54oI=s;&04``3TPsV2l;W3*mzO)Q*;?KiQ8}Fr|IF-7YQW z_e}|Z#CO4t^>j5nUbRhw5`@G7xTK&{LUzV~iG_n}mm+0VP8i3e8;`C-y!2RhFzd>( z7XcH1XTI=F?F~&{GU`CFU-mrpydqt$YdPH6Cs>KK!f_$$2?G-HO;d&GmC7_2FGj?y zG#IXvn@(h96QN|n`Us_mMG+rq*Ro@mL8(d&>bZ^-fh_M$e-)J+cW`3~PZ`@no)`!l z9&iXoMvq2fklXsGG7>Yi_VUz_E=iK^izjGi#vrg z$3m1H*l6S!#Q|{q*j_Lq{No0Kb5)R*=(n#$m~BLt@#ZU_Fu_K63Cj9?R8o`jd zr>C=_WfZhtVqi`An|z(m@4EbbnEQdgo#3~xQIY;z!5LovCa6q!F>{_m&cTF%(UPOR z@Yn3BP@Pm9Vz~feIc~uC8TBCMFH-9PfEj}Jj49o2SJ zy0j5=@j_qg4R|F+2rPx=vGCM}S}gH^&S&Aoq1-=h6GyHSV;lsEcF__Vhr^t|m1Aa% zqiv^BJO+R+*0RR(e7p=E09&dhHSagFW6E;(&V$CfnJ_iNGFpn>m>Rt4)+)c^J=5!a z`c^KiKdJ5n>>;ikp1!^1bCHHHDR$IJIi0_BeRDwa_xIe0M3_(3yF`A|VdG8uPl`v^ zVJfI+GG3uOk}kW&_yAs&Fk#d$iQt%fB}iCG>MXzyGDB+aaPXqToibvE`n%+$T62^C zU;(Q)-iW; zj|7AcyT*XrI^LYfrs>0Bt@sjdsow%o?CG=ECqLOAMmm%??q`@o14)FNBpM2izn>6> zGC2Sp7g%hQ^twtg*B{@p_f`$uK}Y_ho)MJESyn>aRH5ion8hH`f{@Ii6$>x^%YhG8 z7~uQp$}SS#SKtYwg^l5m@>+1vf4Bw>fWh%rlYv%ZOer-z(20@EkN*K3A7+Elf2Y}L zNw61l7SN((@0gHSCUXFpCgV8aE?7dQi3+*p`ssWEB^ z3k{)ImgYpcr1O<19i8)y)HSCCy3s8sjYq(yG5C7Bt zaF1PdzXOP4A;W#6k01K{4(BA=#mRRlm--6NttGMSr=-_REti)+1E7T zV3bJ5{qqNds63C7Htx@|O1u%<>N21QF+6rHpOY0@&!eS6fTMVm&)UO=!eZ%Z@FJ*T zQC`mLR-;NQaT{S|?kwO6|5EUJyXJsACU-Sl0nt;>Vtt)Cg>Wx`o^Ll+jYzC*qQZ#( zO*&rkSNHY$+TU(cAs%}!@a9BJ39#eCbM3ku2J=TUBuv#ru;Ty_PgQ7QNix8U553(? zzsD4$)F%|QFj^>X;=S;oS<2JM@^ubJ7XlbDQu%J!xp=o8c^{G_Uc zE9T)v8>#T1l$I8nNcGp3528m)4!8rtQX`cgE$6eW0KpXj>(epp0SpnhVNNW9#aL z6I51qg|F-c32sXFK#glrWE)3cf+k7!JNZZ|CMrnQJTN+qi3(;MaZlL2IjNc*kc_!r zPK7_$)dmqPdRsy(5#16TnZV}o;T}BE!bq$LLj;Ioblb`!TF7vXC{ zxc)BaF%|FVQ7*Nzd;Qwr{65LCscV?xyv(Z8O$!nP!K5jpO<3d#FbVDQJwAQ_AxD!~ zkNk0xK?tYPI70R<(^c!iFxPp&@s#=8&=49xN#AyM@-EhH?CdLB2EGdt0tHJhmct*_ z&w|AHsqSu5O$(qE4AgLl@x+Wx2@6S`f$`dO`1?_@!3we)gk)18-;1$QWE_ z%7QHHa#i*$%I+^0ZY)(>5$)dRArpMtFSySj4pDKFMJj;T^2~flo_tx_tza}f-%lQ$Ck=-U zFBpPKyN3l4CNO>IvvjY-zZQ&QBh&T-yM0R18tT=Hf|?-eUGEWq=V|PLp%O5TdsPW3 z``rtex26EMWrf}{G4|=Tcd~}Thtr=s;M)gF4P{9FXUHU^=q+!RK?sbjzV#7_OsngK zSL*R~Ilzw2-p+?ppb1i8^}lb&T~YYb&i&5}z$o5wr_KJrcpWv=k3w~50T$6=o8AK! z(~2a9#YW8^DUL+-p)hn~n0s!~MYc;=nGL37_!j|Zsu??X8o{cPRk#@`!;tD?T-xS6 zudTft+h;Gm;t}<6u~)RRa#R-X${E1xrgOgtJf?}}K6+Ac54)s^U5F50ZfSW&j1#Z1zjNo=50#yh zTZ;iQC-t;b1hS!^$@tG#jtY3UYv$`Ljp)=LrAHh-QG=D$K4SYUrt1ld3RHr#tnb?) zQraoN+UzzVp2jE#z69bu;}-h`Mj(H_`hvncmb^r^r&%)kb%d>?g_owQl^O#3*}x*6 zC-RA@#JTLnqA<~-|8ZU9FKo0+@C9%S=_!D?n!fqkG}JteDKeY>9~i-hh*A&Q&;5SW z-5M#_0a^r>x_2WRiCliiR(Ao?U4>JI&9yyy(VSr6uJk~7RjhW8jr=vx3csK`V1wv zyDAOrM7!Y#TjPIPR71=Ls{WEh47Mp#BLuq%2910a06wf`eDGDo$l>YYfySKvVP|!u zKC)`coVPrE8O)>wn7B${Va!y{&;~FSJrEkQLZO%Y$y+Iv2|6orvd9UDgkNbsK7o}m1>v>Yi{SJcx24zulv0omrEI5D! z?XxW8e~_>1s7UB26eukzCa8gnf%zO60UA~voQVmdid!Mp%TV0>Rg?L_lmMtbAAF6p zyu70!heXFJx)jyZBcW7zd9}|ksmQuS`ywvsbU{AFR?8nVc5(fBnlx@OPWVvlBWu?F z4v*~HijZ02>Qf)|qwEVa%9`_=`i2joZVeM)rv0=&maC-JCOd z;%fZ8peN{kq@MKq*nP-absR9X#@3^(`k7jI}h-@!U`?@HIP$8lw?E#w~36-6#FeVP`$#G#@`E`sXSqaBoh#uS5M6EW5L%Q zeIQ*%3a`8~&KiZIza;V?gr_WsYYAdLoE~CDoaHbxf|@ETYoRzl{dW(8xzYed1&>Q6 zp;;+CQLk*cpAhE*Q!0rFO=Z@yv^+zze$i%coqONKHVY7DCDQbuioT`u_k%scX{)`- zfBr~V@3AO&8kN!IQwU(dV}!>^K!&=Co$}itpR#}S8li937|v$}F_yq31lSjNW`G*X z^Tro7Gx(&1AmWK*m!qRTN9F`^xBXuI{&iFU$tGBa+bM}%-{UZ6ijc_Hzcnh@QHC}+ z$3ZgpGEYDf2(Wyns&{DNLG(qa-3hZ$SSJ2(jGB2TppT-C8wAknw&?r!nm4`SZ)j_mw%Y0DtJKNxn25`HF7j5C}`-h#izf zZfyo~Kh}_q^Y`a`k|b1>i6 zH*w}fCaxIOcH4Z$XYMpT0efTBPSL6)r|F10GnVPVD9i$hT$Y2bo}+jkquw6m=0^$5 zh*`QVD{2f|3&`M*{J!e9xjVK{>*MeK^OxVjP9yz@%Tygvr9jU@axfl-D}co;-XmbrT$ z-ew$5k+?~vOV1AQ+DC~Co`;59b)yjW1aSyawi|S}NpUuAl!fj4MS$@jei}z4lB}-b^;?NaUUSP zMP#Nt(lXekf~8j{d!f~&?_^nqrqTT4UoHAyWe`gYIhgP+0BjeA@+DSWw-FHHGGHrv zY02UeV;E{U>_a5D^Cr!0NBIQ#1j>j2nC14%aL^2T?07q+m|5AV`H~yKsV9Ch#^=N! zm1Dq%PZv-NLUr+1mQHl3cHAXir;%N6&*QCcz2+VL=P}MFRnF*{mvsv`x6H-%qnb|V zH`zOZBnm8gwFwKQbUh9X3%=V19QH9xzy3JZOQ7Br`|59WSo9y2gFQV6{}UucZ%CL> z!@dz?6hew3Ka0r8X#CR+84imqk6ot__BOz@j5yo=5d@n5P#_qi1Ys#ND?Q%?WIYvY zQKhB{j3W+1T=!r+7`>cyGK}(7~A2i=wUXgrFD_(?PFm^ zlp701+gD91p;Cf&Gvy@1Sdz8=^_6D^M;szkz z@#yAM!QLJ01aadE>d5+*O@-)i?XrJ%_%q=)I=0D8k*+<6s|h(a;&>w?Wt#noE`+8} zie&TM{Jm~#rWDc6%dIXEr7uLGQUYVp>X)SfRmm8q5?6ukm&cH0a|WNesZcABvA23emTS%$GJ896SW_3`RTQehiOTvj@qX z2fBt3dM|oF44*FH4}~I9)o;u5A+_q89Jog;DR~4?;!HG_OpOQz$5E(zB%RV4eDk{5 zZ#$L=p%6JY+e0U#YYSUShp9J*vUXD7wXTB z*Dr~sATc*Gp8A2LstbnY2^L+%A4BWI$fiV_`;@n6?~obXUAq(tN42g!XduI@xYIjQ zqQO@yWNX`KuW+EyedkCbq8Pxnummr#NztHzxEQ8a04mm(#Rdb<$%xtNG4|>+}~MP}AyrnAaB{Hy_DgQT>A0iF zSo1OTG$Tn!6m-`AEgNQM=lH*6!z_vJj7hz9VMttrtp888WF%x|Nh{z2L-{`t>Yr?x z6j{#;n90_0-Wqip+r6iXFQX-B9{p{vMp02{S`up#m0Y5xJT`V3kVq-hAh|(|cI-2E z^m(-U*WM7a3)X?^k6KyrAP@_m?`>`_aBAPFz)9b!*~kyo>bet?9{uCUR+hr)JK!Yk zokO8^>TAYT|E=$mLzc2st;nJ)WA3pux3;nnP~OOa@qWm5D8^)PbjjhV$D_-78TFO* z+&Mkv^Oyd|hTrpjTWRMg$wK12h&t~pqjZ|0;}s9UJBiuJHTjcT_rnM1bd&!K)`&W{ z)t}+Mcn|%s?GWMHEcJWYr>uLNC@aD}5TJ`!-iqGv_ML8!021`^GJP*|O^?yfB?tK<6|6q`N0= z#J;|F`7*UpMxA%Bzximn?F$}UL;=X{(K6mlsKa{Dfb<7QF3$H~iB zhryAg^T>M;*X|#gWRjb>goiZ848+AT_pNE=D%sLv^@CPK#-(MzuPqyk- zbCnQ1GZg51PA@1)9;E1>$_*GV7PfY^>qPvXEo)WXPl{HOLYODW@xFgvlm>hNPku4I zza2p`lsyk|BWVW0A1iDOaE(E)?su4=bSN-z?Vf3y{83XFgabVMVM3rJF_rgt^U5jA zw3||EY5$N=lh`;c_ni14ffu|jA0ryv(O<($)MU8#YRg@|o9}aucT*5kJG&+d-keY# zQbUtP7?MU{E^fiTyK{5lk)P56m>&^QU&PXt>7?A`-mbV4pvAO`GRe}n-mP&TK1o3c zK7C=RL|}9xC2lNNZ5yZJbXBe<_rGtNgN6Pc7`&0awA3}=$(|-(AWi>p;%`UMOu)+T z@jU;f!_h9;9#_{S?WojLBVo#};BN2koD3d*m_yI!(<_xkyBII@aM-!lmkIuBb|B%%NAqVjH|9djq*+5 z8&tiLAa9yXfBC18#R-7}(sm8c40mzO#96|@A$?t#@*LobhbCPKwCfQm(8w>h!x380 zPVT%`Pp(nUic(cF3!dQ-uuf`fC#|+w*Qm|vEeiakSj;`F&pVc3wO4#Qy2{e+kd(C! zryx5lG!q-G<4u=Mj4X0y*wMaz2QE!fp=oI(-?FU5-r_6f*FzWq%0bB-@r_+O!sIHw zIvJI!QyZ|4fTI%|8Wr7%rCq}XtIjKFr+jvtj6bV$1%1_a%yE!q|3a?)YvgSMo3u?^ z-|b3KqfwlcQpopJO1j>LLS}1HW6@KMXqvIHzAnbv1$DJ@?pjHbR~I|j`se%wAG5IA=oi6 zTMJT_N^d(n!vD5j?+dda1o=erC*u-jgguKqZ?{<3pUe!Is858GkgD zA-kis(yc(SU3amqHhlW`bj`mk-_MvvhFz*v!$o_0{oh4ABoU(Y1^YY{FdJ+>b`S65 zSzBW>*{6)Ky7LG&tq6tLuib0SrWV_JbsKDDw+6$o4et5ab+8 zmL`#ceKH-J4ESipX%!yM!kCiJkP4o>uVaJmKmTTOBiU{8kt)>vTofHvjaf^TjIcME z{p9kjq5tXx@cM|QiA?^LBnqdZu*F;JCUV^f`YSEuA2wdMmNEZGu_|3ju`Q!h_*Lah z)Tb=jf;mk=g;ixse2W%m-&!8d{^n@#w;)e#co;is>r=4_U z-Cc~Ysv&#dAf&PT^JK9l`^YxL`HgPV!1cZdT~vY&b?+R`wOWnmZpgZ6&KeF;nV$hE z9tgt>Aayz9C$t~r{FK3ejiRRV7;Rg!OR;_UxI)emf%(ua0P10gC+q14MF_5K$WLf$ zvsY@*&r$6W|$qn$aZ`;Ck}BQ zxm|2xQKx#GYEnQ>UjKBR%Oiw`LQErJM(}Hb`j6yRjecrMZA5?7#bu>>GKTy~_bR}U zbIG-YqXQ+{qKxw%yRbei0D?jPjtMnwXj{-#p}9LL>o-Bh-+5DslJ;E%Ay^1!n8Aqw zTp3ZL1_}`sR@G|@uT#>ZeqOSDLlP3^ST$YOgoVftAyvE%%!f=% zH~i0@>YcAbP5MgLNuz>dp}s+WBqM*u-IkQzK+pH4t9+vupJA2x#^H;t=}^Z2eBy?w z;H6i>X|%>?UwVRJl7EHECdyNkwxX(__Vg#Ep7zi(qv+|AYa4*{P9y}OQFa1acvAgG zc=iHuNBLaZg){Jx!IS3n1Q!rQ+f2+_>!r8UpZL03VzntK_be)f8odj9nh34|sk@JwL9$L!vzA;Ityd}Hcn=_gDM5Nhsh@LD_6vBF z`epM9rirJlQ1>xI0w}-aYRe?n>kXe1S*|8Q$W!d>k6~ah-E(QhTLHf$GA1g1G$qTC z`E5Vl14S+ORFy|nR8Nc1Dj$)sWJGOF$V~>fG$PMpA>t_q)gb|9wnNVi*vy-&M$u#kt&7O&2X|5xnO#Ps}VsLwOc-2bd zwD0pG$6I@%6vH@77-)I8oI|fkn|xLPojW9rhr1>POZ{>1Biha}(;VjpJ12&*1m|<=wnUsv5l^QZ zU4`1h?-|{=7oN^^j|7nkp$g_MjT4-(8=m`6a~x7C2*=gQ-ywJW9deLP`VZU>(Bi!5 z3+_R~sR=cNSZ-b%njL2Zg&aJaK{;f5Sd9t83v?RWDzc6U09^*ak|pNLZvwcvm2PVp zkbcH&*Jt2r4{fCn0dKaGR<_-y>de46@9a;x0p)48^;?3MeLDdHEDk#~SRALYltfgl zI90Q?B*JKpYos$_MI5EP(IQy)VdPHhervd4K_vDOWlV*&-CX{J-soDw39S{Zbj2dR z5nd2s|5gWx;WA9XqOA-N>97elt2I4vPK7g_KMF9IRWB{jBE%3~tpt5MhkD`m$`ap?o>k zOjH3O{GPY`U&h$w={p5EStVA>SdW3*hV1)<&ap4f^B8o1_B2r<3-67Ccr6;=S!GMh znMX^z2Sb+hUa4^&pi(A-m9p%oBc*my>&&F`~NC)2}q_NVMVvc2x?_YK6M5m8q z0v@V$+pe*IzQ@5MaEPIVLayTo|SB-)S!!y2n^`!|68z z&3b;NAnpq?T?__k>u?1I`7s59`pai=8hr`}svQ6UC|je484)~~;i)tmYSu-4$7C4A zZ_EN)D-wlhBY-DJUIc+n?y2Q@BQnXuOMxAE&m~7nYIER*><&tEYD#^+H}Fnzn+E`n z)M?F2akTY<*1>F|A=M=lXAOfuB`zA8;w6$22-d^|7nv`T)--Nkl)t`k%Z)^z&!{mM zgmno4uXEB&9)W^+4>c_`a0e#Jo>%RW};`D(iQ$k zRAGJ5UDqk5rFG_AeCGks^HZ@#C@E8Gm4o+yzik-44G8NxTb*(({b#tf&iq`>AQ2&m znBZ|hkKw16Y3$-PH zzSGnbQFUrEER~=Pn7Y}*#fm&HvEe;&>0y9wi=x&3_5OU2zXSh6=UIW8j57ATG}$g` z53s2>T{%RFrEzQyPE~CZjl1mLQz9gow(@%dEMuYwAGaqOf~lN1S>D^%HdDOdK$4T4 z^Jd!ZG~Np&hmq3LuJ4u98xMJRXgL)i*j2!4Z!6aj2_Py!`m}IY`Q|91r9*eZyTwp} zWVAd8P`KZ-5Ti)EOoouV)%4WtJFZskj%fOXwjA9^xI>WIN{>CN;s)s(O!q+IBk$0S zsfFb;bjDAX`MEKWel|?$ioo%AQCMYodAS5uc8FpxktKPM{4xA+{v^YEHI{RpV1HtCUqjjQc&teS zn|gS8m3I$krD-+{ywq+T2t2~sy={C!NQF^!EMKw%A7ng)a>sh ze^K`dRQxTYMQ|rlj6fhDOp*u)drxN)UlE=1v(9JQtTar2335YG$XF)N6m2bIr#d?> z16lF0>;g6Vl-y~RN~Ur1H?o2=R9Px*$V@5Qn{pGMhtDKn?3R0y5P)X0UBJS9@{9|L zBt(+bv6EeoKX3;}G7$36+`dt0BKOT}ycNmL8Q#W+`hD+#a`jc_oHG;-2%ts{uNpL}KOvta-^_cEj7)v$0)pq|*oO{o zTdzj@b7C8tGDtWOV2OO}cgBVeZkHO$@UnO-Dh}92CXmcIXY2b5g(l%oxZ1R8{eCvG zlarLvJ}M)G8xAR)a`_2(qduXKTKaxFuKwF>_UN5XA*hJOTShc0yFIBx81Wij2zZaW zd+g#XyXzt6RcE`XOI>E*ZYNBNz%Z|n7-Jta;masljg3g=bv6=<*JJD6 z&pDc8{S{@Pwn>~3D-H5!Co0ch50Tc6QIf3h(?z(#%1FFI7tvn7+Z3X(^{|q5RiZ%L zSKcc~Kug2ekER6J_IpW`{~InBC%(`ShkdkDQwJ2RUb?44=r6=P4fqWy@HI<#`f6ry z9}AM%OD;IH;elJWruaNp#Y~BhC>qIxj!a~aW6O6 zMn=A)kzj}nGB>QJg%N8%@NGFovmi|JG?Kw7q>*l((fAilJljG9>We5YcRNuO5(pAo z{Ujl56x=HlAqW!_Hc}@cqR^giFWiu79(-*}fq&qWay&f|8NfC)Na=#Aht~9nxPCvA z7ka%si~S1#H3o2@I^LO+!>K%6kIsvDj!&Te4%l+xlxUBl%X->YY&cEM*9+}J(5bEA zZ6#DR*^xtx#z)sl);$DgU0dc)Tn<9}Z5Y`RfXD(GX4C;g3w59ZQG--Pe_v{Wn!~F8 z1SG!(KV@UF7iG;gH6?ns1MS>b%PvepF@4;9)fWp`dvqS)9~|QM`9M+%r%Qq|>U$hX zE;?_h%PF5YfrTgXrhO*0i8;GmI>XSrL4yomF}~V5AR7&~r|aoNo)aZAFUr#u-I-^* z7Mf_t{k&&k{FZ#XG`K6~9T=^j zz@CMvOziUwnqYSYshYc{P)w@_Rnf>Rva|ZZ9Nav|6#5>XYc8jfzPTpBy-FpczytJ4 z_-jJ2h~bJl$JOs?B=$<6b|D~Q=@|cjf?Qdi^jpmyo%wRvk)NunxFYYQ*>c(J%H&sX{$2f`EM z>jcU=S+3V|f!^oq#s47mzv9B?=)okEJ`J%i-EW2lr)j2MvYt!t*Irr##EEyJO-7MX z^nF>Pm~G8m1HJ(5jE?*N$?ZG4IHgJK{Q8CVKY4yO7G|#h&GWPVC(qB2WH6SU*2@L< zD+y(s50Imiw$++2w);=E`0YKbwb<>}~U*QsHXOf3UHl9q;j6>yt0rm;2GxXs_uDL<)v*|E6%dGuIS z#XFHy)i&`%x@n)MN2=EN_k#GnTC&x^X)@_|p;???=bFRiq1eON(M8)t63sEI?OVOV zrJj;|4aL~XrTP3v>F!6BfF7w?9%YZJ}W_#}<3DQoP);PKA-jiVV_C+jcN?*NGo(F|MsXRSm4#6|h(}wKKb5w+hVPMtWou76W^W+>_2#QddDcPy(Y^KcRe=`D`aIci=`{#ym&}2@ z8>|%MuYHg`$&w=@=<91S?i%i_Swv-c?0;hjP)MU}*3kqRFjf2;q*N$^Z>jgII(+Hh zA_Ge_)s~`H**Yv$jYgy{0Eq(F#Ulodb7!DSc}zbi_Y3IBR#9!xO0)M;gFR}X{8m?4 zG@AFgRW^TB=*OCX&Af-h$NAM@H>My)whqcHDW`g%MNLG5wVQ;56$!rNkt-f12E}lG z*sA#Uavy?DuR;n{kq@|3GEx2+x98P;^FET~4K&Nwn`cCd2c+W@U`V5l$77`d-FKK~ zQK<~Kl(_e!ukq9E%M_tk*oXIg>G^r4OT*l*noI(ZSKghRf_7J?+*Z#?8(njO5j9Rr zDdAtkj(&R5X;{EJ+yR|Q( zMaSG#`*vi}D+ovMXl)}@*AbrBEas4Z%tJg#d>6hL@u6W+OEtLC44R_$Uwwz#-J&>&TUZeuH4;Jbo$C_;?O+6{2p1j?9lI6(fNw7-t-CAUDIv*wr5m z|L1WccQTi-zpUu$7ZOe*q_IS!99$EpfipW$u+5d8MxeaY-`qDSnW*!@Jtn9Fof>-c zw9o!9k~^lR9ljaRH6mD#8h(f#64TsYi?Y5;VMWVh06WJRTCR`Pm2O8;I_t&-zURg& z?wEb2FcpTZM}JXWqtW4LjJ8-KPTb(@qOwKIb&hkt-DFS6SJn7%t;_p1prLoW%s%)b z{&kgg6u3_pb;C76Ayy#TYs-366v&M$$j7w&#Y*f4ZBc1Nqctb26rzcKOB6^=FZ|ZA zaPj&SKq9ou93B(aY?CYzZj3)JaF`RRGg_(hO7VH2Rd9;VCW&l$ z8v`r9Ngv>sOfc=FW-5a&|LC`k*x0uXAign7lUcw~{#aQN%a+W^X6}aIPgYJZ+o6Sk zzSBi<$GJs?SZENHE#sfW5fIc2u`Kg4&R^5RahU zBw!l5g_s>9M#h8mWGmWo^<5}ZKUu7E>QfFZ=Qg9G^^v3s47_0~eixJJ`s;0&&j#qc z_ih2}+-IC52XNmZ?(ic83g$G&BXtMbAbKQ}KI`+f6XDZief?@>wEr-HO_b?MiUMH{ zFd8dLh@)IV#lmQ0n13XmD>QXkp9qPd+)rMn(tKO1$Q9Lmuo{V1HX7t*zOcV&sGfx7 z8VFB^3Bsdd?;!)@c+ zDsigXU-3Jmcu_=m8eur-{=zB;BIdlSJvPIg6UcRz3%mJg+G~%!n895$?cbig_D06C%)hBEC@%(6c=} zZVA>N9V>dAMJ2Wh<-nCA`4n9CaL(w^&_D64I9N)x5?Pqs5pMR7nI%U9rpfosd^I$l zxm&*LWhyjN)@RNA`(}zZL9egTb|^2jmvob2!NEQBm0<6AlG*}2#|q(c(91j3yDG0p zaOHl%$IjXVHGnRs3ax$!(6pgB>-63`!TZdtUN4ow+}*W^Z9_D+|LZ9#+rYvG;2oPU81>SB zi@fdB(sl?xC7RDf9Q~S>08`0(wH!J6Ve#y znJ7u@h)a5s;vyG!#Bi|?AmKJ?WVl{5DM>OI3pfXw6`b6|IocqvLd|89Pxru?26j80 zG;_q5**n6hG2bLzpa~YJ3K!aJUBQEs_WY7r_xjRhm0mG+aB;+wy79h(B7&sS%;m(f zC42S>5m|!vr0kbLQ9C!JN+3<%ET|({Q&Rh6({N$&%BS^MtH!Yfz?Bw;O6SOp=ia;t zqSdX{m>>iF8l5rbhWiCIi|>0B9RT7g-ztL+m>tA#iuS#qczBakMzK>Q(CYWGT}T8G zV^N@uJ*I`#P_#vZgnbsGORhQolG2EZmiN(*BO56+-|o1aBjnP*S&Yb|c6zbX>bB45 zhGRg-K06ybdrPtcFu_s`9W5rb`GYgX4Rkq@f`vWRt(X9rz{lYnUSHC~hX3&!-fXyUF~0)^?B_v244_VN3@|@mVcPY1 zF!S{}HmmY)`}ZIsHEBMdmj_|qj9)A1npXHUmNimP?=335gr-uPBA{V5s2Zd*h%}Bp z*-a};8AI|qcnhZ3q;YxU z1mQz^t;0&}*;wyL-la9b&MS*-H*y#+c|G-hZLCGGdRC5}#AqRE}Rea+^1Lp{9WuSr{n*SdII4<}E|6VsPkWZUvFtAfp|hhN^VX zzG!@ZP4z`xmA{V@bF_uo(z+yR=hO_*ZA67HW#dcgU&*;^ZC@HO#urqMK{QS?3HeG1 zb>(RykUsa6C)=iqg4k6tK$$WL`Q@)W8A}~`R8`gT1SL=;fZGrt(+*?cO6yneZ@ZuZ zrcYVU?8o)0`wES~l=TLA3yg?_{E1MQkb}q6s^zOP`FMm-%4%~eBA+$IM$Czq#FPT0 z41G1{r5a(iL#bDUmA2Dq2V#!63L>T0SxSwK_d}^q=1$6K_RiH87~AdgXk*RtErspH z7cN}#IJ`NsFONzhSKuvZ>X5{6#%;s_3#wV8XmTmHq+%-ktIry!F&MY5{{?qIh`$!W zb$4tgXwY4mM_8_B+QK?URnK~yj=8ds(`9;g4)(;A4cPnV>sf3r;%s_$26?HT_2u=C z(z9tNUG8u)S%K|nd68LOyv@7`$41_wwFCpU$7ZQ_JcIB=X$x=D{!Av(*>uU1@#Asl zNPqmv4rrXCwr~ce?Qwc8r9B6GqO=3{{`pGlCEV&8!Bp!TB?TW%xHSk};2UKdPS$pF z-Ds-L_Qmy&(piZ}UCertZ#)A$M9s3}27a*$v#;xJpZ(W#I>!2>3p|DFy1`I?=(ua+ zl#w?XPjQE5U``aP&)jKx^-M!TgetqNEPq|IDA7_nUJNG;u{iXvdTn)%`ZFF|2GQ%Z zf8Y(2wAh33wl{-CKm_b1`LUd);60ldnT3mYs)bIrt+N_eLXR(;)l7gI$ppEzkwvkG zXM!G^rze8Np?f7lJ@beThI!!j*?-4%ke8~e#3y?qbE1Pj8H*cclJZ3%sZaG(=6}#Z zpNuj$)WJ}65w03qx2Se!rq-V@_%2%m4 zO%HC9vHh!NE=F5e$ET{JV{~qCn}2Bwk@JzoddJ%pZKvmGMSvo2Gqhw{pe&M|gg&Up zNAyF^xHHi`cjCq8&sfA`c}43aZ!yl?Wqw9}6E056yC``NsVc$|Jy8o}r>fVvP?eGp$WRX_--42i&b~YwGRZE}FV)4!ErG17^bT@J8syeJ`oTw+B z6J2F7L9D!|-w~bVW0vKv!bU2~>x`s&z_#lvESsuZOQ$t$BlswJ^s!#({dK}#19VG8%Co8w2Ul6@a9an zc)*wRP$o+SZPCHfKY!n@F%MfMyR8$jZKnDy#32F*+yT%zZr0 z_^EzWM(xLA_XZ&Sfi3z>ZF(s7|iMcVVRxTgjB@lh2emuoE|0 z3-pgV6ikdDXnYt)`+wAqX_c>MzN*;rpw*Y_jZ-A*12fYRy9>%XEp!TQOmuq2ZM(L{ zY~kJ>Hga7}NL#~xN$p|Y>8mUZqpCxLVN_Z6Mhh?x5e;qF!Cmiqf{&pg@{)SV3s8Bp zBgyd5u*j*P?oUKr={Z_$`(fxAL&T9i&6HR<5@EKVo>Bgu?tk-xQQ(K&=F9K$bSq)G z!6;CIM3lBr@@bgiwfgQ|MnunJ_CQCQ!82y;VJY7Tp=r^oj`68NKH0tQC3H~>pN^lJ=q1pFFK-;8=V&0F8d|8`J;VF%~efYC3iDn$C6ZX zcUua{$M!yIB!4s=6QEsc`7NI!ARF@YnjILl)5?zt4#7!{Gn_O6Ezfh32@lNAIQ5$$l8QX958G-Wy8sO zJ8E>iux@t4DHTtuIcAxBh#E&>RUZ{>WHY?}E(zJJ@rXD*YjWpVY>hGesi7!vt@ zRlUP11;i$BA7)5&C+%t}l`{k-wUZ!7G7U?AN znP;@Zkbmi_CJg)ZAXj`!iVv^yO(h?u>ZXS;L4;8bd$p&-h^nd6rr7cIPoM5Ic+}cY z#UvFWLx&re)nrS)(fy+gHG+{r;UxBrlMFZ~v0t1JEV{u0jr>Ssvf`B(**fO&GEj&R zx#Gd5`b1!v?@830Cz)`mAw4wV@uTO)>3_sH)qfAv=2h)Cv1Vq(=QJ3@kiTs?-QRAy zaw)Bd>||cVC!=s3W@#aF2+sv^fP$fhK6VgAA~Hao4GAa@c;IMt(0~~wco#8Jj_9WS0Sc*Qt#wqX3rHz9+SWcc&7vXhx-d~1+PE*9 zT7O5T9y2y<{gIj>GmbM}w3uMVI)snw7>IXzxOKH_Ibws@iP`W?!eC5eFpKz^YR7kO z>pa9qj8+6@)n4?Sx4!#W8!)O013hyka4}UunmxX>|S8e>}Y8ejJw@b9rsD%+_;1mv7CdmzRl2%;ih-jagkhJ~Fvk{pH9! zNX_aCeiE}Xw(R)LQN*neN9OP5@=xZ`rR6kic)M8_Wm+_?n_cTgwby#oZvE=}Ba@lc zPe+EvpI7lvQ%OqGS(P&u-4MI9Vt8cDoR{e5!Ej^o6N~R+dk7f6$%$c}S*79Ix{tON_SUus=Y52>VHfg{e7?oVD1dGG2!$W@*1>7)qG0 zY#H`8c?WyeoD8ssKrde(Vc1qT_6S5vv%0pX<&8bRJ&L%iB|q45t#fD3-+Rw0g%>rQ z0^Hkkz|T2P6_MCQ=) zpUPF8eu-m!$0a2fE1R9deLsSJnLhwB3U*t=DzWp&9(6K8w(I zwUmi}Ymp<0CTQZ?)syxk_h{}vD!v|t3T~+Ws}g_C6)38-B5>I?C76WLIY00snB=if zY+L#)z>(Uue6;XX>*<9hVOCG1Vzhdyw_G7+e^2OYMaQUXKl}kIG_3V5c?eWl!CPsL z;6|dV+?nT28^RDIAQI|*jyMtA_;hfYnE5^2>;*X|NDlFQdSt35(4rkK5F9;6m7JqI zjwr1;|8Nv>j*3+}oL^W%O74+8*W)SVHfn9qA)w+3P{5JFhs-`6MVx~r)UJ26T)Ciq ze;!7Z)X}?2?%F=9905n}N=dZB?5G}iO6k1!o>dAUn)*sdpT%@iUrV&duPs+ii}X*a zsU*aP&>0nxGNE14hg;25(aMSW88GPwLtYU?7Wp>RWPpfJe?y2M>Ml3&I!gn;KN%3u zRQ$eLURklJ08|+C*6U3aM&C)2ud_Vgf9$alk2>>jFjs2!X$N$|3+{)OIle>B6d`mj zKEAlodvL<#Yj>rd@K)+XuIBB(bR;_>ukKJMCrEnPa5rERHjD<_kN} zSu374M^WD>7MF|uTx^?>rj&rfZztf^e<4h% z58E8^c`bJ1{Xi%r2)h^PfYC-wFve|CR0wywYeqa`z-=IlVQ$4j?zjc4odz-_2)8F# z2!^^7?oP(=PBg+DEMdRAQ}V(jAq(`H9_WE}i9_hf$iqu-M0d!$hMRL5$6xn*jST?{ zBNXm@x?KWJCb%GhgHJ~WM#oTZf0?kP?B}nJ+XJ!zdo5xN;XdhE57}Zb=@4H?5deq) zUAzHmF@oyFII8|J_MBrvFhC4M&apezn?xM(K9t}nnmSsdsKUJI7~n3vQ(x&QO>Ij? zOC;WhnwUBDl1gm=cUv;)G$}%j94I<5OUY)v83A4>xz+KLer0Sb%utfUf1XeGK=y3x z-Ajkz5bY+FB!=uo2(wg0DKhIN*6QLI+)CK*d*@nQxC?f+9m~_f7a5S$DYNE&tHJO7FUxnvjkJ(qI{-$ENI9cChE0DHLqTS z4^UF+&v#mif1=C}q-2^*!NgIJfi)RH20=;6yxbC^2N^|Gtv3>wx(s&$G9JR<05a5# zDc$+VX!F;BClB?g_jpZcOPe06d?+xh825rUY(2Q$21h91Xy2#En@`)#t`6PCMP$ z!+kdvwU?XH+Kn}Q%aYTOFfo_bv_!Jl6(+HQnPR&x{gkXDXbii*diX_uj@P)cfbKAR zy$PeZvB`9-8|%(uf0H`&nM`aTimB3W+cHO^KHX0Cre$LRogO8$BHBrAte3qOv3gu} zEX`Vs_;g@z+I%GfB%Xyd!LiOr>1-Rxn5I%3@jj$UcrngNf5vPWEz^}c6{xdzT1QK; zHPi%KMA1qO`s&4+Nl9&skc!zntx5C^O|1{Lfxw!Dfp~-82^112cDm%mB4vB)d3%#Y zErPO|*Bd?&j8(#&Pxe6WtU>Cf!(g~?F183$Vvu~MdYo7&vvDV8{ZyY5>(9kxX#wB> zwmO~Q!z|VLpsShdTW_dYnqrNn(i(}DYBD4vbT1q@4eCVK*m7JHLsmoG&B;W{V# zG(3>Vr0`=89qhrOzM|uo!AyuX+iezaLcV68Bb8lx_wyw%-ir?KW+~1TJnmfS>~gfF zaIpk?f{R*kwY?opAu$-I8h82=CNhO$Z3O7Jvb(G_2Gw$%iqXj&hB-A6ep6p}ZYj-S zf7BG%luc1{Jx@7eQ`pROzZEMwe{oKH2+G;v(4XmVNu|q_d`_E~$El>!ZC00pk(Izq z_5?-;Nm8AOdLK0`Z1e*_jrWO=GYC4w`^Zd7ihc1Jn_*wr3vZX0T%bOl5Ux%x2JB0{ z>YZD?D~jE0`H+Ne}+tj zWkz*0>Rc``AKb=#3|I+vdTmKYoAzbNS(dc&y-AwAMTWQ7BAUb&aU8WpNx^$eOK6jz zCM#GE6|mJ2-8k4TCV|b;T>xw?{uYX4wA(Y;6R@?|n*_ECg;`%DvjZED+if=H0(>Y) z2T+(Zl`ku+0cSIe5j!dDqEQ{ne~jV-Uwkf$7&zUphsH})veUAJv&=RzQx`-vN@oY< z2~bJn{-~?oc)SREqL5mWwb|rl+|k+FpNVHN30Ndz8(?GKm9eq~Ju-F6(l+<8Qrt;Z z>hx&pd0V$e<%I8eWkxw z0)FisM?!ueb^Gz1Zf2C1L;Aa!#raxZ`|j^%y&yBbjY6y>FAO)YXNgVk9tHlw_Qg5q z@0&3I`}l4IbM$Dw0ZtPC@#8(f( zBh6gG7cdrd@P7D6c&A3^f0OKo4f3pOX#4PZJTwhm&o*Wr*?_rFRxPHx@Du9 zPpe0J0abY$?Dn1d1>Vg>1fSGC0`~DC9B)AkKgf^UH(I7eA6=PT=_|F2C2{BY9}Jr8 zuhWX|T{^d4PmS|yy>+FH>rr323zv=3SSxn8fU6fT5Iah}QAQj){5Yw1Y|t!XUhUuT z(tEA})+EG2iIPgMez>)vZD z@|85*xy*4g?Dp#5Ng|(n(=lJ|*;>h$4xnRxWcH5a$bR)mP7?bfa1zk6aNpNeTUdz! z;QIgc%$%MLf9$PJtCZ-G)lHw}v1VMD`}oXUo|%g?^Zd;G_2zDEj@|G1nY4a#)*ngi z03ezh8eahby7%b`016#ok`8qO0Di{4cp&6+$)OLPov4qTsXr@$`RYhzX2i{7%+W_pXYSDO=(y}=d~7^M zgz^y=f5W(tu-Vixdn?LjbaI*)Oik)@ z6+kr{qC>$e1}KrQ^z{V;e%5S5if)f0vA`f5fBRX%@!1|RK>;1HK^@aQVF$567hqNm zI_4hKH|OqK7r+;R>l7~ipprhoM+`YfDcl`~ILnZEN(dLQH$&=GCLeUvPr?Oc2u|)J z^&vXvz z71pQ&7rXVe9ge` z9v`9pchhg}j6kf?A#||uL1rO}vvizif19Q_mSXx8ch0^mERITDl|@X1;zUhW1Dp?Q zpwll9mx6hp)hQb2$meC~WbU=wnK?p3XQmVO>DVk`(nmBAq6)MXo1TDaB7HOf)`^2S z`rlI1$EL@iwNF+iX9qw@>IFbO*0^ORI=^ozBc1Lu-7U*i&-6-dHdCqC0JYd;e@vW% zL!=OfCQ`!04>T|})FDQ+M_jo~<8nlT8qqg3mA=kv^4&P<)Par|qL(@cYRi!?-;tDK zO-&{?X-rwcUGp$*nIlApLZW2Nf+M5d%567F$5$bV9bVjg_c8b!84SVb)vG%@tw_sU zeY>*#L>AH?f6~^?#lkYxT(9++fB)G>n23}vJtEfT=TcN*yF+bJ4s5ZRUbg0R&i&%2eSAnUI=^eMsq8H(Z3FRRR7>@3Xh5G#an`=AfwSo>NJ->OO zv?q^t;1h+TeRxQFWB(6+!)lCf{`lL_SMCbFa+ei+{k)}w9w>_FWh~U|mS6oJ074RV zlQ9t!lJ*D$G&wOflMMF41Tr8sIFp|7N6%^=h_Wm#bxXyuU1eDX+`B-+idc7az)b`0v9D8q8;P zt8aT*F3Yx=ZR+`dye?k6EAMY9pU;=8a{Hoeno!Rl+jr&N?Y1hba{H?MU3qf;@U(2p zlSilJow_{vfk#!Ilp*il+tY%gkEi7y%I&|FXWPJO-tlHNTP*8E?7iIezF7BqFZO%C zcyn4d<;nZglFt8gJ)i2Ts_D8}H?c35bV5E8Wc#OK&YO9EHLKdq<~Jg@n6GBdde965 ziYPNhoK)2~pNncatJiJ&Tk%<~XYg9>lQX;=WE8yIyb2aWvE!gv)T>!Luf9+j%PD0v z%h{I#VA%rIa#7FL^ZC3g-<69NHrtp}yiIZ%T&XJGma$QnaaFz=^1f9ypDo)2{hPYL z_u4A>o06W28X zr!RoH?>NQ61h{z(5EkXh#oO>us;r(c9$2V-b9;%$6Iw2aEquQ@EiCu?!zp3O80AYP zH|fXKrM^I5Xk@8+^a5*NoZMc%2y_T7R7fjdz7&CfU!`DGP)AoP`QO0SIpxHov(v&J z*kQ-|12sKUjr)4I!Q70Z^p9!B1X5VJ{O7+1^0UAg)y6%@EVA5eX3cU3sjAxaEYb_8 z&(Hyiz3iNHU7jG*k~kl90^evDiI58hD1B^pBJTmx@<1ZeXNWS+TvNBRg&*~Q6ARhmtyi(#2KZ?mLSXPKrLkBi;3 z$mAHCHZap#E?S#&?Pfa6KnRtLo;E+z!&T3$&gWSzEP~29RA)`y4h zEjX7xh_8Sa<`FBtqbJ_q8EzSrI(3nM6*bGd@=*%d#FO2}_R z$Li9nTAzhWBh85mRZ@<~iHnq+>O2qJbzGQyq7Xd-ZK-?jGA-zuO^gQyV8-NCy7p5{ z+7EL1+V4*=dNkU2J*wg+M-nJC^uyAyR{x5Rte zc}=J3&7IiKwA+Lk%J`61t*Y67vYHdkQb8xgJGnC+!>d(0+qC<{Yz4HbdlQ&^sYYn5 zn;OOu^cG8-ysr@)WmqQTw;-(=7d*ygs@rNd->f?0B?HRF#`0o9I*ZWT|Bw;r0|g6* zLZDbsYVZl8x2z@;k_x55ty1}=7?;PmRL=HhB#`99}kXd zrYt!ow)e&zTY`RydF67(1E4tB-8mQ{a5X*KFchN*$iV3}osM;z=sU)`G z+p(oqDJ$~hzjf9gx2!oN3$(-^tNzTm2dqbkTFt}soPcoNP2nx;*Dy}PHFCqRtY`(S zmC2e!| zZANxGER2%2Q-B%lftBp>{u}y)F~lJSX`l-ZeSS*?72gQ07}6RkPnA8(X0?=9XyJiC zQ2REds_dPAhuYemh;%HHf~WVQr>4#w3ilujIhEi&I~IJ8DPzlfQf;N4g$axrYYd~{ znao}6i=D`QnZLETM4YmJKC;H- z=K~{O&!0b_MVQ4;vAnU2GL1VPJ{rO#6--|8a05Opt2kLt#jA?br+ICsBq>)}!0H^4 z?PHD}T&uul41b8%%|VgN(~NaO0Q7I3gyZ=3_4UJQx@ zEfa@-j;4llPF=$;Y`3=-R&G)JYY$T`-X*D$_|oF z6w{n2FQhb25U-lDC{<2IRP2a-5lsd4>4jl`9M)1bNiZ-0um3QGiDt2y)l1eii(t&J z#{}opY!PUk1-Pque`mh)8Eoap@Mqi3xGU5S5O_T4G+pp&KWW~Bhus)LHK>}0LxgP6r+(6Wds`DRf=h}ut=mS@>9-wIoBzF z=ROxhF>z0)%wata!iERCz!LAk%v1?yeEg4BQ|!!&{NtLDAXa}7GXsqe{t14e<)lQ| zOMDq3E^IptQoFoF_`M_EX1$r!^JSHr;0sM@(A1CF){A7n~F;*(^%T6zBnevnY8zQ3<8lx81-*H)IK8-4__C5t_?;} z79Ych&e?aec)b1&BVlaJNs8GNRCvd1oT@VoX?)L7&|5FIn%QmXpOXS5_ovD-lxn z0-fL{wp3?VT4az^Th&)vAwQ)Y#fz* zIc}B?4O@D&;qZQ97y_ZM;5E6?@DVlHCz9FK2rn$*0~8~QO+`zu}r>vQT15;6oMIuOW-_aR!6Y7rspEZpIFu^Cee6;O^=|XW+ht_5AYEH@y7Z z!gtg^!6ZC%cgt`;zWe|J#`sW$E9}Jwd@Iyhty>kT?)WEvyG6qEY>G>}walPha-V6(X%@V42Cd^Uz1w&l&hrwl9ayX81bw`A z5EGP!#_Rj%Q!-SwuTjD@Oo7td$VamRIFO5WBr z+d*@#%pXaA3r&no@7tQ0Q)@qQNN61srR{KLI!aqKNuxB{wMi?Fi`!d;@@u`*D0+sk%!dQK;U3qB0*-rUof9Y(~d6diwD_Cunoa z>G+<6APab1fVBXiarrX>tRiw6z^L^aGDQeC>83z#C7y0B;H#x=EyfA}3emKR6LDJlcOrfbT6s zV}O@`_(#N!shM~e;g2TPh4_JA^TiOK5j!Tv+wGg_7{5Og$2h|=e)PA7Ar$bt$mCkx zbcpw<-c*R6SlPx9-&mgq$Kh}-Vq&V@*e}m^P@mcviwoq#yYD|SOfqkK#)BaXUuQ;c zTlPM$8kiDP4L)bT97`FRnqG8x8K4y`vM1Mnz^|0@`3gvRz`8x|=xC>h`7Swx$*|#I zDbreV2&GJPaanRyGp+M0QN9URm8qoSw5s+&5df_i*w7TA6RJ4B#(7dB5teDB+P9^2 zd|ukH(Xn1si^KYp8K(v}8~8B?zm$wWCK#f+VUs2DzM2&gzttld)HCW%imHemq^VlS)-+Zda7SgEO2XX6iZUUtVTx_~0Qn zul@3ec)QAPt@4xQ-FmIt#1pOVRe;aV2 z3o4h{rCV%jIJUlx(o5gZyZ8jA_!eiPnUYjaGn-QGqG4Zd#W`OSG2mPdf*pFh7kiXLa_f@P=+)xgS2q?(W(+FqpVG%(o$e^t{ zRsc{?69o@j%2K72M-k;f1%^~dOh|&nW^`eDdOXan5kfU~XR~D84du^tnL)>L25DvA zKj%p=EIuvMmWni){y`tN!uazQ{H9pO{%YVtYUZOVcS;6L{h7Emi5^RTVAsoWC~o1|#Sh3ST?0q@w^ z%a?~c?-=K_=D3CPvo_~+WG>a~A)gH3NsRJgKa=Ml!_|lH0i;}iiY$Xa9`v2^Zmu;U zz)i@sALop-*|77rvR%oe6?$iU_;0vM$n~>DPRwEsfA8nuPjSAtcn`+ql&PCCuSQfw z5@yJ}t5h`+mPn%LkvhEsmU7Smr)8#z(f#1o#`=mmW`sm<@{pSeMyD=3)pkkrNH^g+ z`>_|E9xD*}fHLHNG`-`2ilbLKP0G@E00<@++tUwDlhPR(QgU5!jgA$(j{#Uqwp5Pn zCtJ$88aZTRt?98Gtu!|Lt=kCzD}M|SH(yY2Cd-F{?7Ee@(6FIS-6@8bqm7Ng%N0;a z1)WmZopC5|05W3;-sHp%I7Qsg`TpB(oJ9UXM1yPTZg3QTWpO2~#ZeSG@(I*|x@HOe zZLp9$2^;8qnGhoStchY<(Ue+Qq2iIEmik|xf@+#w!(l0{Gz(BZCXp=T(JFwCc^|)k z-fe$Wo5MT6zoy|q;FC}iMDJou;PY8c-u9lzax-bBi=Z_k)Hfe4%uI+r&^yY9KcgNKyB${DEGe1NcZm zPM~QUGa!d|F^4V5Q62GsjWr=9f0T7&uKR-%YK(bdCKWQ{0@@U-H&s%zndS<^VX@`J zam~u4tb=h5?r)pYCPzq)ty4#yoGLT*vJJmv)rr#$-6VM!-0|_$q=!4@I*P50gUflV&kCcI}aw27NthBqq4mEOs zB6I*DZQ&=jQol;YA?_0EsI6UGMCrIX1?o(Hgv6*=QB^Ujn#vbxy<2HGw}TbYQK{Mz z4I_Qgk!sAb6nZI+QbK}NCpiRWQgt9H38JCY@Jk^Elr9eh$oZOu=I3I!3x|q6 zre@{9DjGy4?jBqNZ67KoVAf?`IDN*El`sDsgXrw)PWTwZ`DlJ!LDQEO2`P+G8m zCqSCg6AhJG&9D-Mi+>ZnGd=jph?)Do9uIh+#~<`SdE;tp`SnM=X_<+ox|^ET!StBt zaS&5&8ZCsowd0`x7XEtb77?gyG< zsrnKIhk}(kDs^JmQBAN(kD`;7f=z&}bT23|-xd!CkO*@4@nEjSeIy<^1{e}oTmU<; z*6fb~lSnkl&wmUmJUe4pn}Ajev{v;h=VD)&-ML+e67E*R&^khzz2zmmYM)wvFi@(I zB87w|y#kEPhoLh;Wq7+)Pe_;jQ@p6DNUD=`BoI=FpP*^iZCHVkL+9X2NL1U%0{QX@ zvBPR04k#Q4(N@C*XW+c6rrN46F|8hj)97JP?t7T=9DZ>DwNwiAD<1sll;I(<{NC>k z7hKEbdLJ+j7E1@CBmOFu9}e1o(b;$xA=Gf2VwFwPj-VdyZsVoMN^rdLBf0R$Cc3LR z+393=bcYtH4^Oo9>-_d7r}<(;w7l-mRN&wYb*i{k2)Zt#BaE+&KXHb;cA3*}Wg9gekomR@2N)BIeuQ=z=7h*?$DBl%#BkBE* z`nYypUrAU1%%tMd{|>Ok`wp2wKHOiZr^i1JUPRnyRWZs47Za zk&+>AZf>QIU8EkkuhO!m*)E7}K@B65^`Y1{K+6I(f57c?mOR~z!7K{%7OEbGhtCd_ z_ZUS{!ShC<_MY!n3sxb2A!-{-?z+bX?cVjY;G`~DHy1i;ADwV21GBY2@Z?=NSc@EN zONx=e2{z-MU_~9JMEBU1aL2o%J8e;u>VPotq~c%vsCPm%`7)GfibJc@EjC17rK%}@h`zLc6<5kpzpA+dZuwJh zAZ=Ito&7a`kvxUmG4>q+F6RW@jkcp_dk24|`P3o%vjDsevG<=s`V>tP1JEJmOx2vVupZi$c1zM;DZ)b<{EOOooMW=svh*>{1QX4dIb|=aD$eN6NgaiZ2Wq zdh_dB&`xVm9uQN6B=Sxb!86Alt>rfBe9pPyo*f2#P3JnMjc#Azr~dWN%_>3N|qyFd%PYY6>?nGByfjZe(v_Y6>+ulL2=gmkS616B05YFd$MO zFGFu`bY*UIb09V_lhLmy0XCQMJOW{pkKY)V-UtCaf7P7ZlH5jehVStdxa^4#TR;PS zvb~O=D0;;Wi`0rOZ`hVEhQlT)FEukFMQb-4eo5(t{AK=yLRB|_o>MryK?V+W$jr+8 zGqb8tJwKIyEPpEN1^?$Bszq_}WBJ97`l?#3%iTrUG~O=Uc0ZP%?{;-rm%BIRzn8O@&(6xWoPB*( zK3bHsuejCatn{+S@6QUVem*Pzqul+We7bW~Ce7RaIBloiBzT6yfFAlk%|8Q0| z*3G;v3R8y?#1+1G*6M2P^PK?h6vir|rf61Gwp4aVm`#|KD)q37+2F);_h%!^e ztX_=ExvW?7#inf^O3r#SN7nj~oZ;o9py1`|jav-Gj)P*kSkK$4zN0c$^@K8-)%>mi zShYa4TrTFDs;cVp$8y;sW*bY2_en{EE7j%uGIr_;-j#2Tyl=6lr6qcirB3 zxk&$|>$@&yKg!3&?W4Q+pZ$t4=`2E*-XUdk;ce6lHZcCdBzznc(*2T>e-&$WkYM&)%p|H>s+`CIA3dv9M8!b0qNCx9 zeR)=lquZ>#+HU8~DhYPm#i+H5F4Ug?*BN1VW-)JB&ffd={FUy=Gr^H$(5~0Zz&6Ca z3205lJr{q|&esdXFO(^61lH%mp&)RC++vm^*KFA%7Xzk{8bmH_IvW?{gos=Se@!9R z@o3zJky`}g%j_w}BXa4h+K#=YBtU^cIdTh166Ep{kxPvf6P=Zk11!TwR8#*E_);HB zd#P3xm_FvK(fg!Wa)H6g`%F>hCk zZ4f2#l4et!6y*oT{|J7t=p@2he{h{g+)N~HKfFIbE9?RL*zNtK`!tJszHKXJNv@h8 zPv$=P#N?#=EI0E_KdgG`^Q;Mig!(_B)4K8~%Ph~pQln_(1}Auqy)a_Cg{ogX>|UK2 z=t2!H#0wZU3c$C234KC4j7gPf<3=3;&j9p9i4>t`07(K6ERA!Z4BV*Cf0%(!nyI7n zD)Pn>CLcg5MX14CP!4Q@%pX0Oga#5ylILTRI#QYvGjx<_#BCdgq*Ys01m){R)q%Wt zh5A6O8?C86a+$!pc^z{JZvE_cAR*)+0~4?IFa*Ag?U81|;2!Nzgmm$`M}`UR>w4ZS zTatr|@Bqo7VTxo!xlM8ifB7JdT?_%tbXmb>GCQBBktA4QCYml2mkoJ;yCO1oHnyc=e-^k7RwhUp7Es0E zn$sr|tR`R(VSl5E1X!^lj$_5}AqDg^2#SVh5UzPyJt9VENM{h_4_M;=T$yn}?UO&N zrEEd0rIz(g#E|eL6vmd+4q448_xS7PqSN^EF(u|YSk<>}O(JC>v2ry(fNNLHd}HRi zjcb1?t;ryI?ws26f4Dm<$SKm`h;ww-R3niPsCAWUEfjRd?47-wy&yUg)W6%g7k=i( zgA!&SR3gCKucEe*oRsNTJ zhDQ3TXHMriMXO?lZk?!I(Jf@qC(r2CI_d?I>(zrYvrFtL<$ujkWF;A?=mXOpJr|UEQqLVK5=U zWkbl#Xq?A(f122wTdwjMV|A>OoE|FqSHwq72FMli02_C~sMwK`%cNW-Se`b_r)ZZMxrB^Yy6iKqb%(T}w%!RU*^_)>10gxp?8bD}DG$9&WSxI$I6=zr;s4GGou<=x06 zk!lrz0U)E%m`oO*N|?op!HviT8g81+HdA$Gu%XO0e@x2^wruBYVD*V@z+xG}0*gJ~ zxx484_zBtqZ(r#qrI{ibRi?;=53Y%DENnkG&)apgoo}lZyThqicO0GjXiDcMyHz&4 zCzuUr0X(jXt17`rL|R2)#>q3oEe#Yi>0}C)vulS7C&?_iV zUt?JWe^FEd9%&_bfvOS z#4ehIRnht76$7HpyS;d;(e;(yR2PU{zK#?;VcDC991~5PF867Vu;kJZ0vnMCFRGDv zq*>@BjK}r6WMW;d*WwT@>ot?THQ)3Kc#4M^U4yNk^QSB%X-7Tv9 z1J*9WWPci6;wYGbD=5c_K|faoeOr~`JF57{De%^7#9#R)zK!Gl^WmtE+subghC$1} z*a25$;9TYEiXU=pFeXQhZK7kNB5Ju>lXv`tA$`>1or6kF2`=c0pXtEr~u z(x3ucs(5J!{Qq2e!+Ej(vc;dH&1zBIPI zNA_;u8px#@1T_V%cEi^Y&abbfX7vcU$4L6Z5OrOJL=+O+)mx>N^FSvK)S9OG=juA7 zBkW>nA&B%=eAP{fPtRc(fh?`2HP>$KJAZzXoNu&!kDJ&`%a|~e2seDnR!=yU)!|ik z`-lWY6uijZ@P4~7KETRIs0pM(bCq2LQmB*`y4nhpt|HfcKM3?L{;Xm`LQhdlRKd)K z3M3m>24DK;tEOF-(nvoQAHvd6(z^a6z2ju#EZVA?H#J+QDU0Idw0ihFfgQnEZ-28* zV0Ob!fA9G6siS`9!SJy^KlutR5foqg+cSTDG4)BZ=7W1(Zx*=(;{)+I>exKN{C8j^ zNBbDv6fu6^Jee5#X?-`Q4nhpp)(3^5FQzQ~2auo&64%)J04r0QCps(naAun}N^V+t zD2IUEm~8;0R;09#s^CV%gQRQ^Ad6tmyFT!Ki8 zvcPRcOQ3KA(IVGz{2OH3c7NWcE6%nV4JV9IsQsBy*d(XK4tB@tcC%DO67RnJx=uoi z((4>PC<+j9Ed!M|<d(=w~dTcrBp&<;d=Q4MjjI5@K#a27; z-3IZ5CKOm_&z_I3>DC7nM?!vqMh(J~A^$+KdSGqHP>byJAV&l(+JEW_1D=66S7Z*e z170uzzDtNu0O1NWu_5N-89$;8o*i3aY05u(uoY2JP`OIvmYCFOhEEW<)6rHXW#TLv z#@TsN9y#!Ao==5#PbE?mk7~lnfk>*ANQ5715sa34w%TsbQ!Nj^%pL6TwQR_(H+C#9 zHA803e2z0^PQzKfoPXN^p8&I(BbtXNFLHWp@w_1F;4!`I zTFy7yC9~k(826b3GpSAvLfmK${3J}dNI2tpWV4yC*Bd^v*|fb&CK>j!NPIfr1wp&L zp8@RU1Z{`^INqh$E6jP0vF9PmB7}lZ8dt`{p3Mzxz5zK!IW=V(22@mny=f$JB26NU zfk^EwKy`sgwSQ`Wk&67)EKJx`C|-o&E+^7LCN`HNu4mrti8uIqN*v}`6hulvpAEdX{R-xGuZD5ict z9YeH`5qc2#gjwLgsKH*cwrs1bEXcgsL2G%nv%Fy~WPeEkKsiwmN`WNKz=;m>7xoH} zi&F!X2()S=2Jw%~Fo`WdlC$t7K{&bs+TMI*K-LeA`Q;K?`iO z%1VXnQ-77i$Qo$`k}*nQ(Ig!R)d>Hq5Ba6EiaUBzSI#JqtGX~W%;BYVky^o>qUu}@@hV02u+vy~zD-#V9K zQv*G6MQ%+ccm{kt<6c~`R1${|&V|+XooT&TAAdzc%bpPs8YfQ5_lxAM)eBy>|)bKc>?fIt9Xn%3rLZI z%6~;OI<5ShE9FF)Z+4E)Z`4XWMO8f2FVe;VsoDhdISZ^07G89a*b*krQz+MS zHz*5ydIn(=3;cGuW*3d~u9*SG4S8yT-z@C()AY)#vtwLE+-BvKG05c1S4w7(Nx&Tn zIxt(xDGmefg$3W~wU=YWrV=^s%tRBoqklHVqv6W|!uelKe}!csEx{eFZj3wst|Z)n zwG=xCxQn&pxU&KF_{}2Qzz-)|&MVb5vFIV}X_1ZJAFlFs*Xb4i?bcl>i@Pomea?F* zYITF3g`8M<`L+cKk*~=yUX4e*)5!A)bq6$o^e!u}4iTJqj_{XQas@#c)F8B;V}C@8 zh)aW|$>38ts6EWeOGdrlLI(IP_-x5?raxIc5KX$U=ZV$Q*Yw)!=)iegdqrlJ#j_BY zvxp&ZXl8-58J&|k*SDpMp)G)9_0`2Vg$V&i&stI`TDj@`3Q-Ntj8p4R ztiEi@DgcR_0uhriU}UQ=KRrogRDTprgIkQEA>MX}cG8xjnTAI}Rwb!pO)}f&$tc=(fSBQNUG+J5XkC|61B{0s$&%Uf!Co!9419OvaIl!% zX6YW3@ohRilgFFl3R@^*sx;n2^I%9}LB>-Q8BBEEG8{tUSx`7gnHWYNkAIY61r%LX z5-@F|_z?ociU_82FSP#%k6MY9wh;pn?SMV9p`ejztddubl1PycggB2Bzxq7(<x16LG z!&Yb`VvOU-;L0xw+dO;U_i-IU2R<5 z2YPfv8;w+<0DM75^ew!h%xRC0OFNDI{uzirfRX;TrJDG%rVMmyX}55S_Y=(KJEC*T z+&D1bdFFt8ZV>iW2bucGAy@Xe`OsfCQb@}3F_ZwwH1Qol58!st>nGOq20ama zJWoLn5{J<1zDUa(B7gKCbO5~o(o-SM)_8vM=K*YL$m82X$PtdboBV~5+pX}N!vkP1 z2>SmCdoleUEh}sVI{E=p{80A*2r(q{9q0e*L!I+_089sw?}_PTsra|?p)QS)F(d;e1#iuf6};6_ zv9n9k;rkA;Rwd(0MGM_|nE%YDJJ9yt7Uq>6bd@Z=knVDUDkO}aB_t)|$hKTrbF?7) zLDaync8_xU2Y++L;Mm;Ei@3oHm%7FY`zk!kK9M65Rca9Wng<^CHIJnX&4$*Vm8?hv zbTt>I2z?r9i#xmps+lOFLySRx9H>-cwZ_x4re?)@yy82zbQ9LncVCa!OU@%D3!I9- z+Qxw-{^FSZO*`GflAOPU7ft}Sa~HdrvfqX;SNuetKYwVKa40gm!E}MHSzv5md`p7m zkAt;6vEc5Ne#1OL)^`vvfQ*Kk?I0SruQ3g`uN0Qy&C4~2pq*NOdTl={q4c%h*#fYr zEQ?`ZHJku2CluF9`}={efDq{>B%M+Kv6-JeXFGXAna!oR**Zrj|PaxyGEBqgZGt~>vv2dVwNVMeD1Qn(2HdX zI;nvMxPO~UuQ58;?uS}x9N3A?KL5SeCsE2qsh6wQdsx~Jgha)h!IGRiFm@R{m|myr7$~{PBMQ8JKIFmyIC-8w52tHa3^6Apyac;8g)Fm!~2DJb%5MYm*x{ zc80(AujtxOGgTJFzL0Dto2{}Xd8KS@?Rx0A67Sa5Xf*ODl4fLG;#?|!a`T7s9K5GN zfb4EkqAMj8dKwKJ9Gvr>3xIC^T>h#2xvXmb&nOq&YSwk-Y8fu?uFD_F+w%T{_f>iI zzMO}D@2}`EpVh7I?T_WMY=4{Cx}MML;_6NL)rRNu`EpfmuF9qf?fkNNQ{LZfs!o|jE|_U^o7@PF;*Q$tlXLpNO$$MTs@%+DsW`G2=z&YO8PtJ?MY zS0cBVuVzg*sD=SSl$jvTs%D(eMYWvOUEBUzd{*5IUaMVlhL?kkf|t7&L1PGZ92ARs zHEZY9X9{CkO$eh|&OR3a%ND4Xi+a}0=kuz3Q!ZNAY-3IFI;m+erK)^g#!h|3P5ENT z`c~E4%r>IGns)`Z*MC;Q_WY75-E8mC<{U#bl&)lnT+9+NiLE74w>d9phNW(wKl)Cl z`c#Jd?UX*MrMZ@-6q9Z?6Rb^{O}m%-FA_(kw6)M)l^ z&kJ0@b@CL~z|*@>^E{NQx#|J9>?x@JjRa>T3iBuo0BIWO@qcX~0Ta}u!>HxQ@bqoc z=Dj3Z47$B$0S>z+5rz5O2?4-LG3JSI-pe&c-e&NbkZ9qq`*`>m%AO3vr!c?&^)!4c zoWr`yxg4Af+2)VFiBoFaM z272q|7M=!%g9g9330?~+%EciGVh1HMqvmz^Tcv7#kt;*6G{RhI^i%9yoc(+F8~;H) zDj+jaOVvCJ^&+Pskq|0lVmJc)2fbAP;k=+me~XT(CV!ICz>#aYDHsA1kpx7ku^|g5 zq^DvFUsyof+8v+*4t3iOf z{NoVtB*^I-iTB|Yzw0@nxM})ZUC{m;ejRM7g z2KY$fDSvRJe22c&t5P`BV1zsd7IIWC=G5{kcqJkj_!K#@D;%ng=%`*4Gyy#oKCLXy zL|h`NSMY+cKF)41g?2gXoKZ{jJA(9~Z0!n7;u3+Jtp~4Op`19#Ubv~24XJgtAX{c6 z4-+Ru8>GVGA?DJ@`Wl0qW8rba?p{FK`kHj0jNd$AFa(XIAVI(>9h2}tc+4r14-*~@ zoPRQ?Xkv-4@#sZO?rRLdf~%k_8&WA?%cw;&QpR|9Lr>xEV#kZ^n7LfauA?Y-9EHVH zxS|v_@g`Rz-qP5d8lYw;-i$(VhP#Vk+tXgtwzImPV>5eFulI1hC-qCXfJc?$7so)& zUCPp>o@nN1i05z4i+fzI(`I^d>jKgfm46@Ksxmd3y_vK&lZEBgVJ4@!5{uFEPHWIl ziqSjD2W}TKdYtRBNDON0T%}JTB29J_rc^Hp3Vjw*iZg{2mD09kB}t_?Rm~1#2tRe< zLX%2Sn@S()oHDIsQEbH&GY%l40x&w^)EmF6mbS>f?G<07310^#xBLVxEA zN%)a28_CKm5j&iG1KjYxk7*IZ-9z1YudmeEBjxY8W7psxBqDZDa1#F=#`^n^?yCNO zLe2k%Qv9TfID*5%qCwALNSe1Cj+-plT(D6{b{Bm*0q*er$U~;ec+8aYdz&IxxJQog z+6Bi*d3Rngb=9B{{>JT4qCrY@O@E0_X{o1bsi&$}N&TuYCrNwcMSH91HyMB<^`c-o z4{G`I`IMuo*TY~R$cGP|l zyUQkAl@c_-q6VJt;Vx8#HV`yUgA&P3@!YHTZEfY|CI0s;+A0Dpp~DNv+cgHf>y2*xr%aG3(c7Li*(4D6vaafENa>sa2`M#o8nRs? zG;@;rIj}-sh>lX*#8S5TYfRcNYAcUGRxmD$rfO%^0-q~c9N{Q&Jbzf$@Z19y^*u|qn0Q(C&1kkkX{4M&y_WW2rMD$|=HW2(nN@oNN zImI7~vjP7gwVK`Lj$FQ30I*C9w;^rYgTkYLkR<&JJ?bE$kp!+HjX0|B+xT*aHV!H^ zRp3#nfi*yUIsvwB$$z04hnbS~5nwxjkNJWF;VnLlG%gUdg&OTr+B|Ner{87nq!3Cdm5t#l1y5t6* z#caSBCHSNS;z~IvRgVXxrIr2OGsql=RoyPg8k=>_WU5XoS1p1iCwr%k1Q2j zk3nfDlN#I%C4atvX{rW~fa>(O>a9%?TnPFl$&_a4hN#pO2d8?pjHJK-^*9wu)rhEh zA&x!6rSDB_i!_ikltZwwg=l%B1o5U?c%NZoUk8j`Nz`4!jb^BZd zo_z#LJX9IGTh+6>OF+XZO>8O#L=85^13_a;vwwA+EB-S@*sLmo$_}j&Bia*TZ$zXT z3C?i}_i#9lb2kO#VND$LEWZukZi7tLp1BRV(Y=1{J-ylqxJj_#7v-~;>$Z#aY>@+O z1QdH_@%F9n9t#K3v2=NRogrka%*e=Ier2}FYe!vrWTRv#)7B0bTj%70Nd*zyxmh6+ zFnn(bRs{#V7jG`S*uJL>thV^696L3)@ZxD<8ti_?>rf4tpFA(!LZ{ zy@y}CWe(t%E-9~d-n=r%EiyI0aGcBorhkTN%-f=p?{zoh!epE#Z;_3f*x(GEC6}5{ z+a>y36Liu~G|+uro^n~o2s9kk4dv_%ggxPSUU4u4k&8Tk4hNQqz_JuY={F=Bs5ke! z*RV)s2TG-S%5{2k+56qO;Ta^U1N;2;_Up~{e}r*tub11wj{Sh@D7St0I*g~1P=8QZ zv`_=o2oE>Tn5LmRSPA}}3<1?eb_tEv``R0Eu+Aeb{(57N4Bphe@HD9AvzEd z0Mq=?TVuF0a8k*^xTQd(mG|IkZhx2Z?60~wnwh9Id8NzD{Y>fAZhmh5PL-s^y0{gW zFPJl9i4CtrYvc3hl~Ufys#vrHDIAf=BF?exB(tBI-I;WSKXB}vM~QIgJVtTF!fv@H z2@+jr@3Eq-YA0h)!R~!8Q^ue97*0=?^wTzmL#}5Kt-qd8_LHSrW=Nvpxcm}lv`41 z&LdgCM4Jh_7a%xbv)CEl4v$T@PRawUCS_?5?xl1(J~w+7MP&;` zn)vj+_lNR@lk=YC1Db7ff%|>BMhFYQnw9@T1F{6~=JPCFe>wHO)_;9)d>ACoK7?to z_lUcSJOnuoNYfqcp#@m(zgU3XesoKHmf4|wmJkeRYlTR|WF-${2HzXMtn6*pf6#=C z*0adqVmTu6hV*yRsJRUTLXMe4@f)v?^Nlml4{*!@5z}oMUzJQ48?Lbr{9nmjXSlL zJp(@SA>0P}o)&IfHVx(-pM+$@LU26hRcMnP0yo(q8j~G&CVx9@`$Cn-4tdUlypS4y zBO1z8s8RWw0BP#SXN@awI!>RLN&G(Mg}?VES$G3FXy-j+aM2BKCfgHlpeF_p>dbX; zF-^fLuUaGxu|K7}u5H@A2q|?+Ta8TNJidD6<6_L)PAMJp@H7OZ?18+0B}&N5DpRtC zuAM4#U{qzZ@PB5kAmP-AhOO0p1Z_3Y$JqmcG&nSWIcs{QeEUF}mnfi78^|wMOQdb~ z20Vtue&vK*;C^xbTqiCgjRImI#kzeQF>TG6NXJ4H~HXcGyi|(M~32#Ex;d%KlwUdk>MchaQm# z=u-{yq$RFG#Hq(?M+yuVTOvfFlUkx4XaWmLAVqr=ONr`Hi$)PAqVS6tRtIzfQJ^($ zu{A5=YR;Z~Cb1I)j~lX;vCDnx-H0gn{A)}TIe!zpK-lAKLwC072(OKemqgt4{`*;b zne1&fbKQcXGmQw9OD}U2o=+l~o8c<0| zI)5&2%6rNnG(J^dDANm6(o*B9{j1okJo{}xv8eqn{5_k3DW81K<}3DGQbC=7Qob1v zuW0-VFx{Vt=5OFa@CGhavSE(J**^uDSQbjvG{8CNnKvyHPFc-noCD$@!csa0v4JD@ zoFbv^A?jm2i~4Xjs85*^HB4Gy00yX!zkiuD^?iHWz*P;AgL+^_OB`XOgX^LOkWhXR z+Rz>#iNY+@SewGuGt`S3fT6vpspc0jCyX*ok8f+F$7%|`sR8$tY7f5oTkSQZT514I zSPcE5$C`&qd%&5j6ZOI1QAE?0BKk`@S*A1Y*IM53X@M{bp(u&=Bnld-> zNrG_{xF`(L+@urH)czKxd?9b}$bbEW7_=Y=|Nab5A-8V(BL2wR6Q%6Y_iF!pF2LG8 zMxbT>F~U}8_Ax?Xuk*`DqZp+EG4Khz^ZUnf*+|fcpW7Nys$!!z7s;bF?Yi zV+kLgbpuv2{COOCTA-;Pt{GlZ1l=Q3v5OG?Ln|AzGC z0B0ySOJ5}DCqV)5EVN4-_NMtneu8GOFX@ezXrA(Y&{fo@*M~&|Eu$q;k3K1B38rva zXc!0L?L$l2V;8a!>cJ5;dVk$nef3mhiBC~bJ!6gAMYCS8Twc~Lz|*}w??w8jKIZL* zK32#PhZ;WRV};u2pT=c?i?jJDKVmX~mZvg8bA3dSO>h#a$|pdBvd2N=Q6z#u;6RZm z9w$J31PwKVpn<-rKg6~KG)7?uG_?Fg(6saAY`to+-qW>VUWH94Uw^O#%nbYG?Ix7{ zbk%o{g0Q~~CGlt+;p>KF8fkkN%aFhu65-4LPqD0vM-LRL<$K*9gAWVee+_nZ zp+~_->-dF7(+gjI8_a$(D{{mV{iNKapIN`uU#t%2CO?oI;(x306LtblPQeX^Y={Rp zq|K-=_;O1Ov&U%HTJ_J9jsyzjsTS5jJ_E z!W&Tt;li!Q7jF-^MQB^=7&y7M&uI7^hEtkmpzgFmIaCv7GTx46qZA zqs_wWuNq4OqK-d{Q;uYxIJM0co!40Lq=BO&( zcCrs^Zmypn*c9Sp(`MC{RT%%YgCp{`s?LADa)0PsQ%|q=zBOG;W$p1>({zMl_v=Ml z79R2S;=2FVG!pAyJU{VU(_tfz-a^@et z{(sbvM+BpwreQHur1|Z#UX!pJ|69WzI_KK)?)>CPucp8>0wNLC4lr*h;k0m3xFz59 z)#GoJtvv~CH^GHT)%Qcq9|I+PD*ezOG}uLks%mg{+Iz=s>2Hld;zN6!Gf#16wAbJG z7+UIYhEIPiM;@9ICr@8{TApFrTYj|xu73w&MNEY0^gp}9(G5LBV{peDs;o9>gVTmD zwG>~JVP@OYHHk=VG$&klIYydItJPx%J|_EIB)WVUt?3kP;7 z7kXpTW^ao-CL5}moLw!!470PF5B+=2h|Sitv+@ytNY?h;ze`}vb2Nz(wL%G1`hRPl zQ3iY8#o^xh@sbq_;pByiqh8g0e)sViThwqk@UH&z>+BPk$8dsXuI+_&i)#LrW&Ad$ zvTCwVL}0R1BQ#Fa{yll!-M!Vb*z=i3OMh$vr;}cbXZ}dxqloIX%HJ36-{4o}&~VO4 zpa*<)=y=J5jVJH!UwLLBI(zLnau<2yGcV5S9sV1?-_AVhs{GUc0X8xVC6_Qg0UQH0 zFfx}F&8uf6ITD|1Ga-{x5iT zyKS-C<=c(Fe!9%R&EMtszqqRMmsfe||6RSLL0QzTe%r@plebN=f3M53&R)LFA6`&j zmYZ#U@iK23rwgx(xB2~xiz=`3i`V%d^ON%@r+J&7{Pr~etj#)PoA&S9-xWtG3pyB0Cq zSd#silr&7GD*rK$jrxK&`Rlpax2;N>wgdXxCS&fkmCwEKe;OGbU0%Oox^?-vHRmt4F;)7}Xv&fiQHltq$UN7NAW#409@;aZ2 z@|uZBv;PvWK;BCbkKd7_(A@6N|@<6Y1 zy`Fr*8+Q41f8Z3l>$?x5wt={|`Vn6LqIO}Vd6eCT*EgQX-t&4PR{hT@t56<#3XB8G zAY|Xcr8uq58hrR>zb~3if}(wGK6HwrY~;aT(HAB~m4M{$ZnjHAV|axZ(J2*=Py;^p z#Y?XNcwzcx7JbG(y{fCCtoO}WoT(5=7?GRJW&=c3e>Y6H?TyFgY{8YH(}y2j_!q<= z#-Qh=#;akyd7+`|S6goMp;7)fW6e&)Lh5<V~9gF&s$%9r! z@m^A-d_IgM6Pc)j)&V%}#q!0wSNUniplY0wck-Qy+p`ZARLz)i6lS1C7>m@{d)XR$_2_zHgsXl|^HE2_6Z+>DO z-jwz8D!!-2TIV0G-j;)sGkinjeps5qs@9s*$vf4n&1e*X zY(yZXg__Vq_+{Zbc623vS7I1spz*SCf19={w&gBZI9W!u&4Go-`MafZI1TzXQ2`w; z%3itW9+^25lgo5urKWTf)NIc0duC^Qhu@}Tt1j{jKA1b9U7thPXdw@&*(7xd0@!$= z`O!Ph1A|bA5)4)$1Ixo(GU9wJJ?t~FQ6UOlR-VlaORW>N&F3yj+JM?ZU{tsce=!dk z82x1kkJyiayg_K>djIqHZxDlmOGM-K{TtP*@Iwg7Dia^ouxc^isvj@(YS+e7*L6`> zEozvo&D=>So?S)0;!WALaTsYQPGElBDs@xI|29E=! zLaM=w^39AwqmdLv*c=D1(&g1@CWky!NTtA)b^udPs>Or(3RkI=V8=JXe=d|{zAFPi zHD*%s9lKsuyUj&>S)D9Lt7?CIIeNx$>4Aar#D(!>xLU&T4HB4wh`Mu+MmfS$ZY6O8 z2{ll}m>D5Br2z;L5hJht8{|-e*W=mt3X9!{DLRj>q&4wj__16xD2KKtoUb5*h^{os z&5)>5Vrfib5l4eqzoQnuzZIqW**by4+=#plX{5F+B z>=+akVwCFfkt0$pQn76Kp7Fp`9Mom8HUV4qj<%aA9!4{8;>IxM(uSF_sS-?;`y2SL znS|ezft4OhCue${^I{f#sh7qE|38$83rGW=j-mw&ZpGC4-~#SG|_8 z*5^s1Z?zfnT-0Lsf9Pxddbp=#cgzY zDnf)9pkap}EHbesxPlhT@&rrr?0l;o{zXXU3ErSr7=d1x43wTELxaTSe^QtN>wsLe2kxcYmc`z- zzcL+QtOK$?z*q&OuLzC<(zE3eAir{@eIZohmj0YA9f4Fk+qBzPgZOs-vaW^2Y3Zo! z)ez2c2;K*Y;xN&}ynL(>hsD8wLIXA>#OND~^R1wV#bcDj;$Q=x39deOY|si^rS#&X zR6tQskzIU1e>H8@%RTSKIP@t3_@Q6X@C|2iQ;*`Nl3ygcI*t>@;cg*RqzcGlCwdKA z^lB?gb)W&8K=@j#_U%B}X*8-xgRM%$R5a$=4L<48%9(S0($^fvuj3)@C*_<$~a^fbG0*}&R0Z&f>Oz;!% zQkYRfTf8vPHEw+_8T~coGsqHlg<9pQnii?J-+8i}=I5djYcUmc#UT~THXZN`Dw151 zU5NL|f6)gj39pKOdb4v^;3I!t^x-7JDVv@kG}}#4b=8c~+7(ZRLubjef`w+U9hwnH z?*N4}4Tzirbo~C;^7a4W!$YN5QEQa{Iko-Ie|IOM^8af1!LrK2KK+`?cFZ14pDEj0PM=wwe??8;W`!ztdfj!K<2AJPF-Gu|#}!~z zE1ezsUDIwBoWEc$eXEyYmc^Bx?Vc^`w{G^9VMxb!&sR7o^Hp}AugvJQcgjFa3G{P; z?tz2uY)#mGQ*3waHFw_4-K6!rVk+*;2GoJLqik1J!t;@-VmHq-ZR-Rlr3@2mGZXl} ze`#jxxPTtNBu~jq6NhMRO0YIhtPQ35MG{KXFRqh*jf3x8n)T<;BAaesY}uSSlrSHz* zw$O=z%u=kSaOybd`7rvMZ=o?;(XyVxe?eU67##lM8;+Wm(L}d|Ll%rFBMS~hMnUW& z;jogUHJhfeyGv28>u5NZqP2UrjFSV=wbe^Z(Y|>E9Bk42@F{Obc)p5-sb>%?ohn~}A(!!8bJeZg)Lg`xD6sSsgthfO8Q%N;a6H@*z!`wXfA{Zj z2TJ+u7rum-&fAfZ?>Cpo#QT-#Ma_a{Sli$Wtf^4Je>ZmH`z>2ZyneAkT2tTGVgfr|B#QTea_SQFLLe?=f5u`_Ne z>l+8&{YACVe`vu<<+IKYn5<#WDlGQkS%j4a(om-{U9-P#l=sG0*KpFIJCVJG%5KH6 zXc`0y{3ZhBug5C6{#pB!gT7Xr!>%b>?oAPvC$_!O^#D-HP`-gY*(;Nrud8shO8)fq?ds?d1E5_OOqw@k@|tkAdAfchKOTF%8~kPOB#)_sI#4E zRfTH~k1;6ZXH@Yz7X^C*Mp*KS3e@03A7a6>bksJpMxpIiZR72Te?g`%)GC-yme4cU z&88-Y@#;|KHDE_cf(%a9+kZq5dU!@71iJ4xGlB{v_*LjUXg0h8U&*50!;K03u-p#K zk5q6gSOpl8(n*{Ey)b-pD2!E*dl?D?%^=>1!m0LgLe!t&NZa6qurmISmPJ~ZOTe{#{l@1tH#_vO>h^>6R+B`gV2$v zO5#rd!|BLxvhVd68)G?aEW65zQR;&|R4A&&yZ$l8a+%LX3gze^M{;diP#$n@bua`Gu(E7{hAQ z7prztdu6d2c&N2R(oj{2oM&5ziWdakr_v`Bh5(lwPBLf_w z;ST&o+u9z(6qU<{bJ-o-vws3p<~5rZaX)X4f6opz*mmnb;v_i`s^aQrS@TC`N127c z$c!^?PN-%#=Cg40)uTz`{V_XvJaY^>Iu8T~oOa1UGxwNO;D+baWxM$>D+ZE-qm`{t zu`vLl0hW%81TJhA*$K!Ge4_HlV^F3YgBVH_AO7IDVL?pW(w}Mz*jL1o(BdNz@!|-o zf41{SoOG#f{?EIw{M>5q-PB3PV#J~n`5a~X8tIbzm&~uj$pU_G2#@x_D4B~=sk!R19}&keS}bk-jt7_cP3>T zb0lCq0t{#!D*-dWz|*2Ze)5%n%eV$-f1)x6wp3#{p1b5a3+BTF4@Ikmj+_$qgH#Sj zo^;(#`~fo8kehuN%H47)w-aYlW~QZm{Esrz5nfXtGY1{BQeg8jM*`2J`BeWC!`PVs za}4j%y3X~KJw-YgiNG?$u(!?@f?0Sf$Xmsf2Nk1 z^Vre-A7eH$&4N&7nv~DN1RA-2%Z1N>uY75nOb+xOL+RnX=V+qaa<4D#ZtWaq)fsK8 zqUqXhU=~)dWw(5@A%rgbt23mwjW_1By^z~p00sx}1A8Slttn&ftL$7q2uDWuK`(-k z{rX8HPrUJce?FxKNCK_3oUm*0f2C~Mr}|jI)@n}Z*s8gC8?Jb)Lu>K)dGO6gcn!!} z=4HrA*ch-l7oGlb$^fizCh-(yGpo@*Pu-P4!$dsu#%NVVm<%K7sp=R^X{M`IPZh37 z7a=8?!UU*1;ql9714@44x66#k!*f0T1d$vs(Q zSgMs&OMK28S!!#Pew+>bB!f~OasoSZPI7zgutBL4^$D+3Ny(I$w1NB!GaQe+Sk#+(M;|@>zXT^ zf-f2%lBIEiT4YnA{y_Zj!B4QFsTVYM`MD5uGN)Sn|v%zJJf0uarV?r%sL`nh< zV$*SiWuU}nP;{j6OD~D1o5_<}{`Hi-T@Og@Gj>r!@bNV_yf6N`kS7`VNIK#_POu(f z<(+1PiV^lGv(b!L5X!)p3T3YD82BuCn*ra{;oSgy;Uoy7tb(uKWm*HDACQ3Y82uK& zXD~eqK11kH@EMkFe*nJzuj5kiNmU8>WzUm}C<9;5 z=N6tXY#&A3B`XI`-q<7af0xWYs%^_ZV%Cg$^F90Hxqe30*eFlOea__izS%p<^}mJ= z@Z*L&yT|bOSpI&_e&I`PZJ;vnoaFz6%>GUVgrSa@>e*=UfAqGX;7TJ!VA$H?8|?*H z>EkGeKoAep|GV9rWj|v#we3JWIAi4;Pkw_IQk!JnH&7%0QinbYwLgx7NS;HG0JW z=jV(U&k}Zye}Eo^q>MbZ)uigtro=ZGls#;=_yjG1j~2vftw1R`$H4H#=v3e(d1|l8 z8oRA~BL5RtiViAPTf^Jn1q{{BI_huCs%x+!mkIB6kl0CR?Y-PonII}wnWjINNx=DU!|9HH8VJv@Y>cGkJJx)3+O}bKqL$mIk;eSpDw*0gZObR+d!(90NEoF_#}z0l@?~ zATu+T1Ozpg4ORg>f9;*yjvUExhVSbs3cBh6xXrFpAJ&!uasYxreZNU~Y1vw8XS55; z@&%9LdU+B#>y>2q9R&$~AAga5WOikDRdw|Yy)X=eL{)VjA|oRs{)jwO&F{-!mA@~m zn*U3#-FCCwZp+O&+&;W0zb)UEcfa^pmCrtwtMKpRGb*f>b*ta@uzy~cZL{3ft5sb* zdsE)OB7e17Z_2A@Wz&Rme!F^8-o3i2%BsA2S^i78xO{X`w&miVF3Qj9a`7d%s$7&I z?cVE)f~@O{@?XoVe<&Yb1y1vZcbjFmuDjHFxo^GO9<^Q^w*KV1i?S&fA1+E7|IKza z)l^l}bhB+zTi(-&{(o6VuKsP9^JY~ot9G~hMC7{FX4z~9hhabvWhRJ4)s6GnRqJKF zZQD=9XSH3zYjsG@^yMU@=*zp8VZ;#ZxKecWX4$T)8wz7xO$eh|FK?;<>lRflyL!1@ ztyWd}rtDhSY*R|{x|h;mN>%x~OqF87tMcWM^`V*NrdpZZ27mQ0+A5fw-!#@+ncU*f z&qDG@8MCa zd?ESV2|`r924NXQ^+Gpg)ZKbYVs*7!Zt894?776U5zm>LQlz@Bf%zU&J{yvgK z)bNd1pMPQ6CVnj9v#K!D4@1+JJR-3)#6Wq~!s;x^hfZl9zxQzsgI6qmdod-D27%NS zj;TLhxd}vp6d|OU5{TjSdRr~Gt%oT?f(54wLZewYeUex;gDF$SK2sw&ePro}IDLtH z!LJ@r2L&bR5U9iWfx8DlP00zMwg@dkt+f-O)_-8v(fk0Y_ZdRpq1xsh5>T5jP|*XR zrqBUUlOlgH2-J09YC!wq2rcDVG(j{eH55z(QBP&d9{?XPp~{=^ya_H!DJmneNvOai z$QF+M`I^#InRn>9>CiJwVFvx0~(}zS5>4 zCVwoY=8D6~M1aT5YT4BLXuhg;r`!7RyNhBQl#VNsl%RPgqT?9}a7D#Z`qS{t(2{~| zDTy?AhRe1vBw^SjdB%ubkdzda;h7ZWiZVeob*J&QWe%|`*P(Z}L{}zUfGcyaJ~11X zInM1EUB}0xUT>GH4OG?Aeo#*OtO7Us-hW*=5=0H;vE;qXVFd|tMdE0Oa-Y0?{sbLI zO`aoO&n!Hccwt7P0VGGkfVZI9?^IPa*VE|UuA1d~x2mYEAQ#S1a@bK6!BK>ebEc!fMT|?Yu6N6dHM4c-QcrsGrUp_C&6q59mY-+fo(0W$ zG7pH~z7rjdwx~tS1x$-^_M3*e!)5~n^oL{|Ohb$`wmKFq$x(kd9C?AWcN(!DzushU2H-1fv!wk4v#)_PyC5#C~h5t}RZ^S7)PWv6x2D5U-7( zC`tta7^Kn*CSrzrsF+GSHunlBxK=!Bm3~lN%*jzX(hJG}zL}&b?j+m=po_kAKyi$g zayHqMb@BtG1x1YMCObig%)t$!4RLJAV66^5Iu zo|T>up1QbBa^XP%`?&GdEXr)wH4uCtv!R&!NM;`yA8}+e9n)QIrfu9zF}M+%!ilHR z4T{@(L}7WRcKlW<`mrZ<C0Ex}k}_Zz z>7pZ=AT*R|m|Vj$c!h--;#8~vj|3Cw5xKxPV-L|n!x=HVuuKfLhH&2-x85FtOMEhpk(62W^sv3#WeSCmT$h?C>&Ebo%dD>P0IRMiv;8*J z>0r6~uh7t{Cf=B6qqUVU)*-VVkHbMw|FN;CJ9cQL54hbUygqQdmoZWu*RG27^rme$ z-d@k1ek$jS2APWhut7!(K5-{@OY<{xB|Zni7%5J-ZaUv9e1?|M^X5G*gbu++otW?0 zQW#ze?th$dGXxm-+d1>SA~-8VfU|<0LYbS+_X^`1&$6FPI)68q?}ZI<`soyA&-c2n zUFHt!G#rjj_kc%wwBJ7o0ng}ySm-;$a3^?MGzOoGSSb&n^UN?qjpr~CvzBr zgkggV0OTi67p}a>-%2ssKkAoB+G4-dY$f@MyZd1G3E~~D> zVfR!b^IkcMg}v}G_tmlq*ly1t27_a?!i0;XRPn&lQG{J^Mlf688$Lsq4lH$}#148m z#eb9`f1l1sWRp`QvLOO9SY%}UW}t=+`^}DQjO%Z;BPv*Jhzdf}djidR%h==E&42C( z_F;;+n{Dim2j&(soB-tm)IO7*7Y}U|aWCEx3dN>*AyXD=E6SY=%tM5X8lv*gB?M7( z(u73&*x6#D@xZ)@J20#x?LkyrO>D$OwCx4vac|}bl*f_CmWJ9LhrtKut~p-VgkUrh z;tW+rXGFnsifGvj`~xziySQRM^M67+LK2cpb~qD+%MX=$h1mH)xS|!8sTCP3sJcY! zJZFbUeetAXos`UYGKamH{+_e3a`v9H&FfGBuDw0yiRh`>a>R7AI*?(8fVt#OAz;fI zSKKSh$bc~C2BoKHW&6$}0j{Z8k0o>E183;-KB67>9zXuaV5ASH{71#fv46Tn9ePa+ zzB>>({cJ*!Hw`0EF%o-r!+E2DwUZ;Xe()8#Bh_UdXeUT9drb}75EZP#4j$S@Hu?c{ zqHR=QCKjfWcD)x;n7^U+x&lO`17W17?jxq5#lo(=x;#e)E~5pJ)`WVfKQ#1w!W**_ z#qu6+otOk}>GxO~W7$?GTYo-CISdbwjY{F4l{Xj-d9}A(zry))NL00Y0V1}05u2bXD1iXwuE3eM!$r6Xdlh=)pZj65)x8_ zdZwvGZ$Yqkpqi2_9K$IwAyAiU8nfL_c79JD6@O*t?i-7M!d6u=X1eK9J5KbQC zNTLZL zj6YA&@%Qdd5}Ub!k3fq&?`C7D_53X5M+8w`Rgs>s#zu?w_=U|Jw;Rfwbc@mlrKJxgP~f;yat zv>)i;E)hT#A&?bgVT;1d?zyU>YAD4UejYddjiQK%7td$@in@Q7alx+Kp7VYkPSBB| zD%0TKu*%L`A52rCoR1Fp4J=fH} zj@(SIjM$GMI0B|RR1pE0B}aB7%Of3kxSCyC9BD>6EBVLyhOre)Mj>)L8TO#Uu#|vJpv1P=}84a)G_G108lH1}$2~+8T-C#Q| zG=@blTVMk^Z8HqNul0-Ze$^`u7gxNBv%)}L)60ThH}Ox}L`PlOP1>8|DChipdeWy+WRWa23cnV3X8=7uou z+RVa0u55Uq_A~;t8(!#N@v(tS)dmp&Rhh9F({zaK6CFrCMQcvPWPZh2!e`E2+xsO# zMt^0&a74?nj2lSR@%|I95H_4v*sb00IgD>#9rD}3XKN-PbX_kukz*${SK~e}u_N1f zz<6xjqiO~9C`Q$zv|y!Nym760ugVrjB@!_&P}Hsp^slinYv)=7Tq&_xODwOQi&&_1 zo%UiPsl6VGN7c6Ff8;HSkwkfqR5V*W#eZg1#!cflyo*53i4m=F13crw+Xi+5pIOrZ zAVRVTIeVc>*zTwMYS2wJQp0UqHK*<3x{e))?~MaXrZK~>WpVC@ZzwTw=_zJ7Hah_< za=)N^lu8`lN!2t}V*Zg1te7tC>eI0O1ihz|y88Q;uU`0j&9C;aIa~ZX@K)z?ihn8l zzDB#_Q%V_U8RFzo-c&4Gv!`Bf@QN9+5tGTuBFjhDr4O9zh!3aVTwz?t(in#-Np)Ru z;=p_1NLR}BCv;|y?on5q{L8Y^8^Ej zuC#8WuF0d0D!i6FOlfj}yA_{gtAEz0cT~Nxt$;cBZ9yd;#)`*62G?xPS=UX(Zo`z> zRi7yoZq}0N4ZI2pj>YOA|CCojA4UW7=v4yC|HE#@_45C)Tj{$Bormc;8~F@3IJa=Q z4!v7+>^jN_9nr&xgsx@oMn7QYI3`vhg0;H^3uL@arm%)J?tsSkXB(VQI)5}X0+>f@ zms#k!4;ma-K*;bGYdP%3^GJ9a=D^QD%Dvn$$a;^LLwP~wXcSMr zd4t<~XVDiT@f#m5L0e2QS$~w}#_op6i$2cMBR-yxj*}?9IQn$Pk>eeVFX%t*zWtpu zqnlV#7AC>e$0!zyk(vwwYzt%AnMmv>@WK8lR{FuUyXz8*5j(yY15IKmoruTsWQNXQ;s zYb+Z<+1ufZn?ZweDaOM2e8C&=n;P{Iih5@q)bn+mUi#e|h(0Vb>1@QpE{xEA8pAl! zNs*I91eHxa3BO#)Vh;}0;e?})mh>_%V7X@RqmIHp&zyhs*njqk>;s+YrPR|~Yrp`m z!rW0l6-9QzRV;fNc-)@7sJ3qFUZa^G$Ps61mdWWTJHwrQj$+Pvw#$bs$uQK2h4AD{ zgR}H@^W`u8HsmpstXBSAEXOLw-&2l#;D=w?UEi2yCFQ?rg{^1^SK*6}<#KrrxK zpq_GJ_phC6hdReAG{c6*#|sUyU)Fha{k3(Q`%7JvCc1?%#aZl818%fq|lQn{rdfh`}WW^e1f3c<)eQHD7~Gl9snN&69&NcB45vW%w2Ce{IU;HrT@r=D{2H@GWuzy z|2P*dAlK51#a{yMqEQGL3P?v+QDF3$Fp1`0Lw`w8Q#u0<9fJn+?hVSoP4&Ix|``b~%+#!NMag{Bj$Vk~tqrIXTU1|vXsbhR>t=c-d`k@*+3)Rszm z7n0OyO#LLrffc2LR*9k1vqVTeRxLFqsU=3CsV?E@kvr?BiJEGOA(%_8LuatViBEC~ zC4aaor7udgoA`vLx^1n;0ZI=0*GfE)ic^o0p?TQaLrA5BEaq^)L z>rHA>NLYGIh`17>1<{VPgI&Q3pN`I$nrFAiAsB1@n-!HaV%Ebs>lAO_F{nabt^hA) z_aY{RH3|+|kfvx5g^^jN8cL59j8eZOgMUa0Lq>pvW}AZfvP9hINDCt(@yb7h`6a?c z(I4n`DU1GvZhA#Uix&QRi`feeIc>FS3uKTGJGQJ5w2Z5=pN5u-#SiLJ& zQgGUoVeXf%m>JKKy9qRWX_Jy^kf3(VnQKd^%lJ@6S5dP;hXj*iG5{MIAQs}PZbhao z1pwwMw)$n%fQSN4=(}>&4KZiOq<=60C8@9UfF{*U;=+=YVI2v<9|HMHsO&<0D4|}d z<_Wn|ISdK&9aX!p+ppDa3w|(^pQ{V3Ak)GB2#x(s;7;lP8B+cluCl=XNQjRcv3Mf5 zHSOe2o%FX?r@|5xOMgA+0ez(-bd~F`t&iMcU*g88AYra_g1*B(&kPCAa(_02l03`Z zGO8(8CFOpUt}E#{Cs9LSlvfI^;Kmq7sENM&_UR)dHGcwVwdSa7*7wXqoHezs_`*>C zv!O#G%n33*_*x>o7et5#jpNa-VWP+ib!z4o8-F&jO?2XMl7WeBTw-Q?HRAkHC>sM^ zC4FE5)|6IL9rs+?&*eBOfosxH=zd<%dna*NMEEQX6aFnq{PBB1N2-hMrOfzGi5D98Ge)y*AXmkfF;aK4Ti(Wqt8HdiN0|V!yN5v>a{kwLcTpe)ZpL0(f1Qzi|N_0yHp}-f;oh z1UMiwGncw@0ZxCdoY`_5$8v`6`zhM;g@FjNIlawdA1i_)5f&ZX4mpy-KJo>Y5uqaz zfC$pGed4^N^g{l!{_L8rneN6&RFKh2R#jFme`YORgP-$1=RfCV#s7k9yId5@Wxkk) z+xt!aU4E56cywFl=ePMR{JTA;!K|nnz1zclo;P)|s%C$)Dm#Cdf3>E3Hk&W<^?6>` zp`PE?@A3!hb(xp>`iJ~4`O)hq$9a<T};F86xRc6&el@i?#ZqxZ)-o&V=@Hq}*G(RID7V_&Z6gnp*T z`me*1*Ry}JD4W&l4`SEO7Dc@rbi;rl^288F<$PSuwwxE$vT6P(Im=~%tmQ5{!^@q5 zf|u(bg2yoII4Ig`Q8csicN$|}P8g$}7rz$(^9HEqZB;C1vsszH%i9Jqn@Gvt_9!)> zROWB<*r+31=06NY-(of|mOb#-bw=o6PzzbV$>)Crx`$p<1lTX8Ou1}}W?rt!JapiQ zpI|$M_*D~BZxUYS_c}!C1XujNzT6xmx$!4dZ^JXe%k#VA%u>h4x8dzHl#nwZsl|nw zT+hLNE-DY;6##~FPDj%RzdTo3~usU5}HBt z;|zZxqx$opKI)-9&+kx$Ecr2Lf(;-=8}NJ`=;%ou3^C8lc4n?Xzv*53HL+6c##-e^ zSD|LKA(T(Dd%qcmjB=^Lo6t-w{yRKNYKaKFl{T3RdLB54PwdR=1O<5h{wQd(exxzu zrF{7yi239=qlS~dKkn3qM&1}O$D}PY8bp6v!a}0&D<%`jmJ(X_j%~5}U|V>~8~+SP>EbF~M9s?V$btgcS_FWi=X!g=ZNXeiMDe)8s9De6V@8bBNNW=SFR(j9M+2O3j!B?)85#fv!EH+L(alh$geGuyan115Qqp;odv^epW>i z>9&4Xmbgh^Br<@c1}W#@Zgd29)h6&+FPfrRmdv+981+mEX77yJ52hgjYXJc^a!W4d zETp*mZFXc{Msd@XQuIe$Lzt40-AqsmA+PCtyiTl|Syiv{!8GO7Aj&O2)17~G7Z{lV zj6CIBOB(aGSj>Cc9s-=J4F-j|DUAzls7H227St-HvQ#;%i^Yl@5PJ1gHJ%T%IOGp3 zPfYk`X)C1dx@2O^j~Q>RoR0O77W05h3uUs|2{&kK5wR;Ts@5M~!7X+B&2b164G*|V zY%vcWi5%bwMKy6QbgP-!&_JXmD?*I`~}@v12n)z;$W?2cJhMxJ?nvhJ)xrZi)tenNXB+S6djC&xL}PP`sX zeNY*g_LVk)oX-i`zFfaky^6sz;lt2zkbW<589u=q$W0&<5;%)zQSg6{JhoG6IfAO- zhGI~qWEiW051v5)SNR^N!$Nde16+`#Qs`g{4kW=vm=Qry+kSoV@s8CPaK&zlXzPJ^ ztCv;L);87zTYJj5)7HZ)bb}I$bVrg6(sx=q>}VvYc|L%o*C($SSHRb|Jaotz(57Uu zSXPTwUyR|InG(lTCJKMR*=l3^Gb7q$$^Oje;3kW>F|YR_CVwA}8z#MQP<^rv*@$cx zAtB1axEY91c20`bqDdS+Y-zG0bFpaY0banSWq6+VX1ODlPItl{uEPw0Tmmv4dbasm z@KLA^Vd+nyI_XH0zBsqdcGt0%hS+IA{&2Rgj-NVUuD|0Jj_?hn!0w$aSQTI z7=FjHY=k}OZzsQQS#0xYmgHBu?B`UTMNxD`*3cQLi4gJWqQzzfiakXOxIu`Qf|vAA zuGLk6C8p9Q>coGNR`tbB^~J~1d)Kk*OGNQe{jGW?sEMVv%J)%3_zbESVZOgzV=iUp z)-=8O;*y}fYfXF0`rUFeQrhht37Ic4_2K$s*ogKLRJ97oONlo^Y@=Z>(i9R?QiQ8& zttm!Dd~~1bl=D#$9-y)<*Jvpcb~R?+kKe@Fo8I19%`kt2(m1>Xe_J!jjl=E5>tj!Q z6MI!iNT(W(B(lxXsjQcC-4dN;lSE~MF^~(AXKn!XW}7u=Hj5IByRIP#H*@l){Ko{& zLUJ%eHJ*n5VSKB$S(U}AW#=wI!yvbvoIWrTH|$+5>YB~kU1&|_J72b+-V1pRgOJ_M z`Y+6=Fm->QV!M^&CTi=pSkC8srU`NkEl#>^i33c;oV%#orage$-6jgTw6%{w+nM*! zXwbVm17G?=lzq$)QP zuGApcuGDb`bt#KV47Fa&)!nY+<6R=vsQ{<mLK}~crfrInpwC?x^|Rw6x)?>T-WklBR?DLm4gI6SVvgzNrpOOKs}S{BXX_ zKnHDSKR)SZ-guJO$JdX(rkiAQJF2iZv*PDeIx*CzIRgu}=Ze0V;JNH);{!Cd>FgsC)2CQ1-KO(JY;2B;u)em}NF&g7 z#WoCg3RBDlPt{bXP>6Gk9D9KdMH_#2);44)T9K!?UI)A<+jRJYO7U|Yjr&4tmr!E$ z>sSYwGX*k{Llh1^{<%&hnM(3X#-0>m=7@MwM5_G~fbd%8+*)=RX`yz&ln!n6?F=3dj696^q-xWVi44L*aUXY&D$#o>^M zI-Yf$39M)(Wn*q8GpEnX4usGA!+H$4?);-QXEfB@DY+wvV{djbRk^bgAn+TuECHvGloLZRh$h)+1R1N zhVN1JoO68<0Cz`wHgZi9IJe&MlYn!A;Po9tOY%F#-j;Eo?Z<7HvJCaRp ze#VcJ)2InU3VvY#;VO^IBl0`m2Td|P8b~h{c_Do(d zqajbOr{v@yFYe^rX1{|3D=FJ4IRjSud`5<>l%suCoy;&DN`|mv-Y~56@&(UwnGhok z$)SpWM}UB%#@3+QLGQyyj0BwDf*705N5pLN%wdS>Tkv;!f^h7bY9lW*^o__Na zp8hqk9mgH#NS1#qJJfq9uL%r;v$o~%Zo{&}+O1lFf5U(Yyc$ z7JnoGO$B&qWg+mBy~&(QAx#T-ACC-kq`$eiJ&-)wkB>^`avOG zKoLEvgu>5+k0(L62gpdlNvOoeFkHb66!Dh9(PkVl_Dy)v z;#Rr3_c?#*kd3*GZR9gF*$Nb3<2<_|^L=JRs6o*qUJ&bEcu{TNFx3n4QmfmCJ;NMC z!s(SWzS>v>&|Z~AAJ@hpTXPU^JJ8GqzKZQ3_7-#5G6M_R%?@tGpfvfBh* zH$XNHN%>=Fp(m5eyHK~{>GCM^U{PwlQWNj3GlW;Po;WfGT&=4jG*B~FTB3;L25`A< zZ`CpDZ)GbElU#~me`tWHyVZ{s&F!X;ZVz=a*6l>~_#Kd^t7 zfwW@o)tmz!phJ}q**vGLRpK;O!HkbmS{*80c1&m~xe zX3Bk&Iiqan1-qqHD(eLB%rp~gWcvxh%)aM(&X}<`L(Z7^9TrPZ`{e-P&eVT*+??^} zZR)|3+XUY!LF4b+5@xm%(tghbTg2V|rUocIi*d!vw_#5dybzEe4V~lyyh14ugig$H z#fng>@Qn6)9@oB_EsJ`!TI7kq6JkzjZ^*3c)J?zP8ydslUSkq}rfQv+Z!#{mOsL&`m$lXw+qnh5^M@y@7U3FDVtB*oYKAq7YiiHHsC< zs7N6jMc0t6cos$cMX^@;)eZvLRGL~3LYx@}lr#`P!bl8tBnml<23rBLu+o4;E`#w>{Y3c z1B|W*Pe(6LU7hGd+;F)u!|`BV31;W{IV6kjtMtoCH_21`&DDj^9?>05ySZN=cAQjn zjb&l$i^sDV6XQBobK8I9t2<4%>tB9kYb;w1?Y$PJbZrB}poc0cR zwr?!pfetQ#q-uZ=prC?JwM>&x%-K<%K^)h6Dt4Ac#!hq9!U3@bXy+ggW_K$L94WC= z2FnG%#qRt2?k|6%KTfH_IM&U`4oZ;v{ES){MYtAbb&Y7H)K-7wNg9FXX@o;)rsS|( zWj!nS7|TEqrMq*m9_GY;bIFDvJBz&^JdOXNRC{gwCi%yAU*@MDKAfIk<`=g=<>xo= zs)C2{SphrJ#jN5)X3||Eb+?&uz=ocQz2HcD@8r;oKh3ZU^IeWX?6d3Z4<_`utmV8S zk}z+-kKuXv0kVIRd&;Iw&RKG3z<%zZXumhJ-%c=C9T_S>3ZUYJlpHt4bW(^&gF@y| z8s=FPQZ>)oU?ZGJP~!0T1^h@r1Ugp&ky=bENv7ffRH;k20Z0I=^$u6j>7Qr9P;}Zp zCVlYo3hvxKv3C$fkRa-I_{dP`+uDhVs*(Huo~VJisg7(W{q)?&$R|kSK~AsY)piQk-v zXSVCi8!dkpk=JNsM7yCmUc(ApCzr=1lT?N_g3*LLU_0afL|}(sbMvLW&&wwKhwKnv zbemGXL*zS9jQBbPK|C-}VQQ`*IX?RtTpWekzAuE{lwYB^Ou@^?i!gHt8|%Dw+sNMR zqb7Q45RU>I6JW!2;3#nTg)r|yTyikl+beo^s)HwN<8B6<}f%o-SU_L`%Du{Ly3W?0k2BK&sQ+j}8;T8Bil zRdr#oo~KVMb8a1*&@pGH-oj|yHWnuQxq;+dz%Xoj-;!A;b~~DHPNc{}*uA?QVS2>K@3$~be$eeW|)dEriw^(A=f8c19rkaTt$!jy1&wkN~|)wcV;rP!cc$3z9^|l-56>btkCUO@3?CkXC=S$NTxQn zb3Qx)A%Xah^n@r~yA{fry7e`Q{n%J(MPueAQ(U5C7zM3Vz&Gw()i;M4xE9N z4+(0;!FGPI!QXz1f75N?qv6g>lX1dQCsLbm+oAka#4Ft{bVCC2upyfpQgg+Nehn*F zo_&ZX;eiDzjf1`9_pATS_rVrmLDF*7v^Wo~3|VrmLEIgR53LmI5n4{IRqV-(8B>30XUZd4+Rqe zIF}Iv3@3lZeeaWF$8GI*{uQiznys=a{+uCQsZ>cT`B_O6IoeVA#c@8YRwJzwX;<;C zoH&2|JHWv~qc1P-kerR5N6+7_=C9t(m;T?oS72B!)?2piAGd$E^X+DFSTC3B*{dJtpWNg7C2+U(N5ooB!+l=EdjF=G*zr7tiLuT+eTQgOAnxX71NM{^8jS zU%h`e|F`-5-_Jk0cTM|_4|j{*?RuBJ&s*=i{Za3;Vec>h_-wwJ-~8#>9G(Auznto7 zwMKu}oBbyH3QH&KGehqGeO&X+a~AN<90RSjLq%h+6i#G#Z;Z| z){Fgexm?YEobR?!bDLLYKa?vQ+)AtY5A%Oy(uLRa@5b)FyVcTe+cx|6s~PUS?aJ@H z_~-^5zI^qTx7&~SxSij`$4g#(!;f$6V-|PhPrQcP1vgDFzk1-sckki?zg_q(95*s3 zz+jEp&AX5vy@kjhoIFI4>l?}qazp{df>*D3k)kjaa1FOG{*DMBOK@~z*uj56mh*pG zlp#O=^6TJu_b#*wg+nb+o}Pf4^?Gr4SkE~sB_iV5qoeYG?sxN>mv6r1KTJ)=D0mOX z;yYM|zd`u+XEsUAf4`3JzIpqW7hZk?g&WWFXET%eTZl&B`^dlg0u4}54Er&Yap~pv zA?^=1?(4U2Nc1g+nhpffpPwP7yH0-?hFH+#WtB&alVq5_+ z41-BO`xV>>etm}Pa0|MFOY!#?PDy%R`HNFxMuQ%cCZ(~*Puc&M_*nZ5WlDdIsBCO^|Iw^-qN`^Vg7)1G$;#``0iRI4SXNC*q|Kf}sY zKROSIL1DL%G4_1#=a^sCT`1+>nvnx7=%f%8zM@gVpWb$9(VG9%IX@Koo;~(%lzQ{8 z@Gb0}|1GJC17`!>V*tb%hArarzrhcWy#G7OS|7y2BrD|KzDY?sK{omjY|Z0)LwK z`2nw?K}G@HP_*6NDcZWLq61N1KZGU}_yQw{(EGVd|AOQF8+>d$SffX(g1Z&64Ui!9 z7fww62TXf>6LtkCljqI%B>4*S6{Cm7>G86g!IH#sFC2~`5}|*6)~%y{{iUfozljfc z3h?q7u0f^$iw{_KkA86x(+Srwb?_Gx*;MvvMrTk_i+td)`~cs7lrG^khA+&8Ab@$0 zh`T5M&Yu}h()E;xJ1F~u^T35W#zxbxXRpbH8^Lv&GwlQ=>1$u)r9HUiQa<{H9A2R% zyz<&DtXxMHg3o^jofe`&*RWHn{U5IU!VRSG`w0snqFP8wilgrli)kS!=_3k-wYYN1 zTKa<0Xs3lH*E$>z=H^15Y`8LQ?(}TjuCM^SG>Lt~d=O?}07Kn39z_vn-*A592!Z5n zZRoB(c}u!k7O_uv1NV2`P!rz0?CT{Xko}$Aymj5?H$Q(F6!iD{>xan1zo|jwcW^th z0*dp0{vUby~#tdT+c);8~-OFLQSnanvV3GQoor@ihI&*gO31d?AR__%0?#)ZO zyAEa>J~Mx0hGBT1ZxKh)pvZg3N2Jl@BmrgilP7p>B!wLTIWLbp?NsF8Q@@vQ*aLL~ zR@pL@UxguoD$)7RoD>v6ikQr?dTU1J9IX?GEcFUS#huBUh5bLgn|~Yn9)Z0-ZH`Dh>P%+$KGMi9$y0hj3wm7awvG>Bc#Hw zHn%W6T;5msv`joMhn!%sk_q%$%q;}1z||?tI*u(jY+l%BbP+nm`XFR2ru@EHZ5I2( zZr6W%e|m{In^gj=umu2!aDQX4gYx~rU}QK( z6W@kK@q!3O}}o-D0)dZRVUwB`0C&cw%az-1#@=97H3;E+nD+8<()qvUJu000=A? zo!oIiFxu@mR=CY#>uPm40?VTs)^9$2;p6uY{&%VB6+;m^h2!xT4#ySTmH5jm?>v9* zW3(^=2%vB$)I;I{%|Q>>Coiv40tOlM{EO)W8jK!SGT?>n_zP>}x@1y5mJ66?zjiNu z36G%h)ff1LgFg1J?(vla8-#rBs{YCaR`oCgp{jK%HE;*v-!KhaP!$HMJ6o(h(w#KK z+=5-l-Qixtb<_jUh21vLH9kiDgwB6~hWJZ0F+m$2-T3^szGV2w)eY;ZHHU>Pyh4|A zDEMzU7{d8)Q@{Z?ul$cIOW#le=?4QcJqPbl{;Qj97c9UrE#PrXDf~tM2pjJm#{=nK zMtS$aJcuuUf_C_*sS73Wx^e-GY-l`E;#u9^F0j9Yd&l*TduQT)HO21#eKvo(>1Vg# z7WqKC1DE4V3ySaydVKMwpyD>j8miRZu3IB#om^JVU{-SeS!TiLe!qmbQ%wABM zM^K1ddjkfih{{YhI+o0sEMUe2!QXJ2{~KjUNZ@r!&~TW;2kPPq<}BzbjrlhJ+Lc+q zCZ|waV`_}aOk2rDPq1U$QaOL$X2SyA`fk5iFW0Ni?T-!~_B}BZmW#u3b+|>Df9zk_ zOTJw%Zm|otIV^T-?24^6cZ)j=Fxx+5d%ea6S`3@7Ksu0quw%xy-3dlQv1mV4^S41Ehcc2^mI8Kl)9));MaXb2gO@H~Qc&qc@c+nb>}myjb*f{P7rHAXByBWZ&NHvpPjd{d>z}tIx5e7 zhTv0s0o3f}eb|6x3l-q=YH-H~goz1ki6!(44T(20lR84^IT+1WjC z^*y=T-`cvb=;HEnFxM-#Ll+XCF__h8eBYP;V^JQz?(umRop=FQb3y2jpk9npW?Ht$tC0HNS2GL0qA z8qG$|9wlW7f;N^TNqHA-XNb1XnZ`w`7#|o@j4S{Ye}6XklL2@( zdg=;DheIv9?Gi8CvTqB1 zN$tAy(u|ulGY*v9ItEAHw;JkuY`s%_AAQh194C#<#%^reZjz?4jbChSY};0Y#%gRE zjqS#E-rUdg{LkKlJ=xFh9?X1au9?}HxoD!-Mhwh@Dz^(x&yOxv^VxT?qrE2Zm*&hj zZN_8HJ&zrcn;~kQEoYxwy3g) zW*xJBqVU8gCf!X>3^8?b`w&5e3fo=K%c{2$+Pmb>r{aElT?j&!B&2k%H`MbT{hi{_ zip>yDR6%f`&M5imFX*dESD7bv_9@`CcF|!6szZ<#GiI!HW`40&Q@J6QR<4t|+ zP9})3D4%>=?6nE+Bij~aL!uelU}wFT*HhqJ*)$j}LIfaQZzvNEeXn}KG8WGVs@NuV>;$1^Xy;x*h>KxcJB z+^8M9Z=sw`RASxe0}0v)Sfe;E!E72 zI{I$nC}$=M$k!uM9Gz|6>VEmz;MT^L0qdfIecn4=L)wZ&Gym{i3;ahy!!Pt}0{gum zJs|w|`&Mwa>?ZJX&pBM4Kq|@I^T9lDE5{+Qg#WbmP@uCxzktde7?#KiDGKJm)=z|IgS9om zkTY*TrDw=Qx_Amg^-8Y|S|V4KB5C5fJGgg+F#bDsX5`a682Hs?QYVgn`3)?}Wek5X z!_piuNAa)Cwo{sC^K5U{M4%b4flh*;)La!_!2cKw>dPC4b2jb7`@*|#888(aK& z&^$X7FYB&hzGq+#q@Br~W1-D}uYC`6kKN~XQ%2UxE9_NJb0FmUiue?1mnNcW0#kIs z8W=eniue3WD=xiGlXvR?-z8{un)+B~giaFRi9F-?_FA!CT_>7?5amO$Pd6W`?z47m#qrP8PK`GChmxh!83|mCt^N z9i3ijYG}{q5Vs?%F;CSzGmhw~rPkewF)-f@R`*D6IXvOwW6y@9tS__d02}RqK%Nco zu`rhfvhPC#)ft_6Q`It>KD~iP6?5ByU;RSFrb!Y37E6H42YbaaTE{vO~SFDM^c+ zSH8&2#SIJX>~@N0k^i`7hZ_2Jpz#i@tWUBb9s2zxLGn*0CPTto^3uZ(Xy5IZ{TSXz z{`suFN?-|h>SKh@%6@mnZXysLyeFF*qN^AA6Wb_6fCb@~>KD!7B@!Z2QXGL5NR38F zneGKoVH6UZ z31X-mhBBH1)^3`u=SlU*)|n{3=m8-f?H{19KkHn2)b#Dq8zgnHQ^*}AL}&-7%ed${ zzg)nqT(b+R?4+H}vHP&j$a~GoP!vLEhtDqM>)ZTtqW4^Dlysx`EXUU&ZS0Q}PKxOD z5T;Ex{RtcRYDvoy>+Eqtf({3PGiHo=G0PI3ZJv2+RZ4E7rmd#QUppVJv9+>smFsDk z?yfKjQG-=8*E#G4^|y(GQEMVuYaKZIj)-nYRiySXXw?5t;ES#>JPfS}{1+)o{^qAk zAIV$GUVn&k3=cy64*fff<2&?u^>ry*7B~FNmtMr(i87w^w_1Tw!U1H=b_Z{tFhW;8 zjreXvFEW1hzxezYGuxj8xl)&vp)Y4NtjyToBh{LT-iEYrETV2q{YPXB^eK3HW^D2EJ2jz+S?R!fe z1jr^{4n|YW+zj~$PPCI2W1vVZEA2>&SF@wH6h{j@{G)WpGs#w}LWB}C<9;_;GD@LKq)pC?Cbl=RyXIlw@!W zH}~{4mWE}n4mh^L3uC4^rAd-hYPSnmQ^o|z>deh7k^T`~VO;YK$-l$(H+uYgqs?=V z%yu2zm$8fapm2iEaM$B=% zwYN7K!}@`(wSh%7uiejc9*5}VB`vtQM6-sXK`wL_H=62J3U`4g8+2Bv~_~V!l>|U1nQs|jd{K|O*hX} zwwz{(Dw(SlUg9%WXd2(yYTEOpg%=eN!IN`YF1ZZu1QbQLrT!%MvB!v5cI$UPB#M_j zH(@rp6SF}aw=&s;v>ar>ztASx_NgGXRW4Vs6+?rq3K^SZ_>Ow_J;Nb#@TFQ#8QT0+(lN@xd#Z$g#wUL2efxuuwVxu& zjwNL3Weu!Z|B7qbr#6op`@|iwK2wJ=yGfFrJ;s)(Kry9m)1aYBnpLyCNB_0DY-k4BhnP>CKwMaCK_eM;U)u;|OgnPo9$u%{A2*J~VJNjA~8?RqEIEA{xc z%m1)H!4W&AC)1EHp8wOI>{9X9{{wUU%S-OzNMM?H&^?R0;>pnRWp=rlMthSDJp5rj z_}!+=PDFlJk%a4f8BC&OUUd`r^gSMi7Q(g}yME7cZFU51vuRVY%){6b8(ipVMf4fg zIgiDhY5`ocP)*TA2A$qi*);_>W!xBAoZOFY-}0&9+QohESR*ErslkkcTF&@_HI<LzMjYa?LSB{;p^v@u4noA)FHKxgy9Erw;_9ez+F_A9!lg! z?QG})4QkxZ*;G4BRTX15*L%&?{c5N_H|6oJg5)qu_p5-=MtczOGEEVjO&R2s(5pw( zZzN96mz~~EIy8~rUTS5dJhLfT^GH`Bf6MwYu^V*DF$Af!s^lC^{kG`l#*Ocwp;!B- zrM$tPJBRs@MHd&RG#3K(Du$@Sd44v;$yGQdde9nA`O@)XUA?BIiJ=(jg6oPUEwuM5 zrSWF2E;W3LQP4AhFKdl!?bEjhp2te=c#dYdhm22DX>8fYp(LDq5RWF4;XsYl%Euie zX-{q1Falza>1H6m?!<^m{EQ;kWQ=`?{aa1NueDTCI@`WXm&ks9v`Lo`R#Qn*c*vAo z@RQ?4dVg7%hQo+u{JN{_nZroh{qFk>k&rX; z4qs|1;+1r;3G>tfL33ATH^#B#X6)*H5{e?Orq2IVqt_WTyjnJGDY_%&8Qqv%yP(#m z$+@$5JjD~>lTs<(n9N*v+{x4X$(=DjS?Ny?R+?~BcZiC?{_QKZS=pgqA=?k>2(f4P zg;7lpmCkpPgk0)9nR{Q1Iw20F>(uY0JmeV|n{=bZ0*Gb&iZUstt|nU*h1cvK7LCE- z5Q*I7lO_-{sNd*uX_qjDT(i;Jq6c+?)HRoRn{(~;$`<;yFif`D2bUK z@sQrX-)t@e%qnlGLK|`ohhyI(O-b*2Q@`g|@8I*D&iopvz7iGl_UFpnVoJB91QiHr zZYu81C>{9pm42|Xc*ZxyBmS=Ds6 zI>^a(!2Ep@tC41b^L$4%xyT56^ris2cx7;%KSk5pewFKhPI*k%ioorc?DmlJ<@ntZ z@|>m+Pvi1Rg~_`cM%BuIMN3b)`(8`VU>ud%Z&SO8)}x-zN~M`a?4>EW=JVPum?Xms zU_56^{GW4>?z%0uT>oEdq!{l=7$K1A@$ll1>hCiT+EfA@#Z$@pA@RT!cp_JIFkw!^ zPY%@CT}^ehoyrvglIPWC`qoz)=BV=U4G$*~?iq0r+^7BudB(dp&f zo|bWakAKVrjCFMR1+-!tqJuFpji?k1pehlAt>jfeHBU{M5<_X=WZy1+f2Bj>+ zd=&he^j#V?rGY313$0)M3iFwa+>(aeZ}!aMF7i~}L6mhOLC}aG2E#)aCdz#E?%Ef@ zXRdH}1cTU8F8p6uUc&NA;dBc_fa0<8$_CSMrk9iFPp4N+JT&&xR#KFRIU5KSO8!tS2PevKs`(&Wci zZ#-6FvKx4{++qMmHg{%l%LOh={~5mHKckr2kgd=jE8p&>VPXzxk|B;!MC8VV|D@{) zw>@HMHBq+BYE7;|b zaQSr4waKz1%8p>=%utx9Ndcm@t8yrc&ok`De&UG%o9&(m{I5RxD}8g|DKnDBZ)qI* zhjAD5WptN&vcK*LQEhj^@^8b5ER!;!CCVQ#r;zENG=E0l)w{7Oe}(G9k}n=fUvPJi1AUYRKT#K%e_wXQ*z}w$@F=vm zr?_m`()E)@r@#1x4lfgCfV|7=zAm)NSTJ3RE%4sB5_n3I(yB#Tn5uad&(CmS$%;-) zZf@uUxydC!b`c*%`ku^rXa8KHKCna;$P<1`gZqz_H$A={Gh_=2~$t+JWmIEHF*s(jD(9=CPro>-S#5comzyz3HGPoy#8&;H@kbf-tKV#Xy? z3u1lY$?pI5f``u)|F(B9Qz6JwW;wRJ99t?7AIi`3;s6*9`^t_wgYJ#LU}Cgx43GO> zcDz0QNT^jmZEg^sn8ozAvxFC{ln?v?x<237k?MDQ;S=^Gj76XtFg=dIo{b9sLIWR< z^gW0v<@c7hofa4fQ#V}_0^V0TpqNfgl$7>Z7GV`SK}S4ai2)wTR6Kof;nERK72!_% zC^Kp_u?8q<3^tg!D@yU|V$Icoy#c(&-t*%Q{my4@M^{28j*mRZWoR0?oWE+nP za>VSQb*wNJ5|pO=mbOdY?Jsne03|99_9Njv%K@OPFg;M>%uDG_saIcTv$F($f%>XR zgR?18MNZQ1%7-_m%joQO>k3@~bRoOx_dndx zcA7=Un6<@6(ix6AMYX6gRZeVQiS^~vvzQ7;a~LPa(<*~TeCiy1wFbo)e+4Ggp(Is0 zI|59&lhQv;R_79u6~m=uIiyD5W2|vSrG5p`!o~ng96N7qAKiEfbI`$e46}@0rqGR# zblJqwEpZ}04D+Ft2Yv)vcxU>zD?@cUQcFO{jwe9{TBL%xU!mfM5)B8Su2hkLMOU4X zg^5%qT0)|w}6S2?7(v8k&x-?33*HdGaL{pFfbV%wmH|8C&9FI{V(%`wh z_Bro|nmzHi9%g3m=pf_)&xzc_$kwDSy5bgHyqO1gH-n$Wtq#P>OKj|$%;F$W0A%xv znI#y`c4%Umll0=QSPU*eLU5l8dFGBkUbV>n`$-OivI-rQ}_};?o#a`zo+%os^oFIJ2Yn~ zNU8sTElSlWed+ZL^5@i(&d3-SaD{NzZJ6iyKzMvxxL%9mNBqzLiJEqMmuVQHjkqu1zvc3jl|8gfBy5+CxaR%+9}f8vbKwW=CYV$?2> z3NnimG2lZU@w0we?EBj1!O1}8f{2|*_#u|#@76?_56}K3m_h|^$Sk4;z(6EIHe0sN zcZ>hrgo*xH=?1Xoh3zW$MB8Y07QYxOi#qxq6XdAS*hnFcH7*4hM+BAMP+4@Ey=QJ{>$71 z<6&59Uw7PNb;(P8reH7dap3gXVb0Dq?}`V~nX%pxdiy&{VSNSn@#(Ql<#h(9^=+n9 zLXIk;HiUXVIBl;>Z-kj<)bXG{ngeg*hJ+09g-Dzl$U$3OH+;|IXHWtzz4|`oA_blYXSt z(uhUzi(tOMW<#tY2zja&>P#iFnD_d+7@DUQMWYn0qjwj$;4T^f<8|(w@Iv^Jn<01l zYK=huK~KCXMkcI-GejunWmL#E$W3^s((U`RQeslXpKU=s`Br=T*o-zTo9|A!^h-9E z=goch=fAs_c~JmCRt`mhFT8iQQE(#Rdl5toi{EaI49)sCqBKC$^O;x^LRiT>RT;z#nVL!uB5)Ek$pv3PXt^NLRw?TXH=0D&u)PG9 zsH5UDItx;dg~DlPX-0t{vYk(Ji5wPdNF@^cK?7%7g zmWU`^TzMqM88`lg?^*p3f*k2UshDn%AQ~cB*_m1U?#29jYo>)0ute-HbWqEDzh#TJ z9G=#5(*rW-8|LLsf}RyHdzF&_x*0OUc7C%gIkprSA@*>u*)|>WH`pa}= zY3F};Q-PywNu2TQUhKnnC2aYAEyiWX2u9f^gt*vOW2r%`qyhC$Y>diK;66<63e(Ug zqswauf{$sCM=S^92$@ild=i`lfu@v{Tx9E=R}Q%4#~cA}c(I>L?T}%gwa3(dXVaJZ z`Mx%VNnjPqgcw1mVn<-5BOP6x<(UxA`~vTQN*bp70&~ll&$Nt#26aY7w#sNkli(M} zzP5&9poCXN$eOURiiJ8n2bMoV5>}{y2brD}&kjBd1(ymA#sG%Onjm;b!%jFYhY}D0 z835dT29<%rN<;zh$lxKde5k)DUu<=t(3(wvXI*(1?E$R{eQ;O85Qr^DY zTBRiT94+|i`M^I86t?EO5~v>+JAj0qRExifQ55 za&qYl9NJRWv?dkeG%lFqw}2ZfX(j>Pq~3nn?0anKhdzjUu2`Yq@?=ltt?@)()#^E` zIK6#6=D2`c=2O}@Jr3?_7_346*(Wym^K++$HkK7q>s1vOLkfF@ClR9~ONCYa5@U*F4mx}| zIhNgyCYnf6a+s*T2?dfVRQVr5z3=DhkjlEQ|4S<00YFsFYY>x+=g}yTLm^YRk+N)y%9meKF~gBQ zIdzOlLu?GMA)o6k8)azS_n-;$cXli1);(pm$N!`GG=>-b08a^w0yP|%Bclt}G0R?2g=`x0J z`&@Ut>&LJpM9IGkWpU9)pJSkwW(dQd`_63j-#boM>97|6`_8HF`+l>qg|_aLVB3S2 zZOs?IzcU+WDQ!SF&&E3c{ppsxpI!5%DQ?vr3S>_#_7BiqMay&se0j*s<6a1;>h!tlPTh!gHKcl(ic|7Q?K3M9#o$(I2eHSS$^KL|v3+3kR>Hro{V#YDam?4j7{p-p(0#ay_& zQ^ia!J6XA3pKj;B43xDzWAA3p(h%>v=y-$~U+$K5iA=VyY-O35pO&@xQW-gLDa#&tYi`;<1H5la7wF&3cu~)MHC@Qy#Z8# zG@B+3t`cua$DaY2#2Xp;Opgo7Jn^t}hOkZbuhOUhn9pcUmuaqW`o}yI>(~7HO;M&? z_`5)A>l4~Sl875|s(4lflv%hD^kQB-e-%b!nmLpCFNtNj9sO&D2GaBDb3;WFNVoB2 zx#*s8!xU@*7W`&2gUPIE>B^EKKENH_yt)@N6{GPHQ+}sAJCzj|V0G^HF8`4(lwF$V zo2>jDct|p~r)wd~&go)>Jph(};`A9&ax(LU&uzo2$qWkW7xjx~9c01Y3<=@qzd2aV zY`Ac%$(uiBF_sV$l8%SYFxI=hFAL~po!!@^eX4AZnb;uA)K%asRoVk7KwqNR+wQ+T z;lZrGFUT9mjA)i_81Teg+5NhlDNrl4(RvRx{?LjEbCu~nM7;gX(WBmVvt-B}&yVhR z5q{*q+>UF$O}hilOtesz3q%A7pV>XSeD#T~&^HDMzkqM>oAPs0nEx6)jCo#)t5fyh zmJgM4O+$A6yog1l{6G8DiF|vjRs1haEr>KDH_XElZ!yvzu&IwzR|!SK&#&c()A$=1 zgg(}nY*9RGEBzc~_x~dHJT9UVZ+a$K_kVGZE|4R|db0emKQvd-?KUVC?Yr1QV|S9?Pj8a7(*Lp@=?unT`*grB7=mHmm}KsjhFuq4 zq~ph$TZfKhzLEfxL!HDWBVO?tx#p3oWWIwyWj1OkIacu*f03PMI)h8Ei9?qnbtWPr zZ@OriX48J47_E3_9KO_*g>BjTpqi(pPGl4=jcnRi@3x|0Nf-Spajb+!g9h!OhyXmj_+mrNgrNkD z%uzynNlm@mM@E!A_zY|}NOM}a=h|dNt5lURUv_KMIqdmYOfKnz>?jBtnkfhl3C8-| z`+5X-Xa4-!tZtBfA(Ui;VWm<|wYiPq`>fNpxv>NSV@et^3!Q@%l(L*5f$o!r{8_aR zGF}sSUZ-$N-m$9Bq;RybRv5!zmk)HPTYa{0-k)gYBWCmSv8NbP&)Vq@iYNG1750*B zg=&`W4^&LyaSuO4GncZi$q2m~cg%*k11$@t44%v!X~!we z%<2ok;KMEe(KNh!229jwfQp$tX|eG z9TN2L)oB+7)%Y{$tTLk}hoF!5nWEzXck$}`?%bMA(hiff5Bfy(*w^Z&5gO?(-%;@P zh38pF_a=$UMh5E|_+B}XB5X~cZS8=zyYd;mk4{51QeZ8&-b^>qi~~Q2KMH9K2Wch} z`=f1YY;J>&HBH!g|**p~*_C{fMlRA?fo;QkaA~hA(P)GBgz6m+gGN z5|YiU&UjnHL@z+2W&GIwK7D|m)qGPSn(2MYEk8p#c5UI*X`?2)>TmMtC0maBnLLV(h(;a?tdAYL#DDy;7;bYuHkY@5b zGihZYR?iQ(?A5Og7ZbUYsfC4estM+JMhz~FK0W8^EK0l9%?^yGS?*~>Bd%w zZ9&srXds!Rfsn%!(gib;4UbJQu-Bo)OhAs&g$igAt#OA3IwEi52%6bE@V}Nu`I)C~ zTbbh8vEn1$al_B)ER_(|!l|y_9l2kRd+kM5(K8YyuN0?_9Eo{o(+9$M{-WRT);Kbi z>t*?TT`nZA=Y=rd(lgEs`w!P+87qWf`)0m;qB6C7pz$5PQ)shoZ*9i;)bPRZ%$5dv z($DbE0vZTNof*XPYj1M+{izV=|AV7$hvb

&eejz6;6V zx322MLkxOEtT2wE_&NIcBJ?iD`}jnF83?x15)gR#$W^^G*_546r%$jt?)$=xCkT+9 z@uiCYTEZ0)kmHo&-)LH2Kj?56pyz?U-=!>u8;YXQZ2RG7xxKWjOg@=xRCv^_2O)c# z3p;TG%BX_#~`h$!3FTYeyt@Xg$M$Fga$+`Q$=~@GfKlQ*s!R`EE@2A zWm4?9BsE$to0+*-0sGK^?ZU06gAwd915sC=)<-w##L{@Qh3Zb{&!RIg4vqM$p^C9BZ2tn1%b zH!{0-(~|>t!5Pry_{MX3lfL|H&HMDW>TnX_Y^BqoSdduR5*u0RT0DZTo{Z&;R;BIv z?d8-t7x;W$k^QN2iY7k`HKMZW4_od14VIoX7K-K2#M!&rpV67 z3Z8|Hm5uZNO(Ah}CW5;WQE+qp@4%6Ysgs?Hqp_(I2@muC-Vw92bvCtib|U$lJmP_( zNj>TXM@r>qgi%ZF|?4!~9t$A!pzoN8b=dg6>&9FXp zB~|m~-CgCysPb)sSf8PJER>~AraBXcMdBAOd6uWuW z^J$$m$sO2U-6yuU6R2LC3SGE5?Go(N{mK~|x_)i>_S&+US8#WKe0AJ??WU{;DuPK| z03sbmU_8z&nPd#3+vG3KScrA(#ji!Lj2>_meVR4w8Z88c>A$AQu`1#2!_nGa-#z1T zJsCAGV(t=yY>bCr*9iz&H?<=?xVRj1J}Eq>V1YfMs^N=Eyqi1Z+=;@-6e*_0RZp*^ zh76D!y+DM2-F+P=esCf50$Q_QWZU}gJ>Ey8txk%qj4&ZxfmTu1f4nKZtdSMeSzP#-^bgaLYJ{&sGJt*HE!e}y| ze+O=<#};!Lzao{rrQrx$EtZBOhL`K--@$Lx*Q6Vh2KJFzb1DR-xx^Qy!rfRLylw1i^)9#bRRvXFp{o z)&>47+i1m}yE#7%zgd1CAdAqAxcGw)tD81177ATw6~0n#OGX}; z%diaXeaN^du$A#8jpnw@SQKA1!Cq8${3pIn|J}2}Y$czhK@Q$Z_8j?zs?kfcfwr)U zD!A}2$CB6$Ato}esL{H?_(!m@+NxB#ZUm|97vfq^u{M*nHBObI%(!j`Zw*Z>?n;%m z`@HYcXSP~nf~+7MBYQ|m+KJ9Ut)GTge2PEX5t zB*kpS`aQ*;#QArc`rA9Jr%MEHh-#tC!r6b2C9i6m=?CCZv#rD4_L-#fXn_U!oiY;y8{nK4Q2WiDfIDXm)0=sPb6{J3aaZFxmYU* z^1W(<t$8=wbK&vkRR}AhewYLFjiS~0bZ5vXv`^M|eeESO@NNj+b614V2VI9iP9UX>pbI{9G*h)?gcuX~9&0y27aWS;XR%hYzsQ za>Eq=GszRdITWrpn!kg-IFJy={o~S3WA@&*FW4hy_S<^kZSB*1nW3=F( zCKnB>ho2Nc9!EN(HD5XqfKck%kOsTH@+Dr&!w{Y^Yb99dv{n=vy8_eb=C!5w+vpWy zFn4Z2?X8Qu3W{Un33{-Gjtpt}It+j7Z@Lj*C?ePN0W5kWDt7tAnk??$_tcSPF~jiZ zc-Zlbh68}VOXd($yj2g;J2>&sexLqSV%Ykws@)Lw1^@J@0+TRceT5&HhKSwaj&1dK zl5Ft%R1I9npXrI{&?7faNM;# z*qq!LSr=>cM4g@w?`L#LM4ibp@4io$F!JCAAJv{{=R31)z~5dzj8`;OK&Rgb<=xla zj!a`(KQFA8{m(2g(f7?KYil>Msf{9Pt@VpLbXY`f*)f7 zPB2WjeAG@*`ErV+CoYnm-Napx^5?Ht;G6YaK%_Q()8*S4^re7zwci7Ac?$Da1hPuz4LJ*6rA zug09kc!L<}aHutg&)U?CmOoo{n{n!FaM-M+Y?8vNX;Ba2@Ad(RHVrO?R89oEIon}s z=rqUUIGdIH?qZZ|kN#Pyne)Z|n}8S*!ODfNKg9Sb>TRiiF^XQJ;cpD2WCa2>7Ct4B z#wE3I@aWjUlIpx+SACX1Xxsu5db|xAbx4j>u>3cs=(?q⋙mpP8JOrDGjE5Og{{VLk*)Q3Y2QoHH_}__LJOAH3Or{`MB;D*G?A zbkF!jhL3QLbFe%Wga#8t1*7SAVdi7iZdr^awn}5JoqJw7KLgwpOmz#*wWA ztdP8b`;h6tV#IB`sBOB?iGsUs9Bc9SpnX^@WkkeSH&JO}ginZHMN zHaQHf1t<;cH{_STTcpUZlB^VA6i;X=Oq44aF0P|5 z)4TA=R{VlT{RPUi-iJq>wk?rg^-EnbKAEZmtmYcLayH?~P>cEE{C<(z(iGKL8&en% z%5>5PLTx_5&3G*yrG+gs@ZWR%2#sm{ozKpfG1yRD*euSsg27S$=?+F5o0|LK&cyXC z>V+*iImZfg@$)%x8uke+>10(COlKHLqI@baP&@Gxpn@Fwja?n`s23r6OXuRV1joC9 zIecmn2|1`bFc)crKxKNF?=Vs=|81mftI}$04sjn}DeqVnP{Gl6H_$H_e+BUh__*Hc9;< zw;<9ccA2!)-N9YOw$8n7o~>W(Emvg#@M6C#ghwt$b1K1%1unA@_)ejl8H!HUdb1Iz zSAue@%(n_{z%E6;SaE49T4^B&D0BVP0F8^58u?~^=EC2ZnSWr9sfi4Qw`tdbEQ7L+&by$%2O4Gme?Ze z@xmWf?uO`+w9?jV;VBGFDOIfeiumx;gYNaq^rnXJ`m*Bg9+0`|5D(_d}uhK~4lI@WT@iwCnetfA%E(O{Ak!HfJV zdF+&y3MY(NW{tf2?B@6Ulhw%xrJ97cJZvmumcEuU&6X$9#<|S9lZsO-}@DEKN@GZMLv%KTw^ib=6X$zr1WqJvlz-tlP!^ZA$Aio#bBK z%yks$uQS+!NHh|LyoCC|e$*g-34r4m8qYPIONK_90U?l;>o5o3pL;%f zN0OP;Tw0@>vv5M_VoUzn+vtDxsDUm1Ba=bl|LoC!Pej2~TltfoDAF|{RDj=WCSaIo z$j?~B1PJcK-ZgBBvGJSu__hbu*4Wh-da-U)LTUadE=qsOl=zfb$d>aTHUE`+yBAA8 zxu7AUdNss=as<(Hx)UaK{$?YK;lf%o?oN;EpuJDgAg*UtDvsE}J>?Fn1U?9CHq(Z} zM-dlyf!?sCg(;p$NAB^RBoRcy3>O%s#v?{51z4Lh##8{BqtAY#EnoS;aL0IL!D_to zD9SwFDY_579NNahdL*QBsaj*!l|_^@34Ad)?#4LiO*b7$PZ5GvQ@^$kHi^zq;?Q65 zjtC!6DM~AE{p+IrPCvq#j0CUNs+o`x-s+q|gTE55udEASZ~KhDCn?zRnk|xN!PEB#Kt!Dd&W{1MZYHsXQcoLrl(DJ8lRf~l#L{Y0C?+rKGK~sEb2W?G`c7Ha1Wq*{FyUJYROLm-e zj#n24zg$vdG?;*q?}swn;Ud* zHSJa;WZ`~6MipA$mx;6#a7^0<_#%c=I5q14Iorq!MA@(TVjLK)$Ffbzd>J#K?StNineM91|JjYrR6gqp_?#5gw3^KGo*zr#a8C3ArYppN7dU z$WgFJYs_QMb^ffjl9Ib|uU5?=_%t=|{ z+N5CwaK<)Z6))@1M;=1ITqQ)A^B+1LqXmuZKl*qDU5($Yrl0wc-l%s?8!LA$&OiS# z%_I#M3Pkw2$h{gVOSK5BjkWo%+#?wx6>EeWgZXhEetVhAtK!q0?Q+%Gh1= zTMw56XQ_IhlEd`raMn0O<9&NuP}~0g5MiT7Azk#}rdDyqp@j~{(#X+HO zeQ~wy*b$CU>lgh|_d~T4_X6i_cfxBE<1ta~wx{}Iq_W`8v1`1`%YrZYLx=M+R;2j{ z*U*If%eliLaU25ho9idcwndbfC3R+6D-w^J;(Uq-bCNf8znh{j)S(!LR(;n~nHOIp z3U{SEB1D}m1_*ZI_-E?*ovq8wy&-)n?dnGH>xG_AE1aSdFxk2_8!A@D1MOf#aLj&ui#?qtc z@xg1UVZRTQ-u+IN4iAN^rC#h?tdh%`jQWy$R;IHlLWx#SMQ3hhiP1WE9SpzF$IN@* zZTI1czps4R#)G-966!gbKeFZ%G;E2gO2tFn*h(g;*zMeO=VD)^fSY3M(6|qK9W_ay z#pVI>N;DW`3uMF1`Hs!}WFRT4XCcrFD5`6|i^u&+E5(W5a%WR59mXLDY4{21txG|m zFO7~<)c4ygp9# zR~jxuGWrHes#}HgxT_G2J4OxWy@a#a^=brIR)UZiPt&Cdb<4Mnhiw1h>e5?z@qVa4 z23OW9#vq;8+tgHY*6AzLy>P5XzR45b(~TJw-iEKx_!OKCu)5Gp{gDnCEEn+QKFz%N zvi)=N&Eu|6nEMS~$n$yXSbv4Nr5Kqs%d{Si6{**)JaP6pu`+~mpWS+Vqf)yiP@Var%ur4D;KyS35md6AQHL4S@B)a9EoYEG_*zeUY=>h3libBXOJ z_4seM(N{41emrENo6FUylxs&9apDq*TO#OT%M8uelZ3CAi~9Et6D}~m*?u(v(|wId zGFDB_FSJ`KaDwC{mghF{>+QGsXcR>pZ6Y3~AN{74vWmFu4`F0TO0n61wWI}6v|oNY z@-*%tit#8+o<_*RoCIHn2PB(m<8Q^k`epgjELru=dq#Rc8~UB{f)5)OQdlYM3Fabn z^~aJGo^2aw+R!Y8#6SX$NfVO8pWh{*T&}n%jzNplr3Ncn1|yOBPsH1Pr(`b9mQ{kT zrzwcSX38%V;Ml(TN;bOuCno8K@W@`R)H^qlY{g;#no!>}EZA0Lo)i(Wz`fc9E0MBETe3w&H~;FgcH zsQe{-$5Ykke?UXO9qd*v6Ic_3r(i#RNiV#(YEPIRBR)4|GrxzMe|vnfXTk2?682e+ zL%dJTO;fKE&6nc`%S+c+Z`P|}wsHqlAcD=SU>mFEImA@lim!w2^Us28igaG`E%%wN z%}6$AL@CQWK-?q;=clpw2*i&xGRfdIJ3wq^H;4xnMKY?8Rk497%;}k+<0$&k7fXz& zD2OC9{eNt|Wl-Dg69tO9OK|t%PH~6g6o=yO6!+j1*W$&kXmEFjQrz9$-EaE-ugtx3 zKV&AqWF{YWvwO~-XZP8vy0(riZdICrK5?}OH}^`|FUkrC{zbFmu@CWtY6_mPt zb+6lvYfO>X5@jQ!x9P9=?HA2r`Dt_f(_`XQiKuvzYX=fNakRggt%d=&1m5T$3wR<0 zSAtoc+g!^+7No3aL{OYUU zXj1tnn*t}OTuNPL;45(J54E2+GvUc;TgUoOrJ@qyvKW*$TGQ7GZ_CAh&03x&Sm6#UbK(MIOuY?y5}c!MI}N+qBUPRyvx< zf+LfXV)2*x!)ZX&9PExKaLf;xpj^m*p97T5iRwPGS zQXJ*H3DN%Xh`AL!8H)9(OKj5OL{wjY{=<~P-i=VFeg&>VGFVg%%le}NQ$Hh5H`m{A zOe01hS8PT!CNxuM!fSbRcAivir1fnf5*Bn(KRgv zx`Q25iwusX(|mr4W?$U4?#_;QWJ}!Zc4|3or}&+s>t{bn;**rqFMu9NhB>g*V_f;i;rl?R7+KG^!;3ojQz&Mn0 z8seKG4uoZ;ROce7-(hb5TC{l!0+`JsE^P0auS{fW66XvJUMMzyXcVspcUwU1Ub(Q# zZ5>V~HTWeU(02Jp?Js7<9dAcaObmCI}P4fgh1?F03Lvzk)|PQfW$v=Z)Wa2mFKRivQ*aXws$0i$;%WphGv-ulHUol`hq(K<1cc?%GH?bWD=_)q z9zu!a9ubV}U|5*25`lC&R>=lq0t9jOd(UN>K4}`fQ@bp|ok5GB(a@z+b2ekbPVxaF zZ*q@YgOB{WvxCL=ygbV-Z|^;-tyX@H4*bnH54ivjR=C*=-Qm7lA8nr0HbdG!0O#-% zV)5gVp;~!3EHRHVvZu>2UN85lm)Sf3U@2h}<3x5+O z(l7NL5CZZSQLkyT&_C__Hl)Gr0#c;1%USWCUr~+w+iEbsyZp_ zvoe0iKJLj*+T)k)Wbh27waDxE(V1uwNe$ZLXJjaL{-9q04d;;ayy4dY8Oq5dbGK#4 z-5V$n6h->OQs)M(W@N(28`CQbEEYX#~?!;Ab_Yc#<-vXZx9?8d4m6WfRe|w=Kh=K`(M~M8!Aknm)Bl3k70IRDjxq_ zC%BrN*p>0x^bU$XA7yXt90*V*l?a1T6WGpLkd5K59NiAW-{2QB%hBez`uvkNt3H$Y_s`!iiH(^~Rx%kPbIjullulAkhsctsw%K zbwtfnh#Kth3?`yvH4jQeA&ATL=3puW-tabp!H=a|h8k!C{_=JT6S_EtrE&l+cw;=| zm>x`0)%8e-iI(<-dXQaDoKF5Dsd>w9nxjR20DfWjd?x=}9tXd#%Z`};5uE?9csc%J zD!UlE>s#j%y~>;GlOS;Y76qq#M^7PK)ls3!GKcUw74WuSTFsxn<}9+EDtABR@NV~< zvA9|%;9|SwhcryOE%@Nce-M$df8jk{*S8lO8H^g&jdVQ@c-tlhC)P$Ly^;6q5NY zbV7R=K57J_zBdtvTph~_wich$l{W#CqHFX?WulbFaa1?PV_6~wHLX*Z zZIpg}I?dTWX&@wYld4@WYmKT|79Tyh&QR4PlFF{Zxb2I>6qQ>7XP9lU8-}3@d(ofP z#pLXxc?P6O*dU)x#JGLgw1p8SEmc=I#fS+ZpN#|Gl>TAxob-M9(y%ZG)S>w?#;p#3 zs3QjYwhx_35jnif^O^mB)DxUztd%R90{nq@1p&hTZCHJ#?oxiFx9D%(Yj#jHhaY$4 zp&iqxz?$~hF1|pzCv=&}5?;gw&u)*l6(Q!PhQDFNct%s{0Rz4fhzgF>{Wd->X5QED zh&)3D#V8t~&b&VlJR;Oy*>@`#9Ap7`5{HwRC)DpMU{I z?;Gvx!YV+7E3%(nwFNeE$6Bt{II}iE%%7?{32!c(CU`2`OOa2Kp)YKTbD;ynGsUes{dV&F>R{aTo6$iB?n$dhSUzDhorBqb}05Ux^7sfd73 zMN6l=L(2+%7wI_&qb8R6;=XEwT7ei;_f)|{3^pCxRV%#H2zVP zJQqhfp*?!oTg2b0-a8aa6Pb&^Bu89X-NP;?QVyH)8;quN(kFCP$Ywq@K=jhSnqDw( zt(tpmR*dZSH+xYH_Z$8PzDYQNenw|4PAbE0fi?vyFt2G;t>!6|3YJ^;|7 z1I}AM-~vyt!UgO0$S5!>XV$tL~Pro3aU?Hc`ii|*oJyz+VLtG>rT!6GFly@M} ziaGBHAMS=s_q6e)3SF%d=7*g5MU zggWQ)3#*gaLheS0>XOV2#trJpMGcv6ce6$W74hlIV*^YzF%8%h(_*Pz)*yZq>Wr3| zULR?~hSVG1++OyH>AX#Lyp&P_E(ENoCugJ~A#O}Th$3upyefHQCFCaLN+OZI_2EYt zTv&%k@M3h}=mO%Vsl$`oiWd5XS1IL|#7q^(#S*g#x7N=2ooZJh=US@16yCWJ5n(Yt zoD1piFIw?9Gl_ATnB`wq;PVU%e;5RKm3N1iE+<97AyKe*gfyyu|ReqJ5ObS`lY~UM&YGFO0 zo)(lto<0#raWRa49=<4L8aj0d_l?1uTm5{}^2b)265I4 z%mr{1u|N}V#A5>80u+LmSZYL*jFD`wR;1WakCWggMH#@+hU#k%Fj*ds&ag_PjkZ>? zX$nk7rh>7?M4p|Y08j+7W;$rG`GnQmAdi@Zb+ zmv-{h+)HZ=YQv-|L%Q^0{8iDLWY=Q#XSgN!*)45juS4v5trP6K;4_*3(XDzQo$D~y zp%w@4{|HwaoPX3I(CXqzD2=0avx5qVV)I+FmurNj<__@@bi25#p!%ckB)Q4iDROuVU`=WW; zfXyUYcZ=~I%JI(lV{JFE+by^n=xd7%D2Z%LG@d|N?1QU-*WFF62wkLr9Q0%Z$*DeKN?VJ7=h;+(*k^eh zO$)B8x&ELN#ZFjL?anbbBya#C|Gpk+nfNctKAH5fZ5%89S#SpSyw+o08yDG`>+0cvcx^_#xjGe^dZao%u+Y+)hZh`iTihVy2&0}79`F|$>b`*lx)dJzlpL6sjjw%a7Wj)2B8|v6{>r%VQh}Uh zscVHI_(BX_k|~w~A^g%-la4+dLECK;=l<_IL1O?OWEHPxPbl{w3Gbr5UC-CAAXtmi zKLgdsr7PUFNP+sYB0@Du$MUV4MzaI zVKt$X-y1RZ@{}hHDwVn1FA65Fgd?tjli8DB8bw74-zKy3cFz6@QHxNG?S_MZ>@b&z z%(szIhnz>_h|Q+zpOl+)mNneStwzYOd?lfKP_MA*X@Bi(U-1vN5UWL2tj0aec-lsI z0Z%2lXcE}pWJtPkcSWI0exhSUq{lx+33`N|&i07=Q@G(5bSRL_yIjD>&O`tKSvP+L znuFmV#Lw9zn}j*DTIxx6x0)baZYkEMgL{zO1G>6xiE-<@Hqn})_`?5)h_vel(FYNa zvBSMVWtlcz0(a6NJ7FcdJ0XT46kcx_JIt0haX>Iw0bR~8P!Fhf3g}s9(*C&wB9guj z-7Vp;o@ErsKmH_n=_dW6aeD%~8$srY6mNn31%jxX)DdORE4|nQf5w?Ht8jrRPWN?q z+LV^n+^rxtJY_B{&-*#=5F{&t#r#JaoVg;8jSKR`Y6GIpK@9#}zsw-F!YN{(i|znV zmjwl1K>;9DjN;mWOZiuNj-RkxM6tTM)!>w6Qh=6b1gRPo$1(;5?19o|V(R7&f(?Pa zr*h-t(f;dSWY_~W9rgg}#;2)G`dnBW0P491>scXtc|ubLJy5-2^*Qx)Zj0|sQ8B$x z?tN2zIhPC{XB2U>y2NyAu^*xhDv~%(Of9UDh*WU@)tvAl)KG-*5Y5yca}3wkeS!LJ z@uhxLpMh^G-6~!GIa3e{{U!dSuHNg zJ9Ef6;OEax9UrxD;QzRu1ZDg~kZ&B`$7kw(P6Sl|Q7D34SV2U|lg5PiuaRm#W>5_o z+uvWoORJH=5y%y=zE=VYW@ZEsE@|uOBo+La?5X+TpjA(NcM^fD3u69{gi-T{hl3L*UNP+HJ$5{bqePzauep5{w#@ z4 zjczM^CaB&Rhup5PJmL!nM?(z%`ZN?he1pHz}9*I7|XDOX+hcx$Q7}Lh!shuq5q_1%dTnG z>5$t@u0Z}mL~y9h54PB1)FfG`hF^o9rortcU)^1 z%uCOXPR8WTJF<1qo9xXQ=;)yVcE!4P?u4qvn@!S>L=ghB^(~;MdWS9G&fmuZKAvVR=(SU?ILPX2`H8BdIy+}KT*5a8pK5d{WSPl&UT{H`mg ze=-9-r9&^9u3!A`&I70n`s)Gdsj1(c!sds@3Gk(QWt_{&vfl5??J6PxF0ib=Wn^xJ zWTPZ$ZLobY@RQOEnPh*t@iQO6HLg5;!g->|k zB7VW00~oxZw43Zpm%TxrF+U(aGA5Y+$&S0nO@1xy``yv|7H`oji@E`u}Rqq(T&12WOzzpbRFjgt+#_G zI@k{$Q+rn0jDHprB{Lk!fQp4m3uIO8hJuD5b%wfp+}C=%tc#Q;%?&|?pBgxVqCnK7 zKsAZVTf}Y5Lwcrw$NtH&$!a@G2EclTVz={6Mt``3pP9xly?4Y2QRAMi9;f4s`h^Z& z*4Bn+asdx)pXqc--A#=p-_~d?6!@6ZRQl82wq=+elVm&N8~!T>GUhETE3G2Oa`Bgl z_8U4dysCR77QB!%&*qgVyVw2};+>M^wc+H$s;1Wxp=arluycFkBkW#6O%#wRiBJD% zYxtUbQNu-K6kw&ng@IE+TAoMP;6e$cWetWeKBgK52bIMYF^bc32lypG+CwH|RVPD)WB z6A)#$x2ix2G;F!6Z5)ZfqYr2ao5+3poc@w$01pE4<`KT_qw%|a^S-r;~y>avgodATtCQ?$EG4DF||Uu+#@daiml(mEhcEI zHInCcGx_L^zfqmI1tK(xY6z`563_Lh_GlNDmcFobeGGp(p^|}9jX;N@x6w!zI`4u7LiWb$2 zH4|0p?T5K!JiU*yG|7PUuqV@3H1+FBO6Im$;0W|nB$z>)oX}JIo@z@Y&sx^lk+i_6 ziVUF-A^l%`Ebw^?RyBuT(l13X$I9oY@RjzG|EzHih>0g(NF%%ytOxBC3H{S`2BgK_ zNc_!%fl_n*??hET6wK&KMP6c&m{1q5A?L$Ik=gb|Uab}a zHt9Q{S-Z7>lUnMJ7wX&7#HBCg<-pMwG+V^Y{2WAr&^U2vyy}m6tNG!VyVQouZj}k> z%7@y4SL)d@pnV@F5zw9r3rJ!tn$x6=f0BzGuD_a)3iI=$)hQ9v3KcZg>V2BmQ? z0z^_dD|3Z4^qinDvQJ$IU4`8IMgyJdkC>Y~ zcVX=>G+=OE*}>_K7M+ZXpU`fu?{+{9FlB-?s={_FL|qW`Jr6&O29lSWFA&&2A7W^h zRSiyy*WdLvMCzZl)Wq-Qal{Y6mQ&>Ywd$s8dtR_3Pirj=-PLxsI)z{WyUq29C+m_e zyFIL)%av+*+IU?HSE;=?4kADD>NJSH-qR!x+;wyKcH{wec7ZeEw8Y^mF+3WvHWvC^6ciT}XgQxIJ4YR938=@oLYuYyQ_<-PHu_5m*U6-Qre~TnOpbNZuK1cOQqAkYy)E;hFogIoG3NhHVzS=kx`2z-uAg3h^7ng!W5?Dsy86GfdvLe? z+3zXrog*z4YL)OaaE}W;ewQ~X+xzjHi;k>zId&cX#!Z)zU?U=k?q#gyHq>X^$rCPP zme3)HFWeOw{f))aCOfr1=%zf6j(!NwN{hA1-(pi(b^*{qr7uvZ*A6>feXb<_JXr)h z*q`Z;C#&+dXyD!=i9ZkQFe}=O9Cltmd4V?UdO03)?DW!FfB}`FD`j8*pQFF=r`pz9T5zzQ2{rEjwq`h)`pGixl^P4KB75gU7A+DS&kzECT!# zmK=2ZHC4Do&kq~Z7e+;QLh{etKzb^(`C>yF+ZpuH1#Mz|0{OAgNbkl9GJloMMJs-D zotzqs7_fkoi7H|G%x-Z{AEhK_x}1EEK;VeZfJ`_ONAJ@?8+ZT7pO0{*h*+Oxt6=PW z0c>YYuHwL&4R9O85Zu^O^=;H!hG{&f!!bt8|700LPR)FFaPyEe&{jD{cq)x&F?+V= zzF+SU$NkJfp36UFJY~*C&A;=w*it-uAZiZDrRn0$um6Db583oXs-f@u=k7G@ZA_S) z9I_lOTTo}uBkJc>0j_+3z#VUD>*qq-KOlJJ;)BJU%@QV^g|&EM)h>wSBgy*{T#)aa zf)B`7qGWU}u*E$L$O}KN7DelC=5)E;%i+(I@%p2MYZC9q_;ui_^|496dLnB1CwiK? z#G#Ku+0_-=3WRg~fYyVb{swi|T_W>S<{7$XsYs~#3pCLC;qQj_ThDNy#td_M>C-XV ztCjmkTJ9pog>W5Jx?%Shrob({g<{JmfeILsOXt+o)l9WN!2I>3mdS&bjcKi2e+$li ze>J-ftRGZ&Wri$n>?nj z0W4bmO0}qh*H@H{SJc_7!#rm1AG%Gdz`(epKXAa3hZpGcx343WA~#0z5SZqcBnuN! zEeI-tTX90CjeJYOO-zAK7rJmp`W|($Kb~PLf|XYL`K!EP+(5npC&QNp-TZK@RpunG z8c2fJP}fEQ?+r7sj2({hFlhI&*OY+=Dp%MUL3fUw&zsbPql0W&@r(I=Z4c7u(TwU! zR9ZkIq%rKj#GQ@DG1mBsJzXV^wIl`$-&Y+Tz9+4*uNEKnJ>l{cpeH1xZSMr_yRP0% zIE#My8b$Xc)k6NoE+B{;YXGCpyUuknCWU@5T?;~*v&c2?(MY$XQK4#)1LJq&t6b|I zOtE$q_Q>4_Xh5V6Z&0b-_w*-8d z!zk1+lPL0(GjrVn!{o6>5%eFqE4LYzd9ZazwhNB6 zS969-Z=m|zdhyt8aP6DjlfG{2l-~hv(?DB#M~Vk$b${_X!HJOc{Kz`0o}wBjbcd*S ziKe5^1WF!3Iz?6g)=!Iaod^7M0({Kh%r|N9@dSUhFW6fv4n5b<@`T~soA-?xp-2qN+EHRP&}|{{(q*k|IY=H z|MztEXO7gVcSw3ju2gmwIHUh&vr`ZIAO*oIBK1>Oq!af9{9z{qfBq$yf$54o4gXxS za)0h=x!^4C{7~<4FUC^NTuC!_mN+EvcJd&-+MJM1ju1p+J$TK)5!jqSkPy+F5CQYp zG(d(2)VsBP?dsoH+j95fV{&+SzZ#1g$iWj~7JfVJG+bR{)qKBrM+=y9?l52KJbeI0 zomqH&tJXX@KOf&lpK$VTSl(dCUSsAVN{x!MbOhuG`^>XG57c$BygzL3AEm|tRtCmD zyz3v$I+~v>eQ%>OL&;v=PGm@wI(+IMMZhh_rdI=;j@EitSMDt<)gC%8`Lmq@S+nb? zw!rt}DU-V9r@bktpFkgNMUA;?)jQxmXr#4w8u8^%yyb^S`(CC-*J;zx4*b_9y)_oz z@F@rU@BR7T`xSwL8-Mk?46D#r&cbahf!g_%Zz{iHQln4@JiT7DF4+0*Uvn2L9aC2{ zK13}~Ul1+r?#IH>0^R@;ZZ&$W=;d=|hV441jaK_Sajw3#rT1j&R1IB z^oBHmtJP=)8|N3TZ{95%EDkR_&P~!%Z~N|EZCX!mDO$GWfwk{z$$DJ$Lk=DQ9Pe-D z{`TlQJ)vRR-%53B^eqYuJl+PQ?4bK=A=Sk80R_agds6EUGT(OB8XqvQ$;KB4V8yPn|o~zu^!^x4Edt`*n z1h2+&Z_ZJeRfnK+eM5KJvEx4&e;czd6uzKUO@7vY!r}65Ykq1oEJ?yU^ls22 z5!`)8EGJnVnnTeRso9h`LOv-?NIP~st@OEt)x1Hmo39_ZD zu^U|KR2UI6^scvO9ZLcxAJ;Xx)iaCXS-m%bJ42z|tY0mf z)Z_h_T`_FiA4Llo`0IHsHY`Pcw%o+u6I5tXtsYu7kAh{DWK6S-s=3L_#x<9$Dr+$M zqZnms6JzXF#|`J(GJ-|!_!MkF7Sz=+J;fwbDN6yJ8neA5-DV7MsI6ip$WX3N>30f` zgj%tw%u-R3TRHhr9#1~Dk##EWx1ahXf@+iYOOuJ;t97=z*QuUCXIv~_zb^0Rx~QA? z*|A$2W!u@1B{xfyI?j?AS&zxt4YOOOZN$@QU zdr@T37l4VLq<6W@S)8?Yh|*|ipV9`B&tO^d#r)?{dP7qBdSOp`ButJ)E#wMZ)g63e$rLixrzy}!?4K{2Jp9xFxnL!SX z&+K>2okqvw&xU^|P+xY8y;dGLPM>G{tB`ha9JDhrT{U`zt#vRwc62j!;S9)e7v z974m?PhyubK-wNs8XS6`v8<%OHBdWJ$V7>y2V-aLkWjCQy}@>!@(FiY{IpXxGj z(;z{7^83`fp^{C@0q36r^1%zVIKOh0g_W4CT^oHbZ?lE^4p48RW^^6Z9>d+KbSO3H z)>>m&%9R+LjC@+ZW=gA{h}E^m4)V+Iz;G)v16oC`H~Pko%j;^`E)BSo*pyxh z_(UOQj=5`i$k+R;Q67!ovaU3bEro+g#) zu`znp&E2)?ZKC+mOXl==8!9%xNt7!OR{@{5Sx4B&L$SkpmKD3!neGkdpb^5-r`G`u zB`Hd@K&tN)vw=Ni2`XeZju@X#{glN?GWf*>f`1-(h3KCA`Wx-svKAJKFo)u!EMBQ^ z8{*yl7S#hahnTni0Uv%M4w_YWX!qU;qZO+V>H-E$1LjOZ*P>$FGMIIv5J)5 zfCWpG>%Wc-z6d5~Og!|u97^=+4mKuhrlP1negcQF(ETEh61YO)%gT%xL3Ly&<7~Fv zG4xdYkY6eSHO*q&(HcJMa#&oGv%Dzq5Rvw0nCC0f5(B<_3C213ZjlC9qTr~&M z324VxYX7BTN%JlNnkybjw_}g{cV8iM5=GRJ<|TC$YyD%59{3XR``EidzshmJC{FhZI&F^0N7 zxjj3)lTCU+;kIo-n8L4zfU%@H+2@5ZZcPXZZ@qn!VO0k1(4P4XClZ9-J@3>#=&rcA zqb&FcD-!RSF?_8G532MQ?bQ^zRIT>T+AYk4o^N<)76JM*H9YmbTs0{AGow+B0?jb) ze-t2`Hu=h7#F|JtG4W#)%xFkgMYq771mW^XRV<5j^RP(6pdKaLP43z{x?&g9#UE;B z-pC*xBYj{xOReiPQOmETNhi&8oYVG#T_RtbnWbbOM*RJci8g4=+N%egQaSfN|>eLH+q1u+7jxp~y3)DC@e_kI6Y)ZtWF8+7@( z2dH%gxu}VYv>GVg6Q$AzodWFUH z9b#Rs$3tNVBV8}h>zTk39^i`cqmzZxI48fUtpG&WvT7F>Jet7=q&V&es^g~^Se*Vn zr;D{iV^rG;98rrN*Fko;QLbRlkzA^6{5HqcAh1h43TN84jyZU4aT;=BYTsfLa1lym zd>VLipcrb~q2*dAg{G&+)2G`@+Cmo;OME0<$-KbK$BE05^cvgtdhVpQxL+@FLq$7C zZt^F}QX$D6YHf){Xp)Hsc#~G#Ms|Vt5xbYB?^5>r_iK2HGw!ooS%ls6^bd%#b2r(DT3BRUe6dB7`G6L1f^(@;#$Vy zM&|)-q`t|U1fOT<7NvpI3Wsxk-#XA(CZNG<<=nKO?;_>w0mhinDu~dqb_ZvbTa|&e zX+Vd4aN<7)zOe(GdJa^UD&SU`t(@JAG~EBcz5{}N2RKhLzix%5&N{qJThRCnWIit5 z;E!^l+4|x-u-52hIseTkxy`R!Ng)6e`e2Pn>HK|}HV?u4_qUY?UoV%-fDrgK05tCi91n z)d9lyrdytyVyDWcBPnYl!xG%@z)WMj2!ZSBs&Oc(RX1c7EDyVhu9rR4@B~5}!qt@u z%cM~IPbjo+8PG3kB^pF~Ez>bI?_VyOJSYH5q8zmePHY@svfHyxw!~IxElzl>CNHuE zKBi8Lk%fm4v*@nj%N1dHc$Z_Ppky(xL*lg^yBuT8B+d=Ks+pSGGAV~X19Q@Tg|iEW z8apb+!s%|u0yanaa=zQemGAAlhySFzs5@!GGOCZZBtGNWb;rws9WTU;OYfnu-8jqS z!jd`*s*~(ZKvgYOF;-NOI!H(p3rbDv?w`6`?W^ zqotZTDjDuHugFSS89PJ~=C2CQnO^yNBJ?})JZF&oKW!}J`KD-gfQuv(r_v|;g8B^t z-aD+70N1lRjg;@6{3=1e>VR3sT zXOheFC{=$2YBSI#s$!-&bF>BOjEn}ecS&|??#-H@@K9`Ic>=Wmqf24%%H8#g@$y9Aq932Y(+aE*f>y$f4fml1RQTX zEdhOJA*D_&RT-)%=EFGc$ZT^RhO;dn#xXq%=RLy$vwu4*0TsPzIcg`COw9PK*t=#p zCxp}_{GojgL+Q8>qKIVqY_z6t1w>+D;3KVwIdJjco=j=k@xJ1mx__gPvTki6Fgl*S z>IVed3QDCfE*&Jtx9^DYd`%W^6or-ejbCV<4qq7K-h7Z-{eU9tnOjy|3Beh6>74|s zcahI1ppc}?1s2jvMiqe3v65D3o`gXzH{HKbbw3!RJdb8>>EF}D~ebYn?xH9+)? zMoQIwN(QE1v`5i<*JHPbSa9&@?i;QuJP5clKd?bZuVw zW)4?R3Y|=ds~nHjf!;hxy_hQi>ud}~5m*$>1K=s#4izmi`z_#L8!FE3avV1mWDES9 zz67R0g0|S|as0HJe@-FXJj8hYRNT@U#_>E4&GRMrrYi9mQ+fS$$y>#LhG4HfQ>1^^ zb2u1xM2iQNbF?v943@L62d6(c*szfLx?0>nTd>d3bM`Hw_xzD4w`8v~r(8HkUmb7q zNKQAt@Zq=tZ(JRK9v=*nw>;y?H3lxQLRw#e7ZWO5RO$Qd7fZFp2i_hFpR;mho?Ng& z?!N&|P3>iWggy&e`ap{wJ`(YZu4j?%OmbRv7m_hBBJrqz#ElskVd86bq1tZM{DHYQ zet|ey+Q^G{WARD z37?=HdI)tE7I7%jqL1$^4tYSZrb-3yhcGy`w7OILWu!J#YtI%i8BG3Yt}y=pOwW_< zq>a7)9~sJ18$1Pw_^dJEuojtFQDvB+LZm}8zHzJNYEXdV;;@%C(7|&MIk4Dl%EIc_ zodCkT6ozsTisgdZ7Wm;Hd!JjM*Jtus+g@V{^7uT+;aSv-*}i4Ei;5p?Zf{kV>W)8! zgOFHCuHJttnanCvR=jR9p?B*gwahwxwXr(65_U8kk8yc>x6A@y9Xp?nIs3^JW5Viq zD|krJUi2#V<}<=6ioF?EzWj(F4bh>i7xXFC0Ni%q&V92D0j4NZJ_qwa3NIQkt&vxp z8#&64-NeLjzvca=s$b3Uc1c@o$U#q=0oAvde@I)+hcFJZ^TPSWzUV}jRo(Or2cG3v0HUFuO=X! zqK$X!gIKhU)e4tY@V~D>%QdMff~%`9&lRm`w>8W9d5X1GE?A!+zRUL8n?wA^OP5t- z>xeRj#bwbObk-Q4+wRyP&H#$#=gCZNGAS4=cvQgjv4%XhGg6znRz}e+)(a3dYdLa+ zrktkRf5|NV$5hZ}LSYw)9es2o?sRGqr5}8GTZf9bypXn=_AC=CHVH|};d~UOpY>Qc zBvV!@fj1cA)Rm%Ik9hgImQ{v>8rmt}?q2NZ>v=UPXZ{jAn@6dlKM))ry`PRgHFn`(R6pD58moGRyyKqwl`Sh) zr{)x@n0LHZbl?TqPKun`9|8Lpzb8glhR_wqP6FBIzBsQ}yjB=b^Q`&gzw zb~SrXm~M!1Z*y#g`cSx!KJtxgJg-K8$t+XA%0F<+ArD8aDD~QYaRnjlNEDRt0K|4}+jB?sZKc?d&ruKDDoXCj7k?+C;D6^*O zbcAUy>C$;__5DX?WzaF!n`~wt4YrliEcAE~_|B_ztG^N?%y7>2NQr=vayzRLYQhVj zyfy0bX^F&&DRw1K`tV3<-+EU7W#aBzn-9~o?&J)q1=;6-HIfWslC{jk);N_+aOr?x zxpr%UXR1tX$n-OZ7`*qh^)6TzXt3;zPB#9pc1SerSRn13GeX~ZbkDJ=VU=A!r~FIv z)EXPM%NlPGFNo5vaBb8vMb|${+~qI;n>ex9mZj}YX6z-L(N%8a-5u;NuqYsYttEJ< z#cQ-5?0-W#?ucVJm1N>ocS<=Hcfi`pXz(U&8VgwK0mz3A)I9oq)`_LL*lhd@f8Cln8ZT5T$?B)LUD&vh!B zP$W^O0+R0gsu8|_*P6ctA)|tJsX{PC&}@G#wIBKkc~n)_wY(DT)Xr1VZN4%nPo^GI zkWe4g%qiHqyhjn`NNnc~;&S8z@{ZVZ|Nt&EEwnr>=xtzQ+qM%QqDo*5nxn2iRj48?0|>(ptHJ1*X?EPE*n4a4wKevhnl*IWX**w5gx*Wro2DTMrC{tc z)$@*40Ar}U#54UUt2;i3r17gtwH4!tF0Za09{c-=UWK)tn)GgcBjchjI037?jDpGs zBK&HGFEMNO(8>;h`VBNn$ma<91WQ8EQdj}J;2kMZRlFjUge;u73ZWffd$C9PDn&7;;L(jOw1Fo9@TAmF-+7M zM?uRbZY3yLDahvr9@DD1YPGY!{=HS?Z`rJB4O^}_M8+&&%X z{f~XEJ?A;=&MJ1f!Gt)8X?^LA6*1lRf*?K9+j2_-4~*!ZY7NN`%acy_Lk)Cm+rPT3 z+7U0=MlqSStr-~(+L`;yH!jjihb5mu<1H+l$t==3ROeLfp1hqc zq(_s9*=}r*(k4AtH>G+kDp&l{-UY_2XUV(@^Hk+9MLsV5V*g0_Ue|=)|GE<0=Yp2R z8>+i3uJs;9w78f8XCn!Kx9K;GXJ`U#3GA;wj@9|9M_bk~lGI1`q|*!Y3{ffgcin~` z*!_gd+FYc{o&G$YA{an>vxH)_flqh5j6_Yp2X{Bs zolYz1n)`YgDrpA4iO;f06g+rEMnERQ3fc;KqCEllj*t<&?TK1zRK4ZKW@gUC8CkPG z$%rv93}AKa6C7YMi7rrRMebjSBeFf;X{3mjW1L0XF*e}7hcS2NBqF9vW|I|xD|t=E z70TAF1Ex}k-z-+hEDV;E%nf>F4a}b> z4Zeq>Ft`>f7m$2HF7Q`rxhgaUSu8$Qn^lWVr*~K^xvIC|GY#36FLS3axmvd1`@`2= zuKoq`x_>fyB~X0_u3B(JFX?@V{mOTh!!`NEl`eLyuA7XwWR&-1jI9%a(~q^VetV~? zrx3oH9njhPX*p#uwxVa25!VtgixPJX?vGyaVF^}^uh{o11Je|a+mRSFj+1SqKaVN6 z>@M~T6@H()I^5ud6&ZuV)7|2wPEeTZU@w^`bW^r3g#Ktz0B4V|M}Enqb;M7klbgdO zGWjKrI!<1c_x*KvI=Uvhb2j_CCwG-Tx%7s(gZ@+c)*NH>@I`Cq*e^FW>XHOcRu70H$7>LiEGnpU;Hk6DP>)uqCI7mc9tjNs}Do-#YC&#j6d z^)ho4z8vPE#@MS9EDwFLq$?ML>N(U2E8DfiUD6}O7nYlyVpGwlvUaNwl@uGjJAsW{JT<@v4XH5;CoQ%7*u0cXyZI z{GI!Gzk~m@$Ka%>syWxS)~-of>ae8UH+VV*jW~_1k@Oi1DAUn&o$>HJJ^0-8-h6I< zvoctN6khK1>G;1okv$I7uSr}&UhoT_YAoDTeM2}Y@6`{?QK>Dzq7)sZ;KE3q? z#}&fnM{R!QHJ60`YF>q;W5X=8$e>^5-9>Tc=H*=$P00YX?HexdvQ#sIm*tojq-FKh zzOzI+r2%o|z$RtgIyV3H&;`|sBiz^dbz2*fc8_-J-j1q1qd$ngHdq$f&lv5j*4y2$ zQsc^HaPEM?&_GgAZVBe*oA(>yb8fDghb4>mGc~-RE>WaMWza>t--;+qK$%)3pY*n9 z2)e2ZEkCGBiF<5tw2KU3M5e61MM+|FLdzW@{WdF3SdQnA$sEmHntPr}x*T^yc#j7L zj3MbyY1lFvUDW!^ve1J8DIgM}_#jjAt<$KuGEZ86rf@6yXa!I&6+(JD#Z?xi!Wdj;eAQxRib$Vt{4#)_%)#rOFd%xxxH0(n%IFeO?xsKse}yH2miU8S8Q_{P zNr7(=Nc(-E!?A;lzah?^YoJE?dhSq5Kx~16MtUzL!Y=bCp#RBRO)%|80A*7glN^F5 zJ{g>FVQ6vDz2f)us*ll#3FQwN86BQ^sa943C>;aWdn$<5r_>kqhn8&Q#af{CYmPkFQKQX)_H<(nZ3M2 z4De9qOGz~q(@;=+*(jRSpe2pc;&O@w=9jnw@B6K7s-EC%4{7BP$nT}(sNw*D8{sRA z?xXF9AhMVx%RI#&j{JR8rKV}w+rfVI@xtM#l(|fDI2~{sxOqmkNEK% zpAhbaEC2q=D;>^uR6!TtSHsfSyME?c+Qr-sCBdZ$}c-b4?!wykdh1CpU96xJ&6FsJWwkl_8P;m zAU^&nGfV0rWJ9dp*|cV4Wvg^_RCrCMeOY9!?Iw7|mlMxPD~xT^lZIZ`hGHr#+6q-z?nHFs(_>Mtlg4 znLM^l+57b4>B;Rcq-f2%&->fu5qw`;MQZLsEO}pknz2gsp3NDY8?mLEv-9w1y2(81;7D|x5GthehHxC<3HNQPmOSi?O8<`^I;p+)TaP+GRnAnt;Oo-Qv z*2(+;ksjRuB~3~@`vD9NU+@E_w~f>rDmWQRYzp%!V2YZ52W2O+QY4w1=BsC;xxKf7 zZBjC2WHv_&Gp0*pWLDj_xKOTXNny13ZR}f@(?P852Ny;b`cD@}CC1o-x2KmvBJWgJ zG@^d&Yu;veM5#7j$JG~|(oL77{jSMdrJFKtyS4?m1{Mr6JZUX?wf{S1*l)MiMia^@ z7-eEHbSYtw%cxb(V7`B4ekSis_zL^}&`Yd@@fipytfz$0hi0~xYVgm)ib8vljj!oUzw`NhE|3RR3;m z6GQCrwd9_?{5~`o6^4+2kb=?mGosz2a~j$UD%bm(o=(1w&1R$?P(umGoMsZiGL{m> z!)Kpw8zjC%GE`hf)#?*haafiMk;RX$0<2x*0*hKs1>~v&Kh?*S?$DBOD37Abd#kKa zX29wCW$y?S|41#KJ*dU*AZ48KVKUeHt9i#w_x+!`A${L8;gq&xlJwF4&cfE?`VRAP zF@=;@X^Jyy_ID)PgSOX_6RuU9BM#|vQB~%F=oP^@+}@;MR9v+hm(vcsQhqTVaAp3V zvS~~Qeee`TTWsE~o^up=oWJCgPlfbwA9~)xXCfB54`;UTs719ZwD-LQj98W-kOxD(ItK;)=Vtd*|^@GIxQh8IQ zsod3dO|kE$oHm4U^E{2~2Z3%n^xdoX?q6o6teaTDIgcQ|{sgbU#_CGrWw`#QnNuxe zKI@Q)d2@Az)+xqwI8)(#D)$a52TyTJ!{p85{s2)W1E=ZP)=wnVtReyKU(-vO%CT|u z$y`x9c?xg-Z2W4aZgo*C*;wcJa!5FQ4=0!GdHvR}>v;UozZrbx4*i zJ}13TSDX8)80nfp87j%!1Px)PI>N+Wn?IV5wQ8Wt;^kLg5hJ7B38+H67Z$}?*%wD)hwWtkdz`gy3S zG_ixE1eK6rA>kEAk*ocMYTZLFn&Nj%##2^NoG&XLJpFkX;eYgtGN;1|SR?8duukYv zP0HUlMG`Hjt&o%ig;yr+Gh{bO;`UQHQghVhG+Mib9;gVa4FM`HJSXtok!N8u-<3eC z((#m3B6m<++2rZ>)nRbe#LE(qQt~dawhf5Zc-;^!RgVXUM6k(f368= z8_zwqK#>Bjtj#sT9QqEitBwv-zg@UZK>BksLRt8~krtF8bAK;J%v4jKwOZ^O@AlIE z!#{`AvRXSRzzwwN6+$;`UWcq(xcLf?@|E-l3>`$x9{h32G%+k)^*nd zyOX?wzWenNNB)qQlfR!2fEBesM-ceL{&4&go392-NM_mSL2cZ0r|@g>#Wg|*e5&nvg$UP6LhpJh+#IQYB(;d zS+QTRw))3W2gmY8kYWm|9835~24&OTFKnf-Fo7PRl_u_U@@JK$u$BO}QJfD+L0I1; zup}VXq-1^~#dptT6CK7rDC8NZp37B7Z-i(YXRqfG7ka4HNleNO(g+cEZhb0ko=tF# zU2I8exQqu4)Hle*^)~qGi>bl`&?S{}PY7iRD42QgQ3jN9Cs40M60=(ZxQiuuD^#9Y zBkmJ{Uw5w0MG%GQ+|*H}r?U={6Tz)i!Q)3<*@irb@J2Ti5lKy_8BR^bo@3gR;I{y+ z%#q~P2~)D?&vB}Z5rU%|jTLkttL|ptt3^`1KbIX=f+mqLK}3p$ce0NeVufvS*Tfe7v$ z>9B)~nTcY(9MZ4T@~%+AI)7;%ocjC`PJ2aPI+D{bBQR^QoycP8&c2^+XvNpt2JPsr zR6M6A^sFW}K9b|iI6t^Dii8eOD~8zfJ5{-aA6C&o-$MwrLN5ymV6ZXj>5&eJa2Y88 zkdf-dI0OPP;2NDHM==-)y_dyZH=Zo!*AZd@+twIoZxSrR8%{A!m(SI`asJzfhqSjV@XapFmww{p z9-qUvvYY&ufQd3%0J1NEJwX-CJPn@=5Mezf*<$ieHv-o2Gdk7BHb=Gn;SyxAH#I*i zev%Vxl^_>zPmkazb^PgY3#Cx(2O9F$c`JfoIpe=X?o-e~qCSsXH!Aub)0 zWxF_QXXl2TrM+Hnp`mA2WAtTT&C6}mAAz5757)LJ!*5A!E>!-&G75?PAcE@!n?&^`^gAuuVpq~Z` z_}Q(m-Qn97mi^kfMhVAZGI&f_Q~^o@+=xDf3@o~R*8J-#WB7sUTVpuN!w5jV_h=YK z3a_c1@mF+)@CBREZ1%M~B>g(XIx@;oM@T zjaqBJDUED!@x?0_kNl0o^ny6ra6n;a=U?-#QoGcC2@}k#(veXX3v^=UOlTZRAdmk(a4a zB!YH$qh?5%?UBGHazy{z8*a(JTCjhF-%peL<+StyiS}!CmhE#`N+2g{A$M zq{ha=%Jct{)Oh1FzaoBs<>8Jmdx1%SXZy&>69*5^6>sqhBM9tx$t9Eb$F7jI!=`J@ zp#5~kUniBABzG4emn*rLzjPJhO3pEx&yi$wvwn3?f8_Za`34&$1EiNQIp;6DDz!}f zZckhsk?r;S%hG-Os0R26@Bv%`_j)&2fYqaPq1NQrt*5>F{B%HbWX(H)`3Cr~Dr(rM zXc5X?22Gvb-L=f0%r&2X z`F7Ua9rSl${E-`QWnUXkf4Mfp+-nzN=+`NowQJ?I2D;*<_^_b>;&N;c+@@8ASA24D zC%fxBwAZ_9S4TKXVYG^UQ6sq?f7qyff`8QQ{0O?yA;l{=va(Qk7@7&rYJa+Hts}tp zXjD0#9Sb>e_-@X2TO4U(eH-Gz-{Bon#}rPsu*AoDaTDtl4?i8ZewJCW$Qluihnr zrRi89Hx8{y^)2<*E+vK16*?sG#arHPZ=}<_VVh3pLY|#pT6D6bOUAe20u$eRUv_x{ z^GtO}2c&ca5(mVvyC+9`BSy`*lba?fni0 z#*`yj%jQ4CFQ{o0XTQ0Tz8qJ3C3}VwW?aEoK{|1AyZ#Uvv$yra!p+S7Td7*G<{+wy3M-0{|pQ^5%cuinkN(&T3JqjL14eo5tX`wha% zEs|pyE=NWMk+{P+iWap>1M1l!rG;H%K!K*MiqmO)eRX6@wtV}OJ}O1_Q`;g0zj(xq zayQjhDs)zfYcZjktGF?#say8PqH;ar2T5a4CP$u3-L$2|;@@OaNu$vIC2j2Pbc{wl zNY$s--x!5IOWER=CQOz(rX`Pk^RtPFF2L)1S5F78`{yL2@kcw(m8+21*Khqh01*v= zJT3gOSXYA!@F&k{AWqP7@a5So`%1~^Xav&OmlFkPj22OFy%DX+MX6iVv6hR6KzI>M zgpeRqf2d|R`4!n-NJ)#p!)h!#E+4)Z(3KKM7Szrj^mijUZ?X@;|n6 z%n$U`{sgauCEUovBnBI$5rt&V5Pl{eh821w;(yDBl_De2BxoIUoUWA3!3V+2%Ja-Q zV=S0()4{S*3`((phNNTyjP=RU1CCf2B&~NOQ@hEag$Y?XHCgM`{UBVJ6ZUC$3p)1Y`4R^b!j^J)a~KqH1D^O*0uJ z(-XbqM3+Y_^j)Z{jS>?4NrJYu05uLJ9#D7}%DdQQJzRNUl5YC5-ivZ4yJTXKg&LhsmgW;Ix| zL${$((b#Pp*Xsf#+$Qa*g*?6=jx`%`K@H?8Ppa$o>`67iLA>!oG4jn69GMku8mKQ|E&FJ4%*EfgWiu%GSvLFG^}3@&o=W z^|v^Xkqk!MYdwP%L5mQHy0~HUk9x$QU3iR>c~h3t_dBimCUDbvqNVdTbh>5)YRx$n zRQ!|CZ8S1qL1Pi^Rmw#E2c!SCw>FQU|NggI25R4w@!2Ahb)I_j1w$DNxj2xD7Px-? z6q85Q$i@c2!Bz_Gic_-~kv|NmHMs&qU-_G|KubU%42juMtj+eGm~4%W%KW`#mnNTLPrqkr zJlb&PnP{pk1$A@}yYQYc?dYpwXeaU1`{KyV!_~?w5On?SSRhMa8JGYdVo5YKgmFTHhDLkaNIMf=oRTts{kc{P@8s=mLD+PUPO6^C zNOYcRa{~4n^bD~XW^j(82w2h{w*|pm3sP{>dlb+fFY5AfQxm!rlw+m%^Z7-MuHy z)?Zu|FV`-~xyztFzR6pIa}rgn+RPB4nweO{Lx5`=y{uzhIt%@j4!LQ>nlozBL+_oE zKuzeqL$%u~q%F4>E6@j#N7A)T`hClU)8`IG09R^jHs{vKvt*^*#}S}`XRiHfsQCx8 zbfbi$G*l|%i6@x|p#gj)H=Zva#~4F4S2hMk(!y)IKn*)I9*uy1&;uKU~ znLaVp(q9c(;FKefZGfXpz**gYLwZ0}E^@ ze;gN%)?#wg3J2@u)0h;F5S&~0rQ;M<2ReOE zB&J|z&fK;wIzs7FiAj+4A!wdg%yEsB()iO`PL}|-6KKj)E=4@%3+jou67*hCzG?y8 z({DMyu&qHiXKX?Z=YT%dJ|oze=kDL7Qd`UN8*bU2KH4|HSsia6FBL;E8MPKLa!}*T zCzAjF-6;k49|fCW$l4OhKv!M*%~#YGRK6r!-(3j6_Mod}GsVE%K7H=v(=xk{==BHA zn`hzA3bu+Ne>wMyC7<6N$gM2P=;Iw5U(a;4DCip>;|`S{v$~AOBXKr8H93E~6h-)g z=(W&*_OQuWC_fHm724 z8Q;7?7IrdS-i>$m>oijy9YOx>+n-ti%{|6{OH0d339o@%-ix@}Q?gV)=n{Po71bYe zS18O(<&2f)I>0{Q+X9~Im%edPJ+fXGnr?o;+2yBQ#mil2O-(& zrB%hOj1v<1722QsH$MWL3?35-5e+#6!NftDMj&^cztqv;rBfG%Y8u&eduX7UMjh? zRvzVXX96M&XX)xZrJ$ns)4VQP7GJh(kgFAT5Sw|k>6Fef?}KxLNo``@rtC5s$kKP~put{{G*V7DRp>bS15Qj-!4Wj>TL zH>?T!kdJ`waKJ@HDH>sYUM5E~df3e@_Q@Y=0cghQY8iuepY>nZ)2PrHZgzRgI`ko^ z+vtm8x}zdg`JcZd-16b*7UQHBFh0mT(It@{Iaw*j(sFyy85OzYw(G|6a~?8X_i4rx^k)R})y zW$qsvH>oPW#103KrsY94)3Ayd=b4_#9QH&gm(s$5RauWEoC6S*R_s5lGeuQR;NEq2 z;=MJoqoAlgHMdaY8U`bi6KtX(M1G^`Huq0!K;98mz8^v|?w{YqkO=|0 zu61+KF8yuK;*J~wB(v+FtBU4%wm|$Gv6|T zzZ^6oqa4cbgO3W;{?0Fd<})<@s7f?@M8({^7;4K^8S}z4Gbkou$Qv)tPJl`a#hW_= zV<1+d;5b%t+HH23!Dw(|9!K;@6<`rhaZa{9><;TFVJTb1uqdOv)O|phq%C6=LfL~s zf$;HFCoVXF)VJiE*?T1%uy4!pZWB<_E3GJP?q$DR|BH!UrGDG+&BB_E7b&cEUuZRJ zVtKjV;@W^eOg=(2V)B|r-*O^B(stcU3JZ}_);K=@lcX^|-MH&@Z208-9pLDf#EXLT z%&>D83YX{|XLx8JIT9ceuH+CC(1hsR@UcmkXCjQ{_Z#jSafo4_o#2}ac#b(P!w0DK zO~AQ3Cq1WGG~}y+m`bi80yS}9MhyPQ*;;;0s;WuuAlX`ITr2(ct`ddJyl)}Ps^uy4QS0^$xN#rWyPs=(&|d0v4=s?_NC zJY8kYXwm~2eI~+L_ddld6DA9fPo8c~SqzK*eYg2imNt2nd+ss2hafqN;k%*qq*}tI z72d;Wi#S)3X7@(i{#HW9!MTs6L`NKxutIAOG)a#}oOT`A*3hqj1^cuZ2ai%}lPPVpBMQie}rWw)etlH7WSKZ~YluhmfiRPl2tDQu3tuqvJ|39U2h_hsO znf|Z(?b2$Vx?<;c#N&GklPmAjdX)iofG31-^w5&}I9I|>Gk>4p4=qX6#T|~9Q~sq0 zk3`dIVri1PF3(l3Z5Cb@+BFf88X;GFZV;+S4FZTfPgsjULH{3mx*sd!j#xDEM9l~B z&$lGXDL$RHb0?j-t~1DAt_E^0A261iyL||ngSG7&hRk1+LYMcu<*iAIe3BBgfhqyG zH-lfqM^m$55+E80-q};zt~#3ozTMp4OkArLLU^~4rnTxs&s$*beTn_;Uh&eHvHpY! zn0(cfeLrer@%2d-tsUIm9=+PL-QM=sP0m07hS7kmqga(Cp873OW*_ICO7CN$_F(L< z!N8Iu=RadXZ=Q)fLRdvS&7;n(HGo{Y90&4{apzl1$U0~?c{y#-U$IAb_*<>;R7sXH zlKD}*0<4IwmTx#z*n;yo(`SpgIGh&3W6Z>=OBNU6bXwehSX0YZ>uQ|>_e|AH5Tem& znh_J|Hc6~xd#4E54W9gp56zUOf_0r4X(aad)wbF(AIWcTTeCSVOl1$5Lln3)t6}~! zg)xWkWjGmc>`HFivhbl(_#g*HAqnpfS=xmGJ?J+z&JQ_}v@g6mdc@?mKLutnrP-f5hCgrT_#Blv4J$T_k9K=ifj*AT{I#CxL|!>4 zGn#}gkhI<48&s_DImyde)lIU~@$BE$tSP3Q!b`(-RKNPPX{J>h7DH|ht;DJ#<-h|e zMZdeqxIK8ha25z%Ho4y`&(}6Pv6)*fVS~K5RaO^QA9ABRs{Xii$k zaNJa1?;dV!bLh$QA$PqBiI3E9ThEMc#`XSMjZqx$!&Qhahl&zBVx}aYH#k+zED{S& zn@o_5&6cuOAWS^FY+#(fw>{Z|TODGUr&o15U;zdPPvz@a#u#Fe>-x}P4RudyUN*a|z3c>jST*Eyb0cj0vOeL2)Ixh&Ce2(% z-jA8W_Xc6yUKMGU@Dzn?6PNX-!_p$Ex*%yMI5B+K?Hx;`xf?7J?|M%nv-q&%vM4SW zhXybZ0AkV($%J%WpTNg2N@^)x2rp#PitW**9!XnK7s-wk7Y2`BkJuzGx+kkdlPH!M zCe+ze*9Of_kN%$&65%X?Ebw^u7Nu8mE5O;*uF&286TB+sr1MFi$*j9%|nxOaFoBhJQJHFDTIZi*^yI5CqkCR#Po7~K6D zJVU+s@Eb6!ch17oaJ{I^&R?=~ zl&hG%7nrASaWzFDd|_sh-s)YbF;CJ*wlX+;!j2O8t|y>Hpl{@{*Lw?Ky9)4mJ4L9) z{cac9SMOJTl^Cf=1v6)P|3$=L&~B@P2?0(JMsJz93?Wj^p<)+z4||l-pXp|jnoKG8 zJP2y|)|zXwNTA=9Kfy%w{1lcJlM_)|uC^qR9YOp7Yv1NecNtW3SMrAdpFePtnOF56 zK|*5;I0{blzY|^ZI{=zx``P?w>A0}u3vC1KAIOYs<0z3np{r!2YJ~MGL@x8Fg44S6 z9HaY)gTMPkc~lOAKJ&hxtO4)MjAj->iYabVyUIwne}!VWBiPh05ujtdLIO z6kR0d3)N~16U*$t&Akz!;;t>#&4$*@p(4$uJ!qd!2EwZ>;sFYZKzDZzjZY_0N_Zz- znXXq4jkr78jr?f?)tyTNHrtBF?XXrazF(3EkswTP3dg-k(T}6=APj$SKBtnHytPF8 zzBr<}>=2jU0Qj5R>tj0BcCUA-yD!>SxSKYuqgyF`>B%?%hFvximbJ0CS2cBqhHeyn}^uv-CK{Keevt zRk1zEj6lPfwD+<4%Mu&YuSt=)li+IDax%5}8()V{K5*8r z_7-bNkRPONw)fK_z*U7D7J+bO<=GC zo?$GM6s{Bft61@zlO`2>h%3yR_7xd7Jv-aQ{kw{#=9!r^uK^B|JYg&ujPO8r9IA{G~35WYdYV zyy0Tm=$ypiN8<$ealjf?r$b*m8QY}opleTe_X-v ze^vi{>)F`6#q1Axefv7H&w6YWqMS~l2I4CVk z&CxkOo-^rxW#@Xj+BC+jZjdtH=;6xLN`8^ZK*YF;8* zN#hv^*MA2`6wp&|bGc?9r$E;p5{NdCN%eY*AI%9i`(PezulrS(jGnK5ZG+aI@L)&v zF}MmyS!g%cUyNjV8-I?Sfo7*}fH!RYIGJg=otThhI)#ghztY4E8FaIq3!{uL60H`` zzz5ZVs2IVGFdWP81Sad@ysU^Z*v-mRZ-+8zZ&r4re%{pm%yEX&OXNo)%JN%WQ>$o( zjMT0)PBupH7Ybj7VrN!08LC=;kXfYTWjH`pl!$#|{X8kN-skZP(;EK3h-)+uqHDoR zq`nwAX>CDN?YR_#hAK0ZxAH?d3KCUAwHPNF^lniH`urudt5c>uwI3`OzZ9D01e%3<6dDSJj)hQA%3WhgJw%QYD)L6HGGed>ZnUnaW8~ zQ1kO?dS@#zmx~A94KDMGmyeh1X*=ar8#?5Q+5};3 zi)>(fe_=>sK<$KX#Eu*kJkwVroPnYI4<591y3E8dWn=gy?85xCD_{a|x??&6Vc|%y zpdb0Ytwt!B8z(^bY25aCkF!qrc_J>^6ZuqI@WW2Ax^^>>;meaR%F9$VQ($`^HlB;) zYo~gZ12;ZpqZ(Skvuu3vU1H)gZm+J6CuQ@k=EY!{;7h}@P%B}wsm*PF@0BDn)#sL! zO%2dEksW*uwiJow#mj_d@t?g*Cmk_8DfJEgBC3R>vP_^R+f5H1|NTqpVAPxMDP0m! z*cfd`o4x4IA;$kzO`KaF<#1yOX%)0KhMS?VW*>`gg$A;s4j21G3tKDu#ULsQTY2eD z1HAe*u}&vdVlc2E-Slo(QRSb0^S@4V-)rD1&qJAPZ||gx-3WAt?{Di9ucZQNv2V*1 zG&48=;v^{4#(m*DLHr$Mtvx;o+SO)LztgBqB$H)dVE7vM8Nare z#{c}5nGNBoSiTER!m$3Bwi9f1S3##NsHk(eg{b;6YC{z9ZN*M7 zo#&)HJRDF&XthUgMSU7{_Ll4%7wjFJ)TaTuGL!X8zGm1Y%QA`E;FtGUcB{R@1;7ez z%1~atII7X038hk6Se2(_o;&|qj#1Y7%(HnYmS=2+!fIw>#j9K--8*7gd~0K1RRQdtQ|V|cmUk*avvG!${t>9uY=-%M9=fM*TLm)?+xdCR z&aLA=r+5aTU@-f9RrDyHvA7hrygKi)Q{pbD5)awL0zSMew@)c^;f>_S9t-ImoB=zL zNNOgdb1Er+sE*msGAa?1#Fo+XQC21#naS1`JHhHd+}gN}Z&7{%hLiedpnsdH32oDE zj4CNzspP1JS3!Z3vSW0b|Lt4CYVxPySD+;elzhb{d#rj{cQ(s zVWMwo>a)P7l7V`WttW+P*oeYT`afJ64R@;$1xLpp*#CKy{tOaDkc0DgS9wzTsYI6i5Re?gM9@P67pZ zw}nl}M=C9Laq?iL5amTR#{?3UGY2zi#wE|iC#1frX?B|v4r3&thTC@xeb1y&vxzH! zXkfUbSY?uq@7y4(6qRZa8e79k4x{*G>B=Y8t@=4yuKHzjZlJ8ZzfS6p8QvNNigWnM zX=az*Bd8hu#hPW&0uJeOvUjxtMA<1h$BJVsQphrXe=I>ra$Z~fR%0ZhS!-I_3=WL^ z*Vr54lLT8NYI4*V#}iuok55D@3ipBpK2Ryaw-eoA@^RM8_ z&j-y$zr&=KpK}G6HL7saf_U4qV1r*Vq){IMS4K)2H15ymXSNm8u5RphwV(xlx{af7 zt*ZJQghf}ddxi{%b2&m9+FekXtdfqdndPx}fBAddO<5{9oX>gCsI3W?l;~7N8MfM~ zNv6aW=f^>Tp*R~@PyNlvp()r5ygD|4i)naisOT~g8wONo&|~uFQwSXAe^i1cI2Ge% zTNu_-3@V}^JWMJ%T9iQDt7)b~>o0Jq7JpMyoLVNz|3glZktMS2=8%E@G$m?LQhK*J zNqJ44?;v;)UV4rxPn^Hpxk(oCiK390F1btZ3bRs1V_IQc^~6Zl6RKqzh4RP&&QSc9 zPp`_b56IFV2=+Xp$E#ztp`JWBjM^#DKAX|5OkKfew*h-d1zuZ*Sd_Ggf z{7T8SIo)OmxrQ0FV%5_(E$u(m?X5Ea2p}b_8SQAr3=#Vpi3Vp@%0&!97(bIw54%m$wJP)A)!gW6pdj@R3e==R zS7ubJ5R#JnkNAO)tf&y~!t;V8mmb4z;`obG& z`vk@ByR?6N`N2-{SSpG$lFOimvn8()S2Z7V#9vOQV}q-1`pH|(B2Jpax%L~{FzB?? z-#MX3+_(*J0KIKXy}QtE_Mx5P%FE{p3S88ZEEv%FH!(9~rI7UvqHSO~qB37CnU{a| ziO`e~)pD`+$|@CaxF-agJl_0}-(QzsyWI&}r<%;j?&nAO;R)0ESyPZ=GF47%X1As- z<3xC#k2!Nr-N^cX9cyT}e-k=#W+L^Eb~FH2MR`W?d^x&o&<=JULcxNV+yd_E{jK{H zY^Uy0RPV;c5K9f{2+Uz0@zyq&{VdF!s7=2qkY;HE`FVm@RIZ~xnLHtxe-9b&;MviS zY>R&6-J}J$S>_02%m0LI>w_~?yocayZ?hC4fA*?B{LWgB#b<-twWZIYF`cjGOC#XP z263Ec% zAMWNhIZU-v=`f(p`C{U>TM$@gcsZZdkKE;vqe7j>U}H0aJ={{pCdm7kX{p1GHnW{3 zYgLwvAI6s($}6GL=P@#@g^GU?g9qSE#oAa&5u%zc%HzU19jtd`mEvIk{dZgIK;f&8 zyD?8qHA7pN-U!qPtA#94f0WS9r_X~zKbQRZ`CeoQxjYu9zizV%-95MC=@jnO%2$~Y zV=~y)57(#%2mv#!x`s;Zc}viX);ve!mFl>!6X3Pda;~sxL{nxV9 zgkQnz3u@4Lu@ez@Cw%gn#IhpYJbLN*0jC}G%cEZcjc9?XE&>@H)abB}<~HyD7K*LX zkm(L=nRYg>cw?oYTw$0uO`r+A*V3}a8k0Il4oLVdpB(Y$?7RX>+n)*B(MI$42BOJU z+u9w!7)5?z`C!SammcvIaCb_Ra9TraZ9O4Nj1ZSraUUiB8{k#IdpB&f&5O4&!;0WZ zaXIEX41RtRT5 zV>&~D^Qjld8l^wy!ml8Bg|(QR+O*0pMIuh9DEwD06QJICbt%@9n1VK*&3)GPxR@Vd zQP6L|0Euar9|4wXzvS8-7ST>vJMnRNQndEOQu6p`&xCxdln;^l(<7yk57twky?*3_ zLd$zq3~N{=&hWZ<5d(inU3WC`wtUkX9$0;dI6Id44%Fl>i(##G9veTmc*nhX^tX)( zE{$Qb!uXNg+|e@x?m#MXJ(=2Hutq*jn=UwY0}2v~H_=ODK2AZ|ictT+Xl+^hwT=Va z&Ch6FP}n#6Y44{y|`oizsBY68aCMqNsTNR9`Fx|scbHl zjf#5wn$S{*WUI^n>$-+4y-lBWkW<4|Cdd;f=8TyUV2Xp1(K|hmx|EKM(9#=g=vT;j ziy&VFXusQX_>vToh(ipXN7P?9tT7{;(l1Il6LDY^j4^AjTxQ3!racgyHj$HM*M*j8 zhC?^L)P?GQb)$mV}O?sXxwa zHgtgj3b+Xvvy<5sbjYbV6^pGKO&0Q);YVV zvFLf8Gm<7=gz+Xh@Bsq+e?~67c#?EW>eK$I@+m@b!Iiquvd4m>_d^p?H{B4n$3rhf zfR4yHq+}LY#m7qg89okDWG&+T2eSjcXu}^T^DIV8tJ}tccgs5mg3UhNubuZY^7=eQ7%g86 zeK^Bssin0tj6$HJQ@HyUUXK17kfUx2?<()Ud~?pULzl`2s2TCU`ueEzVKDALCf|tI z<=-o{Cs?#^%7@u1Ht}M=li2$X4~Mu5qC#ga?YikJku zQ>XqmNGow{A0oy>_^?Pk2-TYoT2+r+UJ@bUJ{uxXe#`jyTQWq7C#L~w{3)bPBz!Zo zYA9z1?MQS@*40q&kCF@9c0`v!p3QCLw_*acj-RjiA?1m!uF>29?i@1CLvmJ<-@t!G z?pRkts^0s2*xw{KrvUBCuud2k1d!$&Cat&bXc zh9*J{bJ<`qLNh*p4epl9jQ&RAJ`}$0$Og{2t}ztRkG9YU6d8R5?NZEUWF{HR@EvEC zLnS1+F96h!0!676&4oXe%+BZYuzB=#pg-=^}2`y1sWE!!}Nb1XAtieO{y5h5Aer4$^sgg;>ob!$Wfmbm49DpWI+>*dKC4WtWx>{FwRzEb zJEkidTkR7=f~GXCSZIMVhcX2Nt@i)q*vtVf)LyR^K93~%(N8I>o~Mc#J}H?wrFzz&3zg0*)>&EdE(p^ zM)halBaN4yellzG!7Lx2qtGNXmYKfgr99NwXdm^=tW72ZsD+_RR5mT#Zh2Sq=<5Ki zv58P;y9?*O&EE(?xq)0Y1a$VE1S*?E0Z8zTw_D5xgpcy6$YO5F%MGT6VI*{E%v?*q zlYIXOXOWgx7BDYnhGfm?eER_UdT7hK)nII^j8eIzDw+++Q~LpDotNHe0eD5Pr+D$9TSp=*2Xtr=r9BX3)qysE)#H{?jy zw@w^Ok$_uB3tvgw*I;Z$?ng!rE(<4~BD9M)cr2NY%n+*F78IPnKYl?Jgx6_Ht+j#2 zOSKb)Lq*`_gYGf$5`|-i6-+G@g?j*e7ZTX|WZ&QLS{7E;@}FJYza2cxADppbd(}P7&38I0{hIEZW`1?O zjNN$v-@L>qbvcor&Nt`Eflt1j_j`$0n+H#!GX^gYXO#ZemzGu*|F)g4CB74d*Ab6kMiY%edy1{7b|j} z$^4?qOOuTs?iM}ZpRZ0&bpXBg=RXHix|KF|cUKo};`TRRe3NHy`*{zg9iN5)uO>)U zj^DSYfb$oxPh;t%f?VzI9sWRlv%;IX?=J4Er}$T^`gff@gxlj=p6<83e6o&0!b9}< zG0q!EIOkl&DRTt-mrp7WgeY@0=W2BsH@9tNxsCnq5^sn}Z!YrY9gTB54$nvX-u>n8 zyE*%I3iIxWOI!D0q5CTT!t&A1$r{#=n(Q-l7z< z{e!DwZB&?*pssGW&-GZuliLpqFPUn^ zLeV{Vo1d?3e)(8;&htpoqyvtS;Iic=vN7hGUf2D5o!jg&C>v%n=qJdEbeEqtSQ?sy-@rJoy;vO{vo*FMkxn^pFJ$H zaBOTiYeiA!-Ym463U-4GpCdb~Iq;zIH4=k{sc!!ow;&^+lMLq2~a3B-I_z^c4J|FfzPw?2}0UQ}T$IX6#pg~Y4T3+$yj zuJM(&g+xqD##QDHX5!yb0(X;;Rs{zb_ozQK36V?V-NcCJXOB5b@QOA}tKr9)m4f4r zkNP@%tpfJ-KrjCL0n=tj3szSD?(ZqopO0PQ=!a%xk5r6(-W{+A>tr5I$z2RFkT!a4 zPgT>!wB3 z?Rm8QBS7a;eCG9z7XT6P8^MgMqVjz#H%Z-JZ892<#cQ`lUltKK;ke0jXhqj^d?G!p zbZ+ffP>Jqx;{$Yf5H z|Fh%y4KO~f8JpI=PniJl8kHH?vZ8-uJAVj72;5;R-=ns+AGFr&CZgy0zT+}qZ-e@w z=Cd;0NLsmjv{wFLv2>lZk48$GonmgjK9hC6i*2Gek%XMRyw5L&mMNqw2?(MD(=0B& ztUS$lC7ARA@x9ym@<1y8F*KtVJ?EOagnuP7$W;T(XyqYYbj{l5{V9 zMWjWEOWE431GnW@*5wiRAt#DM?kT!P@QNu`3MQ>^Al3Nnmv9Hec)Pc@kqv)fII{Mv zxjkBJ7(H#byI#MOs;%pt`d~kzU}Z-9JCvxhi>)^y@NK};0TDIT7GCaHa3-xl$E*l& zWF^SpfFii!Q`hyrDX=ci-bWq~u47L*p)tIBAYLGRKpS)y{L@H#^KWj^8SoHKut)Ao<%D$?7<{=) z^?;Y@>b<+=WC;@gJl69YurP>b&9ejsJZC|O_7!V7sBcIOdb`&Qh#;Ypx#eh`+KHXL z(}Ch9^V9Wht?C=Ki+7I~b$^7Lzo zdNcWNK2H<-i}GfCz2H1H4Kef(82hi{I5!K@r$jQkE7mEIjNpJO2&%^$>aak-dV8nL zrpz4_;!Yw-Cg@p)RgedA(U1&{%1@3N0gv#Nx$MW;kHfwx5p)|@$&=-2R2-3(vlp?! zsZ{(jk2%_vmNtzMIIL?N z;|{$8uTr7J$|zwU3%RVoDQ^*QXNulA?v~Sr3I3RTXO!j_s@jLBBA)Fk_3)*7g~Q6b zS@u(!@f)h|3JwIcxHJoQ$E}i8G`NF}$4dsE$#2J6|LklfpFPN{N*r8x_RKL*d%YCk zteCRrsm6QMrqHiQQ6>cWM&-U48u-JxYd{Ou{Y?||YPhaN||FY|`?fBUZ=jEcjnzbO4uf-*&)UoCU6Pfj3-o`_4 zl3QqqhTrFD4!LQK{tnRxu;VfnoozKDNoZ%92*(Yu4{*SjdAC5es2RT*`ld_uZZ<$U zw1}0K>K*lhp`B_+F}tKLC}I{{JZ;$MOwbaOZ!m9mNl2gU??(Gimabg>Qgcb700owb zjKp>u5jwJl+9rq^csxq;^g9JE=xC(w&Im?P##Tgc02FKvVerWWx<5M}+}8SgQAo=I zR*on>B7F0idN=X^W$qsOHz$JIF^;>xI~dmTHT$H%{;2WDTZHC}@YuYZ5>dm`BZ%d^ zwdU6SiQ0!1EeYNj&u|^2jeR3fAP3X(SDUzCKE_wFN`svbr+vn5q7PHYrfLljoia!B zQUg=?POaw(xTm}Ai9U8o=7}$9QbxSD19(5i&lhI1azfQM#FoyzN_w2&A{xDB*+Y&-srXl_+ElfWVu?xbdkq!*gv_X zblmVi0T8-%Gw9nk&p;yr(eEpk=9w_J`apc7@+3yc)nrz-cY4JB#VQm@1aJ667p7HY zLY0b6gteunKHuowIEXcc!4ZPu3No4(8V89a$wj)?xqtZIn>0@%*h@KFnGAnow!2D= zCP^ASZmi&Kt-ifBx@;-3p*<>z!Hz2Y7s$Pi!+OAu$%((}IS#O+TW%GRoCINKy{=sQ z{g-U6=^oATtLBC#%rls-eMz5oe`N|K!Qs6xDHbmq#lGvzVw_v)F`Qzg3A-YvvF}~< zA*6;#p~Z+Z5ABq3AC|Ul@>o=HQK-=owJWg3*Igw`|Ifdp-OU@mm3JbPs%bbMfq(@5 zZqK;oz5L{`dN!qjL9VQ%3XPDD1ZqlEdJ$#%qq{I@;ZR9kyN{ZaCj@GmOZq>N#s;<7 zfPD)PAs_4Q_h9JgSu@siC+R#>5LHPkg-B*65V)@1~J*Sh;_Y{oHxqqx|U?Bm}{ZXC)A)}rXhe}9K53X_qEq|eAjAcno7hC z_*+JcgD9=9_2#ufO9y>kCvIc~CIS@Hnam{I{Cjv?4ehK6mvpLCCz3Q5oB95V02Q8P zRs6dCf_ebnS%Ji&w$V5ZEqIXI;POoo2Sow~WDgA{yf{UZ1%g`kG0&(j4~?3(wve6o zZOhzFd-SD`19fP`VG~D+r22gwbW4Y408^f7uEfePQXE{Lnq+;`H12*Rq+pC3)cx9` zRn-JNo7}nl(HMmd{(_K=n&*rK`~?jP(0tq30FhMwY-<$XFH9frTik239cG{J%WiWm zbBo?@$g$;I+fT1zAI`fvokrCYT2a?7*fpkgV)>*5Ej2FqG<6CT-kvpWS8R{kQhM#| zBUm-&h=FF&E(YWrr((0g`=VM;wnBEM(fl4TEkFFX;>C|)_fF$vHV9cK`~OgvW^eBC z0gs73mp4}S7-q_I&y9f-t6x@$-W?%CY6E)SETu~{rAdrIUny5=f3*fC@+0w#zy0Zt zMq=?)^CsfW;Jbf0B8^GofeQRda-U|*sH}eSsI}^=fui>`os`>o3c3byp92!v356r& z-upm{_U}sPG#X=Qn^RjvKkv0u#~%U90_S2y$OegHWs&n7U&P;Z+nyj$Ow#Dvi#TS2 z7}2HWyNZ24rXuD;C@clZiGSP`NSG^X}JcW6f>DtB#i;U29W&@Wrv zL_YaDvSLm71*Tf6Ntll}RgIIuI;+4*!Ijw2_3<1bbDN?*0bCpN$LeZ7rv%CR!O zC>cGH3=g+<;<(rHB7;}_dIS~!fbCm9mZ7Q*9cB){*kk=Q8B_ltoa41??^hga7ZQ_-)0h%BI2kS zSI=WJBNzPTU=%Kvo=oO$LnF!DC-tW#^?A*Lj(a1bT#E!e7!uC z8g7(yJfGX;d-RP;@ljumNck_)4bVu-4L8C`4L>xKFQ~J;gpprcz3UGO((zksrulbn zGSK|l_yvtv_eAdwOCBXUH-wR{Jph0MnN2_B(rIFHIW!O+-!LX34Z?2%FMVqF>XMmu zsfTq#E$I5GR2b2_rA36|8#XNe!g)U%xFP%6a6K_JQJk=XZZeTA4~s?HeNFIh_OF8o39 z?0qMo4R&iXTX;eRpSY_65tfcPMh|b$aKLr>MtW$oruPSgRI0^;%L0Z*u=W=cO~=2B zVM#|OK9Mp(2Sg5Kc$M8BqQ2g8H#Ut&*_#wW?*`M9;n^B@OvnNnyR4`>ZOwZ&Byy^I z7P&a9ah&Y_c_u`^cRrT6{E_p7xo`f&dE`GZGShi)JEYnU2jPC|N~ zUqNpNxlt`7gC*gzf09nXvEk!=W**mq1{L|u3-K2c2pWM=BeQ`8p9F)C5G0LxJX=6I zGir8eBfH-KsZ*v2fFP)n$dmP!fye}O{)jH8E%g zbzo$5A^#x#*h)br9?o==sC7Vr*ZBbkg}Q1joRaTur&I;W zk2Q&_tu38(d&rp~9eR%9^>B1d{ZVyF(;>pVxr>I5(j8T+9txHRoEe&TBDzvoA zF391@dxI6^;?@PVQ3$G~haHVigrZjVO#aX*AOjm&;7Du?pBUfdC?P+efXV&~#@SD6yju-ERg><$4H@gb-QLZtY3pWPJZBHCLQFaTN907I`B*|W z;PGHLW%Q^j);Xg8{_ocvVE?O_i5pDwgpWvWxyj(JVDx7nrm`RYN7`mi*JO-BVcBD= z!(euI74tEYzX#&xmxM$X@Fe2q52WH^{@-f5&^G!yF%y-+A247w8V1tSh|W^Hns)_EH2`+P>`&YC@>f$5EuFDtT2I5QtfiA$;I|FwkNsl%jBl)= z4u*&S>K64(ei^17xTuu%IOt=%`M8WVSjOSc%}>6RhZEYZL?k%2 zC^hA1p0R+fj3K5LId6s&=*#wzl6$fFMr{_0@1qYbF~mh$mQ3Aq9&6HRf2}Y8ljMhx z;-@D|chyCjg}mtD8NmGy4|IKvapttBd5?g;$$ynC9o#J3aIg(cC>a_q$-w=M&(s`C zCS&*BkJ}R1wpO&3{XlbHSu;^jRuKqv!4ufj#-+N+0~SVO8;Z9U^Z7Cg+n3STx=WNE zIVw1*P|8lHTd;XKb0$|{mzRQaRQ(_8m2*)RXbRc|)`1cqEb)TqZ#)PM2C8gmf(JA{ zSR5UQ&35e1l!N!n&%(`rR{ICqZ?A-#Ilb9K|9$nT8%T#%CApKC+H&~)uJ@Md-jq>D znITa!ergD^s+r#ewesrUoMM~1Lf&*yry|&Ou?H8in$fxWBk(Mn zx$~hR8Ue4xX?o;MpbRUctg3XQ9dE<1!U+4MSETHGA&A2SP1qd0lFuBRZPV?pAg~9c zfIWjSGyeZX%$>-E-w%od@gv;j zE9-r(2^~*m*rOUK2|?UO0Coivt^lb2d;X2)!%*|i)*nGyt-cKq0}pdEm}(I-{THkUOHE%Zd zmNyAnk)*FTVH0*U{OR%rES|EaU%;+f^V1=cELWY)D}?@Z4dz+PxK2L54YMT8ZZVsbTmMe& zGG)ba=h70}5u4K8NR#8&n+h$^;Sf$Vge)@A5&k&D%oW5K#fo>S8#LuFgnwo1(8w}v zu#QMMX`Nc#s@c5&k#V^{2fVICjg?uSmEmTKFTfB6b|zuehLPkSN%^l0H#(&#-!Q9h zuz?_<*Rie^qLu?AjLJdr6PlW#K?b|aHL6t1!2ky&2~2|2@d=(c;)srir^!ttykx8p zpBM`&=HD%g{QT|3lY@))j5q1|zHC7tyWXyTV;h&I5x`vwCQ}qTyv8;CU{?!DUxW@= zgM!=q`t{)0g$>U4AbvF*jGkT=VtUQSf zpWU*TwO@KKjMkBFb@M9LHN{Z9S>b)&_*ihCO=q_%@_5aR2~ZW@tV}f(-280PKW!|O z)vJVVu6oDbQ{7+oWQtfKph~4G#(n+v-?Ysh9oP=@-LYQM*#>R|-3(I_B7xl1iT2EI z!q4Hhuqklt*F$0M{xbY#q|!e51?6D$NK!^#24M&>`~T^$S=?F^QQyNI8c{NMVgy!P z8t_BTG83SS++fTvpzB{WloC($2>C3g1pu$%iIi`zo^kk*ttk$~aLw*k;y^J4mH+0^ z9oW({?Pm_(A{bOg=u3aZ)mVXsVP_%T3T4i8RB+AOUBOZW!SKsqcty5;1~N@p{1ulj zEd})0cD4BVi|Uz04@4`)ifB|tQ@uDd`j}mn^HWZ`hRt1~d$}9vwG91a8^F~AyvW1b z4V4W$D##%`O)Ei1E)JvzWV*~H=3}Pac3bcxc*&~uri!6i|B-F*jYINARO+LIrI@_+ za|Ot3Kjin=4E`es1=PK;@3V2U-r3jTDJ*HdFy|ugywI9K+8%8(EwCJ$^>$*bg)cUFQAu+9L zkk9-G8;PFY*i4UGZ>s%5qwYrX3;1IL=6_B!&SR2DTEVdElYoMY>;Sw@G-|VYNX+je zuvFc=oa5#{d=HNQ=BwX%SW;7~jqO4L+OvJAqh=N&UXIWsy00Tv!uZ~gMjo+mZ%dkg zp|~|PEjmCDVNwV_cUS$i;g-*BN@PdCACW^_?EGWi;Jz>vy2e;nw;g0@BG?u`ZZ3in zo@QZjO#8#AM`#_$R&Cw1Y=ta@Vp`1~vhB@Jz#mFGyK(zuzbDQ-nrZe)Zr@tg<{it- zx->5`Yq}p6WHl(l2CD1kuG)>Ps#m7;Zzi2O_cn!QW1C9T#i*vMQ`!ls=3H)mVz456 zq#n^eCON(&FKenGWsP@Dkdtrr=CH)A}|=ug~XGz0qfidTGpQF%{} z7@sq4X$=eqPYa|=O=#wUOo+=?#~JqGn328zo>CLYhnoLr9%P!MOD;cNiLqOUkh^)BOO<>~htQefCCe;lJ!Y zxk8W@0gxeUw<b>KwUwn1pqgr5_iCL{wYket?KtQ=Z=)5XT?Jp;em<*H>BU$_se zxO_0T9FPVuZQSRinOn`Z^-wXq?eN+H1Dp1 zq=f0Yg2a;P`5U)nMCYPOsps9I)}xEnHQQ-=DIWf+cMF>&=t`hy(k64oIoYo*Cl64w zT9G?fMWnmz*tTSu|7gqtOPJi6`Aa!`9V95qU9)={w(+5v_{eW+Dz0irzLf%vkf@m2 zOORW7!t?#H&23#LptB@BfvZRC!9GAN>sX7)Y2~2Lh7VF;)C!cNsm-%CWtEi{V;1fr zt)WRLjhh zF3B?DS*#uX>ZahmFy7K@4<=Izlgi8XMin-{I7;}C|G}-nK!LD9vmx>oewJGQUCXn6 zGBQN}LW)l@-l49iBhZ;paZEU{4y6i+(K6f0TFdmqw{Yveq%y0}_ zIO6kk?`yYuC=Oe=XGrfL9BgkS)D;K?CAx~W=d7=oqS&!dqhZd!is`(knYV-JfZ@qU ztI$(jD&LDQSuabufU{$5=h6glVz$zKYCMq<{kSp>7@%NOv(0wJv-MK^;V*=;G&5 zl9sPUB`Uay{^yh1w&BTVtkJUA?EP zXQbH-a3;X3)Udm4b?}H2&$)GmI=fWQIsIO#Pta5rlJ<+#VYFkZB{mEy(*Bh+xi;G_~K^~T2ex-y~fXVd zFZ}H9xYmSB%XWBt7UUr2fY~fB!vAJh+*Bjfje?+9MD%-Vjwhodf%j?sZW)v*Vt^J* zFy8W&ByOq!M~}t-23N&T6@smwbsgvoWo;uT_AlM*&*>yuCaFo=&k!^8uBr!taT=g!yasb}*C?whp zapWGgZGJ_xd|?2S?q0C@{b>Lu7OysWz_^{1X62AzRm2jc$wK>J6e9cL#MpC2Ed4d~ zQTJWh^ynmPb3F3`>h3`u0qBH>oh% z1a4$aw~fQ!oK=>WhXEQXu(aIcsD}Q0#9ka57>#<0t&t*svUpHu8hHJcJ@1(?q_C<` zng^6vsq&?U;QB!i+Wo+jPX^kYS(r@r&mQVQ()rPR+l6hga)Du>HDe9ega-9I2VLEecDWLlY^DeSf>sv|J z4DWNs{O1<1>b#I>uL+1aYn4ItmMBy2UZV#(hX7rxDV-@Ib_+VE`!e7e?|Z&mloQWG zJ6`jYE84#DD7`-7^YZQLUYnxTf)D*1=tWJ>D~t?W|CAZ(WoeoT8V3^*yG_`J9{;8# zKNcqnnrfJq|0JE729ES$@cJ~BadSmu%Tv&(|0&z4J{PztD1FRR1zE)nJMCGUWl4OP zq~LBCK%f1r+7lU|oVZ^G#l?xp>e>YLmGY ziFSb>Lf#_C5@$p>P&sEWu=C0T#CvE7r~GP4 zc32Ho)jl4+&D6}3MiSTsW=wf9Ga(3?4D|H`T@~*!tjR(Ze*wu*70Myvp6DXZdy)ib zV*%@zfk_MrC~BvQ6-}lY_TUB-j;sM?+Sk|BjTgqH?ALoTG@d<0lbcrR%Ifu!p_CK% ziraWt70-|3P}R$~wyHzHsR4x%THJ~_3$meyguBCI2rn~`jl4$M?O_}nWQgv))5Vf% zvpTMnEwQFj$=M$^KG@eieerxkUi>E_!q}CVK=$C70a_dB@4PYdPkT(u1jv3p5{k|W zJ>y->y8s}pl(u70B!FtO7D~s7g7+GEXJf_Ob{@EIQj|#KWXVK||oOsV?r`+Z7 z(yx%)EIy?edx}Z=JtF(9Y0#bw57wi&tl7bW+ZIcHzQh zV!dNkJ!c`&408na_4O4c{Q0_S{7lkkyq0qFlu+u|$jSI^AyyD}wPu^u)a+ zxLH#^B!t*+SmWcONv)8#r%4)YIOHVowc_L$wdl$*|DykYNYjt#jlH#au9;BIG$=~e{!(S5PjDop-0JWwBQ4t3h4loaN)g`^ z1L*4)(iZrBFC{pOBe;>`3?=<0wdM4V=1h<yWrlLs)8aJ_pXBUXuSdZiIb7I)M%us>e^;GV~fw5YCQU zwg|#6XhPuW)JXAcEA{jCjSVpxEJae&Nlf97f9fM;jNKRp@_$c4RN@UZ)wlm32iR{e z_^FDp|Ezm;GrcOA>=CPvD)J2m)vDw44!qrV!tv`ypzpt#^+APrwIc^erezx4t-mmn z^-vq$r!^>4T;ue$M)9KBN!o(m51q#~5L=&0Nc)5$wt!@JeoPa#!dpUf;IK$T77b=s zr$AR-mmo4&at}2q*&IFi^8nN@>Pto5(AU^C=-o&J69TcR!lwGqu0lV;5Zh|$PRNWc z2XRg%=F}AgksQNCa|*f_L-p%!y*3mbS41OAQN-dgEbh=#t=f95;$}BbrUee!jqm*f zQ`6HpPBnaFI&C)SW$F?#18ZrVz^(qEi);6#v3I?*5s7j66_&*t(*VDB4_CWPEX1xk z+a;NDn*a@X#Qn!GfTKQ}fBI~y@=w>PXe;ydnqJXlvrFu8je5coW2+12gZSIR5ZDk|aUF?TQQt3gKXH2C3b(LOqb1Vx2H9^B z$=-U+_L*r0X+voXOn{y4XEK9hhD~&V#>a6M{Rt8qUIr1!MIRJvu$8q&Wv5K&F1c~1 zfk{@T1Xjb%_!*~u95elLlev<)6#G>WC`dqoBRVeEbXAnV1T%;n5W+Id&iwxtG%9vO zp}LKPv{*mK`J3l<^#mE4==W7H?oGBzxZ8Wo6gxmlvo?2w2WTFwv*k%0u4R}|1~@o~&;9>ZcU(^E`k;0q5d{$1*R9K9;{8nR9 z@R&qFC~oH{(JH(mK&gP|Vir;UU6uU$sr#%Ic&Tm97Z74(5fyIt^^o&QvAl6mqcaC8 zGlz2m1xrg#1Uw)u(QruA&IhEiqebcMx_E}I7`e(BgIEUZt{Qc3?mNF4-UOyTMrw6T zuyW?r>IMYbf~Ic!J>Ur=JBlBk$zCo9j5TRlC@d2?z8=jz%GYy0CRa){6QSR9sLU@C z*&|W)6Xgmw2|oJjb9Sr9e8CVx@A3m;0yKY->*NPfvyWnu1?QJNuVRfmgE1 zzBKAO{rYFg5qnJN9ESwmvu(G$V?Ir;n#hciPC8eJ&7b+*l{u`lnR38E@11q7ARSJX z-5b8^oY?8LQ2+6i2UB^y;I@pwPR~M0O{r@ETF`QQS7f+vcW%+4|V}`8*b%{gPUN zvR*Q5sc4K4QP{bLDJ_5hNv-49xw*EPCEYLj7(@pWiUZ7j6eme7iQS(X!ut0nB5}o- zHDfd+G2ZfeC3oYqLH%QT1z-rjfvjW^W0K9(X~u52rh12GM+BmfK@gi} zVpoMXO;&+&2%Y06<)NKlNXo)5(f>aSk|rlhCS4`JV2DKJr|6md>WmMheWPWHXxM%l51=yoce)e4o z0fb7q21~X5%ibsNvU6e?uWA=Efgwy{Pg5VfTgTx-*U>4b8y0nS5wh^>^x-+nUE&xrR8p_vNgH;YGxb){YQ!Vnnh(7&e0?eRp>F)KjUvrx z7AqP`yt#41Aj@+epAK@{xh<>!U{I44&;WoC!*V@DlTL2wZW9aCl$~ zh5a5A!hhhNA(m8jT3ahZ4sFmh6JA+lxbWvfOxZq^CK*S>=1#Mwuc~>KkP7i!UuB{v zsDyVe`3XvrqxAsWkicKvqz?+PKBf8(J`A?Bl_|Fo|MF*=aeRo@Xn2=obi6#xCwqiIs1HYX9E!>z0HopZqZ8 zJh$M7Aa}B5XUF=CL<_mowfUwsd*>2yr;cA`Q zf3Ezav>%P(wh#LN3h}~oojIpngvTSXgkBP>?0M5reTui)yQx3|N}NqlAH+mn#R4C8 zXhtRRrm*jN_@5h>9y^m;$$1-g*7LgSIyTQ*MCKYMP~(07P#7dXlDe}rIZz;Pw5}&> zV11?6`%V#9SNqtv3`aPm-726NS~JZ`3xOT14Y>(ZnQ9l1ZH@ZahB46>@%^L$c7)=S zYisxr8{KQfnQ6iCYs8hdBl^@(>Xu9x2KVgxT{W20!>Mq_8x+9dUxe1ETBTvAH>Xht zagS+K=GJCfH;QT|A@^Cs*#RRbnuRxtb$fE|0x1>LjUm98XKtmBT#Qk0sR|~>F-1u* zWTgV!h}Ot0B%1s z7V>u^6tXx%bDZ0K#3-?-7i?=$CUm7@OGBM*Sq6<4`anNxJjrf(26K8B;!g$3Qh<|% zzTkQy1+WlgvUDSdayF&oo8ONmHIp<-omcF%8S-u>!QNgC+2>QosX?YT7Q1?!ePYRh z?_BWWFS)As`9pd{h=Gnn;MTV1chRSF8Az#I<%9Es>wmV>-^Q+2V@XL8EjC}Dawk{@ z1dd;1V}r-5LP(x-kWJ{Yy8GmFfj4LgnPC2LOq!)1ljD*5QLfr=b2SZ*Qc0nsfAI^r76Zin7bmdW-Hj;{7PHR(#K@G@rcd- zRvap>G|nvG9b%+P1LbB!q!_s=&1QU%vrnYLr$C&|O3(@sfZ7>D1jO7Mh{&OX0(hjZ zD?=0ozKA4Pq6yODJ`e_C2(!)X>Cu6fqgE0aA?;66^21!F_sHK5p>{_7iu9Yw<^LlL z0skpO#ec#^oiZp0p;N?!X^dr7K`9%nzbfS(m_n(r83dhwq4h^<%?Y?5JSqsa+(w@Y zU~4ruohSa*D`Yt+x>fYX@2-7rUr={VgqC);SZ``_^6YZ%CT!%}l@(U^2=8-FjIfmu zqsc7gN4YBx;3){RLfr1V4Fjk%$sXJvx%D0P`8H*H=aI{;gpTEv!u zam?d>A}`Kq>LA}!2tt~ITE5UhZ3SROd8q1!0WB}$ATzy*|BvhmV)rOGj#F7|`~LYY zG`>*#b%=yU3Uo-Dtj(`G_rf8gjI)Ym{ZFlsSB4tGjCAw>V#uphWV(}em6Q~m`6t~K zsRaatPFkPvzbZ#MA2&R-W))3Oy`Kgs^q#Wjyx&_M2wn593h+>;y*vw2vue!lQjM`E z%6}vCXz!EG$xf!%>^Dh0$R^GKPk()Y7phQPz?$1~bvV2+z9^_{-Dhp%AO|m5Y;(=# z-}z+s5>i|r^9lO4g!NCh3i14rd)azmKLY49b;E}Z*Sw{M)Crz2^clPwO*ZZ0#ok9qaSc5H9X#*b5P;JtWJ=Lh>b z2a?Vm+j+l%VH>(UiLv$`t41;cgc>P=S2g(mS zwVGO=ZCi|;-p3VCE_s}H5$f9e2JATSH~y6Uz^gRTCUC;V)rROxp2Nza8zbjK&9V?-HJ{2<){L||? zGgmhki!UJPSE(H~@JN_k{Qvj9Gd?cpdb4voI2P#nJaT)u%+x#=Sp3uuAq33Sb9*>( zz%Y@nA9UjL6cKUB_mF3)d%cVmu{N?h&O@(69%@gS8@jw5HcUG@8qt~r-E#)~`lev6 z<8f`FvrcX1t%*VX9Rb(GQb*_7HJ`PTW#!Q<)a(63QT?By45B;MRf zb)Vn)^5F$|Xm#xLo~V9ktv0#pBzjcO^qX0IdMuFNTs=;8RmGsqFh16u_}?)-7vSY3*093> zGxCe?yKi(~Gq)XTAygQD;$!y8V}6nKPq{mU9Gfmx&ruDJe(ChDlrC4h*sjPQNG%n& z=^3vrO*G{_Aw1l6GPAM|O&`?*5j8RVc8}IR7Th%L{KOIZT)SHFWkqB zZrR2c)Vvw|>4K6pFE z{!UC;aWxQ${yPz98)o;r_u8ArneF@02WpWY$Gam!Y(*d5mb?3h4e+EDx><3P>-3TD zWTBV2oP3_As~CRzSL64O%Am!H+jPEy=#MS`V{E^x_<(0DCb_1*tEi%(Xtt2B#-=_; zl>iUYJCEKEQ@t}vrTl`Su02b1!LGE0*3P*^fg-f)rkNypF!6Lt$77hJvF+I%Ix8voWOEg)CP-mVs?de0~JVK z27IZSQWh)pL+KCg*$7bkGQy=5mD@fi-A6xTLVHbl`L z)<10k(YEX@>tyQX00@+3SHIjSqj*+|8VErQAW?{be7RC$UNL!E5zTUZfAQ^KVvW*{Yvmt@6cqoCR&E-R!{mu_$T8c50HLzx{gIKTiYzFJ`2@XHKGFw zZ0~cSlF^6f6OWtkh!6XS^EJzC?#R>{Gg`%+#u4h4;{p>nfV#Td(t^VR)j~Y68;4dS zXAWf_iMohAptw{CxC+O>gUM3LzwmAn>CWchtCGLpovEIR%PpLLDYpBqncwjh-7b%$ z|6BF8qj={Y_=%##AdD897~r0PWB8-=NXBaS*yso-t#-^U6K`@eOWuwacldtCZ+=iJ zbzJI&J>B2Z`vO) zfJ9UV@N8LeB9_|m+U(-&qpAmBJN*4^0D4Oy%3vg!h_|BS)FKeiV9Tn!CQ`}%u1`Du zLURlunTUxQXN21sf*{JB;6@OL&($=t`JWH2;IrS;dL=&>;;dgfHZd2Ce*4h1ocSZ&6^I}6%{|tBJt9@KSG;MT z(Y}gSYqmbDKcT6(U5h%^R#TK3s1`a`b#k`s`8b60xI!{ko(=OrXgB_)!(HIR^R%>t zXh(x{P{)~iF+b|_*)8Lh@scaSgO0*@-tcO5X6K6oA2WBbS|&?!uhR2B`;Q$~`=?X# zD>hi5&$b9U4S-0p=ZHx9qK;7O7kGm$95`Q+zf6{oFG3#){#xR)!Nr980=kYA-qV9| zdU*PeZZwbKdOd;fltqo7dJD*3K=ZFowkF>xf&`G7JXAcKwUU=6nqZ;|^Q!x-TpTRc zPBieN0rbBqLf^VL)vi)8`)H=yVO`UOu8Iwulc=*XwHKiML7`GXz4(rV*;X zo6J*c$N*H-=*R63n+pY*d<94PvU(>V4(Mf&|5i-pBe_eOOzpa=??~ylCwY710#6bm zyMkV4%=?^12lG;>(q%WzK&hZEdg!Bcmff&1pN<9aO%3Pl&&t2WFSpnv-ILLN{S~cy zN&gzR&g);e-I0Op;QoqY+>P@K48gG<=2KLoWdOY(PDfU7f3vYmv|-wBOu-l1Dh^2^ zUeP5e#n^`RqYl5{O&8x@p^VN?NvGC>aThc`E(o^`5G$!Cw^Ac&HXK>>6RqbrU3>~r zAGQte`dFwO4t-RxR!m`H#kr$SWvJj5pes{$N_-4q z{{}Ebb7wNpDJ6n}tk__dR9oN^C@O>{gIv3HKr~F62gH4O6;q!B>vHKq=n&%%BNQ-$ zLZnYNoIx~TK?=Q6_Z<3i#}muJVt=P)j z(=3^`gFwg-Tj(kV9AmcJ)NIVm@mx+muI(6XbqbwmW@fFLvO*m-a;lx%!zh!!(;nfZ zK5POa^!aJ1wme3uH@2;IK$am;e)dsndD}3%@m{7yU20fv$+N<+9=%)NSfHQ+0PUd< zr#>uwltgY8bGb+ttows6^GAmYohjacx&ZWT>kEGTm=)nC8v$g2shh$n>f4DMlY?mG z>R$TyPGt+STL0{c=8AY1sNGVZyQ6l$gLidW(tE>E`%l%Kel_$HCxGqo4soImGxM}P zDYt!V(Rc%bmL}6$Q`3$n^hTZ^074!xC4<%r9&wNkt}#l5Q3HUds-UC zCFZ`IWVs_u4s@^3-46_~HHF4(z&|^c-0PM2`Ri-+CWWns?_$S20SCQqw{Q?E8RNw! z4unO=L!)0Rsx9`bAgG^|?R`MRq8aiG2)xKsIjxgJoj1_zzyUg5`HJbVX5+hjK;Z=I z$~obY&MbujfQ#f>FZ2!pmf8jP7+?EUC=;Mo#MRVL@1O$ceVJ{)2w$_sv`_*gN7MRm zsp#o>%{F$~lR5le`FH04q2?F2sN0( zqIZh$8=BjTv@ zGy)%Y3hIx7Ayr7S9k>i``nH=ezBarn=44|qSvT8(^0N&eRCacRJ5;yjx+GDrPE|pC zA>0K$aME7B)zfOQLR(A92e&*jQDxxl_=+a>RX!HTTlYetz-yn9xtagU_`Tzg=iaJe z%TB5KSE-h=4hUw@zvguG)Xl7O8tvwOitoAGor-Mdg{b8Jj<>?erG=Nx^kWrJurE$FD`1zrY*SI}p`LuBAWyilY z)mBC9$>|EmC^uEM0ka|WyUa?dPQAQS9Tj~;E6IR}xBLCpxCqk640dgGrD60vi}K&i zvh5@LT&R|ty8YKBBL(i)7vOAC)>C2Ab6>49$Cy3qy29x1=ctx6t6p0hp08UfB9*(y zH=O#`Vx*nlMQ@pId_>}HyF&yu|0P^$C$vWL@1)^V2q$_zU)|kZH2^_DE7WZ<1ixS< zb?5=J^4<;2D(7o2?-_j|A@3M}K4W_B!ldq|OYSUuR?$}iNm}d&p>Ae=iW{9AbkZ|2!rppGZU?h=`IIg3)&!V?9v9s|5{R5`h5fc37mfMX3^N|LepdQf59N)be z7rfT~+-OHFWwAr}`gPju6I2M<7K?ubRN(Hp9m5Aaa`l*V+gM$mSx42JKYOXd>DX29mp!)HinmPui0(K zdP$%qd-D_5Aqw;{zY&u7%{-v(S-5TlooihFUTFz|_3Ps&th+{U>p89NV;5dHWBR>s znA%w6Q4|EiDR&)ROeXVh_?R0`(6zW5wMKP6iwdGsPr}mZ4;8Dfg)c~KN6^;pu7x5-%e&RxrOYi}HCDR>$hL#VNEUIi z0*_Qxt1r5s>r{nikrH6wsBR@2tHq$=S|9Z^36`!gbI6ah1KD$D<(*mo2NL$I3=6?q zo8MF#Y;c}|R68Y9)ZHm2DVmNK2jWW2_}e9O3-oubLZ56=M&%ZZm8NPd_iOU)R-0}< zpSSr+9dxz{Putb4*>a_M^Oi?sb5d#>RLS$KV$Hr6_@tSL+v*BDd{X;8Y`OH=XR7v` z%j^$T?xEKrax-)`v!|_B?ZOr|j0+NO(s(q!e#U<1Mwl(pIU)*?e26X8s4ZbewsT-( zi$1E8w2gz&%TPu)tgtO1ZT{7WDEp8FfnOWu4y_QWj``fV=gx@nuJpyO$xGAM*u+~X zRhNG?cS}ltRk|AiAIq`Sf5H7KXPU}kr)CxDT5I)=)9V(l#P`x1?bp}NzraPE41|q* zf77`n+3CYDY_c;7%*AAOx$BYzJGdWJn;EU&Zxzo|Q_5=|Yq*y_c{LSF!kYy<5!(h) z2`0TuAZ}Pi9Iwd_Jll?oe_smwL+}!dJegV51G$<}!3B2+uuio1$ZI*k)a6Q0!1=1Q z=|@r%h}e%`XqrdHX)_i2HI+98hb4s0+4vo|p(o!1xy2;8=FWoZ!7r0-O^lNODefuM zsXDRya6KzHj}=_Hw8f|#vEar{*U+d91Y%*uRaAUmnA2@(HoI<@FTtocMy(l(B`(ll z_6qsm-R>z!K+%WGjD56weardDLq>jGiR>y@{M#K2;t@qqAIG1omT`71?2Occ1;yeV z*{_#^63TU1#W5XIoh$Z~6g(?#`K>8!?CUjA{PKp@g0Cg>#I6WBIX4u@rHz#B- zlYXIfL%ly3utTEfS%tH+!vR^jOT+Y4LQMf2~w z7bdW-M3PGajTzGQYgr-+A}>XZ7_{0B0oFVl_8N(N$$^-b457n|!H?=uGo+c`AE|UW zc!dV|02iaiD*boHji)9Z?i@kjV8n`!fRwq7iWtY=d;7v(TGKIh3XaqpRQ-$$28GJ6H~WMk{v1mmUeJ9yN? zYG3)})n}-6a+WrPonvrPp>JnOTw{VOd7W{IVS&+v-`rt(Mcp2{k~%d3MJzVmU<~3; zOnwYxGWbA*CG@945vY^J;y{E4jJn}E{@y48dc-;tVnn9O{8>7F$F6taR7U2_0+iJO z=D4No6-;G>U5NvyzD)KJl&R7Hhr+0$afHG1+zdzaD9? z&4ELa1BJxN-l$%oBPm58#%n#DS=a@ov%@ICGR9U_cVwJVy$`dit3;{_YsG3g{5)#2 zH!Uf;7S2u#+XgtxM4=Wd*SF)J6J7&WPF+AUg%r9e&p>32;!$uV(tkX&Mq)ATGJu4?}1f zd~MK}hkP#`9@PRU1EqQmxOC4Y>;M8`ZIpi`<(RV3<&nSXF@g=zc~`|z_4$d)3SqSN zG&9SY<0TliH7#+i)IF<22R86zo{wzif(tFsOiHUb`(4*V=0Uj5T)9S*jT=U@EDxh| zGOecjY?{kIFgl|R6zhn{hbXsBh|)~|QCoN*zQ3+*)FAYHPoMKXuxpfuY-7H zu8C|fWkjAb2Ni;0l@-2*jwYuFhG^bDzGy1}Ngo7UQT8z96#{w+BL7@f)>O#dagL^q z1lqo{Qcw9*$cU={ExBbHuP~t?A-i+|<5x+Q4Xa9l(yySI@Za@=M!JYN;cRNvc=6oC zurs;c;T+Fozm$t+OZe&W7uW#04cM+yvA=8gCDYD$XkZH@Zp$G}!qu?4eKLhfLs2;c z_|gROj;ZQlXA}GnFpJ$qsQwa@hED~#AEJNDyFkb6$5%AG%Hm(d;|P4TZO%7Jrf3~7 z9NZ8~UBoUJnE#zLU#po>(s>Z$@RFk@iA~#=C;_7w9MR8ZF{yO@TNn&vJRo_Wup!{@ zp=mqMJgfMowGZ5;i2sbZgk$2zP&{>B25^2Uu)tP_5IZouI_4zdg7WUXZ*-Q;Uq;Oh z7DT)r@sa*aQ=@n$IEuM|<@60M@lBmP{5Nqmo;61r+DW_5q&E!`)XMEd#+%B+7cC^l zoEoVG|I{ zG?JuN`AB}u`c;(c)-^z6Q7K;{$9W$f`eSMYyR_t)y9J7P3jOaVB!P&I1?qOzR#ng- zvt6%Kf1kAp?jR4Kms8j1m%=($>BniBLRcW9Yl*w1?Koj>Olg|JP*9d4)jCkMZ_pUP zX^MwAl}GuYVj414S9V2fI-sEKOqH;$ilqoKc!P|>{`}b*@$2Ge0MRc+17g@ zM%YeVHhLcIH!Fws)K;A~x)L(Gd&==UjaxTr)=7~`LG%zn`9~jW>uYrjPF3{wbK1+* zW`BVFMRKOvGm7txsj4FsVl;H|*XYn(_Rqz?=Wr%fmG+9n&$uX1v!%Iyhk0E&soY=r zT(K*@G4<{Y)a_wG+Oo+J&Mn26w;8{GYd>UqmPkkJ2vQ|7C)q zI*t2<%LRZ2YVvKTZ~lYiTK~RMs}1LrDM`WeS!@(PmY}T zwTi<4(Mr?3}8x20-ojY`vRS3v;Xf(8vkhA zhYE6>RVla1GEdLxGy0+}vvlOLdk?CBtAo7Zq#53!`b3Z_=+-rbyO<%RedV+!%l6N! zry*y0GkX5$qW>giQhNWq4%p{+_D0PbGtW!(Gp{u94u^>R7vCad4MC2C`Kc4l_ZH{n zt9v3ZWeh6_<2V_-?c&aTkFGX67Bw-h&JrZXYTk?dKmJw;Z^F>=?48SP*kF?Ze^X)n zcBT~)-78k%L*tlt{D}njOmyazl=8H3P@u+2bKje%u`)Hm&Lvo?g<&VkLYY6H!_1Gu z`xL7M2Y?oG#akIFt3y=a?iq+-8)lTS51_|3W%5;yAr|JH#`WiLc{4CECHNsnDdy?4@2HeT0?iauK zSzh3w19X2*-Oy>y4eaRg4Rig~T5coG7(Fl#aN2q{-H4zCMp<6LtbgQO8oM@{W(~Hf zNQ&b~hecyBg$)EhPzpCzX00E$+q}=bUaR(X?avArUxe!1qZA=$@7$YLfTyUzi8dLA zTT3P*UAXKsUb=8Z`sfbZqT3C&B!B4^PB=W#ANHiP$5ybyW?Pv}vTmw~v}QK@5jjdY zmVCyphF+2a=tVj`23xXD-j2O2G5>1@)dl0`h0vt<{6HSk`ScTPwZ+GGTiz|{<%}%C z&4N#aiG;(EXd4y;D)+R>@+UAB{!sIi(oz`8`_w`yAYjP4-TMgX%%J zRg2C}ixh1B43VR=&@YpQ@z6IgJdSF?3*s-|B$LqJ0W~Ndhwy2xpMGJtvWHAY(ODcY zt(+B3A+*W{U%G2*#~?0&L%73O{zQ_LI3VAd7VfJ&S5si5VW4db_u00nJ09CYk(w=iUE%nBQJazdIu^EP=Mao; zIzlJd7nmMpFg9D~NUE3K=B;liEaIs@$qOw0`FHiX>44l__>bwTS3rkw6)TX2T^2Mo8Mc;-YR}JKMejTi6}|>vzYjmK z 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

#rbnF!%!v+`#>}ff3>{l2~hob$=Lg(Hg*1 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%0DKsZGOeM!)a4;uCS?~O&lp3 zS&nfiIL%~kl>M_CjE8)|#)46)IL`~g^=&;x4o$yGA%@NTgHMe?KmfU+JHv8ZP`tI% zMw&IVGT0%=Ej(*~7!G}x)E4mK58wV2)!;?$D;R@NUx%%vC>zUa?Z5e?+Q0)nm$MFC z2899DE9CVAu~oJ?waFtyO?QZJ4@nOD z=3(in4Ys#onR9f}x}8_C(|!-bew%(c)|3MZ@)jw}Kbx4nl@U)}J+I=(!;=lxo!*zA z4c;dEp2C~XBEGL*|Edd1TJipNFMAD7A;D9@|CqoP=f zOB*g!0j>5NJ9!1@@oF27j-B9}4$mHy%$a4o@cs_R&2F#yh4p)YuGW#EZ{$_vcGg$p z>G?K%-JFsx+tfRWu4{Bd!&SU0&Uz2!V0yHW3+0d3i}#)PZ?Aj96TFu{BZL+9iwa*T z=lO0wa6YY+Zp@GWfRD)wSJ^grY$56-YCOSFU(}=;`fvP z#9N_F5~=4|!{FT4PxtC&b#(yoUIAcDBhk=nBw0hH>@;q-E zXmP%UM|a}AS42NL>wh2n(*=yN@wiPn7v1+8yggK39oWm9dRbho`$GLW$0+u+-}dSh zc|>u4F4Ny9CA?V~nJy~U&%l+MajYMv+cSx$Aw_F5f}Ah{?1syhSlc{OnD`=f!RUL* z#k$37N03;!lE&&L`-w*|?J@ZlCse*oR*{q${dS=A3DQ4K0RMJQ#W$bF7U2$U3e(SUw@Q3hjHvx z58-x*<@SXE;`q4`2#chke%}|HhsFz5%2d2Af)^D$7t3ZT$Bo;6mV?=cVsNg0xhLnC zFVwW}Om*A+rRjM^m;2Jbk*J_Q$$RvCdboHJJ#Z1=b?zrX+jC*Xb(?eE%IYQeBrjH1 z)?&q1tuWX%DlIVF$T~IW#6=!#v!tcPUY?eUF*H5^@F?K0OU%4~*CYwvdtrF9Z_IG< zgyV^aFW3U?7*;xA$;0+kkKNMv=2S(@^t0zi^~q(a1OhYk!O=D zqc>aNVLBg@I{evoF zB>LDVBW^-sCvVb0LxFQJGZQ7piokvh;QvatN%rX{j=r#0J!~gU(m+>V#%%q)1x@$q>A7>`&)Vhc0qw*)?S$L- z_avT*c0)BDruaKiqLI9l6>cE(eyFY6yY_G((UBxeSv17^EpD99AUnk4fQI#Pda&jBJ|~KCAxrDN#VGZ%_Twa)Hi(HSNM6%=PlADLZ0b z;Vs~2d&Sw4^EckTM%O(TdV^Z!@Hj>WK>GmUEdRP8HD=cZ)lG-k<0}A5tS(HY{CPLK zAZ%5^DFB6sn)v%v{Fi&?SmcApxU(`WGaJtzzLm${{ReX}YIp3_Qh6_rjo}WwU+)4@ zc$jtt=Szlf;5TpMjWuFQov-f}4617>t+u(a2qg?=o^Zo2d6(dX`(1zM=p&=k@orQ% zCs2cJMyWZxAxLx%Z-H@xB8?%`Z7S%ihC^Uc|_-W+F7D<1Wz2rgYV`OgFX_kK~nWObh}&T=>< z1udYioslU{k+UL}z3y@2FTu5-jC%6>#Hp`xZ-bxD((DM1nhO)C*_^kCr=g8RG0b9! zkwt2CKCK92_u=LB8?#}s-=Xr4pdB8^Ua95RA9(VbOb}eY zH?U?v->$5gMot1f3eXtKfu>}Fo;})^w3lL=she5EDJs@ zvH8U(_%6We$5n+^hH0bSRfO$hCFKsPKr~Yrq0y4TEBWU{Cq3?p_~lW*pL-jl+Hb5W zd1x=8Y{?5LC=)jlDAQ-3g?#P7PH)I!y~Cq38YuqgRG5mei5oII zs%`PZ|MJq_<9qFfF)g5=+KpF6_K#X1Za^e%n~YTC5U<1|or{b;7SC@r^b%bR$dHSn zMwyS1H)I2jKx`#a($%!lVfW&R>C)m2*r{B>Ina#-z}1us+@B-W*O^^rWAj2=p2z0v zj!Ao9nbGK zQ$7qXteet=2%H(FY%Qmz_o%~yC|yt!AV4TWtj%TqrrjlRQ(QYpXLe$|)aJAJBT&=3 z+6OF!pMFaHv`*M~O;Mu6XYP^DJ+2=TCt6Y4=aSO#D~nV=F+Y(GA^)= zRl2kqLp*!9JZ(sbCOo|_rs-EzM9ltoKIniV(h52T&1@RVZRnry*gMxhR=Mi!JdMcR zD^-E6=UjBEW9MWnLhz;)5S3t+P;26%?F&A3kZYi=YBE}(lV2vST;t`5xP1@7^HfBf zK&N0tDUmaA{T5bXM2mwgAo4Im)QPm&L}`#K1sg!8%7|S(bbKx5kRt_IL8qWa^Mf=k z!1GW-#EEd(L`na#T0uknD`Fy4g8vGxFvy2YAr}fJfGWX?mIhHl$B za-YvoyPQOWY(ox$QDBarV|H-=Q9-!)mw!}2+cAp#LImLfKaB~(2X%&CB>o!AdWuXI z?1MjD^9A`IDGO5c{a4rmU_Ydc*xmOKA`dG>A7KhklmQv&5WKYt(I@(_&LQ&&-hP?_ z6a7d}43Y;GLO|rsDvI=v(c&L~m|^pj8Q8pbQx>L$Cq7sCRpV~JfIYbvZdc&x?8Dfu zb7VC!2CjjeAMT){wI}%%j>W8oVYx#O#3(r3Cpsuws51zBh@-|yrht!Up;k*A-SREV z-O3%{aVK#%t^X>;SAS%7+;nn(9CcjK(HhT9u~5JgzAv$*J@ooZsSfdCLQqrmvT9y< zj`jm0c3Hpo09RiV$4d*SOGaZ%=Lb636L)mQ%wsPVs?PFe%6`E{7fi?a{;lo;yo4l$ z11IaK6UJ26K4%Fp!*x)QUN)g?F)*`U(k z+PGLrZ5#fBJ(AY~@W7D@l1YP z_N@1!Ymtn8s=CJCA0tCq9?jy}v=;T9nF?PmxtP{%fRL;Bv$m_^>DDRz$hg3e`l~#M z9E)%tm&i19IXq{hM|YOsZmbeJXIMJ-Eu&KcDD)2Vj^odnm^VLSxhsVX?zXD|a7Q8I zyT4B2h=Q>oiyRBS6rgS&1gK^@>rRI9l2{q?>=?FRQbgclw?vds3xipwumrM~h=fb_ z3TwR@$$#}pGaJ(={Doe|jVmcKgZ@Lf#88khyHY&>SJi7Lam*`W9ZRTeD7sLc2a^Kj;$A|zC4K9_YoAQZXzX28m&(b&<^)awkXUAwVwetEJv`nj!J_J?(E zhS?7VGf}!7UstmNp$^+9PqiDOdL|jYGopG&OiKcEp43V^b_FaRYf@yM!qD!tN@P;E z453lRz#(1uHxpQ_4~*EZpO47+1kSE3ChF|2A4NC?r8513i*Qx>S^SkBAWKh7$(oAR zvdhC6#AsK&B%d);I81%`yZ z&c<@rpbFUT`M~fb$MyLtpbEBOq0Abr(Q!i);g9`N_2p@;?=t_jw4TcM4H{_=Tc--< zCi+Qryrb$WtExwRz4Xq~@|I($Z5M!H-V=28@k->h2&nENd+GDZ>Hzr}5Iu)pR=9@@pB17RimztHDEx3&7& z`q_BlZX(RJVr}ro9IG>T6$B(*qRp0KGd`yX(<6d!JwP^ks{0>jvvj4Vhm{FJ2(X&b zJmj0UN$E+@y%BdR=O@yr>(j=5?;(HxQ-2+trB<$9sTsOZHVG??JKMvBaQvWU5vm_u zrfp3siT9mJ4!NO$AIPt@BjOMEK#2)yTpznqiHc0-7?E)2nRm46^X(LeB)+bX*6m5u z*lR-dIHXiYZGZ7KuRNa^@3({@A>V_E+W8VK(ecJSJ81wyb8NZ^ksxp6qK_knbQmDHQo*90M-k}1;WW?w6~6-+I&+9dJ`uk${l91Ft4!Ky#~PYXG>d}C%8af@^@z$UO@2St)P(Jb!efY`)Sq3Nvf%qw`cAQ7AT=4G z?J<$L1y^Qw7RuPw@RdLe%`lN0*y|o3vYoh1e>9@`xDNdDQjl)sr zW%vOO_*o4fS35a`QDRQq;@>X1PWDdpZgR4HGQ`RZ#nvUwQYz~|`QS0yJ73q>(`Ewi zzT!7uMY0kqowrNGB^o8j0gzD+ORy#u&HO$TZVh~kPhB!{mUWd~q!!BPSpE7j>7_Vax^LGt?U~mwH9grV*!{{P;;~HPp zcjVF%nHOqSi1n_EehGR(Y>s;u>&$WH_N6aWP)^J$Fi(v&txv6px9vZAJm|sb!Q3LR z)y*K$r|Ber6Ka)NuCSjOq(6<|Lwb6%vJ_&abLD{@?BppGVv%5QC-VBACTKR(A^B2y37POitxDPCCuI~AJsj@WS8 zjN1mgr+(Ir39vD2pCsp{F6r_4ru)!lf#tuA?NGs~lEE;*#B4fUIQ`kO`8MOW&PiUQ zP^aQ#)~ljRudDm=B(^73U{KP=Qa17q=ygV@DPWuILjzCt`B+-Hma(|yu(*BzJz5GX{N89YRM0(JM{XXINZFk-Vov^GAo0b3b5@7EjP zcaG^8UhfSYVbnfH1r?UWrjftSJ^k9HX;7re852N@PKyDUV z-p960x=rtp{m|sp;>7pnEGbb)d}Mp%=Oi@fq^}oLCF&As*L+^>p6T7*snjL)uJa1u za9cvsiT*ZSeB(g6`HE;(%SWrGD-j%<5vmf5z=ve`dH<{W3sxzn5jGahgv82piiGUe zw@i|R%V}aq8sn7ruP&% zQ~1923wtylJ@ONZdVloS3jt!JY3n1{>(BT_Xh)R|epRGhrt*e}Yl3ClJSmcqPTYJF zlc0|2KT~vH<*>XN1!)|30E+tn3lw`_0GCLIDQ_Yk>8O6!`b+;rPaDi7AZ~lf{O8yD z1=;FJy0%B-iYZ0iIF_*my|PB!&$xpv&vBRmLb=(5ccL1!&*d3B5f> zEELpp5>|3M2AQ&>zuIN^Xa5X)0sTl$*gBanRczwZxdiJF1F*!A!^noM2cwn*Z1$ zqh6xI>ko)a!#xYpZuWZitIFf0Q-R-3=JrrOUCOjA<(fMqa_!FIIK4SJwT~)(y9{YH zwR+_JMIN_!N9I_clnxeAfT?0=?5J-gQr`57vDgx)OIXJ>S2@loMhgl6w8~XO-YMn2 zHJ2|Am9j8XR@J?vsvt%*YEstP-iWvB7&Cjvx}NS`6dw5KesYPBZLVBgzbVYb9V0n@Ro#^GfZ~ zJx7;#$o+x?#`hIIz6FOIn90E_YH(hqzWJ;dD^;rCCvgGf^uYgY*KW$2)|x&K)%CL*_@m0A04Fu{2REPye%5qCC{n3s}1 zj(<;EPf==g%$3Uc2s*nL@$OCk0V&7npzU&6JkP=A#gsU72p_N!&55VOiqoAjPbn=h)-=vVLNXk&Uf;w<@skX??x$a(})z$;o9AcJKLO;iBQs z<8uJ`GSLx{QR`C0#RQLQPM;5QABv5f>gi=jHof$*NHQb&&u56c3w1B}cKpFbK`oYH z7fyC@T;rdbMIz4*(TjXEz55m=XKBAc8a4vYFM6IPmj6^;TzW17yvH|B$T;i{)(S+F~N8&T5`AB!!kDN8Ksp25v6~`&9 zzO*jOyA&hF9?c)M*WC`}q%^^4xZM}JL2taI-<+RAFc_a;bzY@pr)KQusAo_lC}Qn6 z#7M5MKZ5+jf$#BLsU{HeLTL;iREGU@aPzy8MB}*f1BR+~eu-0@%V_uFIX}WB%9UhX z^4_s}`FbnEf7(CqJOHkeZPgGO?8d}-EE(QD%Jj4%Xoe6h$Ne~zM1FFiEZfXTXynK! zHap16oyB-1Ej`{H76THPC1Ok7;FZ+{??!+FNTp` zg3FQv*hLjm4>O1fK0-HE#1x%2}HafAG(Qub2@_u+UWU>d!4*#I}2iAG0I1{2DPWh_^;ig{Y( zF4TC)fgnbhjo763r~^_21DvGkag%!8Hn$Lb1S5!$m_70Yx_wb)e1T|yj&B!{@Xr^5@P!&=4YuZS>Ag?CYESz4=KhT;(Gb>Wo+Cn8ZbUZ29GnW#{U!;q|16f11kTNo2x-cEYoHBPzXU zS6qhIH{a_t+v6dpQH+5IQ)7>euX-RMP5H+v){1&}B%N)ZyTZ!TE!i}*VTt=EFgrIi zejhnF5A=8N+#fFKnr{Oa&$~l$mZsX(b+zUyMO@TnCDkr_iAztL@08AwVn<4MLjL;>} z6UsAmyV|jWS-CFFN?H{VDl~h5)U)UDSM#)M+3k6XlGKSlD({AjskkL2)*joL*meDg zG=?q5jvWW=Fqkp}C;xIJ1S`kFh?RIYmnDuLw+U9_)sj_SCK=)a+485IfuIm96?zd+mdti)F8th~1Rd;dkDrCG9uGZQH6ZTe*_LjLU}Vgvu7>W+RgBj;f^QXkjL z>}B5K4GCW$#EbA{?@UDih1j3TvbQ~%P*-t*cK4>hbGD$uxq6)evxQE3HvQ|NQqiwt zysQqEx3A`wv3t@J{q8Zq&QSd_Qf6Dbd+8zkH>v=)%J}$y-gGb0`sTyPDMR;4ytOD* z<8L=h(;E((oV^<}|3u;57Sc&v{M(YW>nQtm4;*;(>9|^VnYN0CcSq=`Sk2BSrq=rjyoanPL~LQOyB% zW8ci}AhWG|u7)Up2G>3N<1N){(+<4lp0{h`>&~zb|2M4Z-4RN^VaOEN8(n%d{d{xg z88(+R%_OvQ8~p?Tic8R`nR?E5J8 zftLA$Yj16hDYVXrH!X>?u?w`#Xb0m}(pe{zBk9i^N@`w!TEYAaES?Nf;>uacA4`Vw zKWPk>HJs`#wJxd7>dvM`II?14AWiJ6WIim@1_55Zn&3J1$#U1dD+f;Pi;WAD3%|b^ z`MtBr?Fk)@sXFO&(dO~3na4WZT2h!=-Ssm>D`CoZa6xAu7?`#NgpJPq0b&oP_SjCe zv=volf?3$WUF7xtzZK;r8OS#V?i_RZYu>y;~A{$zOq->q}aa|`%d3Ea~Go0L>-;w5u;j@5j(4}Zl&9`SZ< zqHr!IH6o(#-sucfg;hF9i6;)Bas#{o%^w)y?!6dE%xiClRG`*1yLCi z&Holw3zINpvrnp(ANq!;m#C{Bj$m;$FFMRsT-{p?$MW4c+ozsJVuAOWnfhYB)^F*W zHG9thdD`Opv4-bGK)YNN5WdX|g%G*WrY<88aTxu-=ybMmt<*TAK2aL2F`yHEk~;Wacp&b z%(T${uX5--E{BI{pm`JK?Ma8yU+Z1?R|Ks)VeE`!jjhj3u~w!%A$#7$1B}|wMLPr_ ztK+JX&pGtcD3GOVNjSpCeszZGHx0|ybgaw@Ca#ZTEUf5^vTxs%wtb*{`GzxKau<4 z()J%1Qhv^R$yjYB8IP9zWAa;~m*X-Zi4$aNma7`|K~a?3e1Fqoe@}70$Py)hvwUY@ zwUx=sG+BIwb8?#JGTGTkO0GJQtjtM!ADK6np~`Nqqh3W;M5vL1U|Af*<*v}6H7cO68qN%N<9D3j(ey_KgA78s4!94S z$#GFmiCMgj*_=(vCk@a8s@x1TmVT!wSavX!FWd%CC&RZ!NJ;A0bSwZA?el>-%+2tB z6G<9$p+m>T+8#`&8Co~DhOH`|O)BUAiOz>_$CP$jB1r$U`&ZRKePofc@>h+=k+2YX z5bY4nMLe(qx>036kI*rk{`a;B_~FgDTp8niWopM0)8}!P2e&)#zi=)oi^aP2_U*wi zP62OYDAi{eElGDGqk9A(!vmyyKQ_xG&`kJNE(qM}(U(y839w6?U023G=Z}boM`<*y zxJb9k1ce7NKPRI`yrXa+ErY3!!n zJf*RN%r<}7`|$$)%0Vu4Cp$9doT*fn(|ADry(F7Ms7DM|xqBG|qqC>SE?i@yY)TgOtI>wCvU2o38E+~1d7Y9LTmN`- z&1^*)C5J}=eRa+_Txc<8DmTkLu1{(O*V_9>L&dcC_ae+#je-*M;F3mFhn`3GY>W1D z#=%?5n@RnaYxgh&JuMBbnaIGjFA9PqbSNjeR>Y$_ABUo zxZ4@lZ@z#Vm6Rig$5hPUF(zBt!cqG|JiULR<7q@=V?S1I5LZG8IcM(o4K{}kRpO)h z1b8?M*$+ot>v&Oe-K3C;;p5}5Cw@}tpn-;Y6Cd<5^+s>^%O}w#GSgL4u_w`Q`JMpj zF$rta93;y7>fZYpx^!=$r9-dj`JNOG$+EK*;w+#HTV4bw6JN-aB|8TLz|%$2T1oXO zb4Y*hb@Ti(WiEI=)aPeeQsrhgyfE`js9L@flZDHhk-}*?Gs99nt3JPLnTRzg7uL-< z$uXX>TDMiY5+qJ$)s1dgT4=q2XZZKM`bqR3J`rxS4@>X8Qn=n&x>4)SLQ#{_0e&K$ z$SY6`pJ!ajKDRQlL`kS>Z&I^iF`W_@yA_Xv#1lex=>M<-0}uW;4SlMrIfX4B|ef*AKK|iXDCx`j0PmDc46f1_Q4oddt6dKlY*gK*s z%+jImoL^x+Ln4)!LD6p$WjS5k(2T;F0~bJ(DC5{reX>#BYz;Nysc&odr4Y1k$NDf< zyIt}*9f?tGv4M70ps)x@x6m_%s$)VRF}auAEu6t1E9u)LuDz`x$|(_t6)Or3F!)aM zHvGtYYkpjJVHoC>w5@u!*rJM9nNpw}DBFSr1Kt2lFXLd3SrGa>C)M7_-i{t*Sq5Zz z+LE5kTxg?R;Eu{kW53o`_jW*SH1{&jB*J|kD)1-7@yI0%{O#Mk$qhSsLFD#I%tqjG zdnRwF>-^L0w8j{Pzs_n|CD99I-f2+hk4uXv72(?&i z_1uy;R*SpOC;_jv^@??kiUYwuHP&8n|;r0PATJF}_app|K^Ceb`3k_o4 zj>nX7CP~5F){6^?fIy*%{26hR$?k)n>yF#rL&#KTJ7F+F-=F#607aBozSqsj>wGNT zRi=LIHnDGEV*}V+?+Oz7)?K~8_74*sfx{W|S|N5$$2x6QKI12+FjF?tQvl4!vc)>7 zx(EgxoB6-uwEwA*<7DIhKc;akT>qJvVI^f3!V$yB%SkA!DJ97VB4Q^=`@y1oI`91< zf#q$S@<)^gPePD@K~C~IfG7FC@@g?yng7?C?f-W?`}Af*b%w!!U}j5V2trf*q-Y5sMQV8kFf1Z0mg+*q3ta5uo45 zR47?HC)-(tf4rPOybRj*G_ST^X1-kTAFlnLWCcNMa1to=OS% z6MHq;bxl2&h?Q;2dIH-Du+p!5z=LQ>SqGQ+Q`P-paoPUAW$3jccZVBrA&eI#)dItj zAoRhV`d*(9KAiV@0d>2FX=k!z$r5aqxh5X)oi9SPCi73EIc9%cMF?5BHC z!9(Z=0k5ey(yq<*1k#c(*zm9;mQ7+q)jjyR{VO zq3e%g@$}o#WsU>7ci*9n=EAP-V!!S+LdN>E`@DfM;wsVraI%-8!QLTRU&4ljc0|5M zUOP+o8MduQOiFD;LXSzW^KrU(VecfmKTVLI({RQ{OxI>W0VNbA zHv@Kh!Y|neR#6C53JjYBCK|jQ46}luD*+M}HK>nM@VhOU=>J(6VRguTWYza!fb4w# z0UQx)AB6iNiV4Exk@zXzy+uD_t+=kyx1@*Uxj4c{ z!qWS}mS0~)m_`lJwDU~xiwqZwSF>b)&Cj*bv;+j?2dLUdIXTZGI`4%Q9GTL(>w*%a zA;G{OlEPIMuU4hROr4F!H69 z>fSG0jTcYo;pkTksFLNQgJ1Q}^Sz2ap{(EfMfnS|lyqJtVWvc`74wnf~lVNeX$G5pc_Qpk;6>f#CstRnbR-_1{FNd)2||A={(q?YUGqK-&<+ z5vGBJ`W9@5B#%T+uw8Nv7spqRt$#q|j5$gulv1QN{^lbL7L!zqCg>`zHeTKQIkw#a zwH^gck&A|}Tbgnk%)RT;CxFEV@d%p6AF{`}o!(k& zY#nhNQ5r}X@W1btM)X^hU@Gc!kz@&5)<`7zMsaq8&0+awxyxs~;mx^nDfVBS*7&(3+&cZAaB$9fd!IJ#&AMVM_A=h~W>U8q{y(v8 zC+<0C-hc7f>VHdS|HTNxycpwz<|Jk?z9uAQ2T44Uh{RY9P>LkM5P}$Rxv${4X5T~a z^US`FtR~q-B7y+`0vLb*jyMT+g$O4fd+Q@DazfVit;+$- zBNKcJ7wkW5xx)CEg8c`d-TzfS<;edOe`rF5Uw_Pf3{SudiS$kmlHGkuVE;qV|Eqk; zk^ifF%3S~D{7>Tc|0K%KLGtkv$U^|Gsegohz?$Hy5UU8fGO54`zHCW=iTmz;0)h*z zD`x9IfJH*tQE>eSAM($PNOE`r!T+GR6$~LBzxxRcuH3G#`~LwtlEzMi`#=2oFXR78 zO9qQ{;g0;W_4)q978jL|Aq4OreRuy?`qU#0A^u0_qT>4hGWEFpPmc_H>gSL_PiSj5 z&`k$luLhj2hB&T9zFm!x*@WXv`>t9K7KlY0>>ZJ}W|^^^V; zNu!@SaJVrJ!ftgtL-zE`hMAUeKK*kNa9^=HOH(+%v8iFgk7f-ThFI zY5k~NI+g|GtDwsyQj4bTl(wB;#S6@O9lj$W=TWN7)cj_47}~_w1+m5J2pDZ0ma(CKA(HC3UbzFAzJmI@E zvL4$w2=t7IWvo6HcphS2ME`E)J<>{~)rk)&tTjuj9e;~wjivo!DutC=Z*o4wwa&O$ zD(+oEg!?P1Z;qVwpM(NGnnKj$9J$;-iIf%v!x;&@_QD@=Mbl=#@B+l9PyyL(*XL*g zlh#wAgg!D%M_4HgK1M<4B0Wniv_BS5GqNxbaMlXwE6#98lC@l#$@~CbM#h@Q*Od0T z1U{BcUb))|Zl;nuxje~Pt8X6NbyGa2XZhCeXM3-|Cp7s$b(BG-W6s-2b>q9s?X1tS z;F$zPP{*lO8e%QnX+&Zz^gx=}TZfUb*?kiaKhrW!YR24sW~VD`!RCoDh;}Vd1&e{G z$XvxyT5^WX>)J-B+%M?e9;?z}5$g z=B}r@mE{uWh0+Wi_EsJb0eJCDl_TAH7e zy{B#y#f^ER>)eJx_=1IU*p;(RCK>0Z3(FIyR+9@~-9FsVo1MoZ`o>S2#v|G;ix#hq z?A}&+_CIPS=Bfb7dcbo<75?2R@q+61s4p@RDPy!f!*63^-=}+z5FgY)6_nJX)hdaQ zp_im3$->-pmm8+uX7t3BaRthXvAUkHJ5L_8<-c`zfNbTPtS#V6-RqrxKnht(A7iz^_UA%URbXeLqEAlSF}m-#!bcwq@Blf&20Cv2eTD^3i+wp%nLb zlA~^8#ceoz7WfDdIty6{TG-Y-lB!E630`aYclyN#`>!rG8IEDIUX>>^-x4J<56pT` zi<8&iE77yROBF%ql{6zq?r8ASXC&JLXDH_;N>GfI!kF1woyh;x{E00sP{xQjvttBW zY~B)z?J0S>c7W?q?V&yfsO)X6oe|W(1ptg^P&|oqFd!Y`7kwv!^`6}FN0&)TR;Z2G zCwVgoTI8{u z(Wu->YeAipF|0AVThASLgGP8V76`6y@bT+GucLSFIWl$zCCf!uah&EF*PIq;#FY4- z*K(UXV8BWz3S+*1(oF3Tp98{E1y#CtDparxhJa__WGKiz5G@YQx~siUSnPq3!IjhWkn z<735^s+dSRAyi%!lX4xtWjqVJ!>*vjAlKD>Q3E<;K5^1o%s9?ljW*&f+4Yp8}T7U`i;gZM5TXCx=6-ds1z zlYtUd*UC-OxcFRH`Xki#OaYO`S+6^$QY`jy4l{vRSbE-B zRE9>J7XUGi^^pgo?AB8UX*#17>aIbhYlmwF7nuNEM}bK zG_jzE*beE}Z}{ZxJ`7Zg1_vFo9YHF95P%#lUz{YDmo#fT)tVFY7AzpEn{7KApN*c0 zcG}iQ8r(LpstmaPW4tQ!l zS00u9S(1SKl?uHlY5NY`bNABdJ{#fUq%*~#Ui$3&MIIb-6Nkc837Ww*WT|2zs`Lto2Y z%ZgSTL>iD5U)lH1O69VZuCP@CPr$^mDb;0`Co^R}-Oo33rxptB)C;NaaqsHS8F$~i znn7qV+7r<7+TvnA*msjlbpJp+_{|EC05C|jg0^BOdEh)jIzMdtBsN2<-$8Ez@0n2h ze8Pj*4-oJ7Gg-55IB$@5sBb>rl7ekQKZ0`yvEk_bEd!|iu>-Qc(6Z<ftPcTC~id;Y@FXkd(DZYuH>JcjHL_9u;i_6hct>GDp}O3TyXaX-@U z^D=}8&JpTRUQvFMxT!n_pn{9r3A}s|Y{-2lubeX9gXH-_*GUL)#zu9Chxs4h2`kJz zm_fcFdx@Y{|8B{+pj;g$-vLmLS9@gl(zf2|ZaDpaH6^P|ulg%V^x7gA?#X9|du=5} z1%UD&^b5<4vYMhQNI&wkrg(=H`9`x9L{w%rqs83uGXzx-68fYUX1%hRU*l_h=_Z5P zw18d&9ku@=Y79Y6`%?T!xuav2;G;m(bFRw6NCYZK~ ziLqzDjh($txK-P{75dWEzS>Pqc;p1FE?+qNJNwdGtiDge7Pej&ZlaCw%`KEql-mBH zE^18Xa{DR<6|!Jc_(J@_8J+lP@~&|x>R9ROS}s+*LwbYSG;9!4RE<57b|gN-oU}fk zKql+6)xR&c?_o%N4{*6d9*U?PYOPD=i`U7B^uv27c$u0^8}2vCsS!T*Vbk$lKb4p6la^cW`CpTZg4}gw1x-?an^^p6XuEf!JQ`{@8he#cR9NhR+yP(kLm zr-gY&o_q<$1>6=gC^H59^&;T@`rEh%KDsM7D}uWjjF&zp(XhZP<(2s@xCzzzY>VNx z=?ccFphJFy)EG4Q%$D{V(h&FQL_xjG{X|m5pW{xT=2DhPkyT1G5VFZXv`*?s7ZFNh z=Bryx=pMjF%%(z_s2qw-iBH(eI`x_gS{QWY01ITP%uSGkzE@vEsHr<*{MJN83_6@=UEnjPGr zm;%2XU*ip9X^>hvMpAafL_P~t8*6N$C9-BwjTr&m%fW1AVz4Gpc~XYHMOK+_%Jqd^TIg;ui424=1{*MlBm9osZGSTpJ z*!w2aODTDN*UhNJN*HCEY-bim5X&Lp|hjzs}N`f-_ zK%_WEjyai;AtJ=9ZXF=B4Q9~UZAFY$a8(>ddzihZ?(ffuM$WbB?S@)Z(lL_AS+!ho zE-?j^c_NVpos@_*^d7%eL$PY;dz4lCJzWgu{bxm$(7FCil3=FsGTF!hGdsX< zH@Ac5v!{(^=AI^=Mnn@yr+Z&khm=#RA1pRaiL#XAv)Eyj5aibR{%A3}(3CoM8zpo@ z3?K=**T>D*&n?056MV}p<4@gaA;y(ZbB9*WpKOMX3oFk0i|K>+OQ zyZWnS+NM;#%D80gIYJVOWNJ#a&Js%EkHj6xEBRyHCa#j5UW81c{xR3><0-%q=i}Qr z2yBzeL+B9}blw_cPx7H3EccNE&GMr_oiU~go3`g?g%9?JLQn7vI~>QItvSPW%gey5 z`4!x#A(_A6cd>Q$CSz1U($>K{S{tcJiUb)3(yK{UWIaVKp}{KU*lB$2Ta)pytGjE- zBBfj78CF>T4x=Scb*53WBVYSrWbEFU?foAfrowSlQHYd=UTIri(;yk!G+<+Ay~?k} zMzhKl1ODx<+uSQ0+W!~<%TzM@78V%lfW!G&9rYKAq|lbc8{!I}*mCGH>4Nl01BV5F zfV5+LBi)heg2)H_nxIG^N5GJ~zWsnDfzUgzK4n#S(C%W%Uv6InQ+t#3aq}_IdSU9) zWi>|=0+b}=bI)-5yn;UhAK`!S>fvo=T3LznAs#`k1-oC8RzRnR-6{5&f~!DYK&~Nm z)fUQ=ncyKbl)wRB?%Xk#!DnF9-)%}+xL!K>~NX#XPw8Fl1LM$C^%LHbD z6B&t_$(Sffgk}$FDwy<7jLS(?$ukL02&Q-K2ZH)vNnUBbfQ^7-`beSmW%46hH-w5v zhX2Y#1aVTxok;Mror=wfq)H-4X;vecbUG8&Xs}O}Y!(2A2w%6OLXrC=_r2%>PMn-F z+~c0*SN^$e4%v==1YLN)5%nSrw8}&T*kXJ2ely|M)6}bEXzsY1uL&ZU1yk0=&BqUq`z0OK|~JV2uu=RP-a(tt9cd~f4WX^DtD^n433D9tv*0!bgA1|eRtSt zomyH()~5ut_C>%|(UFF9IN>4qeenjZ51Qt0+vS~Ho1cf@3(ik@lQglK}MIw%gL zlWQ7(HTd!`$*6qYI7=tzD&bWkyu~hU%lx6;*3keIs$m>vI4$tO(5D?vSi|T^3uj7v zd`*m|IT(|@NV+w_bjG9^ZNcDqxa|orQ$+)LVo99q(2rV%Ah|_|S>CSIry(2Jwp96$20;m)uzAch(ij-5P90!YGK1yoG)kD8*w%x}j)%H5 zZ%hiL8c*s>ozb7EF82dut(%~w>f{Kl)t%iY6$Kggm9|%ij13ap z2RIaXlrNhJPLb+HQr!~?SllMKoR~90&1Dq|_m8^)4s}#ITyjhvi8S@85Tj86%UkGV z4A7Md`Xzta@1@9RoF(IRP+PibU8Y@_yJkY(Rl-Xhapq#Ue7lcq;R8wyDe4-Cdjo-P znjVZ+*56u|zf6l-1zmR|E<|!YZiuituC<=lWI)eczSupdYC5g4=9>Q?MIu^l}Igz;^rY z3;a;r8TxAY6Fq@yH8oew^m~F1m1QMdfOGNEO*hQJd4>jUCiT}6jyYArJj<6aRNa>* zW6HnwD#){Yxr(Ig>3C6Im2#xYeala&yad#9z(|E~iv&Q#W`#GR{%}qPu#Px(lth#zAav4_EF3GuFpn0|fOk*n6Ig6v0>W z&ndEc@(h#VDubJ3owZ+1Ov)B!JVUHS_bm43Me)-X8qDkQ$_3>3v?pfNN)$9!iWf$o zTAFlpmkJheOEcz$oSZ&K0vtQm2=cKV{JZU5GiMBm3$@?wnNGwSC9>-P;Mg=uXh5MM zu6)E2E|LNEvGTWhZ#gT))f{*{O8ERr`0%)CxfCqw=;x+_LuMAC75p>)-SGb^kz(HK z>yp1Rh!ydXCouGf|5oQ5<2@daVN@`Mf@Q z`Vv5K8dmUunk8g>MKy+7T4_9;>}$&`c31D2t0^Kz?;}(NL^s(oM@i>tBMpiCT2u{* znU<%F+WM>3KNnWbQr5IoVJM9m>X`qyUaIMfQdQ6xU01bjwMhs8hN_9n=LycX>T&I> zpd_StZS&67v*{XbW80)-FXMUR%7hTApCyAjXiN!^P6e5-Ei*PU6HWzl%2@QR3!sA} zMRY||my7s43WPXLnfK(e0MY*BOj_Fb)icYv=i3#5B2K$ zzy8w^igc3kT*bnGb-mi0gCt4Cdo?r4X+4bip1Ts=8r7*@_qQViEB=Li8 zpj)z%A+<1l@G=lynuh5@_}bL4V;U5QQwf)2%+1y{)8#h-MCoQ02Cyx-I&129P~>P6 z{!6`QRL04FRA95f)mIf#Y2pwN)Gpdt!WqL{pij9q+a-hwyxcRqj>1$0!aH zhAB5(zaR(!IRbD<-k7m|I)V|n*V>MS7?r;l6>DQcU7YHujefYCz{Tyf$Jx$w%1RR| zoXB@9VuY|wT1Fa)Jhc_|;ZkqreaM)TP}>|h2%#XIAS~;R7UAL3*89R?5+Uu&>l#JO zMoG7biSYQ(M)KbwJd!3xxch0v9-VJM#UKU1G5_EKg59jf4wWT#??BDj#nNT?G{kh9 zzd(tXIplqGS~O`e%9g)+OTQ)r4Q=ZuL;!jce2{TBpmcAnLF*|ZYeIztFdmG@SLw# zwdEeAS%h!5qBQ=tOCsh)n$KGM@F8KN$^}oT4NL?)g&~HetK!<5|6STx{t18IK4yf{jQ!uluN z7?^;H8IwT$IH?ux|5w&Dtg6||5TqsK!LQal)~^m8LE!cGWucb%Y40tIujXTBb865IU2}BJ!uqD4tBbhzR1+ z*`%Obw96Ea5W>ZrHt^1M%CqaS&4b+|+$%MHt-|MIW@=oe!1pH=K-Hbs>+NLxYFK2k zaYf!kp3D>)sP;nTReR?=EfY#hSnRZdu2yt0A*}q3J$)9sLBdfa6#8tZ9Oo))0hlV5 zGtE)a@@Sl{w7Q)09$QvgF*2ESY{~l)CCi!jZWN~G?{U-%#TAt+K+}(m3TwA0W2Q!6 zszMY0eUwwER(GqtPq{G_3Q7p7r;ewtOYI2l*eZ=)DwrPazi$$-+DktcN>zgp(OsV3 zEr6+9xlZhJat1QH+a94Gkh zdk_YBF54`gLdz;Ns$c0&3F%cgs;^TmE72Mn_~$xr#77hP+jBp1INb6dw!gm}Z~qp1 zx4SP@Hl0+jx44P>ZPQ}j!N&|HB@IYmgj!;{=!v_p+7NIejtZucDw-C?M@wWjFh?cd z)|n(uh^HRxr`?vQpch_|1=My;&^#T@8BM(xfzU}r z&x5ea&0r`_wJc>)E8jq5W6^UWDw|k1o=Rsa5ygJ?%l9~vG*vMm`->txmQim`A$iXm z`^Ei8>~oyXHOjwxz1CJSE_!w)ynBB%=1Dc(L7-c40AsP}4n( z$T$~PaGDB}ZFBQ&k7jF;lfZ#eIxCt|yzWT^<`G~!&(rVhrBRrEKh5b^nE-oT3*T@y zj*`_lV!2gcweE%vVy$wLGU`3*f`Xn)YRA1(-3KcXai>paCrAR|2|5*g6#I_6FQz>edLM!KMeAk5&szyEi4QKEp{iQ6_3M|gawRw% zKaS3IU0k>Y$%uw=B^}Eu4hATGt8U~#I&&@zv^}!a)$Gib9D&1RO4vQL=45u0nPH9Q z9}6YxM3s}o08M2v1)-8y5C!r#`t~GiUr8_p2pSlStqO19O63B(eX&Ks;~TfV~M3;QyI{>I)?80JvmTIY;NB|0rz2NatluI{LGW89(sToOjK z3)0&~6XgTR80_xax86>ntP1QlO;KB7+JU20r3j;Y0S-jf(#~04T@_W|nLH6!V@U4! zv13i7zV~OkYdyL$e49z$RvIWNq|&V0boaOZXu@*$w1#_zRi*A#_>u!3$f9A`HL<(= zM+Pw=YG0f+3?>nY_P0Fq=i`AAW&ht3R&*grAW)+o;&kww#3{@{LMB$R5h!G_lo$uZq=lM4OaMJ*Uea(Vr4a#xQ7I)r{4ib>$v84qLO40j9MzS+U zhBN)>)Zy`)se0*(n|W^Q!Gbt(-uj{`S8J&{D!<+-mHP}$^C@d6)p_AVA;@^49L;XX zYYP?oZj9?KkfG$CV`kve8D)Vna#7gSEO5MaTKILDWppcYaRg^igQK%vUq0Pp<6iMdS~H>#B6@ zvJgK<#6UGYEwxvxKj}>U2+Z%3sW<4*F9sf4->o4;@#_yBv&|zUnU_!fY+U$=@Br+I zgj+Mj*fAB(OK#9NeNgh=UH6{6*#yO$qJkX8Z$Y##CJ(WZh9(tTM!OTyKKR9%y}z4k zHUD&|Ea4}Q|0yp|>8~Hxj5B3q!%hhs$Ep=l-hX(q%ukjN{~Qjf5rh3Xn_OTEy)2?$ zfKGH=pP2S@hosm!vD-U&tXP&EDWnQgwHY1UClgj$XXTG2L9 z#zr`NXTZ_Y4Q!^)BmJER{R_t=#2;-|VY6%Q_-u)l9F|jEs0f6W#VmfNmnTs$u96KZ zZ7X~6h2o-dw&~;{WyAWm7nG_3ZxsqNo)>$C4&93z>Vk zXuC*k1-9Ado5#+(^{h-p-_BI%1ndT#H5_dzSO0XCR;WQoGC+%WFs-_@>N2{rlVqOi z{PIqdJEQ2wqBoR7ygN>RVo%Tn*^N2)Gj>;LRGE2NwITI|r9>mfS~*b$*QuiAFZK#9 zp-&`4BwMP$;kW;=B7Fi55C{FaMtwAww)~_~ztv=A%(41a)e33m&tf0l{&RB=pxa`4 zK%k48wqjrlT`F(p^DPxRMNl%0;gooL9wGUMLnv6NW`O1USZz-7hBPn+QTdm)feVTQ zKl|Tb++V{7IYfm9OL1)*mo-RiZ__nNslAZZ{hH{b4F!pRPD(C-b<35>ltbJ1dt+F^ zl{#7o#l>}umWK;v>CWpDDshbbb(wbMO^sHg;lK1-{({vUX#E!9cI{WbRvb|2e?r`+ z{gI>wu&llv!YqV~R?AGpZ3p!SkZPLf^3``Z*M9C0#Y%JM+3TJD{makWy0aXM7nA}Y zL)45$`NzvC-hAK$EMdw%xwJW+m^9e!zF9Yu$Pc;tZ(YANr+G%&{Pg0|BLjm(y#4}2 z0bQNr-?vq38Kmi6W&R%kRzRu0sCpht4p2Wx-#xpJX7X4-BN zwwhit2|XrivNg=h5X==Y2W5qd7R;!&(G?0$%2hNO%z@r*#n3?2>ys7K_I zIwUd`b8EX?R?n&;K!1N&)p}MHK@ozII^L&HUnat?nl+w}`8Q@301fL3GKy@h&c>>2 ztVArAp@NIu;$(q?1!zIXTF@mjE$Ff>=n|P0bcsw0x&&{*goF)8ktlJ)YZ9-wegJ6m8~M&SWE8~@|l0QKiR_82Nz#C#QT}@ zpYrT9IGZ9(lB>SSX`o-E-W=kp#>=dFR*6Wx0=K2^RjGr$mg+?J-=|xm)fV`=;Wcog z7zIz&(q|!Kd`=(Sb#mJ4spA!%}iW2nC~p$%ujR zf+U>cpEIndQwo3U)J>-`P{yIk@AG+cm_m+jci3w3g=3|YkV-*uTw2IPRi#PM=gL%cqWj|G3Q8FgYNqOzko9)-m`o{08D2ckpK zqtSF!6^(ksrg7S~(_3y3OU9`P+msM4S7=QROPRxBwMH35iR0)zS>NDmD%#fRA2 zE0{i%Pbztc)r0Fpc{GpdLv5Es)G`G&s}F_NUNPqg)LOnkRxc)jLPyzV^hRuFDx;Z+`jOd^W@bp?Z0#Ve=(|{Fg1keRjDJh8=}6;58QJ1 zzDM5mc>L|%w{$0p4J%D$ksAN_>boC(s_uU-zB_5G^3_9*z?B33%rBA-;fv>qN%$pR zn*4=aFpXqniDWdIIvjA2#$j!Ci(3f^5zMTZY^mkjUAFA9<<|wM07Ls0ri4M(>li_`F}ptLuxEdo z`AU!2#`~*1VZC6z$@JtjZ_d+ul9OpB2u}W}vNzk4GkO7<)#pz+jGo>Cb1JQ`tF5W2 z&b83tm}T;WiOC(thRR6?=r%e*l`NT{J=v^!8{4IK)zMJg77qrkLUU6S+oO9uI0ooo zOTWF^Sre^E)b!L0)F^9YV_u@hKHY!ic0<=-m-9_~jWlMYM%%P`yXiz$z^$DUZzmwx zvKm5mw+;z+_;56IMgLm9nm_Ai>oVJTv3)y>N0A3LXT;jG9(LK2z0Bg=<%}d_>M5N$ zW9AHs#d|ktM>9}6+E{(Wt%zka5^5QNiUmp*Kwj|c<=MC*SFem+EoDIo3)(W-btp8v zJ;a&zkWe!JS^ zs++IuUqZNA=hinQx;a<6=q_H2OhbJSTf$KRS^zzfI*<|4jZTS*9%W+?YBX00-lE|w zg9aOwC*R{50;|e2=_kOgesHUk{7tri9__MC_QOD>RZT7a9i~&OIa`=*0A`l*0~m)u z(`BY9xxk>#@g<@E_j|ss71+Ql2K0Z!p6yAFn~YLUrsv@(6}Bm?@gHdCOm-0XZ!?aEA#uN^a{wbLD{hsS++2H8%gt@y_S_wPFm`wCQ-s1 z^AgkDH@o+{-$|&zSBK<8xH)d}$Q8};R!?j6Vb256@5Gc*&kLSCt&+~NI*J6WHW0d z>^8&sp^>G5v8w3lMF%Oni@)ozJ(9OovE$hvRI`>R>pL>;illu<$!|tctzjFW1 z{WtfQ?g9gRa}(}2+zPkb)8-0dW?0a|f;Ly86Ilc;ENGKwcEwv+(87W?dG>r{5wx%% z(big{kYk<}MJ=s_EU$m4fGlrmVR|i2f=|dg;_h`1yGPs#wVR^P$0Su{L~ z9wHi>%O42m?2z;5eKCT9LN1h_Guskww@uTshd#`{j3wuxpw`27QXahXH#QWdTthNR zO;J`Di^|b!qwM`e=sh>d`Ri-xVC|aP;aag4o6BdXxe0Ocy=8x%F(y&T)-mtsl+lh^ z?N0RfV_OKHDd@$aBZTQVIjOn!iX$1rFJDS<_GM|ZoN?;ESy7ces}F@X>zRob=Q+8T z$~Q~;*6Ux+c?NkP;PXq_H0~Wm3}Xe{gP=6=)x-@i1U3>(MCkEQtrucVX!9UI(OYBi zHDi~?*f_B`J5+yc%UHwmY{-}+18it49tAbz9szM5Y*K3h98(Pr543tq!XqQ#16hvN zLu|c`uprEWs0V?Er848rc8W2E2+j)}p~1%T!?GR;51Tm;+m52>z2`uLo-l&bI*>{B zF?TeIjXX}?|ECQ>ZVk#F&1Bak9D-SLix$%&%jvhf`R;$<)v4V9ZD1u(4PDmEdNe&X zvhvxP4Qw~CM?SlKXbw&O>0b!Q)PCAzsVIv!V?~NIr+(b>$r!8kz#VH>Iw3n}Kz7~_ z+36<7u?pouU(0Isswtb!R}Mzls>8I!d;ktbh>pnwy((+dd85W6~AuC zu{pX=-%Ed}ri?l{afsapj4^OjfiZ?zUt(Gr7MNk}h*qt&doyO0GBYtrCYLE@l1;s^ zW)GW2OxhT;uXuK3P1sy{nk#(>kBY<`7(dyZvE}H0wgY4rBqQC!2JB=V8~>}WVj+Ej zg=|IoDNCf*vI^NvK3|k5-liprNsMca`1-TND#3qmh>=%CI1cjqXjgMxwY9kp$zAe8 zP-d!`Mzg5qm70S!qSBIYE3%Z>6n0CIEokxE6s8zkXb1~p%!QJ$AST;gNFgu~YBj_p ztIH}|_gmFl$=28%)pyivBimvRR6kJjGWLcVskO&&YSHJyJv+Zl@z1zg!L^f59X5apoS$X) z0B4#KptD0e`5){LxtFsfL#|1NDEAJR+m$QTLg$E8cU9ABcEC|l6GyyvEZ&@n6Y~)Z zzmrR?wnD4bW+63a)zBIjs@2G-QzN574Xb}pW3`}y#a11wvCx=2zit~0<%GrH150&{ z#$a_~o~#;6yf|);+k|S|_KBQN!x}g&umu2fcxZI6jz{w|QEw)inTc9?G&XH|oYj%B zbB-&lh1O-(yRAE|hpor0>O!l}y1;rfFL>GdmQ~}k#!1dvEI;+WSo$>*bW4@Q5m=J6~QJMY4SvC;`s5y z%uNC-fT`(<5dKk~WZr4`t<4_fWs`r|MIyI4SV0InaB&Q_9MCNbP!THxb0E!~>Tv;% znq%IX2@D{_ue&1=lMxUWpa`o+#DXFOgaw%*94&%Jn7A2 z=9`d0fNq#FHFWIQn0dd%vMw;}S?sdnDT!`7QHl( zk>&s0ooMf1n~C?Sg_{1yhcXMU31=~Ar#Z}vSh-?%6BxtK6%{D~|DYOao)~4Vz>zv>` zYkzQs^^)L3h4wT~pEAv3pTU1j^SNX3ipsA@f2IvG#gi$Z>{vX*;i}U$!YNP8srN5) zybPNVvlhu_W;ar14#(M>nz`%PUsy>n=xVMDGM=^Atnk*fT4}J-wiRr8R&yO0hDXPE zdR(?Q*V#NlYuw_AyWJL{G8kk$YLD{EoPn6zz!;dp##qNySvgp-rec4%LadNmTH_V= z@W0>~y8&lB)wOXaH#W*#`1j8QZ8!sI9MJd_7b?EFP3#qbq_vc z3AZzQ%Z7}6nZr*VxqlTuYt-TBtBTsR0j1xRSLh>Bf!;@p6-a+s1*FUxqmLSN2#Qn| zAN+O@Ft+0-kL>*i2nxKp%nb2Hi5cdJc$&AA;<41Dhxa}D`s6i&Qs zSBVcyoif08=+A%9X4p+bg*2T>t>Go3XNaDV!2+k$B9Bq$U@9D~fA zN*(q}N13zCRVJz`?d3RXcO$4M3F5;HWj5p%Hc+-Zz)9r6gNj^@UfBOD;y{%Wa?7Mp5S*tNq>|FPsn5hV9 z6jbukfTMrjG1GCbu3f~mIC30{5WA(dTuekE` zA$?d~;}32tAyTZQ=8#aZ%6&9*A%;+Ix41zwd*O{BLGxy?W z>NeaCssA5zo3GD44waqJ$W2bVz)77RPcA;`}*&_3etj#bsL zcrU}lV!05F4|{icUxw@CzTVJaXgDN>aAD{Cy3l{e83`8VNN;bcvh=fNsI;I{CPTAZ z%%*>Na3NwEM9v@y+Jdk8+9TXMCnpOJ!}0_AVuZ#HWVmM~mx~~`E7r1|B;#&Qc&=Ez z-BD9pT`Q>S?QtKCIS|y9H27$3S=2`yPVVi&4!?2o4ef;6;{WX)OATLVOU|$-l!F@C zaX93Km)`aDz19AAj;>kT(Oornt}W8uedT}WKls)5zL^(xTzA#q=o_ijS7`IVgM$yZ zHT5-JEjb(E`EldieI>r$^5%=MJZ*w3od;Pulm6GUI zO_Z>}>H@WuWP;{8E0$YcrOxQX!HevwD|d^DNKa%SG8EYwnTV*O5gPevK#=o#;gKlf zI7J*4nLVTpBvC#?>-0r^0&YDbTWf!qwYR3iVvBEs8ZNs){_LR} z>uNo;<;gXxzV-WskHlT3#H@cU-HAY-jB!PA zAilCO&{e2!@BWX=?mvGc{9-7+?LrhAAwRveMRvo+Y{y>T3X!Lu+I#0ut#~=%$9y8aJQ8!I8RLNklB1z-g*3pG2Z`Ik0=;)1WQlv6mSzSe({!|!l(dm$#6 z&_hs|FnLPs%<^ov!QQ}qLZ5@R+4hlCQp%{kfN_nClG2aplyO=v!~jTin2HizLq}k! z-cOa35gW5qj|<-z^RxX>W(Ndvfh!wcwO|3{7=QDkwUv3Aabv;PL=Hdt!+R8`oCbu~ zFhkJlxjJ?`w^%CzOn`r!X}{)n1N0`fmeu|#o1a4t}dFGG(HoOoZcHRtTTjVcDy%^PzeLzz-+~1OOBGO!`rBSam2*S*__{mfb=C z)8B*XVQ$&Y>GY@1BCE${mKmFI5(iVVKKHJb)%KFW&;GK9cDR2HTLviL{1gz+lAAzS zcx4OCeSIZQn=6l?ybxOeb}Yz`2#5I*a+WAdK%ORP>SHds!#T7j1>=>KMxhjk!5+Mu z%g!Gt^D``p)6c4{T+KJ;5txVst!yreYd?!I#hokaaE>_TuBO{lR^X-Gd|@0 zoQ;n=^y4V;Oub#vk~+F~;PG3!JKEc4Gd&$fy$4pGbwh=1N^=*FPCozR)QRcexO0Qh z*&L~Aq)aKAeDZ=jXLMAy2#ZcB@a*yb3%t$zv_15$-SB_ve@~uf#O9btcx7BPI*_h6 z*LyCOR+?{LF>CaK=oY|_Zu>^r>%_#=O1&&RBMjHB6p zuLvNs3AdcG_<3?(CG2Q{`Izp^lZ#~#D0b^bvgNeB;a9eqTADHU6`IYaEN$RbJ(=RD znmb1m%9wxGV>X#s7QWQTdORjGNQw}xsU)tA+u`|&Z}c+f5T*zxr9;v&NzHWNpP7ei z>I~+Dd6Rjo`6csFbK0zqnyL9`uFOkbHFXM7h_~s7;YXmvNyDr$FY}DHL9Gedu_$1P z=x62+ZW?ELGJw6!0BgsT%d(ws>vFp~l74%XZ|HxRU8BDrj*@u6A$zRIcWrPZqF$PP z9V@$!^Wq!Gl~G0q)ZCqjS-Mi^|2%cUS(X?IikNj5uZ;?DBjRU@4KC@VQ9KIGBYVWi zDB!Q4fDb?c0TB!7a(bzGdEupj4fHzmm4zDv8hjepBoWcX=3~q@5QqHOE1!b|Yy<=G z39^6Rw7*E4AZa3)qGoqt!W=6c5EhH)n->%=^7Z=PG5@ykbKz6t7v|%IUlgD4n_M&+ zNC+{1k1*E^F7|5z?A=XBRQ{e}#(5tFW>y;T*qSq!5VK3qAvUwZ4n|Lmu5y;-j1^gV zYTK0~2>xC~*-_%l8v=p=&%{ zGG-De;?n1e0)AI9JoGrl6%`j20Z0H&)9}tODnu4enOSFjld;eQH%)wgfL*P}o2Mp| z*QD2c@bg}OynoWg)B4Q%&q%jZUz4yafM?5cHR;CpKem}k+2Y*ufBT_^}`lEkm zO|JSPT7*NTu_lCz*nyKAMvvAb{YU!kHs)!aGstnOWE!~9 za*8sI{Y_0q6M{2HH0xZSjUcy9r`czTtSyam(m>2eV-zvlb~6&r3Az5vAr6)eSqr0^ znOWX2n_zFR2{{A-7VuRSvB1<+Ep&f5e;7d~hsD56=S>~{1 zVmRrs-2^uY7U4k65=pR?kHx&ZOetV@bE6mf!|!6Aef^Yu_>aFto#QaGxz=nxoex!N z(JQR{@rTz$8J8Iu^R1fk$ZxmL;783=>Q2-|H~dkUIk`tXs;aAuvBMJx;GcidKcu`u zTb38g8#OSXu$3G9_agYOP24B<1P%VGSF6O&$QSxgrOzGz9r-+}db{n<mgQ zME(+0-xqlx`Zhf%y;Js%cOi{dP>= zRpyWDB?P9ZHkudBj}}CAE~9_Tys>OyyRku~$U!^jPr%&#zQb>yE9()T^pFSx&A_@|rQky|)bLt&VeHp&mM$4k` zIN*9HBd7wuQk_*q^=F(4WL>w*${eS;3eST4$em0>j^INe3jQijFdT_gow-@(ZW4YW z>&({HcAB3gYbAR*XUKn{KxC! z3c_C9;YY$qU=d`8!`6(A6P#$kFS95VA?&q%v>`O zm&#haN^W59le2$PS&w5^13P;)$VH{RXcTcqMDUYeya~i*1VLpj+HkN2F`m4^2y3Dk z1u!-{CyIYH!Dc!>1Vij z%f!-vqg%EQ%$@`YN9eh2ZHewb&q_2m|9XE@bE5l0SY>}(>4MY?tu2Y}7rPUMy2wk< zM|6dWZX77K;lDmfT?8L|=I$A45>hFlImFW8W;mSPBsAf5TZkb~snPnu2UcUL2d?>z z>>?-u?~cHR3;USDD33g5dd%^p>&eIg$3fR$O&>%w%N>`xZZ+NNxZQPoMAdCN%hBcP zjI4BA?D~IC$73!{vBTzC^2|GZG5mYi;9%z2J;(7DEm zPxv!i*Jv01R{=Jg&2^^f&R(Z5;@s~PSkYL|eD;6!fsbS>TvAOMmnM?HrzR8&9Opyt z9>yUJGg<8{C{QiNVx383O9WmbmlqTWi{bWy8V(+^w7}EC;!XI7gfd$2j929T;W3Ln zULYf|IkEU<~WFIc)x*&rb{oJJxBG!Cbe$%lNSsnFyiPJ$M4wK}HIH_cfmzUcDY^Pkh2d@A+FmCXhc5r6UNlk{x8xesE0*HjmpQR>Q zYT`5= z5mS?mP(#=ozh}Pii>pMa;neWR`>EpHiQR!vIb8B;2H2y=dtQLJr0b#mGKYM9i zuH=4z+y#(313H)w3HLDMzJ}cE(8c)N0dm0`D)4w@{^mXwcv%2q+dGDsefxvO+;o3n zMgpE7C8)*syp3#Z&lac)wgcl+Pn6p zySlr!?y82S8|tz&&@IrdhzOY$qF`KzEO{=YNi3t{j7vagT)_8&nF$(=GhjEnnLy$T z2{9^(5k+6@PKF0=2x9<)N-^L6+^T=>Mx6J4@Aq0c=bn3OxpmJu|MTCz?@)_U%JH7k z5F{7gQ&Q|Wh?P)8sEAU5&nPkZmZBD^GprS&7Cxgih`K7;{tq=0O^|8Aq#m9X!m1L0 zvq-9`f;Q;-n$?tt!je(G6i{lj@v5Q9=RXaFnIE@81!XEbuAkSPnlqepstd)4!-a)lLP$YXSj z{>Cb!h4AvXNvkXGny z4Dj#phzjzMoo#^?Qb1ytcKmUk$v;ttqPp>3Ws*p$R4?c$*5Wj!-T3C+fHqcLI z9}Cy%B5>k8p?QW&aueXTEi~2e*)(6%?re{?7n_RB#g@sbZ(6@?HP%3-eBAJo?m*}d zx+A(X?bx}kn!7ie`XPhW%bsnT5aIZ>Nj}*$A#agPG~qJH_7~wKhNrj$R)Fx57QU~A zZ)r)&N(#JR%Ox=!&?kRQr97VxYt6NIiVL@emqd6zUkT+eI^K-<1CrdpV8x~jr1KD7 zM7K)%2CFe|)!M=8F?=!^`?e18qpIPLaYo!ts|Ugb)fJp4nvhuvNt3D+RFRL>;izGN z0F|E&;QQd*J##j{%In`7xV>-X*B)*UBs=6-$DAK1dtZ-IubsT(y6-HW=xbfr`(jTv zncQ;2U4N8w=}EEL&a^k-5*?n+>&lC%mn7E=BLl;*- zRy{wW=LyCI&Now0k8pe(TJb_fcBuqPuQ`XEC!FV<`b|!rLH6loPEYeS-)7?g5|E-# z6xYPkz#^N+F%pWlj@4LvCRSOJw%3yWNtWrD{t2g_H`x>l*BHY!!62VBq6q0CLB7e* z7_7MZh_|EX^1pvo#6*MHlCU&JwGHNYl(W==1Qq&D^=dRGXktPnS`!7;F9@+muafwN zEea*lMqpUZK~BO%gQKE6jzWa^aUpDe*(Fc*y}>t@j~=`1iCHHpUK(ZNLbG7-uF~LB zk390j8e2J^%az|g_^a~irerIP12$IwA}U$X}ROt#?LJ}vxS#>q`3`?q(91sV;{=z z$MjxLt%a-6**!j|rB=k!#{-NL-WK6*Pokqf+a`vSdf*_DzbELN;fPr`kFAQLr?4t8 z5)k?W2N8do@uuu-GOtSTTq2anCRQc12~W$bY9|h?rW}Ft8i2~7KoAD!+!08(;{)Vt z!@p`Qh88B~O%z1tq} zigTwl&6xbPYwkVv4j&A0kgQWM|K6|6zg0@cWHwl99GX*BUNi?C!I0P#GG`o_P^jsh z#5+xF_Sw#bzKGQUs%XwPu^E7a5Y0u_a^t|K*lG6FMh)W@$P08v%F?-b3c3S5rnLsA zoo0WZU2nkbt2M)F41z>(p;E`KL<~gO2NO}?y)AHgEl|8cu}@qgu7vw^SUe$~7Y%z^ z#!JsSHqB^evD5)J*+k|(XR}QFXmpCf<0j^5ie50q+|dTB6qVvZuEB~TX2S$a)Qy{9 z>ikMJnJrCb%&(*+80F2T(HX>MUnnd)LJoh-uds}(4(I6Aar3JZl!-E_%oXy~xvnbs zYCNHic5<{wfs~!O;j&}pqkQ8V{TnY~^DC-OuZRDs#`gJ7X*RV2a&7+AK|Yboou|cl zY<7WX7rlK0W|yCf@lPtIUD7Ujr|(xjE#kT(N>6fi?d&FOZxVXe|F` z-I?-XzIgCEziXSF3H^KKiR-U>BFkUZe|1it)Y4cVpUyj9ev7ZWvaR= zOSQC!?ktjr``t_3CAZG4t6OF?3d;;8t~q+pnhMs}Jm5 zFkGCNv?uPo`r5gC7oC3-_Li+Q)9D}o36=BKz7U+)lIhfYCZ|*@0du{4x%TIp=ZL?I ze@N-DHV8REZ*f_|QcjvC?E*{kuY|3VpUwH|bG}Seo2^eo z5eXcX?IiiFvBrjYGFsCZ!?idf_)P1ir!S0`KqUJyd+==9{0Pf0{n{_W^&ycCPs0ee+_U=Wr&q7pyqUcIUd;OEG3zICA1R(;Be?OLx(1yFGukAmk#azlk=Od>C`wj! z9c8lF+(iqy8Y2f;uc6xWWE!h>7ucSV3P1KS9N|+L)VlK8ZGoPNTnIaRDs}v6Ka}od zW24O`nmm7Q8Wp0U&&aRBz`%GgdM9yVI%&;jOF2G>lzLA`pW69IjX^Rio1+YMT212u zL!K&z$^1cdh3T`%XSo12Nia)LjbJ8T2&bg;Re$L}D0ff4;puPAb7!aYe$Z3QdgjJ5 ze>3CyMGQ*$KEqnF)fhVNC5ia#CvPd=SpiHEu9AQMR$r*OaAmnP?wqRnLIW$IFD^k} zXu$mP61K~Pd1tPjf>_f&#esug&M|bH=fM~Jeyq2>&g!~`xW-9?Kj&?_WNCHQ@>0d$h>ZU$MyTv;oSeWzn`mn zF0<9X$F(iBC-V#YFC7P52CaRg>(SIx_8)&ao^x$Z>6c^4U&q}aS(kg*t`qIexkN0x`zMh-+iihL0LG;5Nh>!ScIXtVRfH_B^s2co~u zz7AxikqbX5KN)!<`!DjI=CUGnxiN{0M-Ii|Kz*`l2!9ba}x|< z%~Q^;s79RHpmUvb3(R6Ir2{F>M8T;T@ec?Or_xbymOKTgQ=UrqNcUB}XNt7b{Q}t! zj3_-E#bPs#2f(X|%ho^-@PrB;906mvXO9BsV9FncPeIk z3YHx2k#CW2$!hFe4tULII-4`KsmC}p@}BHop7wu!3@ho^IgXQsN4Ft(t}a|wlaVwD z&bU&uX;Uq_o3;XrQi(QW0TA<$btbQX+U^mTp{D3uLV_G)|TxJ2DmYF+->s-XERK zJ{~pBBZmM7*+{izg(iQMjiA8qwX+v0MvMv>1UKs4tUyA2f*6t-sc4`gK!u-*dMY9c ziX0UYN)*gd5ut?D92Eg7#&`>0pp2&-NKmtpiUulJU;lp;i`F!gq^CbJXSU}ecuZ_! z8VO+un=qD&S!# z{%7MnODCW5U@@juq~k2#$24P*BSsGM3(7yCl|)@(&&|E7*{6Dve^Y)-U11s$`$!AA z3#-c~Y9ze#}kNd|h!4*YQv5e&YX0 z%ZvWqffrj|@xR<+kjPm%(ZNoo6^I<;j}4d7@jy> z6pHj}Y&$R!wPMGC1YB~S%NNufgwC#i6E=-;v5+?h_6&d9tFF!p%*nWGEbopmSCos1 zTus>UHDiefU-4SXiKygsDi*1x%FB~Z?NL9L>&6kcjE;cmHI%c zsle-}dBdiru=ZAyewwb3&&T5q6L$Q-DzM$z!K3 zxr;xk*aCkc1cQYjiH0EcCtSe`cQi-|d;oJb#}b7E`+&r7;zZ(nLc0_$!ct;A+=TR= z1idGLPa5P>X}oo?OYEfYbtej&I{CWJr#go_M>W!S zOVbJJKl>6KVONb#rT=miUmM7GdZrgEZVNW8C~AK;(2Sj+hE{g+ox6oHHys&Pighn#-ZdtQq#Wbz?FB7}X|A|h=c=prt+?O^|}Ewabu!aJNKKAiMI zC;dVv{X+Ho7qPE^Nle3<7Kmbz6hshmlRvb325yZyXjAvrMr_#4-a`Umpt_9cNtUu) zJQ#mu3}LAnWFfcTP+K3j#C^tqpYsO{dXL%V=luq+U*oRz`jJ3@^j7*pd>U~J;-+_V zMS9GTJdqNL92F6zPMVUVf(G{>>dJlN{p>At19%-v1VfDp^X`!BW9>oI^lEr#U_>~W zL)JwloH3Oh0HQW>h9i~Yg7#Qb)q^W(wtRn6>!pR%l}&|jcC49ol`>^Y?@N(r#2+uP z!)P=%Gp9hT?IzUaRNyQ%4^GO(TUuJ0C-;A^Tp%!|a9<`SdAiHjsEu?yHC;U>u|Q$X zR0m18Hb^*%n-zG6;v*yPaldBRI2;t1rB~g6f_9)7GttyEfmAx3xyaJ1ZbfM{Ty%d) z4gDjk9~l2x@LDlitgr8X&;Qef)2hcQLHn$oHR8JMz{u<$|S)NubO?} zEi`&3V7n>2K(VINr3@bgorI_TLer0IKSKV}fFB)zF#lL5SH~D^D|Kv&Z@=Y_ci;8y-`;Wj z?;iN@JJ-x#HF)#VXP!Zv@C3YBkK*|xz*hX0k~tSV6*-qYmpYX_mDlNfri8E~yg&R_ z^3BwH$)hP<(1(zrFO<+qDe_unNuQ&*AY9MQKBYC*G9Dy(p*;0#LrSPWq~SthC=?nAX}5;>khk4; zJE#LaT;daK{>t26o=T?5Yn4ETeiH>U3YBCb#xv1gfVt7dSw~Fvk9v44i z@=qP;+u^nq^Vsz2Lf3y*pe^6n6o@7hkwjCVA;`ByQ8WgdgNSFhRvlaFq?WX=J{3>^|)U3fl+v|B2lxDsH6qcn&*Phe}L7vUPyuzj><=Cb8~-}Ul6H>LUSH{ZMHTYWv3 zJ-HD+nb{a^A6G`(>q_A*&nf3Q4~@6KWdD-anYyL6m?# zl`^2~Ptusn)0ls=u`%bPF()ShQ$WathL=8y^DU3$XnpyY^x#j<~n&Z~?#8;v*?_!#d@t#8RW zys5Y|-r|J^HRnK)_F%kaT^Ecu)uq~&m+W~7!>!HU5QWF#!r|7~RPRqF8vPhgR7AWIyG1wX_bL?vBFJR5tIU{2H+}IhyH?rrkxfeNCOSD zV(;w;ckh3EWDDQ;`lTCY{|BA_j~U;;YU3g{&V;>RTwNV#e1AH9(>*Wm;{Dm&Ogj0o zI?(2C+(;|*3arp1*OL5gJ3~DGgpQX;15x7Mf=TQZg)QP18#GYuIJ8^Mn3v{D5f}23 zkhetj32HA!r7_#(qKp`%K3HlEk}Z_V2_u$3IPIfmuk-#JOy98;mS>xICcTDY8g=lInpFtm>akfkh#bl>$>aFsmrcXCO0Q8 z4>$j$bV0a=L7+4bmIkKuw&q(V&snje{PO6^&!RNc-;ZOR??Qji5`L}}jFPV4k(`BV zvum@DWq*|3mVPOH$oL1-q1;j9vD_)knT&tU#OrJHMtyr@wmmZ|IWuD*B3ESG#d!eT>wv6_E? zQXmZ@X@-hjZSPR8qNb}u{qw2KYIeQ1PrZ(sy?YkDdk_4j^qGozdLfH1*EVq7lPcdq zH8u!r$WQ9hSWHM#TcLDk({eVO)`TbMgWY#_pXk=qb@z1(!EU}=0Ytf5X)kminmoBn z=TdyByz4d*<836Y;lR)(gb#U54Pk%TtiUn2ba3iCko+!CY$^f4R^?QOpc%VeRk&CQn|qwXf&|As(hTbdS|_Zr z;&IxFh_*gsLm7M;RhTY~JodK+7&eLvc=Gg@!zx^-r-DYWvp{nvl5`T7IzE_%FJ7m>2ik>jn_%sp2;G%sE#JpJkX`2*km z?X0`I>|txuL@_iWK2iAZSnh1H%PH2?*T)~Z^rqe$gMnIWvA4Uom~3rKwm995Ua#cs z?YZ%$o@KszD=xK8cQaA|?jJE1_h?_mj$h9YdJLc<8dQRDCl?0V$*+Gio~{Yo%&S1i z;*nFyB)`fsVi9QMDn^WWFLr!T{l5u+z`@BBA?ZhqWR<*C-Y1X9C$S>qB%LV9H8O4J z#q$M~7!}%F7ZZE1Sw3zafZG=1BLnG&>;p2LDLI+NB1OqAXf;q`c|RxEYy6=4U?wj8 zUg88`tCXG;ZJ>Cmz!QJ3gqO!+%6VVYivMwMo4>I$lq(Nkvv)6(Q@tdac&0cZn!J3P zBRt*P)eNe&zRkDsFVRI9Hn48!2vQ4w+BY;00;l=>jye(kX^8@-iVTkBgB+5utN2UW z)9_2Cp^;a~x8OtuG)y%!DX0Lmjv-bct^rtK=V62(RskeT1zLYeE~Scp4Pipu1+6A# zn<(43h)s;BZ8+j(B-_FrFJYq^1R-^R_CE{%JVYlBb}0P-RSM9E^ol8DyYD2>YWHy< zD|~jFvIK}qIxmL$Ii3KO1YlDEl}`;t@5DqW0NZNsxdE>mu8e`>0G7}p*_Q;w#eZt5 zIQi4r-cWSFfFyraixbF>NSy|5rz*!k5>wNFClm zIDjG4tX+Qvi{6a`N+BvqrOH?7LC7JAjwM{b)bH5D(R~}6gm}C|Xpi>@Gvj|_oA3Od z{XzLP{x`w_>3`aPEAMywGQKZymOpQk5h@pqab3d02LxN(nds!(621J4#1;I_y!9YI zY(FRu(}ayUaI5$MAZ}LosjDvlt1>B%KK=6$>NtOD!jlSglDgjFu59{5RM&fi&7*<$ zG5F|Sfl-*NvxG8h$WBEr`f2D`*-XlHO>L}kt{B8kc_7_lev4T=~D`2C=b#+D!i z7Bzo4_XuxuHsNiMHeh0{VpD5`JBdVEF2rWqddxK)_6u)#bvOU_5RD!ZgIGb2jKhi2 zBxB6xtGlp9vbByK2^TuU_EWBub4f1;X$@y-~c`gM!+GW)gttD{z9xv#%ri=xfxHRMyv| zq~6;7)aH_kF6Fj~pYk4XMU|8$Bc(Hlu30y#iJNv0& z4`;F#;`L%a4z!0OOv25D#JZU;tQ785hpI_`nIALz@QMp4jnmtHx8?8|EfVetGQ%g% z*_0KDXM3c;+^uuWo&7@8>qF--oYddcb1*m?00i$1>%bkEN+jtkrL#&aS(j^O5rpX( z*uFI;5Z_hr$bT&u#1HVf8vn9d6uO@qk*yr9_ldIOjT8Daq_Lf^G3JEdUdrCLz1uyM z2Ev^CsRtBeNFw8IM4av+f3lbAj+yOz^^i-fNr51Vo%v5=Do4Ej=x;9HZKsSyz$!${ z%>Yx1-g4#3wYdZFfmuD#ob6%KuChh?X)8+enD0Vk^Q<7Fvp(}FZp)Qml6+w_A3pnC z_Uf>OwQUaYW$=tLv{Tw@66gXO0S4sc289YzN=AePd2Jw)fsEXszMyfk{OdFL z|Mam2IjF+pfwO&VA~Fg^_kSBFe24x8#mxEfs0ye~8j1!%-rT{`&5DJXg_)HdWLykQ z22^Rod#Wuo8Tg#DxmsLhk|&uZ2DtXc!L3RL6P3@}%G8MmU@+zpws4B(#`Pb5xgziIORa~m*-rKXhu=VTNKglc_ z*q%4NbuJk^J5R39eLFt-BAe%cTF3-+6?Gi zmdu1&`H)FX3@I^%o2N8-FRwJTTM~1pXg#s(Z&6x?K{rX~9-40UM5W0vk&UF><}DT0 z1fR#*3ncW)P~W1%svM-#QS_#^+Ig<){$$lRa-GEVsJPXQMFMFIrfCCYT*>mlCt;XI zPm=QDr(0~#;<=p!{2YK-klFwUm(MUu1$|W52$J7TBeKH|`jB3mU1pcA6HnZWQzoQ4p1ov93aH41WVsPsNW)YjD!~C20yz$Up#>@?UH=$FwR2k&J2r`>B@__Ow zXHPRqn3ro|V;_RCD?81^dBCd%cPB=yokWtKbXwXHiOh4=OeOx|i$KB+0@{6yw3oSP zIIrFtrue42Nxm386%x=k$a_K8gB2VHWk{Z?RDM`OsNnJNbH;#S+*X1!CXAQZw-jxj+9XvW>#e7FKJ>k5nf#U2o3Je0~q9xXudm6vn zI2ucw>%w9tH3Y<7BZc#CiW=cVqsWHNzLW|mc<)7;S)^H1Tgj$(-_>eKG>G8qpGEGq zztDY&L~Wo$%dh?ndk}5ZPKenSktd?S<0AbfN*U%m!nl>Q1o>}!h_zp15hs*GKwsP# z@ny>+pG)f_%MJx#`n{W{4@mucDdNvxNBuBGK?E1Qbq*BN<2^W9@sUp=T@|Rs!mV$! z@I1X}`UcqaDiU`?_))848e2%xdu^+aBzF%|k$_~koE0e^C zjiO%Pi2_uZF-cG-*wVNXZ82R6BqPmXk*)hudq{Pf{yBtJCfc65to~)?VL==r)E{(W zihVl+J3^Cm9rEEMe*fuwx3j%MhiO*sHY>lQw4>3tWID1@rAp^_86^G-m>uzN zo<*jO$i{T`*cI?ukxpMZ@iNZOSkqK1Oke*OI3&a32vKXZaOgIT~XaF`VikR?6aA4^sYCCWVjOWWQ zc4y((jQH&UeCQo+;$ekfA4_l--@;>7WS2gK&wMZ^#I?bc?#Rm`M$mx->~+Dl_z>>X zAjShI1z<_6|J*_ZZ@sA_BZlkIo7ev8n_J(GhjRDGd0`giJCr^1qfR;JBkol?zL@-AV1a!tyvdinJcSf-A%a7{vEFQcuO8S{L@mNQAUtS!PmXfh|{d4rQ z@xArKGZh5p+_t8UJQ$w_y6MuP%$Zn`Vn6raSct?zfpw%;vbFdZ^ZUtshBGQ0C=fK$?h=ce2=L{BTDECkdL-z;TXAT~1KPzqueNvuvJbwCA`xv8)lAS@GiOm8E zaCO8R4I6)g;A%veB1z9GBLBkc*|}_NF8&!jD_bSOF-#}T7?NicASV-k6F){n-bf^E zBy^sth^<5D6c?ztD_^SkcI38D5UX6HBvtWMw|K%>uAyi-(T+1?p?JA9#%@x}SNeX$ zHE7O;5UVnBoVxhruZm<)GIxV>dulX5KQo@8d#u&K()uGE%X+A!DjQoaoo%Dm^XNyy ziu{EAw;^;xSNWJJj&i?=&{Y?|+MGIQQEHBdJ?w&Jqv%2NnW4{Q4TQ3*omeiKZ zH>Gero|c7n8#YTbd3&3OL~=XKP(0rpp=zecf|%iS-Qc0?0{eq|iEaB@>E`HWk65nRm7j=PrrYI+R6r*$XU8 zKhLaIPL`s^dS5}7;}o6p^hwbw2Jsaabr~Hci`o7w`V5vGvuS|+!98hUij=8{^2xmIRXC?*-ZS+2<1K_7u~a8YdAXqOIko08tAVx; zGD)azdTvCQ+JnI1>i#63z~j(l^O9kZs}}{%2B;Zl$*AK-&Pl0Nf187c|5E#hj21eQ zjsKgQGqLnm#>Y>2Lelscc*)JA4UI+iUHMU!7+2=5yj>6VLbhS9vQ%Cj#UcB3_R27) zn#o6_#-Otte#B;jHs7M4uxaH7KXi5}Z8{v+cO}kClQd)t?e0J8*ilHLhrwu-a-38Y zMAsxi-l*CiT^<$%Q^r)qHQ9kiV9?l?s}g#XdwfaUDTP?wHs3T7aMB5q(N+)IZl%3W zco7xS3D*Fp^->Nx#wkMfj`EiCsd$cjl6@|(nm*fz5WWBUNE?%U`f-A%?l%@})tiCpglUeG_gCfR;HCM4D6W{m z8rHk{i^on8vVa^@4;2xfT6M8#dj#h!8olDnr`duV0$d9k-@MWmd=a^&>2Hmhi%LiW zibBR|m4hyQfD7ka%mdAMA3ZK~PU=ipW#q)p6b;QK&gK1qH*PLbUiX!wQk%hwd7FPL z=iBLnEw^8HU*a;!UHPD+*WbQBmzG;hn_aVV7~#L@8ymvU@-z>JZ!DkS4T%gDHC5?! z{Ig;#aIZP zn{p2RNXUDT~@h6U|UA!n>h7F z$eG{+9!FxB9fk~*-Tf1`Usd^MOPnitBNurw5-t5~+UgYik|oLn~n#F;J!1G`y#c^!o- z=pL%V=b+x00f;K1Brby1!Ux26w0Ci>0c;jPyApj0Mr>ff`7$R`?2;BO1?O5=zAE)kszB-zy=4{0BE{m@W9TEOTZ7+{qR&I}(^PH2D8% z|NZ2%Q2tdzcb?&hX})`vcZFKx^AyK8@G6Hi)sNc|Bs7&Z>g^6SSm1mlEj8tb9i~wk z*{xEAJ=9t#Bj7u>=Ovr^UH98yPnZ!FpS1ePHyy{_&qSf4$P&vnkMSsmT6b}Cu^-w7&RsqfjK76 zSS#~;6$M{t%^z9%{gbHtxj$1VZkpuuA5;Pr22WqY`W5NQMzfZ4Om46xZy=uto*A=D zQy;8P96tY4=5tSbX5QdRT)V|I$*LOm9`FC+(r}A?YO1l8r>Sd6ZF@-nnkCqX-xJ+e z<@Yjw!Mba`i*$M9Nuzfn)$T7txX0caOAG{*_I57C)yn!0Hk%L_+!p41xbV>k)Q$G+*lcdl}0o1pzf#)La zX<-A#<(7~05gdG9o<09aD{ADWB8IQ4YE6aJaZZ}#XbErhzv5W79n6?CI*JKQgkK{z zM!K6ooEs}A)Av^EivptEbIa&@Nb2GK=u^IjfJzdj1)nfWNGn&@0 zIzQwYDv8KybBawY?U98ffR15S=!H6#6TY61I?*|&M}dVa=ppOAi^>P|E_wVRKFZiD z!H!P21KDO&gTewLEb5Gj;_}V5i%ok<^x)UEo2`rvvM!lQoUXL>+;bCow_VPrKxw4L z!zQ-s$}~ayqvWIVQJJ^MtNMr{G+&DCVGN(BA@3n{n=?AeIND!Rfa~s_8D9e{8~&kn z8O?}{dxlLDbr4(n^no>;Z77!=wZYVaCTO&ygaGo?kQxRLH!_{Eg@rxBHtdL1jv$rm zEvYEGcAiO_HB3W{qX?~0GR~r7iUqU6~skW@X@P>R1XlF?PlfGiMG zZJy44cDPcA6YLsf*n^2aiYrPo4@S>q19#7!clgY#GI1qsei4(G+sm0RgO3?GZb0z_ z;vPW{>8{3cSIn}so?7b1PJbZ`-dk739+_H#-V#gRD7|fj6bO;D52Tu3XD;865pX>Z z-#gS<-%XzdU|(aS#f_flW~II-&ojXhz<7&V$`-dJr|%m?(kBUeSNGnx<}ob(m6;9} zR7j8+MnBT#hXfCx8VF!bH4;z7xqEVoGfk(L!b&ryaq(=-R)k^eaoxMwr8p&{SR@^$ zB2RJ2)=Rg6vhAkE6UeyFqp(WeXBv^#%;X2b9GY`8UDnPUeL_n=@lu)dQ+9P(9D8pLRG#46>hi{Vn!&9tF3Y<(BU-r@;b0{$irXlx7Y~mdv7q zza7CEW{m|GB74~zmr+&5&G#Cgt@I|06u7qq{Y&A+Ypnt$+2shi>!9iZlYI6k$1)A%MYF*;>I8&|MzJHe9##JyUa3`&xzrJe zq93izC0EC>NVaUy32oyZ=r9`|?vBzE94_I&va#S1tWNXF3$-EPnx~SkRDPR2_*a@c_6Fe~dulzH!igAh^Mv7JQ=}kelD#K}vD^A5Q2qXG zhgR3aC1s_K?wU$tRVP79JoW-!pIX7BplWH+GHUrN-0}S&%Wogfya-m^q8|S!oMQNO6czPYcQWcJdQw4aKzz2&Ud>LryqYD3EaB2=2pXLi9_n2CAsiwPIcIe_ zBcsa#Y=>6XBvn~MYc=EFr80LaCMC-&$y?nc!dt|b$!9R3qPHw6tZV0^rlZp%i(5zs zbC|IzkOPjiq|BaZqZ29=K6u;?Z1E-W7_R@lX!mZRCBzhD|R@b#kbJM$9{ z`i$S z0}Cn7h;761>hfr(JLbnRUR`pMUwRJ!G}#=k)mlNJpp z9c!z&u9chZne7eu^=LV-;iv$%?4XFIGy$E5qJ~nK9X# zCAJ}(6w==fk51334N^!svwM0gjlQ!NG-HAA=Z@X&uGhg>&6kn-*A=+UFV7)!2kc*J zT(^m+H&iVCVmvcbYyN}*!FIujQB0WN5W~W(>G+f7Tw^ts!0HW2yk7$cjc5x*G zC+8RMwJ)o0Uq@-iXpW)FV)dK39u%vj?1iN3Dx2-=)@{*nuIlM%cr+zP%1S58Z2Vhu z8v?KjF;oovnT_t;_tLauQ*tKx#hNT_rqq(>Mnka2o^l-w_gY!5hce9>Ll_2_>qE3t z(hjK1`9|0*DqDV~0c;~eZRIL=9u89>C2!-jVSw*b-sY6|kGtio-8jK^-$zs5ali3Z zwwM06H-6un^@p<(kMlDhn|lYI^^DpwwSw+1t5tD6Ykeoyl?yHf=1mgG=1_B~#osJw zW$td!J>URlitIjHRg02~WNgENI8Aj)nIPSyp@cuiOf4R(0EW-o)A(uHOX&D*nh#r? zC2iW5D^?WK?OU_h9EfM9#b0Bk1V#n5T*fpt1GIwM($VK7@YfdE^tVZ3-s3q!(4>0MYTylaX-YYMWSRsAD|ALHb)Rj_+cIokydGu4Cxu+gu!K zeyl7PFBds8fRx7zc-O?0ee^-blV=S3o(yh|Aj9cuqf&c1NP#gSNue!G`)g{(NY*&T ziA`eqRwPStiK>HPbplhBeK{CVrUq%52iWP%YHA%H02jO?4yf{}_ zM~A(R6P9zciFu8f^CPSWhdoZ+vrR0s7`g9>~a}( z2^`;3BbUq4EnEGlvzO7;vXQ%==N6BV9#*aP!H#OZJ`_oN>>B)|v51|oS(^-=P0<~_ zTZ1=@Y%cFlrPQdc1h&O(o*;h=9?3M~$6vp>Y}#xLUYn}AdaA}&9T}^1ov#zq?3G@z zbe(Tv|HE;hD0wJYBu*X{HaK$!Ge;8}I2JB;P{IflJCv%rh^CC}e>@J18MKKC!|)Hs zA%f_ip$R_%%5n&pAmndQnE&_SKfZ>}%=3@05eo|b-*#-wJRlTzD74Qk%pivsXj#zu zJ{%ldBn>k0GR^=m*lbXKA*!&ljCfnmUows3s-~21$g@!}9M8qb*mQh(L&RUx)IaO~n&l4Sy`6L#j5yPHNcm@7ox9aw z?>Bh!F?>1>j*!EuR=L=}n_blTxCysE8pi%Uvm>arG&auf?N*}ou8*|>5S1}e#NbQ1 zl`sTk9i#_|(bDrPakOMB4yAsitiUC?@@aC4tImu&G7CAoDshakHY)O$ddfY#<& z-56Ez_g1Esd|2()s2^4s9`PW)BRB!7B+9;dI)3*M2YmEm*|$BB+k`d<)yf$5-58a5Oky9I=Q!TbCHjo-_5>n1z&sxeN6YD9bl z4n=i+*s+GRls={mO~s5V6(%6N$yHc$MJcz z-r5Q9g@_LV!HmUw1DMH6NYVfP<45G}o=Cn34;B0}1-)?r`$1G*e4Su#tU2Oyz4wS0 zz;@UU>i_a12g?y;`rl+L2EQ3rpZA=RwSeYv;J~Q;<)V=7Wa7@tbptB>&BdsmPqKBT%Bl1evOZ)MwF+?M|hRv5<#2R&X(xS2!#8Sw^hwiyP8`!L(m_5y1yN(#fQ>7j6WbffCOU{cpfSwud7T zXaSokMph=y7Zwi;rxiyJr~bEqBiWAmjG`V+Nt_;F^*LXL1Jf{7)Et z5dTRH1`P%cfKes+KV%g0Kjesb6yqO2`WX5?{U;?D@c$%6fn*SNVW=j68!2Wg52;a^t_+MUx@edmP!${7M9~X!Z zc!UHp@Pc;-){z&#pz69#DU8#}i!)kQvU)w<|-sbMq&{91g zC*tO& z)I^LD*p%8nbu6YgI=3VNwGh~*6oh$GV)>)^Lsqye;Ewu6c@?qucW#J^;zSFUPo?iJ zwN^?_i#o<|nEl)AN4u4TPneu+kroG3!YLAiY)-5K_3!gAe;Cs%sh0E5@hqW~1t5>W zP9f|+sRz*to9BL#hE~T+`FKYP$;}I<16vJ-RX8O%DR^msB)HRpY08XmTZ)ZF;faP2 zeof>j(27rQj5P)3GstLA88*A@Pn+r}abj*){^zfc{VVxAQ}HsPu2A?Yqizn2dxO3& z$FhR^rLH%15(BY*()1pfAQ2kl@wMHnMfO?catvY)a2*Q5R&KoY| zf3)}Gt(5xxq-K3uWWsYfu3%2fk7cHf!E`nK?>ozIWm-qj~P(Y``;O5~Jm;0yn(Vwy!7VW#Qp^S$@)ge909p#I$Kum7oz z7#M(hb@($Mbz3$>lJ_+YA_`3pE^Vi3CW0(KR=fwv12mXx+4 z=OmIYQ*@*jhKiG<1a8&yK8XAht_-2GYr&A{cBv&Oe{m7CatTKcV9nRa-9iBRNSy{7 z_-9^!?5Y~5exMz_GJH$${HD(B7E;521RDFcfqr(WqELu=P3x73Bs+{7i-|623=foD5>ww_8iADt@7p8wQ)&%pO%x6tifg>85m%Im zVQ|fvc9_-bu4&5eHpen@6^h(4)WI-8O>!P8aP`EjRzPu527kxzKc|~lbom0=LggmA z#vNR40T(>uORKH2@#RgIGhn_9y=E_k=)?QvmA@ZDFfNd5Ak?meBQt`>h}|IDN84$C zg8wo9lj2}?e=c6orTUhs6QEJq~)M zs9sg>Oa`=~l?5u)?pZfz`>Bh<3*{L0$aejjDo3a&sOhgNg{?x=%Zt;^oDW41H6@^} z3iJ1^3pKtw(z|>$$bH+LlqpNf1frAhxug@J2s7@ceeCGjs3#|9VV*K~>tNZ@Dz4dl z6;Fz;Z|r^7x#p7WU}Acg4nC)kurEU#lH4^m3;~bf)kTgo?)wtPBQy)7w#v_JxI@lW=?!DA zEnqmlOF<~tKeg8pv#FZwf<4Khkk5)?@Bq>~3DH=g8m*dbQeZNt7A|a7YoIYx&?IS@ zzDsP($%4DPIHMG_-s8DzsPa?BXZ@Qh&~)v$&*A&QKW0}x_(w(G?XSn@EXypAlcBaa zT71IFMZ*umT+KtOo17c0^-Z_wTXv#sAg*3{+(_cr!%zOWn*HNJJ~s|YAGUmbh2OtO zGrmlV@J6q_@ZHXY*?oc!@B9{r8T=!GVy`CXM!;%cU*gs8_1(#WFJ~*`AOAQm1#biVVz(OO z{J(bh{R1H9K#adCm<9x<07{G&mlcc{s?D%4!dBvAdg81V62GQ}q0EFS4?Om;Pz=}oNSCyZR zJ^^`nkcb0BatDVEq#sBB9POO{v-gHH1vM4Co|DDI^ZwKS$Z*l|cDT;HQ%mMJKEe_P z6!2?M#2XFgm521KpxYSpN}GgEa!pkm+}5mNS#yPSag?)G;Y9a@@5H(}tMfaG5yD#V zaxnkE{x#YQ><%=-Mp zQv@IFJX|Q^9l35XB$3i*(2GMQEu^T|y;90-n}07EyMXfF}kJh&0E$Y|S3mrzyoLNjShi zK3x4kryk`GjLW6YlQnPhE8@{^I;b{WkSTZ(Vb3d#Fi2 zdeyi;NKnn?MRGc1JwJ$a8C)59cS-9{_MT0AN8*nmG~nGGm2K2gr{0*6WihwxSDE;2 zn#n8n#}r{9ttH=*7H-DKBr<94b5qexQ+zSi zOdI0~nN#@7ZqrM1jlB3QnOL$uv201O9OuO?qR|>RBe*w2;9cYs+8jGM4a`VYgKH_b zHhH|wckB5`J_oBFCL4ztgJu{{eww=xxQ~ZvQG_Xjnk1GF54q)>9;Fo;kwKRCoAW;7 zbwK7h4-&TrAKhU|Pqul{3H|XZTDf&g-8!V2=h@BInwVEP8X2MnJxn8v zWuy{)TRr`1EWKwvA(zhG>;O9OiVhXxk1#vJv8~^PmL9t1Cof z=Ii)haQfKPBJL)+gDGqe%#5JpKo!=Rxg_qU#PCC|8!5Bj%FZcUdZngZ`887q6^-bG zl&WaQy$B~IW!&1w15@$mEaOrfcI?k!PRb|K^m_h^-(CZqX-{)b3GcS&qh#a>KJZ*YG83FojtwSmQHSa-|Y9@ zrEVkZV)}`w)NxBSWp(W`<#VpemZKNRAcoAS8rb7aUSOd1E1g$r;?Lwv*tS~aPX&S= z+F8bRrOJ*RmD-pUaf>M__1PkaO>e7%9s_*0zAx-0tdUl!_^R z2kC7syCh?Z{ZOX<58OdW3ZUG8(Ic^on<6^BB3qOz`>SaCnv&bq#W+R8g#_TL+xV6- zr3v3?^vhl^J%9!sVoYqVOfe^Z{+yni;_}H79IfFpnfT~4tginzu5mu*1V^&Y%VYRj zp6py!LEAdc(TTQBKzjvTRB~@ulrAxQmPRH`uFQFTaGVvV0H9nS1{h2u0;T)>qpc(9 zbxM@%M$qLyWy64v>O|sbI}|NQns!;&6Ns6m(*3>0t5bxf>j9qTQy3V)8O{RERTE{~ zzA`d$L^bKfR~b#y(j>?Ys7CQfM6;>+sc0XjL*$$|UT->>u?j+z!M52)$m7M`e83La z^>k)y7Fvz{HK%e1V0!Cw#`xuf!IpAaFGMkWKbEw@KIDXi=X_jBhvK^Kw9}Zb+ofSM zlcm*by*1|8Bhh>njo-E}K-T3D{iNk)w7|(}s4RDAE}Fn~07Y(VWv_+q)c6l~6bKi2ZM0=TBJZID&1?$=z$Vu{O304v>Pr6JijN@%%EcP%{-p z_dJwn!&1I{Ypq?3Yyg9GC-|8OoHsra;G8nD;qXRZPA-#NIf}+*; zMlIzopg#P>FHx(1URLX2|6y&OjH^gll6d|I%Z0zMSv>k*uDzmDhR<0VSY(?{tN*Ko$L?_JOYnev!jujMn zBQy{?IOoS97+?ZrlnjXZ`B$E0vZKU&Zd|fy$p{7vh+GeZhp^?6Z*_zop$+fxHvxf9 zWu@p7ijm(J3$uSL=fAmBu*2%;w_~9>)y#NW#`)->r2H(>qlIvO@FXbw7H_8lUHD~O z2il?>oNXcS>o?*j>DA8@n9I?ri%LAWI*BvG}pU;6R@6Bcr4sU6H)nX*Li*gAqB zIvm+K@5;J-%UC1PeB-@?h**Xzf&>i}hH%qgRRT1z`Q~ATzNXYE5!v6-n3L9}P_QF9c4%xlkX>#`{)e-0Wmnz;6W*yoe@?osE zk}IpTqXinl48k53dNCtr>lb$zIK!59_BAPS261ccnHay}?K zL3;{07IF0&{-t0?dHIX{&g8H4og0Ygmfr61398En;Jv5mmjiQUYWIWDM;2n-3HPS1 zUz4HcK29QFr@p^ymEzw1k|#KnvscwCZz<}94g_)3))>!AP(hSHbkS+i(jFoZYGnC! zBzf4xsxU~=O}op5@Pt5y{G{NJVo;J>_+!%+vk`@8Mm7AjtDBITIEo@bj5t5i05FU%pl)x?$2N||f0ouoh=^ZBkg=M=O^kCa)IpXauoXELKF#HmmTZS|qdVZ7K9!WA zE99KEIidW|-2PcSD)4{I?Zi3=->up{T<+i~pGZH6e+mx>g!%N}v`0An4JrTzJDivJ zD4-NPe^PiJOc`37;De{+fB6UkM+o1c{*whU`~L_$59~uY;iANFfz%NB)57SVm0`q5 zkVByIk^cn|zr+0}8)CKp5qRF`58=Y#A#)Pj2`?jjNBo~DR3FsGG$RoElgX!WFk&c# zfltWb!U&&OjEJEEK7s)?XQ_O#pze=E=0E@Y+W)3E!FU}0E%D>G#l)~;k-_GW?1XAx zd+zX-{f(XjPobMPdhYt`iI)9A(|52q0DL$jaeKf4E3&?@8`un_I4JPobN)vV{G(ui z3i+dQ0QXVkZ!Q?Yvu;EyL=z8Vg@nk*~JhibIDPM>V2^Zz7eQVAD1 zOp%|+-*j%`cYC#yb=TukDyMWs-RPXB84Gy@#E3djwYciMaBrrub5k* zlOa_^ip*NJ*;q){^KUP)n}6=#V%JBy^SAX7zDVR&uYAU3`KkO=^d7Ezy^oM5caEUSV@aW!47(i%6GgKb#VBP~0X% zS8j6IkjC+DT0_1G;*JJ#A{ow8^^)Knpd_T~iR_DOSwd%Rhct!on{1^;z(t?Y#7h_) ziG+0>nIf{zh4M^s6FFr|0`H%PN%;j;e9UW2c{=TyF?ad(F1Vw|vU;zmjpOdc?va-u zf!;Pg%cyIV`9T-Jz)kSOVcXG?yA-tLGkwk=i6*k|-2^&cLd`mz6t%SNmD!iwkIPh; z#F-qzPlnEN%?gv?8kxdn{#!p%`K%wr%x|01_7J{P_d z)ZYiLhHmXg{*sXsycj&GUDQc$FvgX`;gMd$q4|R!d3nmEGE_`@tA0dZw0BpQOo*<$mCY!Cp~>6 zXYny?QeGhtb6xm zNXK-Ml3df|Ey_3LyiH$1M$! z6l!_YfeTfuO>L35QY%=FgE!SuZO5&z@Dr>&cGrD$WahY)Jke{G%w)XG2t^WV0Rzn} zQ2}m3ZhGNb6sJsE?c-#^JD}nk0=kX1)_vAdZ>XUCTW$jdc~ez^$#--2SiaiXtU#@% z?*a|%F=^3zsy3|e*;LOjwbL$~u|S<|%-6u)Vr!anb!w<@Ouwct>fzuQ#FV*ks6YAm znj`LR*xHU2HRF!@=T@;QYX@76S^j;is&dJ@i)bE|(A~{v$k}6CE!QF4>Z;EBEsF6r z@F3%+R={NgfsK4;RZ=9p@`xp0;d&yLWp$Qw=8oMXm<93%M&A@{Llh zjye`kg=g{WxGa!%N}#f$gnwS18-*tF*{}d4Uo+ESF=>sQmv8ITi!`w!dx>oWtfbTFWx+7`srs58KEq`3WI<*X>GSAA>K9R38Lq{M z?mJx4BF3&WC|7vwN>~cp-S)2>q*|Q=5k`{5Gfp7n4uftF3bvPTGjDtj$z;!2rYw@% z+SY1JFZQ0;WyqUud4s;Om*NoM@IrY1%=C$Dk>Xc>{(0#QiV=eEltNF2aH9IC zm{hD}9tx*nC%Xr}#^RBSh$+Tr7a?ggs+NUim7qUC%bA-V*og19a4X{HiU8g)!_VHU zL#S2|Uke%zY$*GO?)$ku-pu_N9!l%{pX z3z7j3mS%Yh?9r672o@!jPoIE|Tq30D;2T$W-3KBoj)=vAE>_x-s|&hK_+&+ov8++p zV|X_q0+Zs4pbJ!A5_47PdmvN@1`u_)noGK&f7&tss7M~o$Fn9oH7c8BA{G!=R1TN8 zmb9*SL1)lcXt1WKD*m!6)olV>`IRRx6LAAqFoasZQ18YX)~{D~S?#S6pCB9kjX+<{ z?}l=S?(J#Uc2{7uiNx@s?xNzuNk5RkYaot+u2Fzi5n&GadDSFJ( z-N-$Cd`#59*A&pOqcL<(vZjr$T|7YZr_}7)7I|2sOa2aDZ=U%&OC!xRN5cDg<0TvF zfGu@kb|r4v*InotFK!S1k>wEOF!v^Ve8=*yBi3$@RMic8r*wC5%OSR^5BlzvLd^f@e zZPR?4puTfrcN67qJS=XxgD>KPb8gA&5~oBnLHsw;_J0{s;6c;Z(UcV#a8-v8y(l?i6QTPCda1 zN^_Jz+`q(fbeE48PtHh&C)-93*QJjW$T_}y92gPm2^qz?;g@icF|dwyYhssb*U*V% zY22c91n2kZZdBx@?4-*|6a-BgEvoEnx@2@n`fCB}WJJju%KnvW(cSu^%0-4=Qf;|< z%+9LmH2v(WZo$?yhl&?ZL~pyySo$I-QAtw?oNVxLvVK*cMIxa5)1uCS_N6y<*pj((E9TgWZ3oX|F7t(dT`23GIlhYG)53##r`Pp9G+K z>BYo5_J7RFtuYr&%~GG?@=hgPfjD|Jw*sm&R(JAEu7qX4JznkPqOm}+$=B8qmnbAw z^owaZg~WXhmy{0~!*5LF`9Exl1u=EVgct#MjELAq!N$om1{LjtE|?nQmSG9xeul)vwi_ZV)f_$A(-YY@r!QI)Zs;N1GjKV{3>rp_sQkdZCx^lQ&_W zUX>9OY<|`Pm>c3=PUH@acq(8{ccSWKPt+f1z9#3;Ic5y?tbrbV#P4!YCRA{G!M#Ge z3LVp+oD*fqf8)FphIVmHE37jS=8e!t>(p2{*T!lhM4M6CXd_<=MBMv8+V0Umgty)~ zujl+s`Gv|L{E9WN1|c+6klcXJ=0SZbG9r4m`h15Ch~i6$?!WJmo>iXXJkxnU2EDts z^x(6*v!!?lmgU5E^#zr9L>rh>{%UbqY)jz9W;Lq5aJ&ipS}FZyUSHx5ZxlSVd*j`4 zL$k-u%Fe(a!xSI0O^7b(iM?rX;zFq#V=!P$5STP>^P7Sl!q)>RQ#a{nd$()6Nw7&# ziL@aOaGYUFMOQE|ucDY8J>}Rcq#L7B#1X1$D13^@X9+Hl!i>5*JUZ}N=ONcy(JpiL zu#oi9DI*`u&P+;0ag2)v-hQVQbOulGy{z zd$th%g*ZM$9%v^GtS>gnraz0y>iu$SsnHwksQHzBsH$gP zKzOxbwXtYow1vx@*@hi^0b}n{rK0Y_Mf^LV`{SyWUk`rgbYqRRLm(qZUJR|kW~3Y4 zeG&&X;g-1yPgf$Bew6}{w~Rne-FSVbR%YR~gi9|(VG51o>Ae&}D_f25xKwh^-L%+d zAYS$e{~eKcEsW}?)*lv0OkBf#ibV7lfXG5+72MKp3_f^jdIM6H#d-p!yxiPNA4HNy zk=s01OPz~h+t`+R+Dw)>A)CXA%)SK3cvhBX;`EUD#wCf-~vD zc+0*v)yr`k-qv1Qo3Mluo*vE|cRYJ+K@8L$GnmI4!Z%-13$t*CEP~@21(X9E0NGqJ zL5AGNnt&YP4KKUMa3Kfy+_ifcC>um~vG^pOpFs7Ukk>?1Z z@;F#*hwC_mLg1%UVA7-t6-729t`6kEIuB4j&N^)IfZ&ZST+!538b-Fj|Mx;012bj9 zOF>;-NXj_C#A_mDOt^EW9^Aa<(nzden%X1u1^1*;@Y?(N@}99xtn4>nIHuqB?~#j( zxUZ6CbZ13D!D^9)J0x$qSO58~e%Zvr%<$ut03pNoV6v`u;iNrtqToMnGh5XEx8whk&6 zJz9&Ohg8~O;5M62t|G@QMPcCKnV;|N2zG; zcOym>)jk=l3_9)^%Fz`jIze3AAc#Q;dGyuol30=^wgO)p#8vkJapEc#JOkerOjJen zc*obx21R;AkgCu1R*Y8I*Oow!NMnD#uDF4Xr1n)jRXh<;wD1(dm(2r2)Q$}cN8j^< z({_Z$Xd<4X9U(F6QnBF}(k4yZ9iNC-6;L+A0OZ$V2V(W>7P`p|y;QB&Ip2n62aauC ze%`5i1{}OR4UUup1Ty&7Ox?J%BRq$$9$||=!lI;^16IYTluzemb_(~jLDzvfj-mWI1V=Mn= zXzF68a@l(UNbDOw(=jVQPBV&wb7Dr70IH5sBU0g8Ol2DOa1dXknbc1`rm=-Obh!M&mTD8rIZZS5WQ{Ny*$0<2 z?aUQxMs_)v*>>;QrAhY8O&E8jdX8+{C=cH&TgSbdL<8a$lx;H`v*_q(d6p5zv$OE7^~Xy$F+@Cf2`O=#y%EWnzab1M9Kf;bQkU5ETKS|N*Szw zGBBtdEGlYeV^eOT4}{v5NFp5n*)C84Jb()4H*wgl5bSNNJ#PM5OjJpr4vn`%^I(Mz zsG=u2=Q(^HARqM1%yx?vCt6TDhV?d6vbiWR7jv#LIc6=hD?5*}uQ?+iBhu~Tf#kw@ zfHBlgn|Qj-y3Rs{7pVZF_s2A#50E@m7?;Jm&S71YJ|9_@i4ZV}kPopMPeEB?wYL4t zw+~)uKWsW5oj}MMy_3&r@lZdW|FN|UxEX}XQ>%OZu>5N|QI^Bi>@=L4Gv)20zLHeA zCYq@U5{jGMhlGA*BB8Jh5&{B3cp`h#EZaE`oZUum?01_-Zt&lngQ*K?e`{PcPbg;E zKk_x*5*8DtoX>PFK0aS2$5viS<)|vA3C7l**LDm7?7b##BCU!h>INHn$$IwysTsyJ zCJqT^&a)oQIwYNxStY|3DmFS|&(lOK6HRaH>a{{olO)_ga$ca4!*qq5T_hUT3Xt1u z@fe#lLo4%(p|TTNYn@b!Go$Vs8!t5RI~^U;`^}w_*p?f!>)LD)vOt5&31_x17n^I) z=F{Kmyd}<{N5L+4$E5=A$K6tZqOKU%$Qp|Q{>8puaWo!~n=+mnLvGJ>h#IRzQ&w|W zFH0-!V+y3zm^=Fh=(BsZ3l-YSe9k#}(jQHtk}OJ194I~O582U6OfZ+R#hnZpJ{lYv zYPIJ?m0zvFvXPSeo!0e-yOwqg1*RzxJ5-kn`mA5~S2*l&m?>5omIMQ!Hx-*F#VmCo zR{|xB#WcRHZiA>pni2nA!=i2X8UF|T80#9#!8C-w5?n7UPbFW`4q47O;xN3(rx7;W04tTU z-f}rizrfSaWiBBox4~ok;riNiT@`1V>uF-YCbRfiy%o;QnOzeq7$yCgq7x7NG3vhO zBLwkSQU4>7)a@8D&ST)5acAzQmuqyh&tO7v1{`h5M#B$S8v*rCL>lYPkpCsT|3t0- zB)nW8{WwtOC%iC}n7o{{*#81v_Ww8F75XpWl~#jC0upUQ!vTM6Lw^Nslf%NKJc9}s zpA0b6z*R9gffRQ{od4<<3jh7ke_1cb|1az1_&4jtVEI>kM)Ln#^#SW3oLpV!)Tz*n_3V(rXtRmUz#R1AR?BbS29TnZmcjh;qjc z{_KZ4l$Ag_K0b|sITz>-CrZ{`Yb?kqLr;Y%#Onq;Xk>#;slhh}Fd& z6T(5Vvm~rMYL2(iLK242uK&W5C7GH*w-_&=L`r5rHVoq=kW1D+=sfl~C> zCeAvo?Tqj>swgFe*US7@-XeU$QX*8}8i1SNgTe_7QmeTC2+vBCRaEuU?=ad*N%^58 z0w}CLF)7DSRZ|n6i$+WV$nELZTLh90Ngbi@oy*d2h{RG9%Cz#nRf$M7S>8 zW4cDc_+c_xvyC7ZS91fH580E`mEM*4EL=;Lv=Q<9^ocOy!5^6YPvL047iKoWkF3B&SkZ1i@|e3D^4ar* zv{{lySk<(PLh=MeQ#&@VSzfC~;Nt?Nbmg%H-S}=u41xw0AdgBPUqr%nM71DE4EI~R z>}Zk86_s^$S|OhmB{Z6gtO=DRbUspxNwN}~d?7OaZ?J0Tm0&_st{J?UY|;HZWo3cj zG}1t@ZjqD`K$!)1mi#$!G?Ws!A7o4rY9t%7ULj(eKRu2sBf~L}83-GG&?r^N!HzsI zbC3;+JD>lGsm9NM&VsXS`r;z7T_sgG{xqFijKD%6RY-s%ibJKDjw9oK>grG!Ox_-T zopY^XO!2|{*@)xdhhW_c5S%o`J?f6SU4|i!R)YHgq;H$L^1KnMHzj=rxRDG!lYXEj z=l$BcA!T`aQxKGI+#ZfM024$I#C$UvxJ7?NA;yCYyoi-N!_BXME0WH2;ooJ%i8Zr` zl~QFLJ%xKhevV8Er1gWyM*bip&f~u-*jBtk-4qi717vGXBV4`jy$L-T@9e%o`S}+I zAWNbFg5kUd=$E^~Kv^#thEiiv8}jYZlfme(<45u?dW;L)yMy+`f3x0Qfp|T4*{o=x z-qmF(l)oi=ztrHiaDSsE-$@{qUl?x=zp`5uLp8Sl}Bxu@rK>Wm-Tw~0! z#FHe3m(!o~7iR!xV$=_TW2)(iT-~TlqJhOq(J-k5?b^aADYaL6m#Ju+%VREmTV}r|4vze@_+MR`fEc%Ak6Lm|p+TD!7li+-%~+DW_=A>H!f!dDA&wUISZ9qs=ydE)k}o~m_{S~1 zj(K2#Tk`D)e&`!ESNH1XSFZbP+###m0{cxhVePcP86o6)_@`B;ZKjc?1*cWwR>BCy z&KQ)VG_5?H5=wH=`kc-9r{7Yr+OWAL z@lpL?`lx=@EQT%IkgOttj2}IQabFwv)&7P`oN1x*=?pwz)_O;3WhDawM}}leR53%r zv@%k*Gfo7N%5I)5P0ZVldcLMzgjLT93?L0_=V1xoKumwJ!amke#w;aJ2dDkgD)JrB zMb@+0&~Z(R9QZ0i6bDz9AB8}Gu9m>C%G_M9AIP*eLc4mc1b(4BU{;iiT9jHZ-2q>GKjHfO1UA(}&1y`c#O!Jwk*mhtN_8ag`d#zDU6s?H96xenU33i^2{1x_!4>b)%%h~GaV(ZY| zt|LHyCO0QOceS6;-v_Qvcdp`@ zNHF=Sg~kAjl`&|-qHPA>97kyn_{LcbH6TDbVWx*IUnl)Xa=llA08DguyzfMGR;|cl zv*QPr?V?nQ+AZt%PqRGtu$4om8O%%i;u3Z>=TmxLom|g91iHDJQ0cDDV@385Q5)!@ zRg;$lCiAPD114mr4|W1YM8Phv8!P<-sizO^Vx&$MdWNSJ3TbJ28}nBj0FmWC2wad| zPnm`>hkw^Hu$xY%_CxNRP{R*G((fnW7sggYJkgrDI1z5edqwU0ov@W`^hjq-8z66DztC#P9;hx`qj6 z1{W5C&pHf$EXR6*+c?b}XuQS@%(UkgIg=42* zk=j;+{P(Y%6_`+EjL&^zDb*Mq1!{(;=XTRv9{BSCG|(4@5r$}hLA4Gs%(TMqk$u+dd<-A2%tR?E-_8}lo9XEd^`$~DS4 zR&Des-@1zIdqnF+LAi17*Jnt4AMVU^*on~}E)y6?0{s1Z>v6uyR865&kfL6{+*2IB zhUX`=CGe^Qc~Su)(BiY$4ffZW`xAZR&T*NXNcdLxA}0|cVSVZiSh}?z>Gfu*^dy#y zepTbwbL_H3WX-pffqlkZu#{RVOts=cQIkGj8cr?w+AdY;&jlLU8zHLH8#L5tS7#zC zj9ai{I>3-R-n8<|u--sdEDq%@!@xl(|GE!56sPY2ugL{ikfW!0cK_ZQA7se4WTtEO zxkt^!=lu19@bHw(Ll#Bi6#5qKhwd+FYl+OgHrm;EdLk^o#TaHb(c?4q3U>TZVIf5WIL2$1 zc%GSB;$!y#*dY?c(T>q7oi)wI#zACo1(B*zQXTh=WRzVV13i6{&@ioW5hYRds6N-E z!6o^DNv6{dqw&5irYdIxJP}n9St#beZXatC_Ml{@pRn^RPq^&R)U4xtCDZPd4o%do zkUDPF)~O$6w7pQ4UNu%HRlgB8&q%O`j>N%E>z~a4mhWpHkHOnw-G&T|nuoGQo;&Zz zU#Qui$lbfLx>*dAnqXCoX>KsIHDaS zd^yymTx+pSEla~L5?+(`7LTm)L1FLm%`$Cf+)XL)tBK>lCK++?vG*Ol3tSDVC#UBz zZCe(A$b|7kDoj9HNi~V`%I&uSPejV$v`Jgaq6(9Mn2;$=g#=GkX3Pc#A1sr6k<7F; zX6G>Nvff8hCQ1hGD}%ml{~h|B=3De1;AnfYTtQ>)<&a<4+9Uk<5K=vMveQ9!eTJ#h zKz6@(QEYJ!8FoRI`5l8-yq_$f1aK8y8_f>Lz{)=Wg7Wb+WGp~n`xA7Rh*uU>LG$^v z8^bwC7MV*N(hTbIp*y?eWet1E1f$v5GUo$wc8}(j>1@HQ--#w`VopeBr}`KC`)M^7 ze?O7xX_n&L57x!LDzowx_ht7LoTcZlZ)z)K0J#r6!Sbhk)0rt#>|w#7EWSv_{ChwH zYSTLr;;i2b!Y_%{F{T#dk=5ECnnYzclmmxQwh}x zhVg)MAKew33udXQvxrUNcfY%ZW%ydn9lr3=t2kmr7!ECPI(GCx}nF zPc79#{@<#9Q$TUAwKQJx2N|DP4!?Fb*;FF%4@;DM>kXoLUY*oR`I|D2eHlw7vuoNW z$CeGq@eo-rVfl$ubUa#0L>P3bvn_LK96k&i>t8cS`hrXUB4@=fNoIlr$A zdZ3vcnPhv_tj1Fo^{txL5|G43KE*etE4UWX}<#XyATDQO7MBg~&WlGg|zafDJ>~a-iA;36tt#(7s($(M_ zOZYP1GUir5_m(hnP5Cn3>X>5f$r+Z$Am?ngM@U25h9pOAmY#(MXJ{6cm2k!Z=H0}t z{?jT<`OxW`_sp<)yARu93F&GKs&C4siPD^+&aYwe|9AL(KRKx?r;M|nDpnQM$pxN|$E!sHqIO}SlXLCYV z0PZbP$3Dy~nJcbE8=@^N5%KR}keK-ltHNu|#Othfx!HtkNMmj);5`bneo9No0wnR} z@OXTIwHV2;qdVN;>T2@-oEkrd!^?Y2OT?^k8V^+)y_e0o0YudqJ_p=HSi@EL;tRmV zez0|{gb>k}XrB1KBxy5qGSU{4++{&;tR34BCB!HTjO8m(|vBN_YEr-lhdw)bc-2 z{4gG$7U%cVq;q6b9Greuw_UKYG*D(U1$f;zltpaM-_V#BCCWuWNCYRo zb^Y>j%$9Oh8lM=MbmC!So1IftOCXd9e+Yu*EFZK}H4A5>b-3dU{=R{|XrAN#aE2ED z;6_rgCx>gSFQGA~Y3}lUn^*Y`QwA{s_!(J<1)QIhV-3|2!n+nEcaU1&0~5A)sj^dc#nQmPFFw_L;0(c+jacb{)a`8Un$u8~ zhiHNgQxuk;x^qLU8BZGzyBZ%lfyktHb5WVP;bi~I$OKAzX|2w*@|wpTZSDR%c!*LC z@|GK3=ocq)ze6LSmT{%eDBQQLSV`&!&w;XDz(T-o{APOyK?6O3wAPOP%unqMM%UaJ zNdX>zH~hQtd+JO>3KgEo5qF41)`QrMu845;tD9P&G_sA_XxIWFYwgtYi_PWPW<`AlK%@QasFEVXy z!0HdXs5-ob%|*^?sp^S`5MDed=-E>D-snI^1y|q3!a|Rpcml37VUt-8ir$X{Y3e8< zCN`6hmM{(`Zbxk@m%GVcPd!aw`E=n#q@V(bpJe~5FNg@?&otmat7#;zakBXGquR9X z4@jC;g~8onb2$u&d<6=cKyA4_o?>vo@Gu2ja89N>N0w`5I$s2JGyMih&)T`7jgASSxS-p!D$VXf^J)S$W!^w3H& z`m#rP5-C1X>`ZyIW6Z?w+3nGs>$0)S_sKL8AHUk-)Hccb0oPKq@??Uim@U?L0I=0aT zRaKbH?KEXtAbPB1-F{_vqpqs%_b^etw6l-=F?8BrFADMe%@$vyb|0_x&8I3(MIs^{ zmq4J8K~m+RMzUcfE;$;3ypv!`PSQXR#xp7f`Pw79KMp=vl#=^u&%7LfR|4b!buz;1 zQW+t00y|!z(wwaW-#G0d7`CUj8?Wu#GGIt{RD%+`VB4YNBNF}ihyQ#KgI@<>eHJ>$ zf3gi1^n5 z(GGEe?1DScNH&dnB~j1+3sZ!PWU}O>6`ZeP89y0)EBeG!66$e_R=vTXW8ah&8ZcCA zXInLxM(izvNvi^`0FutZ&%OnXd9!K-Ghw5S_Oy<^-R|p(LuMWz6Rcs~fKBt*f5_HW z&_?LHKvC4HK(<+8Yd&kYP1$~Aw$J{8EiMxusrM_M>9f!~CsLh@%vqrxBqHn2Sl;}J z7N)Tp6*ZhD9mUIh2@!>DPw3W2o zKN|I(oY`0n;WW5_-ZOm}x8{=hegQnyZ2d-!Vr{8PmhzyIJI}yZ98hCNX!5l7R%g^5jG$+>k69r~p6&R+BtZ~%vmE10e zoeaoTTV9vv_$)TqLmyyS0%U|}Qzm{N-i^4 zJP3IH*2q|J7-jR+=L8CnPh}o8u9&B^F8^+w-?pI!=$^0d>`w-EB-XL0!fG#E*rn(v zP|es;g*Ygt;L)4nRZSQ#4!`UykaOdFDlFEO5w=(ZF|@OYhgh|XQ_^wA?Koe3wG%f! z{6a6bV=Nww>mqU{d0J%+ba5UfI(U)eI2nTCZL!5*h*}h*jNP{j9(uyLyBU9wQP#J0 zcD}X&o-)u6dWlwA*^Fanetx)7H1Z-Jf{9%yk<*ZIlu;I`uPr3mWQfR+UFtKifO$UH zWT+|I++#C|hXq5+cXTx>$mKX>I8^^B_a{7BKD|xvXtz^3S}7HvppxUVRbu#q^N7{0 z^!6Q+j;^H4sdz`%Ld{FZA|x|FtV-sg%!O19Q17<>^Rfw^5f15-!Dn~~IcJEHXO2K1 z+iQ#=<0uJB$@HbR(S7jP>hAp*{|uRD?E<9k_@U@Fx{n*_=u>rCH1>JT=KXjR(ec+v z+L}o^$$9p|9P)A~g9TXuMA+(e0XP_KZ5_0uwf>{f z7t4@|<=K$AuM?YcF1$Ss=XLe+)M2Lxs9B2uBNk8VRk8aajUgsFH%ld-xm%B+L%kw) z5kv^Pp4DTLda7e0$xLc%5C_$ts`;2?Y@e!gterlxIcj#x3bd%2Ok&kn(_9$zEqmql zP1Eyr;>#5y|xDm^(N)Fq|FpP(8Tv3lMjD3z8Cyh~M(kDH-Q ze$f=sFo!ygf->N9^C;CGWefvZRE$$BgjPQG;|F6mA8#ZW$}@CVxahW~s%>mrN`ID_ zf`8ubOA*1?dy?|HES+N?sJGGs6cpn5fa@EXYPpBwj+v;w3`OfF)oHaY>zc`1u!&o- z(Yx9mh7s>p8_e1)vW+86IuolV2N@M@u8@(Zp&Ensh`L-lukm@(RBW7dG~ua|1ueL; z^D*`lg{k9p(HXw-SmgHi`(Mq0MNLCB_C`KyXx_ss4;Oec0Ww!p%%iS=0ChVP1Q#J^ z38h`vy)TIcmV({N556C|QES+Ej099ruGnzzNm#*-sxBQfQMAOg5xTH+_{n}|-;|;8 zX@EXalh&e)&s*%cj@~vM`Ul&V3Rbodn?^)^>sR%-{pw*&t1~GktdxZrtZ2Vfr_o%X zI}tl(W{>Tzs7h6>cSLOgEkD$DV*02R+9%r4vbh9uapI$v^=or@g(Q0zjCtAw{xSQeyw+Q^6|qTPussLqOg^t?HjSy3i= z0W~v8Pz?`*Z5g1h)OK|(-#_=$Iy5}cZ)cf`+{UhutSvxBSBi1VV6ox0 zu91)WKvL=O z_Dw|FcEzM^f~>cBI~bicIDFR3S*MYQE^{N8Tr)pZPuu=_L4_cxt#-nMhrMlXV{#SL zre!~+9X_A|T2?rXRtN+sHkClDF+Z3Q#NYTr8S)YW7>)&Am$$T;U*?c6BK=m!=FdSV zZfyrH8MJ2|Z4AnH&JY8h9*^ak2Os#mER{Y@y|1=>uKRt@^t%+E8NFU3G)fajJDU0m zPr|XOLK4QST%2TaPm+wKEE30HDuLCQ+8bu(N-x+_Q&M4lMFJN$n6c&F%;L57J;1UZoCS4>{99J z8YxsIt#uB^Ld}Nkr{AAg9H6Ue`jfEm)3D0Y=oAmQY54@5vPh`yf+=DqH>hinDU=lY zLak>fXFEr%cPW&UX%_u{qDVhz$X9-oK0K8IP(3-nVecKZ z{TcbNpP7G-RwFVS9x?#1wn06#;(yejF!kWxrKWhw++dEZVUE~1rP+8Wuznzm+{id6 zqUkH7P@Bau2rx`oa1<3k&(6UTMNiCJeIj6u8R33Le(EwD5pMM<>ZTr)$1qh<9(DKu zE`H-xU~7?fojsms!YS}{M*uIw)nSPbKG9y>kI&*;ny|FzW@gIzx=~L00uW37w7-UDOouG z(O7aoYb$B$s4M-ax&$@oy+Eo<=tUSapp_XkI`GOI8t?x;@egEy&cglwgDik~f4*XX zv+w|8mSD61gJF;`sUm7r!u0CFBqB*VVVcYy;au}Jl&TUK4AkfY;<*Dl-p#oW`AzTR zYS;Zbx6-*S5F+)~Sp5CZ`jbA@d- zud4Ixc}qg^G)D?^K2pAA=_JL0xI|Gv32$3y)WC@3K?9_~?>!+hh*?pGKP|goZ<{;Y z_zM6RYV~Us*tM^nZ9b@;_cNGsf}d~Wpx7Qh&vxcM_zU-3=2H>-l4K6xD|6tCAh)s}skjlHLxfeoXT$3NqQ4h6c^)Mxq7;08s0V(ZoEteLmPUBZy`=7%&3C3_!s(7zzXkhA%%| zTHTjV%JkfU4r?&#OewcQGmHb=LIZ|*a2Que#Ha;RTZaYe$RAj<b}rnXmI2$_OnPjm>_{1w!*XtRqw-a)US6E$q{wk z)<@<~uq`Q~QbA&PFOqdW0{S}(0#VN>p+Rrc=go=`j1S0Dqa0!DxJ|Uox~B`R%5P>Q zZd%tdH(-LfZ8i)3I>i_9wBVTLnBEkWxk)sQqeMl$LzhF~b%00^Ge8JqE3*S)2H^0v z-3Rt{DtG8#C|(ACBk$xAMUtJ(m1S%%H-dz@bFM)PNa7fZE>*Qp^7TUKW#sisAk>Ct*KHh5~TDn&?SIL9ieVaHH(; znh^Z6d@d$E@#ruAUj^LtzeYHy0?zxN>r!yV)fi@n*|aAHj1T%OHHHwv4PlwZXc*vf zhQmJWPdHcmzr)#L{>L@A{M%_SCWj8dfiyu06Cq@Q86ZIk6h`BnK8M|nG3wMc9aI-A20u3gE3v(H#waz|Tvq*+_i-Yy^ZZQ4f}zcr3B zzLf%;5gI4GM{F%v9PK3oLDT^Fw9_>2G~=`%h#HWI1yKX~%D*(rp`1dj1FV78-6y3Z zHCyZsySPJ8L;6GSLj{uketRwPbcn4WQ-)M+!?ZvT%WA}xDGDcQ(7jhhwr1WYZAJaU zQ~B<9o5P@+pRjxyeK9FD@04fRXp2TW*Z@{-!xN0M1LiNM%9Xu5o6W+Fz0(90^6tcM ze@>#IY&*!$ek5R)8&e2@BL+P9J3ue|q7?yoHUGeuA*Os;%)^q$^2FhXya~WiX5b;< zrm`?kUr@;&dO+w-m&8(0Durngt5t?tmZop`ayF=C72Mq0homZ<8L z35DcEe64uDsn2O5`Jiw0Na%&hayc;yvsGf@{n~-Kxmkz4iMScrslO?)Ir-(rbd#fatoXG4%4vOcJe<9PYGbRx_Kj+ zPd2L6v7HW$6u8&srRlqvIiAL#V2Cb$KW?S=6ghQ&VAa)B@A@j{Mde*GHh;nMYfwsh=ppVkr@@J94Dybc~h8w@lAfX$(#Y7pLHqGTTE zoVCADV4>Mc%*READ#}an#f2wctms~1jx-YrVsPNckYSs%uA6YvK$mTn9!^9kRN=Ae z8l=2I-nWR&8k0_vYHV6_nB2Y}n{)6ttevctZ}7=Ig|hda$u^ygG%G}%IH^B4_r#{btwIEaxu2g@eiC6N&lw@d$%hXyd7ASV#mnrjI`!S zG$`u4=N!XJz>+UMm&5vWq>-rygi5(aUCZ}!?XZ+o`BK_d43W)wXU~MfBSdZb3G#3j zn0_nBQ_O{Mt<+#+5su&}v)#ZU5p?Y4uuWqnzk@b%ZZ12h9o})S!K)+^@r)37@D>J< zq7L4XpZb_5sl%G#cpC&y61 z(U)c+8d>FvNP0>@C4}cYCD|9HOPj41zZwk1$c`|`=g-P6=I06H!=hBoEO<&EfF(uG z1cW662$-aQQFY@8NOfCE$mbb9@bH}Ej87EL@OvCtwkVyI)ZdX*J)SotnyZjH6v$Z- zCFY?Q^Q{zwpP~Ws;Ex4YvpnKAGCi3`lH}0@cd?P5j<>-eP8 z%Ag%oJMcYA_nFpD-b3L8G?|>=4IXolvg7B zBfQTr09D3;?ml3|60!Hmu>9kbWh;@WX| z|FX8r^c`U6@Mqc<@S%2?nvw&`KFWehLrw)g$#3azF*|PkNNPYDKMSR|k0-$G^%6Q0 zl|krbVZj>-(T~Mxg{z2?<8Phevs=YNGdaPZxo<0WxUbMQD?Ls1UzcyszCZB3qI3>~ zLja(BI2}bRPoElV<|f|!KEBupQ5o=FNncZcXny=Qi-Rk~v+leLDwH9g{dv-Dopb;HUN5dWK9&q~W~*>)LV`4qpCR6E%+x@`K^<5GX3aa%o^lKEcEJ*YX{_{8k9 zgrKyFAjhxh0U5-AG{a;xV^}b_cLyuk+wVgkGvr zJswostgJcfoUNZ_IZ-$%ybE9tP;nkr+mF7nct(A;e)fNB+d=E+cv`dPw!vZRaNsuO zHrD;NKzu_YkH2pP43ti{Xv6xI2TnU{S_lFRadj>%8TkCsfTt+0FR zAU6~7oC5b1wmTj+3cceE2hH@n>G}-Ltl>()Iy2BaN~Cv6_g%6 zg`7Ge!}XU&3+-HhJW3+D^@JAE+896Bv!jY6-$`f|a!LQv{`RFQX1PrZK4xU5x7CYx zL$*t}rCI^6 zU`I3h62(~Xy)-Xmbs0r+n`B~Obd};A?t#&a)5Z+yOlCVjHSfgZE!)~7_9tz$VR~xs zlC)IKFn}UXC~Sic$Y^vr6M=BIM}JTQrA}xV#Mv=Ip>67TTm=X+oQpS| znjCE~FD%hkQ=_*?oFS3RRI#q_rYy7SEv5SU4#3t|r<(m>G;{H#Aupr(WAj`VQw*br zEp9lYp67YcZCxg#aNj{yPvfetsZqxMih15h)y>+M!Z2Vj+Fm|FtkM80AZQqie0RjeWHtAtz{~e4w zCtwP1*Gy3inum;{SzZmVtbVpB~)E6vhTWKyz?-G%HYT=c*RS4H`>UMJoJ zwVCUAl5qq-3m*IX}}j{v%eyz4vLhGS^M@jVqO^u2v+jh8jPH^EB5CE^pC z|A(u849?_@_Hf~eZQHh;OeUJx*2K0Zd}3Qq>`ZLiwr$(ioB!Ttzjf-=`m*}&s_u{7 zeXpyp-zZ+K@>d>S@J8wGXK6vX^Kf!1`?-S0pmBfNQ1ecPLUvMMdX3K@{?_8gRPST4fYyzG$@RQX%Q^nNxH`;r?suMUYUX0Lk@Jq<+VsQxyH1M|b}7XS{YgzMd@Ca%*v)9z(KyGu7C|z=Te!H9>u-B0fdCqYGzJev*2scquLOYd zp%4ohjuuZZ)~7`a+Rr}(P&_&;$rOeO}UfQsz+;a zYin0s>oxyFmn^Ik!)M^|is(T8uISA(tp=6?%9;FTHd?3RU=q5uHf_Rx&CwG7w(bHh zM5U2nX-Scvg=TGy&oJYrWoB?#fdpVokPn-zBLK{v!r%@6twfKsd zZgzZ<^jB~8E?#QbsNOM<>dv}V?>{rCA5oPKo;hK*ZiZ!9?0ab_#AYVdff=|5QP-Wh=aIo-3;>4tN|uD9O6Es zV~|bJ+2o?Gu&JZ zacEaOTpC7LH*HCM1smZu*5pT8INtbqzc1W8?om+K7Y-w-GQ&Wx= z;znB0eaEhWkpny^Pn14)iGk$2`p~7;vC$5->zpx0a)>lRFw`P0~RB5~Hn z#RVI^u`_{psZK$5;$A9*Orn-Aqw^0nHY@H2M9*nyTG}dZ2EG3$C>a~B>>z%dkq1Ss zWvQkc>HA)m%z41|kM6#gARvECq!pg>M3sC%0UEP>}5`TEosPcJK zvgJ+eI23Uc$7k0@UbSdrYY}Fn@2YO4_j5#hnV;`dT&<8!h0D{zq`I*hkFtv>`U77N zGVsU-mjX__M3Ajeuc2P^Z?;%nq-M0XU?X;Wa&o#`5w4=wzKqInNw=x`UT|YEM|cJ|h*hq2bF+K1>rBhYWE-$;e$zHEXtH3L%DNsioRkzHV%JqcmN?n!)zAJkdjowSQc$s>%u$EW@9EE=+|pRyGyl@t z>6+;_5*o67gohwbGGw6{9nkF`19>h(V}j>ky*xFvIH=x zas738h3$GWmH+IHi0sEx&=l0^RlGGO_+ z8t_7L7JAV1jub4Uln0(@5=R38_r!R1W5V&1e&{^JlSTdEuxrOUZu zmc~D`o~4tOeo59;MAl+Dp4~j(_<8>hLy!7^Hb-mjO?9Rt)FjeSUZb1pQfL$1b#ez5)-eI-J1RPfhNI8*_>zX zKDu=9g4My32AZ0lo$jB5MU+lS2F_IM!r$vDN}`zQg}t*zaST}%nr*eux8)U@Z-BaJ zvk^^BSXLOs!heqM*Sw*4nS6CVi3bKvJ)|u@vlP|hl|maQSpa{XUV>AqZFV*XDnrAt zzPl>4sjh`xN$x^NNcinOy+pG19*fx_!2|@uJiJ4_1@tH#*Byv&`h2V>q|&nV)7i4G z?xrg@1_N6e?^UB0P!Ns77UknK3`jk>7s`03{>YsUpukM%7?`X>ER6d1HUHH4m2FW3 z7dc=dJ=;1*DC13icH*yCR?<_2$qCV=Sxwu_V3q#y=&udS(9mOQBz-zy0mrK46$SCn zzgMApQR||NvG`FPD=m^HSSDgB39}Xx9sOB02*UCN^6cRe&#{tjQ=?Yk2(TD`b;z&b zn6vFGR1veW*FN{~dxVWbt7PWHsaOz@Br?%gWrz4!8Nl-|-P^{`6O=!v^|lO@utv2+ zZhWXwNlkHdR9f={T|X#l>0NXA@RCTxpGe zd@kOmRA?;>kg7SEdQ|M>eMyZ$?!%*_;vdB|0(afEeVzC#j*#dPQ|-i}X*uP_(}0mw zy|5ESw`{&p}j1 zx|6CjAX12L;(ddfSY{0Y^~%rr|?ZN_J2 zI5O82+9^Bj;gy-W3!nnAz753(6;NkLO`e+PJi~@vU(<599Wt+3_?GYrdq>IGM#dO_%T#QZHl6Ns`G#A29P__8E+#n9b>NY@}Jz$oJedWH1cTf*>>u zQ$S>DN;{rj0NT#qE|lgs&4{XrnzC#0hHdNU9%0+8-8?Ia_}w-w7c6V!#s_&>q#pa1 zBY$srIrw}O)J;ByY11>Hy{2MH)S)f^VJ$M-Mzew+yD?jJN#_lku@5bsyjPd6LNvae zFe=GypB|{h;L@vgH!VH*m!2Yl7(KLRhj?_*sm$ta0Jy7%TB*6=%8uLud0P)sHD%eP zB)CsGZKuCWPvt|1A2{Y*ylItrZ_RX%PiGZXXFE`VD%@Ybpuse16i7)BG4zvhE0!`? z@PU&4GwG?*n@w2>RL)GjEH^=nL~7@kZd*56o>{Yn09NP5YJFM~IzZt0iY$-Nok1Q`NgQ63AB}9NiS$|7Y_4UnJ!JOx{^|SpHv= zcZWk*OkmDGXd*}rWnl?LrTyv`WEEdQ(p{C|9|KIXZX&_^8X#avjP<- z!O_6jzHRuyuh1rdpJjPH6wTXOVfCQlN$D_#qzZXzZCb^RY8Qs9hPsw|7W$%A28SQn zd_9F1Pu^WuZy%lM{6{=vcS2)MSx%QulbH|dcE_aRwMo#TdhQ3egn5FWAk{>b?WP_2 zvhnAvzv`vcpLASJC@(sakSFXI+jd(QQk{QTKxxl4c&SnXWGDTXDuu-!j#3*;p&1nn(HrA65mqRN~pjk_Eu>Fq z61IpXK1Xw<()KQXc2F_4aD7}#Qr-mh?h*zJl8dDCe8VyqfuBLeA^gmJqzb8>M!?8?sL z8(V6D!@}6*O}#e4_jOS)@Nc&>wLH>*19s>p?yBeqchZn_P!DmL)TS>&fWePdB9lb^c7$;ZoL3dvHAwixh zfccGfC3YbJBdxg*nZwc<$_{3N!f<;k%5AxZo6p?qMA}(&%y3DHP~jnMw9XxI8F3()ybi>+hxAu?`>m&l^|@Rkd=r6RE+k4;Ft3{t`%qtZ~)ke>NeRnU}1ZT z0!-);p>BtS`Tk?4U}OYpOixCfj*_%9FD#VKjnvRhjRT_wYx#~GN%bAF9r@jzQ_6pP zsC#2O-&){><(aKKSO!dpy9Y2FZI5O)RV!i)`>ZfK-j+k&kU{WUDnlTXJXOUr=nC31 z?Se`#)JF*CG0%QWp?TVjC-RjV;F(b&fB1GT3;BqBkyAv%{&RCXV|nG$n4qda$i4px z&)}n6-*st3%(10iqL{vvzG|K9IpY1`+t5G=NJ!cULomkbdo@`@Sws;Ec`+c~32%Yw zRvng0Sc939xhDJ{Z6J34W9EMl1X};5buiJG@ZUe;evpEQ{t_ei{hv0M^e+JIC%K9! zAM(Y|da#*F(p5ims62vDSBx3N{}yR~LHe&3}kN`aj8Qw3D9gcLyQ zR}7wq8Y+dM2=m`6Z7)(F5wsAp55^AE|Fm7<*I?gm6>0fT4Zmto1633?;{Rz&q3Mvn zTiX9~6)2*d$5@*(pSG@s63)jAB-8K{}yR?zdS6L5$Z)k+`f0irBynE zyozrp_7Rfw1c~ou{5fSc*NgBG$Wq zXiNDrv*%f;eO-qKubsE>a$4<;d0qeUA$cF)QuH-+8hpQfN$pd|6Zu05d;a9|KmDni z7zj4z`H}aYQyUun0lO*3zQL^S_?x5bK}M-0mqXQ zKlBqwj|7xobDW%zpzi3Qctb{53O)N3T#<)&WgEy-c!$KT0`CX9c@yF!{{YF!s-Dwi zoLO$d@LSFOnfe3o?)?kwVEPZKyea<77?Y0|O3x^uNJ(!iW`j%Uh+&y(!BTk75fjL~ zp0?CSi$3=&hb5M6%n?t{^&<1$&p=-wmt-8^JpnfM-jF{&=+NQr{>}-}`x7wX{*yKi zxcdE)k8FEOkq)mzcootEQ)&MhX(vBp(;1?O#lXAoIn6cVX7*BzxZ;+x)l?!&?#=ZY zvf{(D*0i90qOI>U+ce2F)U@8zy`&lVUT~$fg|aD&T0~&|MWW9~n-QgmPT`G(nagx+ zSO&P_%|4HKKK+nr_8CFnWT$U=hhF+oGFq<(`H_s7`%qx#u)*9gQn;$T>T^M{inD65 z8p~PCFnwr6z}q%i%61mX8z5Jd;G7qI5<1C}L70&Lp0OP}zvoYW8(2J85jliHOdffP zohp)Oog3A_kRiO5IFnRh6Qs{m$ILE+a0dX=rcJ|_F0cJw%flH>G+(Rc?D$y{(MYrU zD9sB=)4>+46SToAGm;l=kanoabwvA^N=?qS7036B`eEHmf?sZZ(h7GY>hYxUb@A{E znS6d+)agEA=;ND5sI9Xx2)Q-((J9%DbM|SMZ86CGnvF&=HTai&h+=w3zsW-S$PADk z1I=Q3WFI1NRl*41NGA~|%@CI13V3e8eoVm8fprJU!&{VGlFt@1Xbk0O^_NSp5r)Fs-;Ls5nP(lUj^pB3J#s(a2ps%=7<0dxP&>l5;yKR5-i4@3j1H$;>Ly9iHpt-BLxZ5eltTo9wI|c$Ypy{F68W;`bU`~NC8%c?ahq0 zjNiwC@fcBbgVXQ>;Jac6vIny5&}WfYsc|-`)Q)ypn8V)Dm+92Cq-&UI!jtmgJI|bj zratMY8qM_q>EWaz5MLIPi#GrX2G@k-OVf9<4!y#Mv&HPHIHz8UuMf?y>?{O4&T{RT zKO)WqBsNkfy_|)vf*yGbc_pGw`0fdlM=<_rT*XUG@I?}e*kV-29-H_vVixGQi3p;k zTAaiP<~TxPJV!SWu(|#Oa{0Ke zX~R=0k$bjX(rhK9Oc~QYUZEcM-5)#>mwh)rC@Yc|1;|A+1IC;fBxn>(b0Kp}1zS{D zv27!l_jUJ!_X*Tp5$!U9Vo0C9T&4sq-zo!1EO-6CA^memCU;mQ?2e1Hl zZcDPuckZcf{%6ee5r=9T-_%B|5B&%GC0(B}E4w4hs-|$KY!;Oe34jb>rah}YOka!4 z&?S0Tk{z6Tvy>WQW11ecG)x}Zh}N<3(-kF%e8g#=nFj#7@tzzR=T;nWILqSKw(qxBfdkd zurEfcE!CFg7U8W3oa@#5WNbNa$L~I!SDhOPlL5ekv~tz|$|wXH>;zt8&Cmu9NbVXt zWHqbE7@3x`V_9NaK3Y6l=}l+E;})nY#oT8-ieJdKW@pn0JcXc3R!Gv6kStdsCfCEH z{Y~6PMQ-Jm@qvx{1Qj48D`J7u!_7gtZ_8?&<>UqWMCnPj9Y;Cib)*aaB>LBOGKUQ^ z*bS&Z_Dtlc39{xnGvunVIY(SK!8e|&$*x{<$YqVrY72}-#-N0&3o7iT=vBq;^Uyii z0H3%-&O(odtAe?Ly@J_G;Q(q7+ahy?ecPM|0(O}=uq-P3w`?a^CW;S%X?1CJs0r;# zSt=ynBCAv%l5`eU4Hv6x^sGXSOgb)>bgcLT!m9?(Z}r%>%-de_QMy>d4NSGldarAsYh)NReL=H^Z;GH>)U~X2(u=YqO*0N&xpB zS`tmM`Yc7&v74f}vu&xrADlS_#HPU<1DeCVKJG}~hoCElF5cftB*YS)8P4VVjHyiT zX>K{a{k_CFPLOKaV3wnjjeso#k3MWWZF*FTE12aHNUpJT1$+C%N%kRnRI*rHamxEd z``!~y)zs^&MO(5i5i#KaxuwFf8bELL=&)dU8^`{y@)Wl}6cTZVCDJvs2+RKkq^^!A z>164~=-NqWNeab(y1usFYu&Q_5z05YXXEw7V1X9}yX^3ZRK2C#h<5qA1Nc_iv#>RU zN5&%+r(@30mWMb@aHRQ6B%}qT5t-}7QHrc_#f2Eme5YUGG5aU&1NXsh0Wb>&w)_Q= z{nJ}C$DU9v{sTez#*`27gyk!S=X-3F;(Cbh{tsU0R(t4=VbUW=_JF}+I5MrU zN0;Iv1P?v&#W;bK9=kb`{qo*QU8&D-hx8M49i&7Q9FB|rN{(>BkLY)ZRk^Yc+P=ItzaU>mt)XmXYQ9siZFK#es3^5n@^`cF`r!;5a!3!6y+y^Dhf z>=|bCEcIVSTI&ITVTUD@(hOGlG|g4#eYR67{aN*sY_A9wUVopR*&53*^eMWZ*EzGCUtPMa*;1T#8pvPm2Jf1 zOlh?mZ~$EG+CkP&NXb!;8-mspbf}7ZrPHMcKv(Ks$9cd^-g2IKlcs|W@5v`=*ys+G z-J7FD<@D0-<)hP1XQz#iiL=iTu(}0APlP|3*Vja>BCJ!5-J8#}G>WJM-PNgGB$q2+ z5+5^sUeRO_$TNaY(Yd33pNo^r;l1_yk7c_ztfsv#@yWv|*$K<8&CL_TDKtdl;JSjB zyVGV)z&(JW*>;%hO+cT4h6%5Jl{K7zU7M0rd=5yatKjiZCaPqYf3b1fX+mjpXxjRD zFC0)vBya+4Afx{u3s-#7vOTSCdBO3WL=@+WD6*n#<9|CIXSukgC3k^%-cZiCQ4~s zMoU+UW9dOr37l__M82igB70ZNO zgK$Jd>(e4LZ))YFvr>ugRxdrL+OF5SSl{_9yLU!nv|hd3&W(*!!BW|%j|n(t>@2r7 z`ebi26M6Wj zQ9LniYKb@r@7*_#(K=aA^EbVOsd=b+sh%mNg6mjTNdeX!o-l!}7$F#*GOjhb*(64& zaZz@u)vYD=bL}`B5W9yQh$x^WpsC6(?xzK|k-j zqG=ajU9Z#)km#xi%(w_|S*?$&c8h0X{i9kwzA7$M`*LHDj3WP12DhPjT!-eC79g61 zn$73a>hx}ShI4(quvc)SV|VXtc5fW4Pat67w&3RasF&F?Lo9qu#svWI-a8ojfAOU1 z5(Rp6$G#;LWERN{V|sRs*i~^A8}GPZjhK?%$~-`F6`j8_T@oQjAW2yt<{|Q!l^T?m zP-=h)Oma@ZHwHgqXF=osHuG|%I5{uOToIEqb5XUCrN>wNvNUXHSn!!Cgb5K5u1MUo z=MkgQp_YVy8Nok&x&*AcE=9vJhDW`t8?GhCWObvA7s__Td4D``jaO2q|4Q1!vz1RU zDnU}Jn%g?MXntsYsaa`xl$=Y}d2*hLDEse$l>zctLzdvl&@i&_!HUoL+L|kfEKHrjNmbv36>SLbO~s#%PZrc-H&! zYHwXoc{NA2ws7GJY8!EOyq8sH{8x+@i%?gj8X8Uurp^IdEjRJe3NDyqC5GP`9^AI= z8IGbAJI?5H114ZpCE74aBo7|7_I#K&1%EN=I6~GT+W{E&63K2;Aii=QiPLds$e!HY z+FBQ{q@|0hahPYRtBPdb5)DjGVb8)g~ zf$cS#R8<|HN10OcYsSfY?(L=aL(|B_2&ShKX{&tmEdUqsz09A>=MVlXtJA(>@}7Jx zD5A^V8 zz}9sxy>#SD6L!88MyxJ1GUVx3edJVE=D*}6TUueh%@u@PMr}P>TRuOgGmVzr9cyVP zG%KL6gy75)H z=^wRZZ`gUQyw<*PEiP?bNnf39PWcEODbsjLJtk)GJn~GcxvekT%*!<_@tm#qicg4- zaZWHKukpW~duEb7ipX`OPNng24Zg6sN{s8+>;kzkV6Z`5gn)_|Fld0g@%i(K1xS2C zI|A4$AJ-=CS@8V&X{(Nr;ljw7q#MD4y#wZ9wc&6)HiWv6w) zTb*M0UpG(;WdXEJrVBbk#em`ZxmNkQC3_9PGW+?$3BEICn}Q|BINh=tFFC>O=kT@B z-dQkLWVWRcOX@AXI}d9)r3B}iVRD8M&yZ6fekFypaQ^57qrGd0b$!ak#bID->V|7) z5#cRR2=hDW^G97&_6kewxb09W4r<-GZKnrpT|N0vI!9Ki3Th3t>c&6nej0yZj*Sy2 z{@v}%m&Z~sIZ&zJT39#iy@4M7IGkXuH$IF?bH6ji z8C7CR-orr9s9t`?E3Uw`s;UDzi_>H~0?2jxjxwM@T-YWj&pQ|&aa@)<0mKhW>1`!@ z4GxyT$&ucuF*Euo=q1LM`dq(R2n-~F$MNW`y$%f74{DeD*NeJijP%Cwj4&h+bT03} z4+uLOIx3vxGD|Tn+SdvnZJqVg#p8Y>+vL4^mXHk#HZ$$eg$&u70N4;cvyr?ppdS_t z27pF|!GsU~^;CR=U$;$e8bh1Tddzy9Q$}pXcoLCqh?R94--VUR+4Z+wB#%I)m4pV@ zI#N4Leg}e6%alW7-Hvn75xIjA)!DfXHc7Z1+@56LqP z$rITFl5MlA?%%_EI7>Zmj)zM!!{(3VbO0vi=d_kk*Ts`rHiqe4gFO=O8@laEOGv## z;Bn0w*D8EeZKv*3<0-~R@n_&CS;t_J{BhGURBSE^Im0?t&#z(`x$Vzi#F_T>~a!8gONKMiE=k8$x>^Hc2$n4w*u{UNpKJ{LfA2qwhcXpRX_B|9ScnnhG(G65e) z_$=>JO*w;19?kZF<_c~wSK0q``x-6L*U7V{y$WWY*ad*XE%RYQ({DJP)lcsPX}T}ce^LiFII0*GF3<}A8S#Yr8JCU+SzgoA-P-K znUlsGl3e{!dyK~ew3@ks7A12;D+W=)4inoi!Rn_a9RiTqNq|fD zW3Aw#{O%_zi7X&9>{ot28aFQS0k&4-9cm3#9N|v>$?QY_HlaB}0-EFG3BRoH?eL2< z=E1?e^#~5Cq;Mw?_pjXwrM-=IEn#S*#hPuTEEAb@I9gL-*Cf=h%B?rNPl7iFUP|2V z$nJ_NQWHIza%vhaWZh47Spe;OVPX+jOj@oMcVI`m)+_l5xTZE+sfOhbJB20{TmpYD z>FNK1xZZ^@n^CsIT>;HHB(@g3<3A*$pUEDxf>#7^W3mP+q-%lPdzWu3V6$MYZ&7`( z`gL2DK1E**H@XvTv!0Y^dK**AQ-xSAOn4l4&P|eBC*bDzP6-FQPJlh+hG>rpuDG>? zF~5nEQj^#p077JDQP#z%X-v*~i~9?_>kwZm4dVYDmOQ})XVYcUwyZ}Hfe zPBvTi5SYQwMj|RwcS_l|hL@PK?IV}#wX|%G2UFDB+V02&%>lOHUgLii`{cv7r|%0D z?TVBh=C-hN>0Mk4_A1>q9wzzJtD0|;lYkqv!9*7NNv|TOI;S$H6N>{!n^@w(j{r0C zt4m#t>^1wuGUcI8dB#qCkq6UOg*vS|VKS9vzHzH@0oR$FCTwqUS0Iaxanzu@xGBCV z-T`VwGHO6KIY5MEM*AV@m9V4u$+qUIw$9{{;SuZ+&2`3>!hp7T&+Hjw>4$BwK;s}v z8gM1PhOBH1o>qiL6%~YB;Y&{hp zh4`mAEfvT`wX5HD?Qa1`+kgE5tRSU}j|;)JqrJ{MQ&K0TV5YaqJeh3RZQASG;n&Z-7dZ6 zeB&Hq=&{2(J?mvqvRcHS|Gl2da6W~2g2QZ}=@gpN)X!lPvz*rDiqd2uYxi7grm_6lO*h??V;A8QHKvCV7fS=D02;LK1PLkiGz!s3AcivPz5S!- zk6Op+@JpUl7qh&etl>={sXkW}g?ry_kxU9gk&ddYbC{!>O4br}63& zb{%(%RpH9n%gHX~757I$CwDi|b3`5P(Q2Yt^o)~b*GJseHgiD!Ww-swi-e-7YaS5@ z9`~}N`VGgYGFY`ZrVqlk+!w@6nC}=;pWPx7kuZ}|_h=v!5ey+fCtUisZ`5u9ObA0* zK1Aa!%EV;^IWZmVGvvg-=g5j(Fd4IK$b13({4xjz!`0BrTgY1-GZ^JM&HjRN98W+>OJ9_YEuNnAcmo4`Z;*=(ApxvXJGbm3Bq;eknLC( zvp#P#414C%J`B17LLg9>&l_XaixSY|P-Jfiv?hl6j)tGP9LsJG_3(njHPh9V5@^G$ zdVWpdTlqOEu*hMv8JysZK1tREwhz+T{k<{3S_6RDDeu!Qrnv*G zWaMaJ?`-D?%f|X&9*z<*lZu_Ht%Z@Du?aC7D?6|Y6rL6sGYp0DO@0{&fc^({aR43A zz$t+n!%(kStpBCk{6~_pva$W&O~0=M6dr}7gZ$q+0*OYU%79xXklaAfF(__8EE^#u zzZ|hVb3RxqKZz(ijIbFhJ(^=42!x{lLr}jZIF)bAB5jQ2YT3hP0tMDy5nV4(XqH%)$q7!HVKotRAEO2N45=@{PNUlRpzbUQz2S&!y{lt=mW&WME2~|)m~@r>WAW@ z-jeOAW-K*D(OvMP989pwS(T=Z!{FHKDW|xkXgl!?@kAaJHDr9mEeshT+D>w$$1AmZ zt;>A8?g@7+;Uhba4-q5u@#Cb&J%cEN%VMsGV(4^MXp-O0kY6iQ&z#G3h=xc}{H}CDyO%}!c^LK6 z80Jd5S5cbV5avp=w=EgKYzlDUyoTDS`Kuq5Q@fW^ zx_J&&i#~S+^;a@-eITWDaZ_LfeeNVGre?2>G<9{Lmvo8=jC(S&9ZXH~AEd~zac|mV zDt{mP}zOFhrcbFb6Jiy_yr0(>9MZAE1XA2PE!EnA(K+8 zs6~EG6Kt#SG=@JXv=-CxFJU@x*gfld!xsb|G{n!~4|u3Z*?@Tib_Hhsf?>T@q*}y`C5sk=_w*k8T<{P20NotgI3y>%vw1DFo zVX!G8{Gkl$jr~k}U60)Xy>b0Ny>uR$uX`9M?M5`^Y!R>)%TmRR*g zx07Qf&>h-o}&hNpMb`257e`UDFkgy#l@yYl$l^+~_)~3eWx=eOl!-IeeIS z!bW)C930FxBtpD{yHfAep%yj~d;b`oC76v0Ev9twyL-j!dEvI@e2JPZ?DYxg&-O@j z7T|8G;(Fmt&^LH>@ptNSq3jZGtrt>DSJaDP&FAAuVgz0y!Dt<5$AO@uHJ3#nNJUi)yb|HN6k<&nI}KNSaZGM5z+`{N7JT{NHkr@n|9Y#>6}h)n&yyVyu+;h4_GL z>w0z=9Whc$u$7;X+dp=Pr;@7&yiCsx6ZA)uZwjglDZAh^*0v10dRG3`aLIfM;vKRX zU!{4ac$1G(b+>%6Jfav9VE>4a?>5CVZv5>1rQH1w2ODqw?F@ea3aLeiY3d0);iW47 zGvjXFTW6h(+a%nQhDyFMF@Z9QZo?KJ&BL;m*ou!PLxY_CL(S`7Q6Dy_r^Ep_z?fRj0snB=l z_q_m{`4V$X_Y0DI$~N5jDAV=DYEOM8-}!2^r_E}YO_RmiRYF7eoqJH{+hr1f zZx#Ah^2*~Gr>2FpjQAdzC)WO7?=O~aRM3RwfG4(#_mJhMD`5RNl%v@zE8(BYw=vL8 zt}C;*6`kaeqo6_9*AVN~A7fWS{VV04BslajbWe2=%cMJX#ejU>wIMAHv`1A(cTB5Z z=k(u(ZnYDnJn7x;@mH)brmjtZ;%0=5v#ZTHo2Ajw%yJ;MXBYwMpn6XY!V2BF0swx> z+8Ur37gM)^-M74*)l?K(52^GSn|k57Bc|zjlOqdnr(~ zTj4!->CE#;1oQ8tz)DlmROJH+i(ilXomW7c&8k(~#p)#jcjcCp?32J3xpE`R66avZ zG+UDj`v#jVnh4FQ@S1kxYC{D|x~qDBr5N&%y!`Mg71jCbkZwHZtks+xF}t6U7)56{ z%l%;biH&*W?J0z!-YFJfg2yB7+08?f$sO4p# zB_o`cku6>~C*CEaCJrZFxNaf&{Un{5kH4+oznd>8vAj*pAg2IOrJggk?PmkOKi6NI z-VTh_!`TFTb|S-~oJKj@(2$_bBFm4;Ge_dhSS1{FS>?jvN~A6m0a9J^(GIa9uH^c^ zu?9o-lb_EHGV9rVJa5zY*N5=OaZ*yxO%u@AjOx(lba28-8pFa~@|Pk7`B(W~Z;y9o zQfggvW3#Vz?~FuoWM=jKIeo^zt+D}g{Fk&gf_CzvQLGks-BCU zH$G(mX+jIx=P^%1&n7}IXA$Wsaas~CvKWKlkevm+)QhK(#)UJ~v!{{IugQOijMjcl zz|myQR!$T<_p0ut)$Pbl6HxAE)87hBw@PS4?+aYAv9m?^|CFKDM?@GrI!proM)_=DFtj1I`Wd4#ACx4<-ou3Eqx` z4-x(23gim3uiL7-tedWTtXsMp*&g~B;u5kE1mzEats15o%^W1n4;dLe&DUd_GzU=w zd>jJS*Xs{vEL1;Ojjuqp(wEAY=$8i3jQsJ?gVAfq>)Wg1N9bqeXX9t`XYgm5U;)v8 z2-P&wDb)SZz1f5ChsB4acg$wd)gsXX(TwMV&8wPs#Ad$4ecQe52jYiohxAtQR;k^z z`Y`~(qoY%yYC7TG3GMDnd2sPfLdSS3oQT<2KirNr?b+~GBmD3o#Z}Dc-;P(1ndQ(z zp@qL%;unHaiARd0c4AU^cyYla9E+a+LR7EVfjejnH+BN}oOxt&7{7jWG$vbgtfQN8;j>SJMEvc=% zr0dRP!d!_7EjntMpl1noB9y3}8%@YY<^x6HL{+^HYi0*V}m};WC%h z({w<}06{$hk4^H?$b;iw{-!OB5qAFQzXAcv>%Qgh*zWG3mj-&P!s+H(7#w2RBt(qd6bRLt%OUvU| z!mU<$5MK3eXMj&--*~{Yq1NxS9zNd(HKJ!2{%lUNvoC*<8|r%uXSxalLbabz=4@jH z>Dymm=3Nr<)u7Ln`5o50QHJUbf06-iJN(_9=tm&d4*jzy6rEfLOf6;axh??0YgBzQ zYgz(wUT;F?Bnrb00XZSzFQL55@d@MC$jw4!`fS->ho;kX-5~uJFdmRMe2_6RuLOWA z?k8S1`r;WQJFFvcoi87HjSKB5e7MH}qk6bEE3n0Bz4HgNW5HL5XUs&8ngGHaz!2^; z%c2t2Ag|9#dI>g5bG$N206E|_$z3p)9?9`zna)UL9k)=2x4}l|lfm`wswVr)LGAtS z)eQX84<**Hi`Nh!QQAPYwz4eInBBiB*HAsh>?={T*9GUn_Nn{w02VJlO0?`2^D*$* zUjpkH?tNNfCBNZswsLhW>yesOM0St+k*rrBGzM{dciVPL)mY8&{{xgjYrn=me`Nm= z{oFR2zD?ghw^iF3TZgT|_K2<7HrqZ8J7^Lu#<_YKo>gI5L092iBl|tEg|_?bm)dpt z6ZuO!|NGU|IQQE%aEvj9(pr)#_qC8MGf1dxs z3w)*L&z)0JTvS+)KYLc5Hgm@Ge`&eisp@$iC1=XyN$%{d%#8H3i4#&&T**m^PDes~ zTx^WpCgX!g9?LW`D}&XmjI7EqemhsGF2!(OJhC|7pj5X$=Lq0X3C zAMB$*X~>At&ULxikiD)?JgB_btyCK}FK%^Ft8Pqh40=@8>+W%T2+bPVf0aRx$8AVn z+_f;_Uev1ShN~WW7=)(Qp!y)kz}S1GP*SNU1lkxhrdY)gZ!J2NGX}X2XVc(0!@QV9 zTz$^0$|{2<_L1{FgVMO$NGX0#_>Jj!E%dq|iPk9JU=u$v*aU;6Eyk42?t)hvF8!Jq zRO_qMYJDXls)tXI?cLic3WJQu%PJIaV2go-hQp3UPyF!f6Y>ENnT`M5q>ZBDe{O zi9U^(N+UKp2xX-aXf>!u>B}38Y#DITim>L?RlRjt(2!d(s6LXtf7KmL#-zIXW~eX- zAl#wwbXN(&lc!X7C=ryoZx~dqLe;bNdPjShFB2A4t6+<-3~uray74+5+*EC(XhtHc zC*E|_Ek~*|S1P<1iEL7g-iF|rRuA{VBFLPTr$nk%^oGW&S5@$g<&URLtj1bhBqz|* zsu*1>Rv~7%Ten#2f8P^v8P30XkR9X)HTmw~0p`%dtN2t_p{5N?iS)FKscsQd!+KS! zS5fS|tYJ-4pMV`OQ(VkA<{huErP^gJ@Sv+zcYVMGhq z6K;)RJe5YENib>>IY5tr)~b-HG96&CArD3%TonrONktQ2f5dt>*=MUtgf|-NH705< z&vUR1&dRH63|3e1)d^3jGC1#eru#VLy83Z7%Y;uP|2Pj4w=7ZX8ltP9gU5%Ha8q;x zBWh;m;cEJeR);d(L(v|V1#8rra3oTrDm9UCq;+7dYlW(~)JUJx8ChE$R>bya&_B`R zHfpwn3|F{=e_bFl#Jk7jWN!`L{wFlF@Kn_(9j(ydE>k_FZcoa%4^EMxS z@41NU7-sLp>Eu>w_)&u|vZZdrRm!(42DCJYJ<*0Ps&zrISMXs-a`RmyhrHD*mzcqF zd(fp=Jp2r7FtupJ+|p%P#;b=_ z6gPj(nxM4y!LPevZ;am%;o7 zOXqsRf4Pe2;oQ$Cg>if#Dbvopo6j_%!YXC$Esvl&monVkunwLJJp zj2b-uqi28^nXy2W#oW1h;W_47%Z%e=gZn1<;Xzi>r?SlreF3(4Npo-?Uc8jeO~HPN ze@T_$icsHF*n;~M{0I_Se76f%a3yz9c!BB|TI#Ollr9B)AtN!N`)eejl0MsKz=aV6+ z^ZS?-<1`Y~_6ozHR&ae8*Ox{0F=U< zjE&(09m2`$F=D*S035LKT1YYM-bL_Rz!8Refzj30%E!T%DeA_0YuiFb+<1di zx-AzERUiQySs3yEF8IcGBqkW~v(X@KE<0wULENz+1cgstls1_T=-XvDFrwTuLTOe& zbYQCGW5K-%gXgZ#@ManYs8PMae_$e_qN`Y#jYMy4D}F3Q>pP%P@w+ct8EwURxr(>( zTvQv&XYLd~XqyJc9#e1Ro5Z?i<*5cW1^L1x{GEXU6pEayFj{bM#+|E86zWJMF7fLt zMB^2gIL>)1O7%*tRZ{RwK^S9lYg>CtQ%h#qtLQ0)H+o#r|9gi2M2A1(e>qY1jBALl z$3Ons{}jlb_9mK6c~n3pR2T53<(EvKkwqA8;sVu{nkIOaW8cHd44Hdcmc%ZO=%_*5Loj+fmQlQ(Vp zq?k27{NbsiwjKX@h3)e%e})N)c%&i%{E8v`$Gru$3oENG(kfe53$M6tW$S+dE($KM zm$9b?6bm;XFd%PYY6>+sG?$tE3O)r$RaR6`m*K1mAD83F1}~SeQwR>1(1Z*Pmkg8* z5|=-x2oASp{t6%gmp;k{E(S{r6}4?8K0Rx~g8EKLDOGA~~LnvXk$>|Ndrsx+VVP+)vv%rM=c7JWqBYp$SWj(20;rY&C<$8JX{blV3gy+a~QjX&1I;ZmD=eo2y zUj4bQ^5JP%GFXS5hV)~_T^6bh0<8pz5nF$50^kOuEl7uuWOV2`@+ndZNf4e9p6sj- z;l)qmMYdYE@HB>~;rcdG3Q0ikpT=08Cg1dzi0IWXyHqoOZ~m7$R)+9PVA*iBBef&# zKzbWVA`5Zdf|NoMkb4r(o+M0oQh1`%9(S};=*W6B*?}w7?=|Fj z{qcy_grMLdA@!T=p^6P_UTxPPoGFEiA;U${@l`UQU} znjev7tr1-oYguotDvZF>gm4cg;2yp4ja_*|%SdgWP(VtN7-+l#xfRISg>}fS!>p~t zOs&IzOszww)`9zouoh3&qE3l$Giei+k&Q@OkmqdW=>$RfV(@h46qNM{0l^Q#*!P2! z6s5r~)yjM3?{vEKYW^;>wXEi#a08iu#4zN=T|R%=!u>*#K9qr7{tS-L)(Lh!DEQJ- zgEx8klpGW?K?qKmEMY*WCzPlS;hr;ch*0)_COgcD#NK0n;M2|C#yy9>?T2sm!{4W2 zs+S#3FADZ9hevBO*=Km!boL3^f*fP}*~_F9FZh^s^Vw$~u^v(bcm(&e0eb+;0rz!A zUJrG%?k)iI{n1W~mk*Y`+!-tB&xCUOGro-ejMH0Io6BBeFOp2W;zPh3z!zCB$p$=s z1n39sWsAw{fV)`*84kFsAO40N;4IGevOQ!dU{|M=cOlWKaIm9O=HP`+lD=y!2_0ZB zu;)k+Re#l)7sSJ7y7F>Dw*7b?WlyukomnAgt&u%Jo9HQ2>L5orBu@5ZXC;5h#?Axb zP!HS4HfsJ#EmtenwhE=WrNyONg>Y_vxHw!H-Wsm8vwI*wwlJ(;wjS3?5@z5YBn@dJ zTiYpCCTjaICO$4k+HvjBbFH|x={bU{UC;5SC-qznyOT^nVtB`Lq!mc*NVgFY*PD@U zLHaq;t$N8~&Sa1V$q;8g-0DU^D`w5g3g+Mk6p9fzhaAXu!~bp#ekF zF*IOkz|er9=@=R?G+<~tMkz2#fl&&KQXQid7^T1{1xBfkQ3{MwV3g_@VPJ%T5e7zB z#|Q%>42&=^!a7D67-3+9bqqUyFzmpv1H-Ok*nwdOh8-Ao9m5U`J231z#!+A#1;$Ze z9Mv(70^=w!jsoMTj&T$iM}cvaE!!y^u6+e4hk z=okrLB!H37F*<+oh$ zsl#O?PluRl9WEvz1MLidRoZI35CIdArXwvx+JdwL=@62l=iWx{Q=}BD(6U9FGC|p* z>`)FV(hlXQ!ff&cd5gS5J|s&!0kOqZX47Xn+?L^v&bURWdQW;V)QZ7;msWPt!XiZvn|0@pw<|9Rr z!bp|G>xG)=bQrWAW}#cVUa=6Bx07E0y#1Z|r2yTX`4a&4cIM9v)v9z4$>&-T-Hk={ z9N>=5&@nvzRT?~h-x=DEyJtE>ae$W2{6PShcjmtpsI_Xo zwTYdfLV#Fjejcw~gobkQv=AEgF+k*X?3{E<(az9t)Xwe@&6&RQd{kNsh1 zKTL4AJG3=-ZRk1Nah87ne3*8X9 zBs3#5Db$jS^3Ko|p#!{|q?tCc=k|me@xrkfMQ&&4;#~9vU91n?6w*TZp{no!PG2&V zHw{iMKENq|K+4js4+MRSa?yHcXli9Qb!bJ(NoAvQxiV52u0)k=Wq^{UxD8H&-C#AC z4Mu~(AR9yjGZ2HjJ9SixaXY~+>*j(i@*7dl+ZoT}f-7Ovz{n*e;Sw5H!{m{)A<;XF zG|UVqPEU?@Q{%+T5>j*|O*k7!!<3PUp|OT;B{eC3Q5kDUD29%kjBxv58NW46(gc)8eC*Nke%^lIQ{ zE2@!yd=5~}Fp`9MHOP~Zyc*^xT`v#ls2AY?^^6vhr`O9fTJ(A%<@I(R36HMZ8O8;5 zatS%2*Ey0)E~o>J0dC#SJX}yK8m3LW7Hx`#^^O(lFA9ZFr5G1fq0smA7lo+aSfb>| zD!KhtD$ZA_(AyHy{n1~;FL;f+;9MPd0qXpJNXY-Y+?fKj-G?m znpnSdzCY1EGaTNzdZaPCw6*qpTTRvfrLAiIvL@bEjgI$kZPoI}HN35V zTHaPIZ>vVD(c2omfb)H0(@p~!**psK%3&8X8NtJ?8Ik6ZUVGaJ&d@!>BmU(X`$R&Y zA*NV!!WphKYxq=+i%H|B{wX_ zWl8J?_*D``lN%C4CZZ>bf~H#Qno&0BT$v!~Wjj@Mba$#34`b*AUCf)~xfqRsf|`-Y zL}49rhr+lOvA8RkRkrXT^oA8kFo)T)PPh{Iqh(#$xv-W{rKBPaVXpG~&S0c}3@vn3 z0+qwuG}Ii$$ZX8rSiG^aBe$ctqf*AxJzG&2+RC@m&XTPHSsc6J95Ikx+zeu)TfDs| zIy1BMhC6sB7Hf{(Ky`YZtN$a^%W?Z7VKGMicZ2?VPH&yUxbiHB&YxmF(ycGycl?*m z=(wP>j)YRwO5f>4{PN=ucW@Pd?IW3b+D0RGm5ik#>cq%h^wHGP z)R*KU@(c20YA?M#wH?nlkXOkW^x#j}F)PV<)SpV`kS~SLNOS5DVj!!3iHQs+lc<-> zARpl0ztE5S$o=Hk^yjHFXw^+_$NQ>DEvZetm^w>}$X((_>4>_U+)MUTIW;S_02)#@ zS;u0j4^p3!Jkm^lNuEcaVzgHrLn7pAawmC+2836Udw@JelGMyvgi+EVv^17XBiE5- zWF6T~-lR_2C>@bbrfx}p9S0Y>NCEn^fP6_S=s5PYXikkteM~MVJ>+$am;dV(FBi8- zmnUmdkELFM^}UxG=>htpR3_cicU$U-)C=%e=8?gm$au6fliWdGByW)aCI4V6QY*+9 zG8rwuLbGU?=7HiLumD@mmJ9EZK^Scddb@;dAqmn+_L2SMAZYV{M{<;WM%^@nUP5Qm zd+9%znayTz3y%uBg!e@%J_~wBNiJx#m^@APkl&HF$lFxH`%7sfy^1cRo9JWoC`+)f z*|(xWyhHp!?3416N0UFK#;5)Tn>$E;Ms6l6K-*uEF0zaKp8Nq`$$yg5)J})e`Sb~z zphxM~Ol8?@0&8P`55ju>l`vkoS9npZ5J!qvi*Jb^ORJ>y$_yoWc5Cv!lC2UWrz2plj&;^jGv1`VRdHqlCtR zf7xs}t3#^`+4Z2)?d(2wKU#mAdph8x_=Nq9{Y#L9Y+;Chut<19NC@4+Vc~PpF6N1Y z#KGbO@iH-mnJJSlmL^NjNY6p5N=tJ~T`Xqe; zBfuD#g1*OpSS_2(X0SPIC0otzhA(3m+sEEuAHbn<0zLN$Q6VM_7RCyf36~4kVGN7m z%3BG_-YaYu-WJ{yjtgH1CopS1ae%l)yjgr$+$Qc4-;sVMU5kHDN{6Ig=^g2;bXI0^ zP|lP~eeHn~!;>+wJ z@(0>V1L8K}I_XUoA zX(e5MLEdLxVKQAws#8xgk*ahoJxS05a+^4tTzP&7|20Fa;GO?6`M78ie-8Q7O&-LI zK2JWS&yw${l=>RdO@K6-0V#7A`29}8rCtlx*$S-303^sY^4nw=mEl9Llt+j+lau5- z@};y795oWs^muZC__+AjRAs6dD-5fQJcD(AH=kUL74sRmG#A@%M}B~qJHccgAgEhN7M?)P*c{hoGUMRWtB8h)?Wu}VIo>#+_m{;$LP|1C_; zCcWe<>ZiH14C~>9v{c$CZI^aQzn0#T2ZP!x$)n)tzkr*K7{M&^4*80FOAVNt02xSs z;^^;C^u38(!RdN@hc97m>eV+*Udi?ty`bf8354+Jip-4)gXosGZXLH4t*4 zj!wh7z9pBE*=S)1X{0+b1A9mnBx{|2@H@~uhuX93TLfywcy zp=^P05PM7tK#5e)c! zUXR=5bl7cHi`isU4T>y@0;6Q$=xBXwIFZ+y5c8sA#uW4W=nNFhxS*gl5k^t{PwOPY z9B&35{iLRbnsfiHrk1X$ov%sl;c8M{JTN>u8cw`b7Y%pQ%O=8_NZef)Z4M_+==pJa zexshZARmbUAw1eYzb>4ht>MvsiTb7U*NtwiD;`L9nvA2OqvjZk2a=se6S5}c6255L zPU;&$^$hck9=4Mag9SrO1fzAM6M-mD@fsm_^o-ew#)(a%>oOvd=Hh_~I%-yQW`c0- zH>Ou1qx5DH@~DKOHxpg}?KVNyhj$L_U3XWvoy=^FnP*35&$yx~AcU)qw%ZM`a-P@^NG^VeO~im3^%OOQ!7MLL5)ttWMq z1V@M0O=*fo5;Ymo<{5Q=nLFKN-K3kk0$Mom(PvCzj8;aOqyq$!Fq4ds_PL&>^XLoosPHB(?EW@APcB-Bx@>+HjL zIfh6RQm#E3UiU8o4v3!k`llr``b*?o`@aZ($ob?vt0m}+bNNJnES4xL;w++!!knUy zBlP=<;(<%M*^p?P9lntvFa${>Xgi~MSP94s3ExJk56Y)apU$;^ySqLsj2 zVy*lMCNTZPGnGGSKlkK3dTSJ%yo>uSh$mslJOAHi_qs;UAC{or|BuIW($5 zgh#Jy?dRHtDL=V?OF!oX1>NwhKbLTgY7#OS%6N`t2>MenIF1hpRl)%Nne|dkx2iN`A?i~#c%;qcj_d^(!q~t{i8?>i}m+2-Rs2gpWOeX zcjk3M!xTsy)-dI=b?b~jc~%cuwr*X0G+e)~b={2aRQt?-XxJWI*Tc54ZR^@bLkguQ zv^%wLeMX}Gu4W8nJ{<eC|xsgr$*PneC>gYDZFM%QzxTrRO`s*ojG{c)Dwot z)l1p=QeG#_???j$qjxfc{wSkIBcxrgE9wRM{Vceb^s;m%lu@dh#t=}Dw=q;W`jNS7mB+Mgx^)=ICz_Iiyxh%^J~ zerXzcK>RD&Bv+A{yd3Yl3-Do-Jtl7__agrgo;CA&{5jwycs3CE`=n{9lyWyw0Q*qp z#rwwst_GY6IEA-|KKk|iU&$|cUs1M}LnVtWNBO;fNRyD(Baq7RN>M+A`@4}hpA)62ofG-aMt3}2xOh_2kPP&Abrhg1NQ~D-!|^Tu+p+&x#YlhA+QnhfAWF?#Hou&47+nNETa+x zB?)YQsxky0>n=Um{D-TCe(Jy(0L z_n!3KGz+J(cgWqQ~Wc)ePm-)Y0bF=<`G~kK>zYi~p(8!YPP_#J5pYvhvg7X9$9iWEcBk$B=Q3Zi@kjIu1-#5^QHGN1NEA`u7E47YcC!b&98X`(TWmSecj|=w1gWX9SKHARZK2UT zR$+GysVryA<97PIY|e`hcg&i$vUlygiz=eYiO1j9Bl}F2g^iN6ox9&Z|c8-kj(= z_S4R|MhF#gCX{=f9=F1T(Ua?jWzJoDXw$Zl4bLYhcK-Uzr%V1$pQR-qCI_5(=bPlI zH@WESpiJCK=L?$+kLn^PXnl)qj}g+Vq|$XurPmvh&Rkz%HMFRWn3Sr8FylE zX*uxk}P(s$Fy9hH}2nRu!L+SHfGasXWL4otRoZPZwO|)kC*~~k@sHGN3HjF z5%2Jc*dm@d2a%Q*TITaQ?1~)CCJuY$5MQ>e$PT;LTV6J#a)`s8m&eNfaN~xJ%l_~| z@_Ss%8@*Za3FT=Z^**#KIX&6B=Rp{LTj}F_9{jR)%C$-SUW6Wg4JMPlSc`di5>uK7 z8mMHNre4i%K>%I=Z_~nmuIUn$y4jU`4XQ+mS%uH22{fauMYBjm42fYeA&O$axQ}jw z^_8B!>T!Ja>4ZPka-wQ*DQSsB9I{d|B&V`m$V(o7?)AcvO7Azg^sanrV=OVNxJh2FHk_ z{G$S+f(D3;Ku%Eb=84n9HU7;Rn=?0OZO`1EWpI)#dsaAWaMseSm026JKFBg;@pYJ26M3n?2FRsM*FtSJ9BU#LUcm?#x?Vl6u7Jg~3BfFl0Mo zU&aCh&Q0Jc&T)%>s;kFwAmOZgp#aOZ>OV*_o36K1I=o$ z5)Jk$$>0EVRHc29%{yf_YD$x4QZoV>EW<^)#{e(F|CVOX84VMg4w4M0!PKfT9#@_`eX*BH$sg{g>K}L3Tsrm2Ial41`Nf-Gy)dh5X6>oQJU&a~uvRiKONHbk zt!%aD4G+5|bA2Y;Dm*J~bMF!MNqgKM`#%X7yl#58_ii7HAb=xMpUWEwS?p$GH_g$^ z6D(A-Y_KqYi-mf-Dbs8rSBZty`*V&>%cp=T)y&} zH80+fap2AulP5pJdIE99I?&Y!9pF=~${e;-spfz=W}a-m+WZ%@e8NIy(JSVP1(q?E z%Pre~EPE}lT2zXFqgl2nlF?*Qh}mqhbki5Kpdh*hh-PLMErNxKMxtnzUdv(J?571# zHyGWuhlnB&2*TI9qzy)jnPHmKj?nxeMNopa8n%Kl7O?K4Kci#xRefv`Hn?%8TJ(io zgN?PXrJ9q_S*6p^S;a-H2pMa$+0L zJZyQ~y2<&mRdqUC&WI!GyweGBL@h>8!Rc^xvkuK`wYaTTi__@l{#%U-jdUXf-cQ(n zYp>2-85V4umuZ%evBb!XoDq#%5y$P-Om1&H>@Ia{Zo%D6pVQn9N621cXC?L;`vkjS z=T+^zEtkz^6>WB~<6$4weAE{VS-WXOb6S?s1BVIK;ECP=@d8=VLoe6nhhneDxt#jVOUE_c zeAA4ZT90jH$NT<1@XDF{skmT6^0z5MZ_1j!aKpyctFMl*ACljFSCTyW(e8U*`WU=; zDJWh9Ui3kuJg5!7%Cy9=+OR3GP1|Og| zx3ZtS4Rnzzey2Sn457tIH~=Kd*lM$cA|(+9f_USRtu-pu)Wd2@6>uD4Le~yTF)I-* zJ0zB1)$=;yR*!_`yllXc31(^z=K7B~13BlHHkYy>Sz5@RY5@WJcTCQZd`0uM3|6C3 zo-P4F73e%zve-ZgWFd9)%`+{39z|R7q;blq=3DFwHYa{ao_YIE$-mH|zi<0v-xJFx zj-TH)Wn!B+dBBv$j=rBKPrd)=HSy>o?rF0$h42)~_F2Y9gz8 zaJ2ELHrVEf8%;seFmb4Hj5N)(-SlhITc(dp#)yfU1cii5B_>v4sxeJ}FbO6;V$(jZ zWYOpMGDbxOhYGMXyGj%aZMRjkvIznef)=Q{=6)(v^PL9k5t< zYRC%3^SV=Kv}=%g&GDLl>qF^7MORxFV@<@?+2pMj!CqFY^C(bfJEAlMMU!A|n z@{s>2%d`GxgIfn|%ilWi+0vfi-T}U4u2rs8?$!C?Cd}g|P%3lKL&(Kcp3fBq@uAlY znlOkB+K1zRnP3>Z*B@`oY|msJnKUy~b{23hQcaWaFgMd8dCT zAd6aJF`AcG5eNI|+b5U%Vl+FS7r8EAA>o2N9dqrh&)$3I_*JbpuSoWN`1+lXE$x{; zp|N%P_=&B-WzCm=Ucb0`-W+KKS6Nxm$_`AGqbW$pt?@vg|cFamtm`r%agM z+IP|7+izVu@78;`c3O+sardvr!&=jDM}uRI>1M-P!?V(}hOO4EuHB?Z*lq20>~g(A z-gNZ39C6n)Q?q5dW0I@YB?qKs-iLjk*gthk^Ib4{_~HzIWt3oXa@t{GO7=(?3zHMs zj*`gMQk70nKUGimFV2qi;=Eu-&OkM+PmBM^1SfR{bJOe8e8KuWM{Ir1{cr127hfQ7 zzXYp*IYb0U0bN#IA!#uH#@G{@~a=H`qrm(K=Olco`0WRdF!O{ z^RPY_(#ZpVCO3ARy@i@S_>?-5+mcI?*CjXa6*AX6c*|Y)+}RE)ax3x>qP7a`gxVgW zq>gB6WmQ}*z(vs+te_$;Yq;RHbq!{pF9?lu2F@qp9oVeeVWV`j98C?Wv{Y?ZnYxeV5D_)hF!b?&>B?E>45a|1 z->H^G{=V^}=hS@;VF1&!rh427uyYBt&zNrdtiJU(s|WdG0E)f3di8I9lis0ssd3d3 zCo!&nPc|e>IA|~c?ztW!q>`Nm(YP;_1f|aIltt*4Y3(wtn?@o6{?Uj_5TrxNU$^(| zxheT78&0c=-h7pgOLj^7&aPwOzN0WI5Ro9#Oi|CeI5O(K(!ljgv-zK*sB-c=ozXOs3l*D=YI5zCN zV2=*c1~m?99n?0cebB~19fJ(vL8TBS?(8rLyGo%{cC+Eil$Gb)|iTh7zU#t&*3!_d09(ikZl025z- z)|EpUsA%T~KFBV4;knh9Eu6k;W6KjuFG+ruw9tZ=epU3d zOB*g3_|A6f?1+t=tljjcv@h$5ho{ebK9+xA#q5KNECwdNn*5cdUV3reR8{KhN#3ZM zTgH#PqKIqeGg8N;D`6W4$p_l_Rq9%Q_ge23ILBU7-xuCD{Yy}D)dF*YrO;jIT_P<} zS4jrNrTBaF-bLa0`#Owc0!LL7{qj&$l-@g1kxM9FNk|+ zK7X-juxeIk+}beRM!DG4JpMTBr2;M6S!@(+-&m)SZ;1Y?U@1hoC%;3XHYKEgltRPA z>~&=<@1GaU#&|n+@%}CS6ilXLv6{Y9F`mJ8hK-z?HIghw!(2c_!alDry|u#*#!fEQ z(9p=_TVE&tC%J~+Oykt@%Wn6ypOS%Ek@$2XVTdqvhU%&FJ zzKNrOTOXvl{~WJNOoz=1D#(&D9>E;YcY&s>2B`w3pf$G{p5?;s45o=UI@CauMZh z(O^D^Y8WD}l(PgzWWI1j`UFBBsn!+Q ze_vJ-)>BrMg!P1F#leq%%Sw(LGNWLR|y+R4TlV$8pIOAMjXF1kn|8#^uGotiGEtCucZ)&Wr*_fxjSFFu*Xzbh$W1z07o#c#C+me{pb+b&vfu z%d7Se?Z@p_AyW?X)ux4lRrofAU{$0rF715{weUZ+4?=w1k`q2sa-lMNg=6KYLiY%V!H$(%miX!!bg;l1UX8CUM`RM3OtNEkz6MZJ~x@y_Yb8; z_d74T9-9_-p58?ZqrZ*S|Cr(S2v0e$sKS?_KM0%`5EyG@w5beD|NK1a#9?ySIa>rSH8%& zSXd=IEIh0}V%#q56W$PvFXF({S)*`~aiqYmhxSini(2@p)E*+IzUXqAYH;513z+(* z8nM*k#l`Hd5yK{D4SI68%N9sOt1k^vLoY{vB^~zH>$JLR`VXL{PdP$;;4?)d6#o^+ z!{DT8^q#&WtUh^L@>+=Nz9npZ-z#TtV~KwyM`I=*gB*NXdVxsfA}!dca4r$CgA;=& z1>x7fP(;gvdw%5k@%AJaZkUBMlkip}p2yJMQR#&r#(vA?7=#&2hJD1${F=!mOSLX^?Rdti?~tUVtiG7!}uXPB7UHLWIWEk5I4o!=-AIQSlo~tZ_C>jH|-W{R(2^7O_n~t8s^Ie&t`(z|uxL=#va~CI4hNcz zWdeg&j^Q-~hl_{FC!axlNS6~(n zn!+YC>t;hWCnSP~ibO*tQWoNhFjxX1$RiyUj27_bueJ>ThzCxI_QUMDTV_3 zu|?=S4^P!prxzPH3i@q>emlT_H5nXlNFCj23Uj3&suzB`M8PTBMVwi|scDXN+)MZ4 zjFCbQBu^wiN&YqYC#e2@;fwF<#oK>a&J%d*AxNGmcuJ+e*Q}}_8v=sQAUYw}KwZMu z6`($B4z(hTNGMYb5J3jPz?dSapciN*hS9`Ft`-w(ow5@kEz1YZmQ4+c2RIp+%Opz zN$?6~f+mRd!ktiCIt-nEhGT;K8{uuk#|DJeN(^yfxM70f7s3`php@wt5DpnkX(P29 z0Xz*C+#S^{C1r6I<`>0Xfs##{8W|L4Q*hC1*AEEe4i^Jc6h9Mu%0QN{3}@xac%~^= zuxX0wW*N#jHd=W^c~1E)zEJ&w9ap|%rhHbQT%z2ltWln4G6h+G_;!;1As&@xg=V62 z0+%7w@emEOChAIl*tZi5P%OOneZ6qtEDn1yoKik69fxLQL&W+?ZR#dzli?xrLsrp1 z6|2Ff`1AcYs>__pGRKXcRpMI1TJtLFozAuHHJ&xTHU3pWv*H9N1U=56JLvZW6<4uE z4HPSaH-Cqb5~JOJ7*6XoTDUYz%WBPP%WBW+$dbcZC$m_VJ->rc9$)0~Nv`~4E`RyF z@}paV-1UlhTMc53VDv?>vy>&)_u>N+nB5kO*=F`weBNAtm)%WU-5qY`c9U>~lM96N5Cg>M z0WF_c>XHGADYI<>u_QmUY=%joU2GWV@g)TI6gw8ZZVd-fSg1YP2B6 zH_fjF!tsTEy3oG`vG09s4x*F2ni(cc2F)mT3uFxC@_lSD9OvPfMjUh7NIP&|qZdbi zX8$f~!74jq;>AU(|C~)v&k0zBOd)z*+sB;$gd0axn!7Zyd+9{k6VXeZNzsB?QA0xS-{Zud|JLDIK7i$R(OO0@&^}q zCy({ZByR817Hk|9+}@|3CdY|?cPGb-FP%B_1OKBF_hHA#L9YU2oiV?i1-+|SHxK*a20z>a9F(8@Buz$`AGaolDMLKqqK=W$Q~9S zlC~HO0*;-P7`QUsYFI{pl>qU|g(OcNOD>i##ViVph4I}fCO2)o=^kjIo6XcrGHhnp zZ4j5zJ~o5@^$pJ2CXucX+r>}Cqd3FSO--6{1^({Hr@~Pv{aCBJQ3Gn{K5D{u*6=-- zQhZRVT;O}g3Trvl(h~D?Uus&bJi&vNKkAe}YD~Rdc3q$D-3>K=X$q8SgjcxZnIBoe zml83Y5lP!X%+z;^*5V_Ud30FcKc#&?yewV>6BeAIz_-30lrz(m=8Oq3IczF7i6Ep& z1L0tuwRZt>N}hwAfePq<$2FDv-UGP6f1JJ}{0@frQLP#0WyCNp3JeC>93&pKkmRb$ zm&W7fZ`JRN-KU?2`5ycbi`q)j?vm zRALO99~JMD9yLB-Hlzo?%RsFbbgs9{8sVKoGz%G+7ZKj&&0T5BW3%SrcF1ggXOiL2 zQDAJqkEO4f3v3O2JIdJgl1Y@p-Ko+p8Ky>es!Y2=Am;FY1sq_6yQIuybenK+URK~J zQ{4uGDw@pZexn492xd6PM6-bN12|PC8x%$AXA<2!!KR9pUjpl+o0e+Euzb*TP%Giq zAa2cJ9;je6U^&MR!N9n_mY~0{FBs@+@t+Gvq`87$`9Hn)*iRi*>4O8@-XC`%zx10T z=PZ&mi|7V_NWcEc!6MEoE^v!WXBj#t`6Mm*gqpFV&_C0njEjA4>O9BWmGQ-%L-SR5S4}P zf?0vnM8(-nqk&F?$9Epq7Dx@#4(IfZ`{U1fvx7-OLen@J45Dnshn5{ z@K*=y$6%AC0pwzO_1I4z;{-~dOYz~TkM0hM=}r*t7U3CaQPuE>;3yly4meAZUNa8n z?K@5{M{If$o!a*qzSfx7cYxKM{Z-$?ST|nC`GXj>O6T&}*U8oF4}~s%2oIQbCb56v$!RK&lA2BIGP*%M&$y=xZ#dU(jvd->Rw%9P8uk zMj6BqlZzw<*981U-7HUoUaRDSrDZsb+El6=X1S_4t_J&UIFnckv#3#MMLUyp#hsCW z@ofK|qVFZ#e-wks*6(Jvf3BbHJSTMe4KIp+L1cvaAbPbZ59PHxDl|GqZlts6Lb;8u zklXR?eK=AOS2WaP-KnjejtUd6USSW!$15$$EVe+op53b4t?Xv|6%{ANlwuZEYFKH% z_0*`WW9`NbrZeoMVuKLle91*x3>Gt7ZC;y~PM!Phg)vTX5q<$yO|F7z}9ma$cAtGru&RW=`re`IG_Ic0+#11&jPY*0K$ z%PznrkQHB;b2f+N)awV|O0Bl|MOl=eic4gDf0rd@Weud|L_;aJlo**B(J~!15iP@x zi$55T;EUkhqGGlf2Xf}XGacfw4pCzuYG|66Pv%nUw>6xNi%ztpr+E>-JH}5E!l4m^ ze@PBQUDxV#=X@;9znvvnbW!t(a~n-gs&{WjR(wj%>>Sn-YvwZoz7(u**>bgG5n^?V zX#Nl$)AxE1x%Wl5{v{&<&BOXI{qRi^KQuzQjig7Q^`mrjPAc~9+XuQEgpAzeS0=k6 zjCrc%se{uV{lzOkYh2hcgX$QUg)SQ=cTGwxR&R*hyW#4rhB5;`Tt&F8{pe=^yK z(HAiU+Xm19_ChA)Auv~{nQ0qoM|**+nl!y}g5*SB_2=VZGo}y9!V>1rL4@XM3mmGZ zx$<1&T<=`}f=sCe7QgOO2I=rk77x?sdt6Y8&fCX0<$HVQOUYzk&*eKcXMF5UEqAP( zH)j<*m?!T~9#4LU6J8%*-n^L=e?2{+ZOe0eo`55hlBpPb4OT*c{8^jWWNUUJ+-6(g zT;RRce^X!++hl&#{;K~&`v?9na1J5|Od3&6DysDLRtUn{p;cllpZY{U)lE8qt4sk}uvJc;Ce;PqEr^7@v zR3#efk@Ah;(|u5+L_7-n6v|6!gp^o##uAwT6*HKjMBIU3Q<{|e>0N{{W2a8Uco+py zlynReFl~N=ru_jE{aiz(#F>t}8NiC-;N;(|vnDLKb;Z?gCIZNtpp0Q@-yxFTaU*3$*f}u0f!2QgAwr%^*u6z2ay-#ex zcxy4}6GDBoHvf0?#Sj|K_h(X5WR&2z}}wnyLr|1R5r8Xdxc@9AcDYj8t28?CKY zX7xMyR3TP)UcV$6@EWsyHsfQS`sdfUiJ%VSVsHbs_-Mol116#u55$ zZKMVcU%dJlm!Lc_rn#*esAT1hT6yz00N_hUGn)0oCh!wN#Vgk>CP)i}?B!?}MiS?7 zB1Cli$;E?)e~Rp5-&6mPFLxyWcIN`>e(wZz%6*z}`;3v7p>i_aPTNxqKt?DSX56c=(A}9A))yu6lUMjW^_t8gWs@yYD8C zZx-_!e^;%Xobwxd)x?HR&h8b)>T5qaQEb&Uh!Q$po4G7&bry4)Ep3BWS=tASVG4hj zP)f^LxuDTeY?N@ht=Zk2JFRe9thwZB+Zo3hmvgwK+&jFWd>|Y>-iCs@fhWyRaCA)_iu5Fbh%|) zf8bt_JFjqVY(WX+7HRQGUcRg8`+fyvbUy?85CC_>?hivzxbXPjO|;gKRWR+k%3POa zdG80e&ZP9vEA3Pn(YAj>@*jUWdq?ZMd)CaKb4PvtP|tvfcX0H|N1xxl;SbbAgTH#< z?8OK6T~*z4kCol=>|;+n{&dGG%`SpvejMz_ZZrQc-CGpJfPC%!|aDJa|^GgMq}c20bw zzr)Yk{3reF8$Z66a_4!u=+kVd+u@-nJ=7EM)uhEf-2FUe2#pN6)BSg8s}xbBe-ogo zPgk!Dx>pCgfded!vru4V99jWm%REb;TXS&6<_THJ z+4cMYEsm$_pC2WU<1aAmpFIgI|e~dTGm2VaA z5+4;eOOMEpD32J7A<-$v#F$hh7b!)C5=(>FAQ_>PrepPp$jhP$XJGgTay$}`D2UO7 zX#BNWP%1H0g%CZMgFt*9Z6}l;AqkjkZs}LC^*B6E5BqU~n%m@{0j@mY#qCXQW1fq% z^P#=osYd#b2=Xu>xgHudf85^Zkb&*r|Ht<&-<>VpR7$j zkEVZ|&B^)+2(6IMCC)prb}50sxp7$fCVlK-h17up9P+@#8=AUI zyxUo}^Xc#&QV8r8w1r*B?2*0ZxDYqQ{qblWe;aKW?XQcP5o;@) zthN@m7j7whO5UbyHSd;pn-hhH3y&6BNnuH0BOV+o{IpOm)PkAu8r-+*4<#icD#0wi zZFCwHZXsy{M8)oKTf2n@mtu8O`$&U9`cggO~iji8iAt&y3Je zVJ9L;oUXcre>2mQ*yVmI;rOodpF%FZFc2NowOo9}_T%7jb|Nk4#OCDjoQYLq7sntd zr1kH$JTf7~20TA!XyeMxWJt{0yld3_mA7!YHVOLcBN(X#*3Kqv%op^y;ak_Y9`QBy z1ww!UDWI}u`!v@yZ?k_Bdq{rBu*ux5{(=2b`XBWVe`bVHZH>Umd4YM7HuCgfr*7c!-A`R$p9`IRfnTI8 z*!pk+G48~$@DU0B!YMCTH&xOW@uYQqoBx-_lW%#lo{W#2{R zb;;MhfBE0!%PUjQJpRlx9h;wdhL3lB@)~gy#%qUt@`yHQsB4UiIpac=rOFl0s1wFo z#=7bUue&IO(y&ekaPB|qtI%#<=O4JpK}yg{hr&j7uYHM?5>A%Iyc3*QOivgfA4vtc0HBLU%0A=vgFyGrVSG?#ol}7 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

oK#$jIZk4#DkGE;o)1{#%6291|^R~us|_} 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

u3#+~Z|cXKC)f-HP*xp7DBw8;nnK6)cbH*Z-&O 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%0A-aj+M!SErq&7y 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 TI4U?O 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 diff --git a/AltairZ80/altairz80_dsk.c b/AltairZ80/altairz80_dsk.c index 1fb93559..d599e340 100644 --- a/AltairZ80/altairz80_dsk.c +++ b/AltairZ80/altairz80_dsk.c @@ -106,6 +106,11 @@ T = Sector True, is a 1 when the sector is positioned to read or write. + ---------------------------------------------------------- + + 5/22/2014 - Updated by Mike Douglas to support the Altair Mini-Disk. + This disk uses 35 (vs 70) tracks of 16 (vs 32) sectors + of 137 bytes each. */ #include "altairz80_defs.h" @@ -131,21 +136,26 @@ #define NUM_OF_DSK_MASK (NUM_OF_DSK - 1) #define BOOTROM_SIZE_DSK 256 /* size of boot rom */ +#define MINI_DISK_SECT 16 /* mini disk sectors per track */ +#define MINI_DISK_TRACKS 35 /* number of tracks on mini disk */ +#define MINI_DISK_SIZE (MINI_DISK_TRACKS * MINI_DISK_SECT * DSK_SECTSIZE) +#define MINI_DISK_DELTA 4096 /* threshold for detecting mini disks */ int32 dsk10(const int32 port, const int32 io, const int32 data); int32 dsk11(const int32 port, const int32 io, const int32 data); int32 dsk12(const int32 port, const int32 io, const int32 data); static t_stat dsk_boot(int32 unitno, DEVICE *dptr); static t_stat dsk_reset(DEVICE *dptr); +static t_stat dsk_attach(UNIT *uptr, char *cptr); -extern REG *sim_PC; extern UNIT cpu_unit; extern uint32 PCX; -extern t_stat install_bootrom(int32 bootrom[], int32 size, int32 addr, int32 makeROM); +extern t_stat install_bootrom(const int32 bootrom[], const int32 size, const int32 addr, const int32 makeROM); extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_type, int32 (*routine)(const int32, const int32, const int32), uint8 unmap); void install_ALTAIRbootROM(void); +extern int32 find_unit_index(UNIT *uptr); /* global data on status */ @@ -156,6 +166,10 @@ static int32 current_track [NUM_OF_DSK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, static int32 current_sector [NUM_OF_DSK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static int32 current_byte [NUM_OF_DSK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static int32 current_flag [NUM_OF_DSK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +static int32 sectors_per_track [NUM_OF_DSK] = { DSK_SECT, DSK_SECT, DSK_SECT, DSK_SECT, + DSK_SECT, DSK_SECT, DSK_SECT, DSK_SECT, + DSK_SECT, DSK_SECT, DSK_SECT, DSK_SECT, + DSK_SECT, DSK_SECT, DSK_SECT, DSK_SECT }; static uint8 tracks [NUM_OF_DSK] = { MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, MAX_TRACKS, @@ -171,6 +185,41 @@ static int32 warnDSK11 = 0; static int32 warnDSK12 = 0; static int8 dskbuf[DSK_SECTSIZE]; /* data Buffer */ +const static int32 alt_bootrom_dsk[BOOTROM_SIZE_DSK] = { // boot ROM for mini disk support + 0x21, 0x13, 0xff, 0x11, 0x00, 0x4c, 0x0e, 0xe3, /* ff00-ff07 */ + 0x7e, 0x12, 0x23, 0x13, 0x0d, 0xc2, 0x08, 0xff, /* ff08-ff0f */ + 0xc3, 0x00, 0x4c, 0xf3, 0xaf, 0xd3, 0x22, 0x2f, /* ff10-ff17 */ + 0xd3, 0x23, 0x3e, 0x2c, 0xd3, 0x22, 0x3e, 0x03, /* ff18-ff1f */ + 0xd3, 0x10, 0xdb, 0xff, 0xe6, 0x11, 0x0f, 0x0f, /* ff20-ff27 */ + 0xc6, 0x10, 0xd3, 0x10, 0x31, 0x71, 0x4d, 0xaf, /* ff28-ff2f */ + 0xd3, 0x08, 0xdb, 0x08, 0xe6, 0x08, 0xc2, 0x1c, /* ff30-ff37 */ + 0x4c, 0x3e, 0x04, 0xd3, 0x09, 0xc3, 0x38, 0x4c, /* ff38-ff3f */ + 0xdb, 0x08, 0xe6, 0x02, 0xc2, 0x2d, 0x4c, 0x3e, /* ff40-ff47 */ + 0x02, 0xd3, 0x09, 0xdb, 0x08, 0xe6, 0x40, 0xc2, /* ff48-ff4f */ + 0x2d, 0x4c, 0x11, 0x00, 0x00, 0x06, 0x00, 0x3e, /* ff50-ff57 */ + 0x10, 0xf5, 0xd5, 0xc5, 0xd5, 0x11, 0x86, 0x80, /* ff58-ff5f */ + 0x21, 0xe3, 0x4c, 0xdb, 0x09, 0x1f, 0xda, 0x50, /* ff60-ff67 */ + 0x4c, 0xe6, 0x1f, 0xb8, 0xc2, 0x50, 0x4c, 0xdb, /* ff68-ff6f */ + 0x08, 0xb7, 0xfa, 0x5c, 0x4c, 0xdb, 0x0a, 0x77, /* ff70-ff77 */ + 0x23, 0x1d, 0xc2, 0x5c, 0x4c, 0xe1, 0x11, 0xe6, /* ff78-ff7f */ + 0x4c, 0x01, 0x80, 0x00, 0x1a, 0x77, 0xbe, 0xc2, /* ff80-ff87 */ + 0xc3, 0x4c, 0x80, 0x47, 0x13, 0x23, 0x0d, 0xc2, /* ff88-ff8f */ + 0x71, 0x4c, 0x1a, 0xfe, 0xff, 0xc2, 0x88, 0x4c, /* ff90-ff97 */ + 0x13, 0x1a, 0xb8, 0xc1, 0xeb, 0xc2, 0xba, 0x4c, /* ff98-ff9f */ + 0xf1, 0xf1, 0x2a, 0xe4, 0x4c, 0xcd, 0xdd, 0x4c, /* ffa0-ffa7 */ + 0xd2, 0xb3, 0x4c, 0x04, 0x04, 0x78, 0xfe, 0x10, /* ffa8-ffaf */ + 0xda, 0x44, 0x4c, 0x06, 0x01, 0xca, 0x44, 0x4c, /* ffb0-ffb7 */ + 0xdb, 0x08, 0xe6, 0x02, 0xc2, 0xa5, 0x4c, 0x3e, /* ffb8-ffbf */ + 0x01, 0xd3, 0x09, 0xc3, 0x42, 0x4c, 0x3e, 0x80, /* ffc0-ffc7 */ + 0xd3, 0x08, 0xc3, 0x00, 0x00, 0xd1, 0xf1, 0x3d, /* ffc8-ffcf */ + 0xc2, 0x46, 0x4c, 0x3e, 0x43, 0x01, 0x3e, 0x4d, /* ffd0-ffd7 */ + 0xfb, 0x32, 0x00, 0x00, 0x22, 0x01, 0x00, 0x47, /* ffd8-ffdf */ + 0x3e, 0x80, 0xd3, 0x08, 0x78, 0xd3, 0x01, 0xd3, /* ffe0-ffe7 */ + 0x11, 0xd3, 0x05, 0xd3, 0x23, 0xc3, 0xd2, 0x4c, /* ffe8-ffef */ + 0x7a, 0xbc, 0xc0, 0x7b, 0xbd, 0xc9, 0x00, 0x00, /* fff0-fff7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* fff8-ffff */ +}; + /* Altair MITS modified BOOT EPROM, fits in upper 256 byte of memory */ int32 bootrom_dsk[BOOTROM_SIZE_DSK] = { 0xf3, 0x06, 0x80, 0x3e, 0x0e, 0xd3, 0xfe, 0x05, /* ff00-ff07 */ @@ -229,40 +278,62 @@ static UNIT dsk_unit[] = { }; static REG dsk_reg[] = { - { DRDATA (DISK, current_disk, 4) }, - { BRDATA (CURTRACK, current_track, 10, 32, NUM_OF_DSK), REG_CIRC + REG_RO }, - { BRDATA (CURSECTOR, current_sector, 10, 32, NUM_OF_DSK), REG_CIRC + REG_RO }, - { BRDATA (CURBYTE, current_byte, 10, 32, NUM_OF_DSK), REG_CIRC + REG_RO }, - { BRDATA (CURFLAG, current_flag, 10, 32, NUM_OF_DSK), REG_CIRC + REG_RO }, - { BRDATA (TRACKS, tracks, 10, 8, NUM_OF_DSK), REG_CIRC }, - { DRDATA (IN9COUNT, in9_count, 4), REG_RO }, - { DRDATA (IN9MESSAGE, in9_message, 4), REG_RO }, - { DRDATA (DIRTY, dirty, 4), REG_RO }, - { DRDATA (DSKWL, warnLevelDSK, 32) }, - { BRDATA (WARNLOCK, warnLock, 10, 32, NUM_OF_DSK), REG_CIRC + REG_RO }, - { BRDATA (WARNATTACHED, warnAttached, 10, 32, NUM_OF_DSK), REG_CIRC + REG_RO }, - { DRDATA (WARNDSK10, warnDSK10, 4), REG_RO }, - { DRDATA (WARNDSK11, warnDSK11, 4), REG_RO }, - { DRDATA (WARNDSK12, warnDSK12, 4), REG_RO }, - { BRDATA (DISKBUFFER, dskbuf, 10, 8, DSK_SECTSIZE), REG_CIRC + REG_RO }, + { DRDATAD (DISK, current_disk, 4, + "Selected disk register"), }, + { BRDATAD (CURTRACK, current_track, 10, 32, NUM_OF_DSK, + "Selected track register array"), REG_CIRC + REG_RO }, + { BRDATAD (CURSECTOR, current_sector, 10, 32, NUM_OF_DSK, + "Selected sector register array"), REG_CIRC + REG_RO }, + { BRDATAD (CURBYTE, current_byte, 10, 32, NUM_OF_DSK, + "Current byte register arrayr"), REG_CIRC + REG_RO }, + { BRDATAD (CURFLAG, current_flag, 10, 32, NUM_OF_DSK, + "Current flag register array"), REG_CIRC + REG_RO }, + { BRDATAD (TRACKS, tracks, 10, 8, NUM_OF_DSK, + "Number of tracks register array"), REG_CIRC }, + { BRDATAD (SECTPERTRACK,sectors_per_track, 10, 8, NUM_OF_DSK, + "Number of sectors per track register array"), REG_CIRC }, + { DRDATAD (IN9COUNT, in9_count, 4, + "Count of IN(9) register"), REG_RO }, + { DRDATAD (IN9MESSAGE, in9_message, 4, + "BOOL for IN(9) message register"), REG_RO }, + { DRDATAD (DIRTY, dirty, 4, + "BOOL for write needed register"), REG_RO }, + { DRDATAD (DSKWL, warnLevelDSK, 32, + "Warn level register") }, + { BRDATAD (WARNLOCK, warnLock, 10, 32, NUM_OF_DSK, + "Count of write to locked register array"), REG_CIRC + REG_RO }, + { BRDATAD (WARNATTACHED, warnAttached, 10, 32, NUM_OF_DSK, + "Count for selection of unattached disk register array"), REG_CIRC + REG_RO }, + { DRDATAD (WARNDSK10, warnDSK10, 4, + "Count of IN(8) on unattached disk register"), REG_RO }, + { DRDATAD (WARNDSK11, warnDSK11, 4, + "Count of IN/OUT(9) on unattached disk register"), REG_RO }, + { DRDATAD (WARNDSK12, warnDSK12, 4, + "Count of IN/OUT(10) on unattached disk register"), REG_RO }, + { BRDATAD (DISKBUFFER, dskbuf, 10, 8, DSK_SECTSIZE, + "Disk data buffer array"), REG_CIRC + REG_RO }, { NULL } }; +#define DSK_NAME "Altair Floppy Disk DSK" + static MTAB dsk_mod[] = { - { UNIT_DSK_WLK, 0, "WRTENB", "WRTENB", NULL }, - { UNIT_DSK_WLK, UNIT_DSK_WLK, "WRTLCK", "WRTLCK", NULL }, + { UNIT_DSK_WLK, 0, "WRTENB", "WRTENB", NULL, NULL, NULL, + "Enables " DSK_NAME "n for writing" }, + { UNIT_DSK_WLK, UNIT_DSK_WLK, "WRTLCK", "WRTLCK", NULL, NULL, NULL, + "Locks " DSK_NAME "n for writing" }, { 0 } }; /* Debug Flags */ static DEBTAB dsk_dt[] = { - { "IN", IN_MSG }, - { "OUT", OUT_MSG }, - { "READ", READ_MSG }, - { "WRITE", WRITE_MSG }, - { "SECTOR_STUCK", SECTOR_STUCK_MSG }, - { "TRACK_STUCK", TRACK_STUCK_MSG }, - { "VERBOSE", VERBOSE_MSG }, + { "IN", IN_MSG, "IN operations" }, + { "OUT", OUT_MSG, "OUT operations" }, + { "READ", READ_MSG, "Read operations" }, + { "WRITE", WRITE_MSG, "Write operations" }, + { "SECTOR_STUCK", SECTOR_STUCK_MSG, "Sector stuck" }, + { "TRACK_STUCK", TRACK_STUCK_MSG, "Track stuck" }, + { "VERBOSE", VERBOSE_MSG, "Verbose messages" }, { NULL, 0 } }; @@ -270,9 +341,9 @@ DEVICE dsk_dev = { "DSK", dsk_unit, dsk_reg, dsk_mod, NUM_OF_DSK, 10, 31, 1, 8, 8, NULL, NULL, &dsk_reset, - &dsk_boot, NULL, NULL, + &dsk_boot, &dsk_attach, NULL, NULL, (DEV_DISABLE | DEV_DEBUG), 0, - dsk_dt, NULL, "Altair Floppy Disk DSK" + dsk_dt, NULL, DSK_NAME }; static char* selectInOut(const int32 io) { @@ -291,7 +362,6 @@ static t_stat dsk_reset(DEVICE *dptr) { current_sector[i] = 0; current_byte[i] = 0; current_flag[i] = 0; - tracks[i] = MAX_TRACKS; } warnDSK10 = 0; warnDSK11 = 0; @@ -304,6 +374,28 @@ static t_stat dsk_reset(DEVICE *dptr) { sim_map_resource(0x0A, 1, RESOURCE_TYPE_IO, &dsk12, dptr->flags & DEV_DIS); return SCPE_OK; } +/* dsk_attach - determine type of drive attached based on disk image size */ + +static t_stat dsk_attach(UNIT *uptr, char *cptr) { + int32 thisUnitIndex; + int32 imageSize; + const t_stat r = attach_unit(uptr, cptr); /* attach unit */ + if (r != SCPE_OK) /* error? */ + return r; + + assert(uptr != NULL); + thisUnitIndex = find_unit_index(uptr); + assert((0 <= thisUnitIndex) && (thisUnitIndex < NUM_OF_DSK)); + + /* If the file size is close to the mini-disk image size, set the number of + tracks to 16, otherwise, 32 sectors per track. */ + + imageSize = sim_fsize(uptr -> fileref); + sectors_per_track[thisUnitIndex] = (((MINI_DISK_SIZE - MINI_DISK_DELTA < imageSize) && + (imageSize < MINI_DISK_SIZE + MINI_DISK_DELTA)) ? + MINI_DISK_SECT : DSK_SECT); + return SCPE_OK; +} void install_ALTAIRbootROM(void) { const t_bool result = (install_bootrom(bootrom_dsk, BOOTROM_SIZE_DSK, ALTAIR_ROM_LOW, TRUE) == @@ -316,8 +408,14 @@ void install_ALTAIRbootROM(void) { */ static t_stat dsk_boot(int32 unitno, DEVICE *dptr) { if (cpu_unit.flags & (UNIT_CPU_ALTAIRROM | UNIT_CPU_BANKED)) { + if (sectors_per_track[unitno] == MINI_DISK_SECT) { + const t_bool result = (install_bootrom(alt_bootrom_dsk, BOOTROM_SIZE_DSK, + ALTAIR_ROM_LOW, TRUE) == SCPE_OK); + assert(result); + } else { /* check whether we are really modifying an LD A,<> instruction */ - if ((bootrom_dsk[UNIT_NO_OFFSET_1 - 1] == LDA_INSTRUCTION) && (bootrom_dsk[UNIT_NO_OFFSET_2 - 1] == LDA_INSTRUCTION)) { + if ((bootrom_dsk[UNIT_NO_OFFSET_1 - 1] == LDA_INSTRUCTION) && + (bootrom_dsk[UNIT_NO_OFFSET_2 - 1] == LDA_INSTRUCTION)) { bootrom_dsk[UNIT_NO_OFFSET_1] = unitno & 0xff; /* LD A, */ bootrom_dsk[UNIT_NO_OFFSET_2] = 0x80 | (unitno & 0xff); /* LD a,80h | */ } @@ -327,12 +425,13 @@ static t_stat dsk_boot(int32 unitno, DEVICE *dptr) { } install_ALTAIRbootROM(); /* install modified ROM */ } + } *((int32 *) sim_PC->loc) = ALTAIR_ROM_LOW; return SCPE_OK; } static int32 dskseek(const UNIT *xptr) { - return sim_fseek(xptr -> fileref, DSK_TRACSIZE * current_track[current_disk] + + return sim_fseek(xptr -> fileref, DSK_SECTSIZE * sectors_per_track[current_disk] * current_track[current_disk] + DSK_SECTSIZE * current_sector[current_disk], SEEK_SET); } @@ -465,7 +564,7 @@ int32 dsk11(const int32 port, const int32 io, const int32 data) { writebuf(); if (current_flag[current_disk] & 0x04) { /* head loaded? */ current_sector[current_disk]++; - if (current_sector[current_disk] >= DSK_SECT) + if (current_sector[current_disk] >= sectors_per_track[current_disk]) current_sector[current_disk] = 0; current_byte[current_disk] = 0xff; return (((current_sector[current_disk] << 1) & 0x3e) /* return 'sector true' bit = 0 (true) */ diff --git a/AltairZ80/altairz80_hdsk.c b/AltairZ80/altairz80_hdsk.c index 7fa0d749..cfbaea66 100644 --- a/AltairZ80/altairz80_hdsk.c +++ b/AltairZ80/altairz80_hdsk.c @@ -26,7 +26,7 @@ Contains code from Howard M. Harte for defining and changing disk geometry. */ -#include "altairz80_defs.h" +#include "m68k.h" #include #include "sim_imd.h" @@ -56,7 +56,7 @@ static void verifyDiskInfo(const DISK_INFO *info, const char unitChar); #define HDSK_NUMBER_OF_TRACKS u3 /* number of tracks */ #define HDSK_FORMAT_TYPE u6 /* Disk Format Type */ #define HDSK_CAPACITY (2048*32*128) /* Default Altair HDSK Capacity */ -#define HDSK_NUMBER 8 /* number of hard disks */ +#define HDSK_NUMBER 16 /* number of hard disks */ #define CPM_OK 0 /* indicates to CP/M everything ok */ #define CPM_ERROR 1 /* indicates to CP/M an error condition */ #define CPM_EMPTY 0xe5 /* default value for non-existing bytes */ @@ -70,13 +70,13 @@ static void verifyDiskInfo(const DISK_INFO *info, const char unitChar); #define BOOTROM_SIZE_HDSK 256 extern uint32 PCX; -extern REG *sim_PC; extern UNIT cpu_unit; +extern ChipType chiptype; extern void install_ALTAIRbootROM(void); extern void PutBYTEWrapper(const uint32 Addr, const uint32 Value); extern uint8 GetBYTEWrapper(const uint32 Addr); -extern t_stat install_bootrom(int32 bootrom[], int32 size, int32 addr, int32 makeROM); +extern t_stat install_bootrom(const int32 bootrom[], const int32 size, const int32 addr, const int32 makeROM); extern int32 bootrom_dsk[]; extern t_stat set_iobase(UNIT *uptr, int32 val, char *cptr, void *desc); extern t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); @@ -94,11 +94,40 @@ static int32 selectedDisk; static int32 selectedSector; static int32 selectedTrack; static int32 selectedDMA; +static int32 hdskStatus; + +void hdsk_prepareRead(void) { + hdskLastCommand = HDSK_READ; +} + +void hdsk_prepareWrite(void) { + hdskLastCommand = HDSK_WRITE; +} + +void hdsk_setSelectedDisk(const int32 disk) { + selectedDisk = disk; +} + +void hdsk_setSelectedSector(const int32 sector) { + selectedSector = sector; +} + +void hdsk_setSelectedTrack(const int32 track) { + selectedTrack = track; +} + +void hdsk_setSelectedDMA(const int32 dma) { + selectedDMA = dma; +} + +int32 hdsk_getStatus(void) { + return hdskStatus; +} typedef struct { char name[DPB_NAME_LENGTH + 1]; /* name of CP/M disk parameter block */ t_addr capac; /* capacity */ - uint16 spt; /* sectors per track */ + uint32 spt; /* sectors per track */ uint8 bsh; /* data allocation block shift factor */ uint8 blm; /* data allocation block mask */ uint8 exm; /* extent mask */ @@ -163,6 +192,9 @@ static DPB dpb[] = { { "HDSK", HDSK_CAPACITY, 32, 0x05, 0x1F, 0x01, 0x07f9, 0x03FF, 0xFF, 0x00, 0x0000, 0x0006, 0x00, 0x00, 0, 0, NULL }, /* AZ80 HDSK */ + { "CPM68K", (1 << 24), (1<<17),0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, NULL }, /* CP/M-68K HDSK */ + { "EZ80FL", 131072, 32, 0x03, 0x07, 0x00, 127, 0x003E, 0xC0, 0x00, 0x0000, 0x0000, 0x02, 0x03, 0, 0, NULL }, /* 128K FLASH */ @@ -204,31 +236,31 @@ static DPB dpb[] = { { "SSDD8", 512512, SPT52, 0x04, 0x0F, 0x01, 242, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, NULL }, /* Standard 8" SS DD */ - + { "SSDD8S", 512512, SPT52, 0x04, 0x0F, 0x01, 242, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, standard8 }, /* Standard 8" SS DD with skew */ - + { "DSDD8", 1025024, SPT52, 0x04, 0x0F, 0x00, 493, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, NULL }, /* Standard 8" DS DD */ - + { "DSDD8S", 1025024, SPT52, 0x04, 0x0F, 0x00, 493, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, NULL }, /* Standard 8" DS DD with skew */ - + {"512SSDD8",591360, 60, 0x04, 0x0F, 0x00, 280, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x02, 0x03, 0, 0, NULL }, /* Standard 8" SS DD with 512 byte sectors */ - + {"512DSDD8",1182720, 60, 0x04, 0x0F, 0x00, 569, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x02, 0x03, 0, 0, NULL }, /* Standard 8" DS DD with 512 byte sectors */ - + #if 0 /* CP/M 3 BIOS currently does not support physical sector size 1024 */ {"1024SSDD8",630784, 64, 0x04, 0x0F, 0x00, 299, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x03, 0x07, 0, 0, NULL }, /* Standard 8" SS DD with 1024 byte sectors */ - + {"1024DSDD8",1261568, 64, 0x04, 0x0F, 0x00, 607, 0x007F, 0xC0, 0x00, 0x0000, 0x0002, 0x03, 0x07, 0, 0, NULL }, /* Standard 8" DS DD with 1024 byte sectors */ #endif - + { "APPLE-DO",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F, 0xC0, 0x00, 0x0000, 0x0003, 0x01, 0x01, 0, 0, apple_ii_DOS }, /* Apple II DOS 3.3 */ @@ -272,40 +304,60 @@ static UNIT hdsk_unit[] = { { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, - { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) } + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, + { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, }; static DISK_INFO* hdsk_imd[HDSK_NUMBER]; static REG hdsk_reg[] = { - { DRDATA (HDCMD, hdskLastCommand, 32), REG_RO }, - { DRDATA (HDPOS, hdskCommandPosition, 32), REG_RO }, - { DRDATA (HDDSK, selectedDisk, 32), REG_RO }, - { DRDATA (HDSEC, selectedSector, 32), REG_RO }, - { DRDATA (HDTRK, selectedTrack, 32), REG_RO }, - { DRDATA (HDDMA, selectedDMA, 32), REG_RO }, + { DRDATAD (HDCMD, hdskLastCommand, 32, "Last command"), + REG_RO }, + { DRDATAD (HDPOS, hdskCommandPosition, 32, "Commmand position"), + REG_RO }, + { DRDATAD (HDDSK, selectedDisk, 32, "Selected disk"), + REG_RO }, + { DRDATAD (HDSEC, selectedSector, 32, "Selected sector"), + REG_RO }, + { DRDATAD (HDTRK, selectedTrack, 32, "Selected track"), + REG_RO }, + { DRDATAD (HDDMA, selectedDMA, 32, "Selected Direct Memory Access address"), REG_RO }, { NULL } }; +#define HDSK_NAME "Hard Disk HDSK" + static MTAB hdsk_mod[] = { - { MTAB_XTD|MTAB_VDV, 0, "IOBASE", "IOBASE", &set_iobase, &show_iobase, NULL }, - { MTAB_XTD|MTAB_VUN, 0, "FORMAT", "FORMAT", &set_format, &show_format, NULL }, - { UNIT_HDSK_WLK, 0, "WRTENB", "WRTENB", NULL }, - { UNIT_HDSK_WLK, UNIT_HDSK_WLK, "WRTLCK", "WRTLCK", NULL }, - { MTAB_XTD|MTAB_VUN, 0, "GEOM", "GEOM", &set_geom, &show_geom, NULL }, + { MTAB_XTD|MTAB_VDV, 0, "IOBASE", "IOBASE", + &set_iobase, &show_iobase, NULL, "Defines the I/O port assignment for device " HDSK_NAME }, + { MTAB_XTD|MTAB_VUN, 0, "FORMAT", "FORMAT", + &set_format, &show_format, NULL, "Defines the format for unit " HDSK_NAME "n" }, + { UNIT_HDSK_WLK, 0, "WRTENB", "WRTENB", + NULL, NULL, NULL, "Enables " HDSK_NAME "n for writing" }, + { UNIT_HDSK_WLK, UNIT_HDSK_WLK, "WRTLCK", "WRTLCK", + NULL, NULL, NULL, "Locks " HDSK_NAME "n for writing" }, + { MTAB_XTD|MTAB_VUN, 0, "GEOM", "GEOM", + &set_geom, &show_geom, NULL, "Sets the disk geometry for unit " HDSK_NAME "n" }, { 0 } }; /* Debug Flags */ static DEBTAB hdsk_dt[] = { - { "READ", READ_MSG }, - { "WRITE", WRITE_MSG }, - { "VERBOSE", VERBOSE_MSG }, - { NULL, 0 } + { "READ", READ_MSG, "Disk read activity" }, + { "WRITE", WRITE_MSG, "Disk write activity" }, + { "VERBOSE", VERBOSE_MSG, "All disk activity" }, + { NULL, 0 } }; DEVICE hdsk_dev = { "HDSK", hdsk_unit, hdsk_reg, hdsk_mod, - 8, 10, 31, 1, 8, 8, + HDSK_NUMBER, 10, 31, 1, 8, 8, NULL, NULL, &hdsk_reset, &hdsk_boot, &hdsk_attach, &hdsk_detach, &hdsk_info_data, (DEV_DISABLE | DEV_DEBUG), 0, @@ -338,9 +390,9 @@ static uint32 is_imd(const UNIT *uptr) { static void assignFormat(UNIT *uptr) { uint32 i; - uptr -> HDSK_FORMAT_TYPE = -1; /* default to unknown format type */ - for (i = 0; dpb[i].capac != 0; i++) { /* find disk parameter block */ - if (dpb[i].capac == uptr -> capac) { /* found if correct capacity */ + uptr -> HDSK_FORMAT_TYPE = -1; /* default to unknown format type */ + for (i = 0; dpb[i].capac != 0; i++) { /* find disk parameter block */ + if (dpb[i].capac == uptr -> capac) { /* found if correct capacity */ uptr -> HDSK_FORMAT_TYPE = i; break; } @@ -376,15 +428,15 @@ static void verifyDiskInfo(const DISK_INFO *info, const char unitChar) { static t_stat hdsk_attach(UNIT *uptr, char *cptr) { int32 thisUnitIndex; char unitChar; - const t_stat r = attach_unit(uptr, cptr); /* attach unit */ - if (r != SCPE_OK) /* error? */ + const t_stat r = attach_unit(uptr, cptr); /* attach unit */ + if (r != SCPE_OK) /* error? */ return r; - + assert(uptr != NULL); thisUnitIndex = find_unit_index(uptr); unitChar = '0' + thisUnitIndex; assert((0 <= thisUnitIndex) && (thisUnitIndex < HDSK_NUMBER)); - + if (is_imd(uptr)) { if ((sim_fsize(uptr -> fileref) == 0) && (diskCreate(uptr -> fileref, "$Id: SIMH hdsk.c $") != SCPE_OK)) { @@ -412,28 +464,28 @@ static t_stat hdsk_attach(UNIT *uptr, char *cptr) { } return SCPE_OK; } - - /* Step 1: Determine capacity of this disk */ - uptr -> capac = sim_fsize(uptr -> fileref); /* the file length is a good indication */ - if (uptr -> capac == 0) { /* file does not exist or has length 0 */ + + /* Step 1: Determine capacity of this disk */ + uptr -> capac = sim_fsize(uptr -> fileref); /* the file length is a good indication */ + if (uptr -> capac == 0) { /* file does not exist or has length 0 */ uptr -> capac = (uptr -> HDSK_NUMBER_OF_TRACKS * uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE); if (uptr -> capac == 0) uptr -> capac = HDSK_CAPACITY; - } /* post condition: uptr -> capac > 0 */ + } /* post condition: uptr -> capac > 0 */ assert(uptr -> capac); - - /* Step 2: Determine format based on disk capacity */ + + /* Step 2: Determine format based on disk capacity */ assignFormat(uptr); - - /* Step 3: Set number of sectors per track and sector size */ - if (uptr -> HDSK_FORMAT_TYPE == -1) { /* Case 1: no disk parameter block found */ + + /* Step 3: Set number of sectors per track and sector size */ + if (uptr -> HDSK_FORMAT_TYPE == -1) { /* Case 1: no disk parameter block found */ uptr -> HDSK_FORMAT_TYPE = 0; printf("HDSK%c: WARNING: Unsupported disk capacity, assuming HDSK type with capacity %iKB.\n", unitChar, uptr -> capac / 1000); uptr -> flags |= UNIT_HDSK_WLK; printf("HDSK%c: WARNING: Forcing WRTLCK.\n", unitChar); - /* check whether capacity corresponds to setting of tracks, sectors per track and sector size */ + /* check whether capacity corresponds to setting of tracks, sectors per track and sector size */ if (uptr -> capac != (uint32)(uptr -> HDSK_NUMBER_OF_TRACKS * uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE)) { printf("HDSK%c: WARNING: Fixing geometry.\n", unitChar); @@ -443,20 +495,20 @@ static t_stat hdsk_attach(UNIT *uptr, char *cptr) { uptr -> HDSK_SECTOR_SIZE = 128; } } - else { /* Case 2: disk parameter block found */ + else { /* Case 2: disk parameter block found */ uptr -> HDSK_SECTORS_PER_TRACK = dpb[uptr -> HDSK_FORMAT_TYPE].spt >> dpb[uptr -> HDSK_FORMAT_TYPE].psh; uptr -> HDSK_SECTOR_SIZE = (128 << dpb[uptr -> HDSK_FORMAT_TYPE].psh); } assert((uptr -> HDSK_SECTORS_PER_TRACK) && (uptr -> HDSK_SECTOR_SIZE) && (uptr -> HDSK_FORMAT_TYPE >= 0)); - - /* Step 4: Number of tracks is smallest number to accomodate capacity */ + + /* Step 4: Number of tracks is smallest number to accomodate capacity */ uptr -> HDSK_NUMBER_OF_TRACKS = (uptr -> capac + uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE - 1) / (uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE); assert( ( (t_addr) ((uptr -> HDSK_NUMBER_OF_TRACKS - 1) * uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE) < uptr -> capac) && (uptr -> capac <= (t_addr) (uptr -> HDSK_NUMBER_OF_TRACKS * uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE) ) ); - + return SCPE_OK; } @@ -596,7 +648,9 @@ static int32 bootrom_hdsk[BOOTROM_SIZE_HDSK] = { static t_stat hdsk_boot(int32 unitno, DEVICE *dptr) { t_bool installSuccessful; - if (MEMORYSIZE < 24*KB) { + if (chiptype == CHIP_TYPE_M68K) + return m68k_hdsk_boot(unitno, dptr, VERBOSE_MSG, HDSK_NUMBER); + if (MEMORYSIZE < 24 * KB) { printf("Need at least 24KB RAM to boot from hard disk.\n"); return SCPE_ARG; } @@ -668,7 +722,7 @@ static t_stat hdsk_boot(int32 unitno, DEVICE *dptr) { */ /* check the parameters and return TRUE iff parameters are correct or have been repaired */ -static int32 checkParameters(void) { +t_bool hdsk_checkParameters(void) { UNIT *uptr; if ((selectedDisk < 0) || (selectedDisk >= HDSK_NUMBER)) { sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT @@ -684,7 +738,7 @@ static int32 checkParameters(void) { } if ((selectedSector < 0) || (selectedSector >= uptr -> HDSK_SECTORS_PER_TRACK)) { sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT - " Constraint violation 0 <= Sector=%02d < %d, will use sector 0 instead.\n", + " Constraint violation 0 <= Sector=%06d < %d, will use sector 0 instead.\n", selectedDisk, PCX, selectedSector, uptr -> HDSK_SECTORS_PER_TRACK); selectedSector = 0; } @@ -694,23 +748,36 @@ static int32 checkParameters(void) { selectedDisk, PCX, selectedTrack, uptr -> HDSK_NUMBER_OF_TRACKS); selectedTrack = 0; } - selectedDMA &= ADDRMASK; + if (chiptype == CHIP_TYPE_M68K) { + if (selectedDMA + uptr -> HDSK_SECTOR_SIZE > M68K_MAX_RAM) { + sim_debug(VERBOSE_MSG, &hdsk_dev, + "HDSK%d: " ADDRESS_FORMAT + " Error: DMA (0x%08x) + sector size (0x%02x) out of bounds. " + "Must be at most 0x%08x.\n", + selectedDisk, PCX, selectedDMA, uptr -> HDSK_SECTOR_SIZE, M68K_MAX_RAM); + return FALSE; + } + } else + selectedDMA &= ADDRMASK; if (hdskLastCommand == HDSK_READ) { sim_debug(READ_MSG, &hdsk_dev, "HDSK%d " ADDRESS_FORMAT - " Read Track=%04d Sector=%02d Len=%04d DMA=%04x\n", - selectedDisk, PCX, selectedTrack, selectedSector, uptr -> HDSK_SECTOR_SIZE, selectedDMA); + " Read Track=%04d Sector=%06d Len=%04d DMA=%08x\n", + selectedDisk, PCX, selectedTrack, selectedSector, + uptr -> HDSK_SECTOR_SIZE, selectedDMA); } if (hdskLastCommand == HDSK_WRITE) { sim_debug(WRITE_MSG, &hdsk_dev, "HDSK%d " ADDRESS_FORMAT - " Write Track=%04d Sector=%02d Len=%04d DMA=%04x\n", - selectedDisk, PCX, selectedTrack, selectedSector, uptr -> HDSK_SECTOR_SIZE, selectedDMA); + " Write Track=%04d Sector=%06d Len=%04d DMA=%08x\n", + selectedDisk, PCX, selectedTrack, selectedSector, + uptr -> HDSK_SECTOR_SIZE, selectedDMA); } return TRUE; } -/* pre-condition: checkParameters has been executed to repair any faulty parameters */ +/* pre-condition: hdsk_checkParameters has been executed to repair any faulty parameters */ static int32 doSeek(void) { UNIT *uptr = &hdsk_dev.units[selectedDisk]; + assert(uptr != NULL); int32 hostSector = (dpb[uptr -> HDSK_FORMAT_TYPE].skew == NULL) ? selectedSector : dpb[uptr -> HDSK_FORMAT_TYPE].skew[selectedSector]; int32 sectorSize = (dpb[uptr -> HDSK_FORMAT_TYPE].physicalSectorSize == 0) ? @@ -719,7 +786,7 @@ static int32 doSeek(void) { sectorSize * (uptr -> HDSK_SECTORS_PER_TRACK * selectedTrack + hostSector) + dpb[uptr -> HDSK_FORMAT_TYPE].offset, SEEK_SET)) { sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT - " Could not access Sector=%02d[=%02d] Track=%04d.\n", + " Could not access Sector=%06d[=%06d] Track=%04d.\n", selectedDisk, PCX, selectedSector, hostSector, selectedTrack); return CPM_ERROR; } @@ -728,8 +795,8 @@ static int32 doSeek(void) { static uint8 hdskbuf[HDSK_MAX_SECTOR_SIZE] = { 0 }; /* data buffer */ -/* pre-condition: checkParameters has been executed to repair any faulty parameters */ -static int32 doRead(void) { +/* pre-condition: hdsk_checkParameters has been executed to repair any faulty parameters */ +int32 hdsk_read(void) { int32 i; t_stat result; DISK_INFO *thisDisk; @@ -761,30 +828,39 @@ static int32 doRead(void) { for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) hdskbuf[i] = CPM_EMPTY; sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d (IMD): " ADDRESS_FORMAT - " . Could not read Sector=%02d Track=%04d.\n", + " . Could not read Sector=%06d Track=%04d.\n", selectedDisk, PCX, selectedSector, selectedTrack); - return CPM_ERROR; + hdskStatus = CPM_ERROR; + return hdskStatus; } } else { - if (doSeek()) - return CPM_ERROR; + if (doSeek()) { + hdskStatus = CPM_ERROR; + return hdskStatus; + } if (sim_fread(hdskbuf, 1, uptr -> HDSK_SECTOR_SIZE, uptr -> fileref) != (size_t)(uptr -> HDSK_SECTOR_SIZE)) { for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) hdskbuf[i] = CPM_EMPTY; sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT - " Could not read Sector=%02d Track=%04d.\n", + " Could not read Sector=%06d Track=%04d.\n", selectedDisk, PCX, selectedSector, selectedTrack); - return CPM_OK; /* allows the creation of empty hard disks */ + hdskStatus = CPM_OK; + return hdskStatus; /* allows the creation of empty hard disks */ } } - for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) - PutBYTEWrapper(selectedDMA + i, hdskbuf[i]); - return CPM_OK; + if (chiptype == CHIP_TYPE_M68K) + for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) + m68k_cpu_write_byte_raw(selectedDMA + i, hdskbuf[i]); + else + for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) + PutBYTEWrapper(selectedDMA + i, hdskbuf[i]); + hdskStatus = CPM_OK; + return hdskStatus; } -/* pre-condition: checkParameters has been executed to repair any faulty parameters */ -static int32 doWrite(void) { +/* pre-condition: hdsk_checkParameters has been executed to repair any faulty parameters */ +int32 hdsk_write(void) { int32 i; t_stat result; DISK_INFO *thisDisk; @@ -797,9 +873,13 @@ static int32 doWrite(void) { size_t rtn; UNIT *uptr = &hdsk_dev.units[selectedDisk]; if (((uptr -> flags) & UNIT_HDSK_WLK) == 0) { /* write enabled */ - if (is_imd(uptr)) { + if (chiptype == CHIP_TYPE_M68K) + for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) + hdskbuf[i] = m68k_cpu_read_byte_raw(selectedDMA + i); + else for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) hdskbuf[i] = GetBYTEWrapper(selectedDMA + i); + if (is_imd(uptr)) { thisDisk = hdsk_imd[selectedDisk]; hostSector = ((dpb[uptr -> HDSK_FORMAT_TYPE].skew == NULL) ? selectedSector : dpb[uptr -> HDSK_FORMAT_TYPE].skew[selectedSector]) + thisDisk -> track[1][0].start_sector; @@ -818,31 +898,53 @@ static int32 doWrite(void) { sectorSize, &flags, &writelen); if (result != SCPE_OK) { sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d (IMD): " ADDRESS_FORMAT - " . Could not write Sector=%02d Track=%04d.\n", + " . Could not write Sector=%06d Track=%04d.\n", selectedDisk, PCX, selectedSector, selectedTrack); - return CPM_ERROR; + hdskStatus = CPM_ERROR; + return hdskStatus; } } else { - if (doSeek()) - return CPM_ERROR; - for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++) - hdskbuf[i] = GetBYTEWrapper(selectedDMA + i); + if (doSeek()) { + hdskStatus = CPM_ERROR; + return hdskStatus; + } rtn = sim_fwrite(hdskbuf, 1, uptr -> HDSK_SECTOR_SIZE, uptr -> fileref); if (rtn != (size_t)(uptr -> HDSK_SECTOR_SIZE)) { sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT - " Could not write Sector=%02d Track=%04d Result=%zd.\n", + " Could not write Sector=%06d Track=%04d Result=%zd.\n", selectedDisk, PCX, selectedSector, selectedTrack, rtn); - return CPM_ERROR; + hdskStatus = CPM_ERROR; + return hdskStatus; } } } else { sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT - " Could not write to locked disk Sector=%02d Track=%04d.\n", + " Could not write to locked disk Sector=%06d Track=%04d.\n", selectedDisk, PCX, selectedSector, selectedTrack); - return CPM_ERROR; + hdskStatus = CPM_ERROR; + return hdskStatus; } - return CPM_OK; + hdskStatus = CPM_OK; + return hdskStatus; +} + +/* flush all attached drives. Returns CPM_OK if everything fine, otherwise CPM_ERROR */ +int32 hdsk_flush(void) { + uint32 drive; + hdskStatus = CPM_OK; + for (drive = 0; drive < HDSK_NUMBER; drive++) { + const UNIT *uptr = hdsk_dev.units + drive; + if ((uptr -> flags) & UNIT_ATT) { + const int result = fflush(uptr -> fileref); + sim_debug(VERBOSE_MSG, &hdsk_dev, + "HDSK%i: 0x%08x Drive flushed [%i = %s].\n", drive, PCX, + result, result == 0 ? "Ok" : "Error"); + if (result) + hdskStatus = CPM_ERROR; + } + } + return hdskStatus; } #define PARAMETER_BLOCK_SIZE 19 @@ -850,7 +952,7 @@ static uint8 parameterBlock[PARAMETER_BLOCK_SIZE]; static int32 hdsk_in(const int32 port) { if ((hdskCommandPosition == 6) && ((hdskLastCommand == HDSK_READ) || (hdskLastCommand == HDSK_WRITE))) { - int32 result = checkParameters() ? ((hdskLastCommand == HDSK_READ) ? doRead() : doWrite()) : CPM_ERROR; + int32 result = hdsk_checkParameters() ? ((hdskLastCommand == HDSK_READ) ? hdsk_read() : hdsk_write()) : CPM_ERROR; hdskLastCommand = HDSK_NONE; hdskCommandPosition = 0; return result; diff --git a/AltairZ80/altairz80_mhdsk.c b/AltairZ80/altairz80_mhdsk.c index b02ef997..9a3c655d 100755 --- a/AltairZ80/altairz80_mhdsk.c +++ b/AltairZ80/altairz80_mhdsk.c @@ -32,12 +32,12 @@ two platters as two separate drives. Each platter has 406 cylinders with 24 sectors per track and 256 bytes per sector. - The disk image file starts with head 0, track 0, sector 0 (0,0,0) through + The disk image file starts with head 0, track 0, sector 0 (0,0,0) through (0,0,23), followed by head 1, track 0, sector 0 (1,0,0) through (1,0,23). The pattern then repeats starting with (0,1,0). - The external hard disk is accessed through eight ports of a 4-PIO card - at I/O addresses A0h-A7h. + The external hard disk is accessed through eight ports of a 4-PIO card + at I/O addresses A0h-A7h. Written by Mike Douglas March, 2014 Disk images provided by Martin Eberhard @@ -54,7 +54,7 @@ #define HDSK_NUM_TRACKS 406 /* tracks per surface */ #define HDSK_TRACK_SIZE (HDSK_SECTOR_SIZE * HDSK_SECTORS_PER_TRACK) #define HDSK_CYLINDER_SIZE (HDSK_TRACK_SIZE * 2) -#define HDSK_CAPACITY (HDSK_CYLINDER_SIZE * HDSK_NUM_TRACKS) +#define HDSK_CAPACITY (HDSK_CYLINDER_SIZE * HDSK_NUM_TRACKS) #define HDSK_NUMBER 8 /* number of hard disks */ #define IO_IN 0 /* I/O operation is input */ #define IO_OUT 1 /* I/O operation is output */ @@ -71,7 +71,7 @@ extern uint32 PCX; #define BOOTROM_SIZE_MHDSK 256 #define MHDSK_BOOT_ADDRESS 0xfc00 static t_stat mhdsk_boot(int32 unitno, DEVICE *dptr); -extern t_stat install_bootrom(int32 bootrom[], int32 size, int32 addr, int32 makeROM); +extern t_stat install_bootrom(const int32 bootrom[], const int32 size, const int32 addr, const int32 makeROM); // Disk controller commands are in upper nibble of command high byte. @@ -115,7 +115,7 @@ static char* commandMessage[CMD_MAX] = { #define BUFFER_MASK 0x03 // mask - no shift needed #define TRACK_SHIFTH 8 // shift left 8 places into MSbyte -#define TRACK_MASKH 0x01 // msb of track number +#define TRACK_MASKH 0x01 // msb of track number #define TRACK_MASKL 0xff // entire lsb of track number #define HEAD_SHIFT 5 // shift right 5 places @@ -178,18 +178,22 @@ static UNIT dsk_unit[] = { { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }, { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }}; +#define MHDSK_NAME "MITS Hard Disk MHDSK" + static MTAB dsk_mod[] = { - { UNIT_DSK_WLK, 0, "WRTENB", "WRTENB", NULL }, - { UNIT_DSK_WLK, UNIT_DSK_WLK, "WRTLCK", "WRTLCK", NULL }, + { UNIT_DSK_WLK, 0, "WRTENB", "WRTENB", NULL, NULL, NULL, + "Enables " MHDSK_NAME "n for writing" }, + { UNIT_DSK_WLK, UNIT_DSK_WLK, "WRTLCK", "WRTLCK", NULL, NULL, NULL, + "Locks " MHDSK_NAME "n for writing" }, { 0 } }; /* Debug Flags */ static DEBTAB mhdsk_dt[] = { - { "READ", READ_MSG }, - { "WRITE", WRITE_MSG }, - { "VERBOSE", VERBOSE_MSG }, - { NULL, 0 } + { "READ", READ_MSG, "Read messages" }, + { "WRITE", WRITE_MSG, "Write messages" }, + { "VERBOSE", VERBOSE_MSG, "Verbose messages" }, + { NULL, 0 } }; DEVICE mhdsk_dev = { @@ -198,41 +202,41 @@ DEVICE mhdsk_dev = { NULL, NULL, &dsk_reset, &mhdsk_boot, NULL, NULL, NULL, (DEV_DISABLE | DEV_DEBUG), 0, - mhdsk_dt, NULL, "MITS Hard Disk MHDSK" + mhdsk_dt, NULL, MHDSK_NAME }; static int32 bootrom_mhdsk[BOOTROM_SIZE_MHDSK] = { - 0xf3, 0x31, 0x00, 0xf8, 0x21, 0x1b, 0x41, 0x2b, /* fc00-fc07 */ - 0x7c, 0xb5, 0xc2, 0x07, 0xfc, 0xe5, 0xd3, 0xa0, /* fc08-fc0f */ - 0xd3, 0xa2, 0xd3, 0xa4, 0xd3, 0xa6, 0xd3, 0xa1, /* fc10-fc17 */ - 0xd3, 0xa5, 0x2f, 0xd3, 0xa3, 0xd3, 0xa7, 0x3e, /* fc18-fc1f */ - 0x2c, 0xd3, 0xa0, 0xd3, 0xa4, 0xd3, 0xa6, 0x3e, /* fc20-fc27 */ - 0x24, 0xd3, 0xa2, 0xdb, 0xa1, 0x3e, 0x03, 0xd3, /* fc28-fc2f */ - 0x10, 0x3e, 0x11, 0xd3, 0x10, 0xcd, 0xe5, 0xfc, /* fc30-fc37 */ - 0x0d, 0x0a, 0x48, 0x44, 0x42, 0x4c, 0x20, 0x31, /* fc38-fc3f */ - 0x2e, 0x30, 0xb1, 0xcd, 0x77, 0xfc, 0x11, 0x2c, /* fc40-fc47 */ - 0x00, 0x7a, 0xbb, 0xdb, 0xa5, 0xd2, 0x54, 0xfc, /* fc48-fc4f */ - 0x6c, 0x61, 0x48, 0x47, 0x14, 0xc2, 0x49, 0xfc, /* fc50-fc57 */ - 0xcd, 0xe5, 0xfc, 0x0d, 0x0a, 0x4c, 0x4f, 0x41, /* fc58-fc5f */ - 0x44, 0x49, 0x4e, 0xc7, 0xd1, 0xd5, 0xcd, 0x77, /* fc60-fc67 */ - 0xfc, 0xdb, 0xa5, 0x12, 0x13, 0x05, 0xc2, 0x69, /* fc68-fc6f */ - 0xfc, 0x23, 0x0d, 0xc2, 0x66, 0xfc, 0xc9, 0xe5, /* fc70-fc77 */ - 0xd5, 0xc5, 0x01, 0xd0, 0xff, 0x11, 0xff, 0xff, /* fc78-fc7f */ - 0x13, 0x09, 0xda, 0x80, 0xfc, 0x7d, 0xc6, 0x30, /* fc80-fc87 */ - 0xeb, 0xfe, 0x18, 0xda, 0x90, 0xfc, 0xc6, 0x08, /* fc88-fc8f */ - 0x47, 0xcd, 0xaf, 0xfc, 0x26, 0x30, 0xdb, 0xff, /* fc90-fc97 */ - 0xe6, 0x03, 0x0f, 0x0f, 0xb0, 0xcd, 0xb0, 0xfc, /* fc98-fc9f */ - 0xdb, 0xa5, 0xdb, 0xa3, 0xaf, 0xd3, 0xa7, 0x3e, /* fca0-fca7 */ - 0x50, 0xd3, 0xa3, 0xc1, 0xd1, 0xe1, 0xc9, 0x7d, /* fca8-fcaf */ - 0xd3, 0xa7, 0xdb, 0xa1, 0xdb, 0xa3, 0xdb, 0xff, /* fcb0-fcb7 */ - 0xe6, 0x00, 0xb4, 0xd3, 0xa3, 0xdb, 0xa0, 0x07, /* fcb8-fcbf */ - 0xd2, 0xbd, 0xfc, 0xdb, 0xa1, 0xe6, 0x7f, 0xc8, /* fcc0-fcc7 */ - 0xfb, 0xf5, 0xcd, 0xe5, 0xfc, 0x0d, 0x0a, 0x4c, /* fcc8-fccf */ - 0x4f, 0x41, 0x44, 0x20, 0x45, 0x52, 0x52, 0x4f, /* fcd0-fcd7 */ - 0x52, 0xba, 0x21, 0x00, 0xfd, 0x34, 0xca, 0xde, /* fcd8-fcdf */ - 0xfc, 0xe3, 0xc3, 0xcf, 0xfd, 0xe3, 0xdb, 0x10, /* fce0-fce7 */ - 0xe6, 0x02, 0xca, 0xe6, 0xfc, 0x7e, 0xe6, 0x7f, /* fce8-fcef */ - 0xd3, 0x11, 0xbe, 0x23, 0xca, 0xe6, 0xfc, 0xe3, /* fcf0-fcf7 */ + 0xf3, 0x31, 0x00, 0xf8, 0x21, 0x1b, 0x41, 0x2b, /* fc00-fc07 */ + 0x7c, 0xb5, 0xc2, 0x07, 0xfc, 0xe5, 0xd3, 0xa0, /* fc08-fc0f */ + 0xd3, 0xa2, 0xd3, 0xa4, 0xd3, 0xa6, 0xd3, 0xa1, /* fc10-fc17 */ + 0xd3, 0xa5, 0x2f, 0xd3, 0xa3, 0xd3, 0xa7, 0x3e, /* fc18-fc1f */ + 0x2c, 0xd3, 0xa0, 0xd3, 0xa4, 0xd3, 0xa6, 0x3e, /* fc20-fc27 */ + 0x24, 0xd3, 0xa2, 0xdb, 0xa1, 0x3e, 0x03, 0xd3, /* fc28-fc2f */ + 0x10, 0x3e, 0x11, 0xd3, 0x10, 0xcd, 0xe5, 0xfc, /* fc30-fc37 */ + 0x0d, 0x0a, 0x48, 0x44, 0x42, 0x4c, 0x20, 0x31, /* fc38-fc3f */ + 0x2e, 0x30, 0xb1, 0xcd, 0x77, 0xfc, 0x11, 0x2c, /* fc40-fc47 */ + 0x00, 0x7a, 0xbb, 0xdb, 0xa5, 0xd2, 0x54, 0xfc, /* fc48-fc4f */ + 0x6c, 0x61, 0x48, 0x47, 0x14, 0xc2, 0x49, 0xfc, /* fc50-fc57 */ + 0xcd, 0xe5, 0xfc, 0x0d, 0x0a, 0x4c, 0x4f, 0x41, /* fc58-fc5f */ + 0x44, 0x49, 0x4e, 0xc7, 0xd1, 0xd5, 0xcd, 0x77, /* fc60-fc67 */ + 0xfc, 0xdb, 0xa5, 0x12, 0x13, 0x05, 0xc2, 0x69, /* fc68-fc6f */ + 0xfc, 0x23, 0x0d, 0xc2, 0x66, 0xfc, 0xc9, 0xe5, /* fc70-fc77 */ + 0xd5, 0xc5, 0x01, 0xd0, 0xff, 0x11, 0xff, 0xff, /* fc78-fc7f */ + 0x13, 0x09, 0xda, 0x80, 0xfc, 0x7d, 0xc6, 0x30, /* fc80-fc87 */ + 0xeb, 0xfe, 0x18, 0xda, 0x90, 0xfc, 0xc6, 0x08, /* fc88-fc8f */ + 0x47, 0xcd, 0xaf, 0xfc, 0x26, 0x30, 0xdb, 0xff, /* fc90-fc97 */ + 0xe6, 0x03, 0x0f, 0x0f, 0xb0, 0xcd, 0xb0, 0xfc, /* fc98-fc9f */ + 0xdb, 0xa5, 0xdb, 0xa3, 0xaf, 0xd3, 0xa7, 0x3e, /* fca0-fca7 */ + 0x50, 0xd3, 0xa3, 0xc1, 0xd1, 0xe1, 0xc9, 0x7d, /* fca8-fcaf */ + 0xd3, 0xa7, 0xdb, 0xa1, 0xdb, 0xa3, 0xdb, 0xff, /* fcb0-fcb7 */ + 0xe6, 0x00, 0xb4, 0xd3, 0xa3, 0xdb, 0xa0, 0x07, /* fcb8-fcbf */ + 0xd2, 0xbd, 0xfc, 0xdb, 0xa1, 0xe6, 0x7f, 0xc8, /* fcc0-fcc7 */ + 0xfb, 0xf5, 0xcd, 0xe5, 0xfc, 0x0d, 0x0a, 0x4c, /* fcc8-fccf */ + 0x4f, 0x41, 0x44, 0x20, 0x45, 0x52, 0x52, 0x4f, /* fcd0-fcd7 */ + 0x52, 0xba, 0x21, 0x00, 0xfd, 0x34, 0xca, 0xde, /* fcd8-fcdf */ + 0xfc, 0xe3, 0xc3, 0xcf, 0xfd, 0xe3, 0xdb, 0x10, /* fce0-fce7 */ + 0xe6, 0x02, 0xca, 0xe6, 0xfc, 0x7e, 0xe6, 0x7f, /* fce8-fcef */ + 0xd3, 0x11, 0xbe, 0x23, 0xca, 0xe6, 0xfc, 0xe3, /* fcf0-fcf7 */ 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* fcf8-fcff */ }; @@ -253,9 +257,9 @@ static char* cmdTranslate(const int32 cmd) { } /*---------------------------------------------------------------------------------- - + dsk_reset - install I/O handlers and initialize variables. - + ----------------------------------------------------------------------------------*/ static t_stat dsk_reset(DEVICE *dptr) { @@ -280,7 +284,7 @@ static t_stat dsk_reset(DEVICE *dptr) { } /*------------------------------------------------------------------------------------- - hdReturnReady - common I/O handler for several hard disk status ports which set + hdReturnReady - common I/O handler for several hard disk status ports which set bit 7 when the corresponding hard disk function is ready. In the emulator, we're always ready for the next step, so we simply return ready all the time. @@ -289,13 +293,13 @@ static t_stat dsk_reset(DEVICE *dptr) { 0xA2 - ACSTA register. Accessed through the status/control register of 4-PIO port 1-B. Returns the "command received" status byte. - - 0xA4 - CDSTA register. Accessed through the status/control register of 4-PIO + + 0xA4 - CDSTA register. Accessed through the status/control register of 4-PIO port 2-A. Returns the "command data available" status byte. - 0xA6 - ADSTA register. Accessed through the status/control register of 4-PIO + 0xA6 - ADSTA register. Accessed through the status/control register of 4-PIO port 2-B. Returns the "available to write" status byte. - + ---------------------------------------------------------------------------------------*/ static int32 hdReturnReady(const int32 port, const int32 io, const int32 data) { @@ -305,14 +309,14 @@ static int32 hdReturnReady(const int32 port, const int32 io, const int32 data) (port == 0xa4 ? "CDSTA" : (port == 0xa6 ? "ADSTA" : "?????"))))); return(0x80); // always indicate ready -// output operations have no effect + // output operations have no effect } /*------------------------------------------------------------ - hdCstat (0xA1) CSTAT register. Accessed through the + hdCstat (0xA1) CSTAT register. Accessed through the data register of 4-PIO port 1-A. - Comments: Returns error code byte of the most recent + Comments: Returns error code byte of the most recent operation. Reading this byte also clears the CRDY bit, but this isn't actually done in the emulation since we're always ready. @@ -323,11 +327,11 @@ static int32 hdCstat(const int32 port, const int32 io, const int32 data) " IN(%02X = %s) = %02x.\n", PCX, port, (port == 0xa1 ? "CSTAT" : "?????"), cstat); return(cstat); -// output operations have no effect + // output operations have no effect } /*------------------------------------------------------------ - hdAcmd (0xA3) ACMD register. Accessed through the + hdAcmd (0xA3) ACMD register. Accessed through the data register of 4-PIO port 1-B. Comments: The high byte of a command is written to @@ -386,12 +390,12 @@ static int32 hdAcmd(const int32 port, const int32 io, const int32 data) doRead(port, data, command); } -// READ or WRITE BUFFER command. Initiates reading/loading specified buffer. +// READ or WRITE BUFFER command. Initiates reading/loading specified buffer. else if ((command == CMD_WRITE_BUF) || (command == CMD_READ_BUF)) { selectedBuffer = buffer; maxBufferIdx = cmdLowByte; - if (maxBufferIdx == 0) + if (maxBufferIdx == 0) maxBufferIdx = 256; bufferIdx = 0; sim_debug(VERBOSE_MSG, &mhdsk_dev, "MHDSK: " ADDRESS_FORMAT @@ -440,9 +444,9 @@ static int32 hdAcmd(const int32 port, const int32 io, const int32 data) } /*------------------------------------------------------------ - hdCdata (0xA5) Cdata register. Accessed through the + hdCdata (0xA5) Cdata register. Accessed through the data register of 4-PIO port 1-B. - + Comments: Returns data from the read buffer -------------------------------------------------------------*/ static int32 hdCdata(const int32 port, const int32 io, const int32 data) @@ -464,10 +468,10 @@ static int32 hdCdata(const int32 port, const int32 io, const int32 data) /*------------------------------------------------------------ - hdAdata (0xA7) ADATA register. Accessed through the + hdAdata (0xA7) ADATA register. Accessed through the data register of 4-PIO port 2-B. - - Comments: Accepts data into the current buffer + + Comments: Accepts data into the current buffer and is also the low byte of a command. -------------------------------------------------------------*/ static int32 hdAdata(const int32 port, const int32 io, const int32 data) @@ -487,21 +491,21 @@ static int32 hdAdata(const int32 port, const int32 io, const int32 data) /*-- doRead ------------------------------------------------- Performs read from MITS Hard Disk image file - + Params: nothing Uses: selectedTrack, selectedHead, selectedSector selectedDisk, diskBuf[], mhdsk_dev Returns: nothing (updates cstat directly) - Comments: + Comments: -------------------------------------------------------------*/ static void doRead(const int32 port, const int32 data, const uint32 command) { UNIT *uptr; uint32 fileOffset; - + uptr = mhdsk_dev.units + selectedDisk; - fileOffset = HDSK_CYLINDER_SIZE * selectedTrack + - HDSK_TRACK_SIZE * (selectedHead & 0x01) + + fileOffset = HDSK_CYLINDER_SIZE * selectedTrack + + HDSK_TRACK_SIZE * (selectedHead & 0x01) + HDSK_SECTOR_SIZE * selectedSector; if (sim_fseek(uptr->fileref, fileOffset, SEEK_SET)) cstat = CSTAT_NOT_READY; /* seek error */ @@ -518,23 +522,23 @@ static void doRead(const int32 port, const int32 data, const uint32 command) /*-- doWrite ------------------------------------------------ Performs write to MITS Hard Disk image file - + Params: none Uses: selectedTrack, selectedHead, selectedSector selectedDisk, diskBuf[], mhdsk_dev Returns: nothing (updates cstat directly) - Comments: + Comments: -------------------------------------------------------------*/ static void doWrite(const int32 port, const int32 data, const uint32 command) { UNIT *uptr; uint32 fileOffset; - + uptr = mhdsk_dev.units + selectedDisk; if (((uptr->flags) & UNIT_DSK_WLK) == 0) { /* write enabled */ - fileOffset = HDSK_CYLINDER_SIZE * selectedTrack + - HDSK_TRACK_SIZE * (selectedHead & 0x01) + - HDSK_SECTOR_SIZE * selectedSector; + fileOffset = HDSK_CYLINDER_SIZE * selectedTrack + + HDSK_TRACK_SIZE * (selectedHead & 0x01) + + HDSK_SECTOR_SIZE * selectedSector; if (sim_fseek(uptr->fileref, fileOffset, SEEK_SET)) cstat = CSTAT_NOT_READY; /* seek error */ else if (sim_fwrite(diskBuf[selectedBuffer], 1, HDSK_SECTOR_SIZE, uptr->fileref) != diff --git a/AltairZ80/altairz80_net.c b/AltairZ80/altairz80_net.c index fe5074be..8c396a7c 100644 --- a/AltairZ80/altairz80_net.c +++ b/AltairZ80/altairz80_net.c @@ -77,30 +77,32 @@ static struct { static UNIT net_unit = { UDATA (&net_svc, UNIT_ATTABLE, 0), 0, /* wait, set in attach */ - 0, /* u3, unused */ - 0, /* u4, unused */ + 0, /* u3, unused */ + 0, /* u4, unused */ 0, /* u5, unused */ 0, /* u6, unused */ }; static REG net_reg[] = { - { DRDATA (POLL, net_unit.wait, 32) }, + { DRDATAD (POLL, net_unit.wait, 32, "Polling interval") }, { NULL } }; static MTAB net_mod[] = { - { UNIT_SERVER, 0, "CLIENT", "CLIENT", &set_net}, /* machine is a client */ - { UNIT_SERVER, UNIT_SERVER, "SERVER", "SERVER", &set_net}, /* machine is a server */ + { UNIT_SERVER, 0, "CLIENT", "CLIENT", &set_net, NULL, NULL, + "Sets machine to client mode"}, /* machine is a client */ + { UNIT_SERVER, UNIT_SERVER, "SERVER", "SERVER", &set_net, NULL, NULL, + "Sets machine to server mode"}, /* machine is a server */ { 0 } }; /* Debug Flags */ static DEBTAB net_dt[] = { - { "ACCEPT", ACCEPT_MSG }, - { "DROP", DROP_MSG }, - { "IN", IN_MSG }, - { "OUT", OUT_MSG }, - { NULL, 0 } + { "ACCEPT", ACCEPT_MSG, "Accept messages" }, + { "DROP", DROP_MSG, "Drop messages" }, + { "IN", IN_MSG, "Incoming messages" }, + { "OUT", OUT_MSG, "Outgoing messages" }, + { NULL, 0 } }; DEVICE net_dev = { diff --git a/AltairZ80/altairz80_sio.c b/AltairZ80/altairz80_sio.c index c864a14e..570539f3 100644 --- a/AltairZ80/altairz80_sio.c +++ b/AltairZ80/altairz80_sio.c @@ -64,27 +64,27 @@ uint8 *URLContents(const char *URL, uint32 *length); #ifndef URL_READER_SUPPORT -#define RESULT_BUFFER_LENGTH 1024 +#define RESULT_BUFFER_LENGTH 1024 #define RESULT_LEAD_IN "URL is not supported on this platform. START URL \"" #define RESULT_LEAD_OUT "\" URL END." uint8 *URLContents(const char *URL, uint32 *length) { - char str[RESULT_BUFFER_LENGTH] = RESULT_LEAD_IN; + char str[RESULT_BUFFER_LENGTH] = RESULT_LEAD_IN; char *result; - strncat(str, URL, RESULT_BUFFER_LENGTH - strlen(RESULT_LEAD_IN) - strlen(RESULT_LEAD_OUT) - 1); - strcat(str, RESULT_LEAD_OUT); + strncat(str, URL, RESULT_BUFFER_LENGTH - strlen(RESULT_LEAD_IN) - strlen(RESULT_LEAD_OUT) - 1); + strcat(str, RESULT_LEAD_OUT); result = (char*)malloc(strlen(str)); - strcpy(result, str); - *length = strlen(str); - return (uint8*)result; + strcpy(result, str); + *length = strlen(str); + return (uint8*)result; } #endif /* Debug flags */ -#define IN_MSG (1 << 0) -#define OUT_MSG (1 << 1) -#define CMD_MSG (1 << 2) -#define VERBOSE_MSG (1 << 3) -#define BUFFER_EMPTY_MSG (1 << 4) +#define IN_MSG (1 << 0) +#define OUT_MSG (1 << 1) +#define CMD_MSG (1 << 2) +#define VERBOSE_MSG (1 << 3) +#define BUFFER_EMPTY_MSG (1 << 4) #define UNIT_V_SIO_ANSI (UNIT_V_UF + 0) /* ANSI mode, strip bit 8 on output */ #define UNIT_SIO_ANSI (1 << UNIT_V_SIO_ANSI) @@ -172,12 +172,12 @@ extern volatile int32 stop_cpu; /* Debug Flags */ static DEBTAB generic_dt[] = { - { "IN", IN_MSG }, - { "OUT", OUT_MSG }, - { "CMD", CMD_MSG }, - { "VERBOSE", VERBOSE_MSG }, - { "BUFFEREMPTY", BUFFER_EMPTY_MSG }, - { NULL, 0 } + { "IN", IN_MSG, "IN messages" }, + { "OUT", OUT_MSG, "OUT messages" }, + { "CMD", CMD_MSG, "Commands" }, + { "VERBOSE", VERBOSE_MSG, "Verbose messages" }, + { "BUFFEREMPTY", BUFFER_EMPTY_MSG, "IN for empty buffer" }, + { NULL, 0 } }; /* SIMH pseudo device status registers */ @@ -225,10 +225,10 @@ static int32 lastCPMStatus = 0; /* result of last attachCPM comm static int32 lastCommand = 0; /* most recent command processed on port 0xfeh */ static int32 getCommonPos = 0; /* determines state for sending the 'common' register */ -/* CPU Clock Frequency related */ +/* CPU Clock Frequency related */ static uint32 newClockFrequency; -static int32 setClockFrequencyPos = 0; /* determines state for sending the clock frequency */ -static int32 getClockFrequencyPos = 0; /* determines state for receiving the clock frequency */ +static int32 setClockFrequencyPos = 0; /* determines state for sending the clock frequency */ +static int32 getClockFrequencyPos = 0; /* determines state for receiving the clock frequency */ /* support for wild card expansion */ #if UNIX_PLATFORM @@ -274,45 +274,76 @@ static UNIT sio_unit = { 100000, /* wait */ FALSE, /* u3 = FALSE, no character available in buffer */ FALSE, /* u4 = FALSE, terminal input is not attached to a file */ - 0, /* u5 = 0, not used */ + 0, /* u5 = 0, not used */ 0 /* u6 = 0, not used */ }; static REG sio_reg[] = { - { DRDATA (SIOWLEV, warnLevelSIO, 32) }, - { DRDATA (WRNUPTP, warnUnattachedPTP, 32) }, - { DRDATA (WRNUPTR, warnUnattachedPTR, 32) }, - { DRDATA (WRNPTRE, warnPTREOF, 32) }, - { DRDATA (WRUPORT, warnUnassignedPort, 32) }, - { HRDATA (FILEATT, sio_unit.u4, 8), REG_RO }, /* TRUE iff terminal input is attached to a file */ - { HRDATA (TSTATUS, sio_unit.u3, 8) }, /* TRUE iff a character available in sio_unit.buf */ - { DRDATA (TBUFFER, sio_unit.buf, 8) }, /* input buffer for one character */ - { DRDATA (KEYBDI, keyboardInterrupt, 3), REG_RO }, - { HRDATA (KEYBDH, keyboardInterruptHandler, 16) }, + { DRDATAD (SIOWLEV, warnLevelSIO, 32, + "Warn level SIO register") }, + { DRDATAD (WRNUPTP, warnUnattachedPTP, 32, + "Counter for unattached PTP access") }, + { DRDATAD (WRNUPTR, warnUnattachedPTR, 32, + "Counter for unattached PTR access") }, + { DRDATAD (WRNPTRE, warnPTREOF, 32, + "Counter for EOF reached for PTR") }, + { DRDATAD (WRUPORT, warnUnassignedPort, 32, + "Counter for unassigned port") }, + { HRDATAD (FILEATT, sio_unit.u4, 8, + "BOOL to determine whether terminal input is attached to a file"), REG_RO }, + /* TRUE iff terminal input is attached to a file */ + { HRDATAD (TSTATUS, sio_unit.u3, 8, + "BOOL to determine whethere a character is available") }, + /* TRUE iff a character available in sio_unit.buf */ + { DRDATAD (TBUFFER, sio_unit.buf, 8, + "Input buffer register") }, + /* input buffer for one character */ + { DRDATAD (KEYBDI, keyboardInterrupt, 3, + "BOOL to determine whether a keyboard interrupt is pending"), REG_RO }, + { HRDATAD (KEYBDH, keyboardInterruptHandler, 16, + "Address of keyboard interrupt handler") }, { NULL } }; static MTAB sio_mod[] = { - { UNIT_SIO_ANSI, 0, "TTY", "TTY", NULL }, /* keep bit 8 as is for output */ - { UNIT_SIO_ANSI, UNIT_SIO_ANSI, "ANSI", "ANSI", NULL }, /* set bit 8 to 0 before output */ - { UNIT_SIO_UPPER, 0, "ALL", "ALL", NULL }, /* do not change case of input characters */ - { UNIT_SIO_UPPER, UNIT_SIO_UPPER, "UPPER", "UPPER", NULL }, /* change input characters to upper case */ - { UNIT_SIO_BS, 0, "BS", "BS", NULL }, /* map delete to backspace */ - { UNIT_SIO_BS, UNIT_SIO_BS, "DEL", "DEL", NULL }, /* map backspace to delete */ - { UNIT_SIO_VERBOSE, 0, "QUIET", "QUIET", NULL }, /* quiet, no error messages */ - { UNIT_SIO_VERBOSE, UNIT_SIO_VERBOSE, "VERBOSE", "VERBOSE", NULL }, - /* verbose, display warning messages */ - { UNIT_SIO_MAP, 0, "NOMAP", "NOMAP", NULL }, /* disable character mapping */ - { UNIT_SIO_MAP, UNIT_SIO_MAP, "MAP", "MAP", NULL }, /* enable all character mapping */ - { UNIT_SIO_BELL, 0, "BELL", "BELL", NULL }, /* enable bell character */ - { UNIT_SIO_BELL, UNIT_SIO_BELL, "NOBELL", "NOBELL", NULL }, /* suppress ringing the bell */ - { UNIT_SIO_SLEEP, 0, "NOSLEEP", "NOSLEEP", NULL }, /* no sleep after keyboard status check */ - { UNIT_SIO_SLEEP, UNIT_SIO_SLEEP, "SLEEP", "SLEEP", NULL }, /* sleep after keyboard status check */ - /* no keyboard interrupts */ - { UNIT_SIO_INTERRUPT, 0, "NOINTERRUPT","NOINTERRUPT",&sio_dev_set_interruptoff }, - /* create keyboard interrupts */ - { UNIT_SIO_INTERRUPT, UNIT_SIO_INTERRUPT, "INTERRUPT","INTERRUPT",&sio_dev_set_interrupton }, - { MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT", &sio_dev_set_port, &sio_dev_show_port }, + { UNIT_SIO_ANSI, 0, "TTY", "TTY", NULL, NULL, NULL, + "Do not touch bit 8 of console output"}, /* keep bit 8 as is for output */ + { UNIT_SIO_ANSI, UNIT_SIO_ANSI, "ANSI", "ANSI", NULL, NULL, NULL, + "Set bit 8 of console output to 0"}, /* set bit 8 to 0 before output */ + { UNIT_SIO_UPPER, 0, "ALL", "ALL", NULL, NULL, NULL, + "Console input remains unchanged" }, /* do not change case of input characters */ + { UNIT_SIO_UPPER, UNIT_SIO_UPPER, "UPPER", "UPPER", NULL, NULL, NULL, + "Convert console input to upper case" }, /* change input characters to upper case */ + { UNIT_SIO_BS, 0, "BS", "BS", NULL, NULL, NULL, + "Map delete to backspace" }, /* map delete to backspace */ + { UNIT_SIO_BS, UNIT_SIO_BS, "DEL", "DEL", NULL, NULL, NULL, + "Map backspace to delete" }, /* map backspace to delete */ + { UNIT_SIO_VERBOSE, 0, "QUIET", "QUIET", NULL, NULL, NULL, + "Do not display SIO error messages" }, /* quiet, no error messages */ + { UNIT_SIO_VERBOSE, UNIT_SIO_VERBOSE, "VERBOSE", "VERBOSE", NULL, NULL, NULL, + "Display verbose messages" }, /* verbose, display warning messages */ + { UNIT_SIO_MAP, 0, "NOMAP", "NOMAP", NULL, NULL, NULL, + "Do not map any character" }, /* disable character mapping */ + { UNIT_SIO_MAP, UNIT_SIO_MAP, "MAP", "MAP", NULL, NULL, NULL, + "Enable mapping of characters" }, /* enable all character mapping */ + { UNIT_SIO_BELL, 0, "BELL", "BELL", NULL, NULL, NULL, + "Control-G sounds the bell" }, /* enable bell character */ + { UNIT_SIO_BELL, UNIT_SIO_BELL, "NOBELL", "NOBELL", NULL, NULL, NULL, + "The bell sound is suppressed" }, /* suppress ringing the bell */ + { UNIT_SIO_SLEEP, 0, "NOSLEEP", "NOSLEEP", NULL, NULL, NULL, + "Do not sleep after SIO status checks" }, /* no sleep after keyboard status check */ + { UNIT_SIO_SLEEP, UNIT_SIO_SLEEP, "SLEEP", "SLEEP", NULL, NULL, NULL, + "Sleep after SIO status checks" }, /* sleep after keyboard status check */ + /* no keyboard interrupts */ + { UNIT_SIO_INTERRUPT, 0, "NOINTERRUPT", "NOINTERRUPT", + &sio_dev_set_interruptoff, NULL, NULL, "Status port 0 does not create interrupts" }, + /* create keyboard interrupts */ + { UNIT_SIO_INTERRUPT, UNIT_SIO_INTERRUPT, "INTERRUPT", "INTERRUPT", + &sio_dev_set_interrupton, NULL, NULL, + "Status port 0 creates an interrupt when a character becomes available" }, + { MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT", + &sio_dev_set_port, &sio_dev_show_port, NULL, + "Set port to Port/Terminal/Read/NotRead/Write/Reset/Reset/Data" }, { 0 } }; @@ -334,7 +365,7 @@ static UNIT ptr_unit = { }; static REG ptr_reg[] = { - { HRDATA (STAT, ptr_unit.u3, 8) }, + { HRDATAD (STAT, ptr_unit.u3, 8, "Status register") }, { NULL } }; @@ -367,43 +398,70 @@ static UNIT simh_unit = { }; static REG simh_reg[] = { - { DRDATA (CZD, ClockZSDOSDelta, 32) }, - { DRDATA (SCZP, setClockZSDOSPos, 8), REG_RO }, - { HRDATA (SCZA, setClockZSDOSAdr, 16), REG_RO }, - { DRDATA (GCZP, getClockZSDOSPos, 8), REG_RO }, + { DRDATAD (CZD, ClockZSDOSDelta, 32, + "ZSDOS Clock - Delta between real clock and AltairZ80 clock") }, + { DRDATAD (SCZP, setClockZSDOSPos, 8, + "ZSDOS Clock - Status register for receiving address of parameter block"), REG_RO }, + { HRDATAD (SCZA, setClockZSDOSAdr, 16, + "ZSDOS Clock - Address of 6 byte parameter block for setting time"), REG_RO }, + { DRDATAD (GCZP, getClockZSDOSPos, 8, + "ZSDOS Clock - Status register for sending clock information"), REG_RO }, - { DRDATA (CC3D, ClockCPM3Delta, 32) }, - { DRDATA (SC3DP, setClockCPM3Pos, 8), REG_RO }, - { HRDATA (SC3DA, setClockCPM3Adr, 16), REG_RO }, - { DRDATA (GC3DP, getClockCPM3Pos, 8), REG_RO }, - { DRDATA (D3DO, daysCPM3SinceOrg, 32), REG_RO }, + { DRDATAD (CC3D, ClockCPM3Delta, 32, + "CP/M 3 Clock - Delta between real clock and AltairZ80 clock") }, + { DRDATAD (SC3DP, setClockCPM3Pos, 8, + "CP/M 3 Clock - Status register for receiving address of parameter block"), REG_RO }, + { HRDATAD (SC3DA, setClockCPM3Adr, 16, + "CP/M 3 Clock - Address of 5 byte parameter block for setting time"), REG_RO }, + { DRDATAD (GC3DP, getClockCPM3Pos, 8, + "CP/M 3 Clock - Status register for sending clock information"), REG_RO }, + { DRDATAD (D3DO, daysCPM3SinceOrg, 32, + "CP/M 3 Clock - Days since 1-Jan-1978"), REG_RO }, - { DRDATA (TOFNI, timeOfNextInterrupt, 32), REG_RO }, - { DRDATA (TIMI, timerInterrupt, 3) }, - { HRDATA (TIMH, timerInterruptHandler, 16) }, - { DRDATA (STIAP, setTimerInterruptAdrPos,8), REG_RO }, - { DRDATA (TIMD, timerDelta, 32) }, - { DRDATA (STDP, setTimerDeltaPos, 8), REG_RO }, - { DRDATA (SLEEP, SIMHSleep, 32) }, - { DRDATA (VOSLP, sleepAllowedStart, 32) }, + { DRDATAD (TOFNI, timeOfNextInterrupt, 32, + "Time when next interrupt is scheduled"), REG_RO }, + { DRDATAD (TIMI, timerInterrupt, 3, + "BOOL - determines whether a timer interrupt is pending") }, + { HRDATAD (TIMH, timerInterruptHandler, 16, + "Address of timer interrupt handling routine") }, + { DRDATAD (STIAP, setTimerInterruptAdrPos,8, + "Status register for receiving address of timer interrupt handler"), REG_RO }, + { DRDATAD (TIMD, timerDelta, 32, + "Time in milliseconds between timer interrupts") }, + { DRDATAD (STDP, setTimerDeltaPos, 8, + "Status register for receiving the timer delta"), REG_RO }, + { DRDATAD (SLEEP, SIMHSleep, 32, + "Sleep time in milliseconds after SIO status check (when enabled)") }, + { DRDATAD (VOSLP, sleepAllowedStart, 32, + "Only sleep when this many unsuccessful SIO status checks have been made") }, - { DRDATA (STPDT, stopWatchDelta, 32), REG_RO }, - { DRDATA (STPOS, getStopWatchDeltaPos, 8), REG_RO }, - { DRDATA (STPNW, stopWatchNow, 32), REG_RO }, - { DRDATA (MTSP, markTimeSP, 8), REG_RO }, + { DRDATAD (STPDT, stopWatchDelta, 32, + "Elapsed time of stop watch"), REG_RO }, + { DRDATAD (STPOS, getStopWatchDeltaPos, 8, + "Status register for receiving stop watch delta"), REG_RO }, + { DRDATAD (STPNW, stopWatchNow, 32, + "Starting time of stop watch"), REG_RO }, + { DRDATAD (MTSP, markTimeSP, 8, + "Stack pointer of timer stack"), REG_RO }, - { DRDATA (VPOS, versionPos, 8), REG_RO }, - { DRDATA (LCPMS, lastCPMStatus, 8), REG_RO }, - { DRDATA (LCMD, lastCommand, 8), REG_RO }, - { DRDATA (CPOS, getCommonPos, 8), REG_RO }, + { DRDATAD (VPOS, versionPos, 8, + "Status register for sending version information"), REG_RO }, + { DRDATAD (LCPMS, lastCPMStatus, 8, + "Result of last attachCPM command"), REG_RO }, + { DRDATAD (LCMD, lastCommand, 8, + "Last command processed on SIMH port"), REG_RO }, + { DRDATAD (CPOS, getCommonPos, 8, + "Status register for sending the COMMON register"), REG_RO }, { NULL } }; static MTAB simh_mod[] = { /* timer generated interrupts are off */ - { UNIT_SIMH_TIMERON, 0, "TIMEROFF", "TIMEROFF", &simh_dev_set_timeroff }, + { UNIT_SIMH_TIMERON, 0, "TIMEROFF", "TIMEROFF", &simh_dev_set_timeroff, + NULL, NULL, "Stop periodic timer interrupts" }, /* timer generated interrupts are on */ - { UNIT_SIMH_TIMERON, UNIT_SIMH_TIMERON, "TIMERON", "TIMERON", &simh_dev_set_timeron }, + { UNIT_SIMH_TIMERON, UNIT_SIMH_TIMERON, "TIMERON", "TIMERON", &simh_dev_set_timeron, + NULL, NULL, "Start periodic timer interrupts" }, { 0 } }; @@ -456,7 +514,7 @@ static t_stat sio_reset(DEVICE *dptr) { int32 i; sim_debug(VERBOSE_MSG, &sio_dev, "SIO: " ADDRESS_FORMAT " Reset\n", PCX); sio_unit.u3 = FALSE; /* no character in terminal input buffer */ - sio_unit.buf = 0; + sio_unit.buf = 0; resetSIOWarningFlags(); if (sio_unit.u4) /* is terminal input attached to a file? */ rewind(sio_unit.fileref); /* yes, rewind input */ @@ -472,7 +530,7 @@ static t_stat ptr_reset(DEVICE *dptr) { sim_debug(VERBOSE_MSG, &ptr_dev, "PTR: " ADDRESS_FORMAT " Reset\n", PCX); resetSIOWarningFlags(); ptr_unit.u3 = FALSE; /* End Of File not yet reached */ - ptr_unit.buf = 0; + ptr_unit.buf = 0; if (ptr_unit.flags & UNIT_ATT) /* attached? */ rewind(ptr_unit.fileref); sim_map_resource(0x12, 1, RESOURCE_TYPE_IO, &sio1s, dptr->flags & DEV_DIS); @@ -650,18 +708,18 @@ static int32 sio0sCore(const int32 port, const int32 io, const int32 data) { pollConnection(); if (io == 0) { /* IN */ if (sio_unit.u4) { /* attached to a file? */ - if (sio_unit.u3) /* character available? */ - return spi.sio_can_read | spi.sio_can_write; - ch = getc(sio_unit.fileref); - if (ch == EOF) { + if (sio_unit.u3) /* character available? */ + return spi.sio_can_read | spi.sio_can_write; + ch = getc(sio_unit.fileref); + if (ch == EOF) { sio_detach(&sio_unit); /* detach file and switch to keyboard input */ - return spi.sio_cannot_read | spi.sio_can_write; - } - else { - sio_unit.u3 = TRUE; /* indicate character available */ - sio_unit.buf = ch; /* store character in buffer */ - return spi.sio_can_read | spi.sio_can_write; - } + return spi.sio_cannot_read | spi.sio_can_write; + } + else { + sio_unit.u3 = TRUE; /* indicate character available */ + sio_unit.buf = ch; /* store character in buffer */ + return spi.sio_can_read | spi.sio_can_write; + } } if (sio_unit.flags & UNIT_ATT) { /* attached to a port? */ if (tmxr_rqln(&TerminalLines[spi.terminalLine])) @@ -692,8 +750,8 @@ static int32 sio0sCore(const int32 port, const int32 io, const int32 data) { return spi.sio_cannot_read | spi.sio_can_write; } /* OUT follows, no fall-through from IN */ if (spi.hasReset && (data == spi.sio_reset)) { /* reset command */ - if (!sio_unit.u4) /* only reset for regular console I/O */ - sio_unit.u3 = FALSE; /* indicate that no character is available */ + if (!sio_unit.u4) /* only reset for regular console I/O */ + sio_unit.u3 = FALSE; /* indicate that no character is available */ sim_debug(CMD_MSG, &sio_dev, "\tSIO_S: " ADDRESS_FORMAT " Command OUT(0x%03x) = 0x%02x\n", PCX, port, data); } @@ -723,7 +781,7 @@ static int32 sio0dCore(const int32 port, const int32 io, const int32 data) { if ((sio_unit.flags & UNIT_ATT) && (!sio_unit.u4)) return mapCharacter(tmxr_getc_ln(&TerminalLines[spi.terminalLine])); if (!sio_unit.u3) { - sim_debug(BUFFER_EMPTY_MSG, &sio_dev, "\tSIO_D: " ADDRESS_FORMAT + sim_debug(BUFFER_EMPTY_MSG, &sio_dev, "\tSIO_D: " ADDRESS_FORMAT " IN(0x%03x) for empty character buffer\n", PCX, port); } sio_unit.u3 = FALSE; /* no character is available any more */ @@ -733,9 +791,9 @@ static int32 sio0dCore(const int32 port, const int32 io, const int32 data) { ch = sio_unit.flags & UNIT_SIO_ANSI ? data & 0x7f : data; /* clear highest bit in ANSI mode */ if ((ch != CONTROLG_CHAR) || !(sio_unit.flags & UNIT_SIO_BELL)) { voidSleep(); - if ((sio_unit.flags & UNIT_ATT) && (!sio_unit.u4)) { /* attached to a port and not to a file */ + if ((sio_unit.flags & UNIT_ATT) && (!sio_unit.u4)) { /* attached to a port and not to a file */ tmxr_putc_ln(&TerminalLines[spi.terminalLine], ch); /* status ignored */ - tmxr_poll_tx(&altairTMXR); /* poll xmt */ + tmxr_poll_tx(&altairTMXR); /* poll xmt */ } else sim_putchar(ch); @@ -745,15 +803,15 @@ static int32 sio0dCore(const int32 port, const int32 io, const int32 data) { } static char* printable(char* result, int32 data, const int32 isIn) { - result[0] = 0; - data &= 0x7f; - if ((0x20 <= data) && (data < 0x7f)) - sprintf(result, isIn ? " <-\"%c\"" : " ->\"%c\"", data); - return result; + result[0] = 0; + data &= 0x7f; + if ((0x20 <= data) && (data < 0x7f)) + sprintf(result, isIn ? " <-\"%c\"" : " ->\"%c\"", data); + return result; } int32 sio0d(const int32 port, const int32 io, const int32 data) { - char buffer[8]; + char buffer[8]; const int32 result = sio0dCore(port, io, data); if (io == 0) { sim_debug(IN_MSG, &sio_dev, "\tSIO_D: " ADDRESS_FORMAT @@ -799,7 +857,7 @@ int32 sio1s(const int32 port, const int32 io, const int32 data) { " IN(0x%02x) = 0x%02x\n", PCX, port, result); sim_debug(IN_MSG, &ptp_dev, "PTP_S: " ADDRESS_FORMAT " IN(0x%02x) = 0x%02x\n", PCX, port, result); - } + } else if (io) { sim_debug(OUT_MSG, &ptr_dev, "PTR_S: " ADDRESS_FORMAT " OUT(0x%02x) = 0x%02x\n", PCX, port, data); @@ -1070,11 +1128,11 @@ static int32 fromBCD(const int32 x) { out (0feh),a ld a, out (0feh),a - ... ; send all parameters + ... ; send all parameters in a,(0feh) ; contains first byte of result in a,(0feh) ; contains second byte of result ... - + */ enum simhPseudoDeviceCommands { /* do not change order or remove commands, add only at the end */ @@ -1108,10 +1166,10 @@ enum simhPseudoDeviceCommands { /* do not change order or remove commands, add o SIMHSleepCmd, /* 27 let SIMH sleep for SIMHSleep microseconds */ getHostOSPathSeparatorCmd, /* 28 obtain the file path separator of the OS under which SIMH runs */ getHostFilenamesCmd, /* 29 perform wildcard expansion and obtain list of file names */ - readURLCmd, /* 30 read the contents of an URL */ - getCPUClockFrequency, /* 31 get the clock frequency of the CPU */ - setCPUClockFrequency, /* 32 set the clock frequency of the CPU */ - kSimhPseudoDeviceCommands + readURLCmd, /* 30 read the contents of an URL */ + getCPUClockFrequency, /* 31 get the clock frequency of the CPU */ + setCPUClockFrequency, /* 32 set the clock frequency of the CPU */ + kSimhPseudoDeviceCommands }; static char *cmdNames[kSimhPseudoDeviceCommands] = { @@ -1145,9 +1203,9 @@ static char *cmdNames[kSimhPseudoDeviceCommands] = { "SIMHSleep", "getHostOSPathSeparator", "getHostFilenames", - "readURL", - "getCPUClockFrequency", - "setCPUClockFrequency", + "readURL", + "getCPUClockFrequency", + "setCPUClockFrequency", }; #define CPM_COMMAND_LINE_LENGTH 128 @@ -1157,7 +1215,7 @@ static struct tm currentTime; static int32 currentTimeValid = FALSE; static char version[] = "SIMH004"; -#define URL_MAX_LENGTH 1024 +#define URL_MAX_LENGTH 1024 static uint32 urlPointer; static char urlStore[URL_MAX_LENGTH]; static uint8 *urlResult = NULL; @@ -1184,15 +1242,14 @@ static t_stat simh_dev_reset(DEVICE *dptr) { lastCommand = 0; lastCPMStatus = SCPE_OK; timerInterrupt = FALSE; - urlPointer = 0; - getClockFrequencyPos = 0; - setClockFrequencyPos = 0; - if (urlResult != NULL) { - free(urlResult); - urlResult = NULL; - } - if (simh_unit.flags & UNIT_SIMH_TIMERON) - simh_dev_set_timeron(NULL, 0, NULL, NULL); + urlPointer = 0; + getClockFrequencyPos = 0; + setClockFrequencyPos = 0; + if (urlResult != NULL) { + free(urlResult); + urlResult = NULL; + } + simh_dev_set_timeron(NULL, 0, NULL, NULL); return SCPE_OK; } @@ -1202,42 +1259,37 @@ static void warnNoRealTimeClock(void) { } static t_stat simh_dev_set_timeron(UNIT *uptr, int32 value, char *cptr, void *desc) { - if (rtc_avail) { - timeOfNextInterrupt = sim_os_msec() + timerDelta; - return sim_activate(&simh_unit, simh_unit.wait); /* activate unit */ - } - warnNoRealTimeClock(); - return SCPE_ARG; + timeOfNextInterrupt = sim_os_msec() + timerDelta; + return sim_activate(&simh_unit, simh_unit.wait); /* activate unit */ } static t_stat simh_dev_set_timeroff(UNIT *uptr, int32 value, char *cptr, void *desc) { timerInterrupt = FALSE; - if (rtc_avail) - sim_cancel(&simh_unit); return SCPE_OK; } static t_stat simh_svc(UNIT *uptr) { - uint32 now = sim_os_msec(); - if (now >= timeOfNextInterrupt) { - timerInterrupt = TRUE; - if (timerDelta == 0) - timeOfNextInterrupt = now + DEFAULT_TIMER_DELTA; - else { - uint32 newTimeOfNextInterrupt = now + timerDelta - (now - timeOfNextInterrupt) % timerDelta; - if (newTimeOfNextInterrupt != timeOfNextInterrupt + timerDelta) { - sim_debug(VERBOSE_MSG, &simh_device, "SIMH: " ADDRESS_FORMAT - " Timer interrupts skipped %i. Delta %i. Expect %i. Got %i.\n", - PCX, (newTimeOfNextInterrupt - timeOfNextInterrupt) / timerDelta - 1, - timerDelta, timeOfNextInterrupt + timerDelta - now, - newTimeOfNextInterrupt - now); + if (simh_unit.flags & UNIT_SIMH_TIMERON) { + uint32 now = sim_os_msec(); + if (now >= timeOfNextInterrupt) { + timerInterrupt = TRUE; + if (timerDelta == 0) + timeOfNextInterrupt = now + DEFAULT_TIMER_DELTA; + else { + uint32 newTimeOfNextInterrupt = now + timerDelta - (now - timeOfNextInterrupt) % timerDelta; + if (newTimeOfNextInterrupt != timeOfNextInterrupt + timerDelta) { + sim_debug(VERBOSE_MSG, &simh_device, "SIMH: " ADDRESS_FORMAT + " Timer interrupts skipped %i. Delta %i. Expect %i. Got %i.\n", + PCX, (newTimeOfNextInterrupt - timeOfNextInterrupt) / timerDelta - 1, + timerDelta, timeOfNextInterrupt + timerDelta - now, + newTimeOfNextInterrupt - now); + } + timeOfNextInterrupt = newTimeOfNextInterrupt; } - timeOfNextInterrupt = newTimeOfNextInterrupt; } + /* post condition: now < timeOfNextInterrupt */ } - /* post condition: now < timeOfNextInterrupt */ - if (simh_unit.flags & UNIT_SIMH_TIMERON) - sim_activate(&simh_unit, simh_unit.wait); /* activate unit */ + sim_activate(&simh_unit, simh_unit.wait); /* activate unit */ return SCPE_OK; } @@ -1321,26 +1373,26 @@ static void setClockCPM3(void) { static int32 simh_in(const int32 port) { int32 result = 0; switch(lastCommand) { - case readURLCmd: + case readURLCmd: if (isInReadPhase) { - if (showAvailability) { - if (resultPointer < resultLength) - result = 1; - else { - if (urlResult != NULL) - free(urlResult); - urlResult = NULL; - lastCommand = 0; - } - } - else if (resultPointer < resultLength) - result = urlResult[resultPointer++]; - showAvailability = 1 - showAvailability; + if (showAvailability) { + if (resultPointer < resultLength) + result = 1; + else { + if (urlResult != NULL) + free(urlResult); + urlResult = NULL; + lastCommand = 0; + } + } + else if (resultPointer < resultLength) + result = urlResult[resultPointer++]; + showAvailability = 1 - showAvailability; } else lastCommand = 0; - break; - + break; + case getHostFilenamesCmd: #if UNIX_PLATFORM if (globValid) { @@ -1481,7 +1533,7 @@ static int32 simh_in(const int32 port) { } break; - case getCPUClockFrequency: + case getCPUClockFrequency: if (getClockFrequencyPos == 0) { result = getClockFrequency() & 0xff; getClockFrequencyPos = 1; @@ -1491,7 +1543,7 @@ static int32 simh_in(const int32 port) { getClockFrequencyPos = lastCommand = 0; } break; - + case hasBankedMemoryCmd: result = cpu_unit.flags & UNIT_CPU_BANKED ? MAXBANKS : 0; lastCommand = 0; @@ -1544,7 +1596,7 @@ void do_SIMH_sleep(void) { static int32 simh_out(const int32 port, const int32 data) { time_t now; switch(lastCommand) { - case readURLCmd: + case readURLCmd: if (isInReadPhase) lastCommand = 0; else { @@ -1561,9 +1613,9 @@ static int32 simh_out(const int32 port, const int32 data) { showAvailability = 1; isInReadPhase = TRUE; } - } - break; - + } + break; + case setClockZSDOSCmd: if (setClockZSDOSPos == 0) { setClockZSDOSAdr = data; @@ -1575,7 +1627,7 @@ static int32 simh_out(const int32 port, const int32 data) { setClockZSDOSPos = lastCommand = 0; } break; - + case setClockCPM3Cmd: if (setClockCPM3Pos == 0) { setClockCPM3Adr = data; @@ -1587,18 +1639,18 @@ static int32 simh_out(const int32 port, const int32 data) { setClockCPM3Pos = lastCommand = 0; } break; - - case setCPUClockFrequency: - if (setClockFrequencyPos == 0) { - newClockFrequency = data; - setClockFrequencyPos = 1; - } - else { - setClockFrequency((data << 8) | newClockFrequency); + + case setCPUClockFrequency: + if (setClockFrequencyPos == 0) { + newClockFrequency = data; + setClockFrequencyPos = 1; + } + else { + setClockFrequency((data << 8) | newClockFrequency); setClockFrequencyPos = lastCommand = 0; - } - break; - + } + break; + case setBankSelectCmd: if (cpu_unit.flags & UNIT_CPU_BANKED) setBankSelect(data & BANKMASK); @@ -1608,7 +1660,7 @@ static int32 simh_out(const int32 port, const int32 data) { PCX, data & 3); lastCommand = 0; break; - + case setTimerDeltaCmd: if (setTimerDeltaPos == 0) { timerDelta = data; @@ -1625,7 +1677,7 @@ static int32 simh_out(const int32 port, const int32 data) { } } break; - + case setTimerInterruptAdrCmd: if (setTimerInterruptAdrPos == 0) { timerInterruptHandler = data; @@ -1636,21 +1688,21 @@ static int32 simh_out(const int32 port, const int32 data) { setTimerInterruptAdrPos = lastCommand = 0; } break; - + default: /* lastCommand not yet set */ sim_debug(CMD_MSG, &simh_device, "SIMH: " ADDRESS_FORMAT " CMD(0x%02x) <- %i (0x%02x, '%s')\n", PCX, port, data, data, (0 <= data) && (data < kSimhPseudoDeviceCommands) ? cmdNames[data] : "Unknown command"); - + lastCommand = data; switch(data) { - case readURLCmd: - urlPointer = 0; + case readURLCmd: + urlPointer = 0; isInReadPhase = FALSE; - break; - + break; + case getHostFilenamesCmd: #if UNIX_PLATFORM if (!globValid) { @@ -1685,18 +1737,18 @@ static int32 simh_out(const int32 port, const int32 data) { } #endif break; - + case SIMHSleepCmd: do_SIMH_sleep(); break; - + case printTimeCmd: /* print time */ if (rtc_avail) printf("SIMH: " ADDRESS_FORMAT " Current time in milliseconds = %d." NLP, PCX, sim_os_msec()); else warnNoRealTimeClock(); break; - + case startTimerCmd: /* create a new timer on top of stack */ if (rtc_avail) if (markTimeSP < TIMER_STACK_LIMIT) @@ -1706,7 +1758,7 @@ static int32 simh_out(const int32 port, const int32 data) { else warnNoRealTimeClock(); break; - + case stopTimerCmd: /* stop timer on top of stack and show time difference */ if (rtc_avail) if (markTimeSP > 0) { @@ -1718,23 +1770,23 @@ static int32 simh_out(const int32 port, const int32 data) { else warnNoRealTimeClock(); break; - + case resetPTRCmd: /* reset ptr device */ ptr_reset(&ptr_dev); break; - + case attachPTRCmd: /* attach ptr to the file with name at beginning of CP/M command line */ attachCPM(&ptr_unit); break; - + case detachPTRCmd: /* detach ptr */ detach_unit(&ptr_unit); break; - + case getSIMHVersionCmd: versionPos = 0; break; - + case getClockZSDOSCmd: time(&now); now += ClockZSDOSDelta; @@ -1742,11 +1794,11 @@ static int32 simh_out(const int32 port, const int32 data) { currentTimeValid = TRUE; getClockZSDOSPos = 0; break; - + case setClockZSDOSCmd: setClockZSDOSPos = 0; break; - + case getClockCPM3Cmd: time(&now); now += ClockCPM3Delta; @@ -1755,29 +1807,29 @@ static int32 simh_out(const int32 port, const int32 data) { daysCPM3SinceOrg = (int32) ((now - mkCPM3Origin()) / SECONDS_PER_DAY); getClockCPM3Pos = 0; break; - + case setClockCPM3Cmd: setClockCPM3Pos = 0; break; - - case getCommonCmd: - getCommonPos = 0; - break; - - case getCPUClockFrequency: - getClockFrequencyPos = 0; - break; - - case setCPUClockFrequency: - setClockFrequencyPos = 0; - break; - + + case getCommonCmd: + getCommonPos = 0; + break; + + case getCPUClockFrequency: + getClockFrequencyPos = 0; + break; + + case setCPUClockFrequency: + setClockFrequencyPos = 0; + break; + case getBankSelectCmd: case setBankSelectCmd: case hasBankedMemoryCmd: case getHostOSPathSeparatorCmd: break; - + case resetSIMHInterfaceCmd: markTimeSP = 0; lastCommand = 0; @@ -1795,7 +1847,7 @@ static int32 simh_out(const int32 port, const int32 data) { } #endif break; - + case showTimerCmd: /* show time difference to timer on top of stack */ if (rtc_avail) if (markTimeSP > 0) { @@ -1807,52 +1859,52 @@ static int32 simh_out(const int32 port, const int32 data) { else warnNoRealTimeClock(); break; - + case attachPTPCmd: /* attach ptp to the file with name at beginning of CP/M command line */ attachCPM(&ptp_unit); break; - + case detachPTPCmd: /* detach ptp */ detach_unit(&ptp_unit); break; - + case setZ80CPUCmd: chiptype = CHIP_TYPE_Z80; break; - + case set8080CPUCmd: chiptype = CHIP_TYPE_8080; break; - + case startTimerInterruptsCmd: if (simh_dev_set_timeron(NULL, 0, NULL, NULL) == SCPE_OK) { timerInterrupt = FALSE; simh_unit.flags |= UNIT_SIMH_TIMERON; } break; - + case stopTimerInterruptsCmd: simh_unit.flags &= ~UNIT_SIMH_TIMERON; simh_dev_set_timeroff(NULL, 0, NULL, NULL); break; - + case setTimerDeltaCmd: setTimerDeltaPos = 0; break; - + case setTimerInterruptAdrCmd: setTimerInterruptAdrPos = 0; break; - + case resetStopWatchCmd: stopWatchNow = rtc_avail ? sim_os_msec() : 0; break; - + case readStopWatchCmd: getStopWatchDeltaPos = 0; stopWatchDelta = rtc_avail ? sim_os_msec() - stopWatchNow : 0; break; - + default: sim_debug(CMD_MSG, &simh_device, "SIMH: " ADDRESS_FORMAT " Unknown command (%i) to SIMH pseudo device on port %03xh ignored.\n", diff --git a/AltairZ80/altairz80_sys.c b/AltairZ80/altairz80_sys.c index 4218f4bd..8e1574ba 100644 --- a/AltairZ80/altairz80_sys.c +++ b/AltairZ80/altairz80_sys.c @@ -26,11 +26,11 @@ Based on work by Charles E Owen (c) 1997 Disassembler from Marat Fayzullin ((c) 1995, 1996, 1997 - Commercial use prohibited) - 03/27/14 -- MWD Add MITS Hard Disk device (mhdsk_dev) + 03/27/14 -- MWD Add MITS Hard Disk device (mhdsk_dev) */ +#include "m68k.h" #include -#include "altairz80_defs.h" #define SIM_EMAX 6 @@ -72,10 +72,6 @@ extern DEVICE wdi2_dev; extern DEVICE scp300f_dev; -#ifdef USE_FPC -extern DEVICE fpc_dev; -#endif /* USE_FPC */ - extern int32 chiptype; extern long disasm (unsigned char *data, char *output, int segsize, long offset); @@ -98,7 +94,7 @@ t_stat show_iobase(FILE *st, UNIT *uptr, int32 val, void *desc); */ char sim_name[] = "Altair 8800 (Z80)"; -REG *sim_PC = &cpu_reg[6]; +REG *sim_PC = &cpu_reg[CPU_INDEX_8080]; int32 sim_emax = SIM_EMAX; DEVICE *sim_devices[] = { /* AltairZ80 Devices */ @@ -380,6 +376,7 @@ static void printHex4(char* string, const uint32 value) { addr = current PC Outputs: *S = output text + return = length of instruction in bytes DAsm is Copyright (C) Marat Fayzullin 1995,1996,1997 You are not allowed to distribute this software @@ -494,7 +491,7 @@ static int32 DAsm(char *S, const uint32 *val, const int32 useZ80Mnemonics, const t_stat fprint_sym(FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw) { char disasm_result[128]; int32 ch = val[0] & 0x7f; - long r; + long r = 1; unsigned char vals[SIM_EMAX]; int32 i; if (sw & (SWMASK('A') | SWMASK('C'))) { @@ -503,13 +500,26 @@ t_stat fprint_sym(FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw) { } if (!(sw & SWMASK('M'))) return SCPE_ARG; - if (chiptype == CHIP_TYPE_8086) { - for (i = 0; i < SIM_EMAX; i++) - vals[i] = val[i] & 0xff; - r = disasm(vals, disasm_result, 16, addr); + switch (chiptype) { + case CHIP_TYPE_8080: + r = DAsm(disasm_result, val, FALSE, addr); + break; + + case CHIP_TYPE_Z80: + r = DAsm(disasm_result, val, TRUE, addr); + break; + + case CHIP_TYPE_8086: + for (i = 0; i < SIM_EMAX; i++) + vals[i] = val[i] & 0xff; + r = disasm(vals, disasm_result, 16, addr); + break; + + case CHIP_TYPE_M68K: + r = m68k_disassemble(disasm_result, addr, M68K_CPU_TYPE_68000); + break; + } - else - r = DAsm(disasm_result, val, chiptype == CHIP_TYPE_Z80, addr); fprintf(of, "%s", disasm_result); return 1 - r; } @@ -700,7 +710,7 @@ static int32 parse_X80(const char *cptr, const int32 addr, uint32 *val, char *co return -3; /* three additional bytes returned */ } else - return -1; /* one additional byte returned */ + return -1; /* one additional byte returned */ } } @@ -731,7 +741,7 @@ static int32 parse_X80(const char *cptr, const int32 addr, uint32 *val, char *co return -2; /* two additional bytes returned */ } else - return -1; /* one additional byte returned */ + return -1; /* one additional byte returned */ } } @@ -769,14 +779,19 @@ static int32 parse_X80(const char *cptr, const int32 addr, uint32 *val, char *co status = error status */ t_stat parse_sym(char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw) { - static t_bool symbolicInputNotImplementedMessage = FALSE; -#define NO_SYMBOLIC_INPUT_MESSAGE "Symbolic input is not supported for the 8086.\n" - if (chiptype == CHIP_TYPE_8086) { - if (!symbolicInputNotImplementedMessage) { - printf(NO_SYMBOLIC_INPUT_MESSAGE); - if (sim_log) - fprintf(sim_log, NO_SYMBOLIC_INPUT_MESSAGE); - symbolicInputNotImplementedMessage = TRUE; + static t_bool symbolicInputNotImplementedMessage8086 = FALSE; + static t_bool symbolicInputNotImplementedMessageM68K = FALSE; + if ((sw & (SWMASK('M'))) && (chiptype == CHIP_TYPE_8086)) { + if (!symbolicInputNotImplementedMessage8086) { + sim_printf("Symbolic input is not supported for the 8086.\n"); + symbolicInputNotImplementedMessage8086 = TRUE; + } + return SCPE_NOFNC; + } + if ((sw & (SWMASK('M'))) && (chiptype == CHIP_TYPE_M68K)) { + if (!symbolicInputNotImplementedMessageM68K) { + sim_printf("Symbolic input is not supported for the M68K.\n"); + symbolicInputNotImplementedMessageM68K = TRUE; } return SCPE_NOFNC; } diff --git a/AltairZ80/flashwriter2.c b/AltairZ80/flashwriter2.c index ba11478f..6ba1e691 100644 --- a/AltairZ80/flashwriter2.c +++ b/AltairZ80/flashwriter2.c @@ -88,11 +88,15 @@ static UNIT fw2_unit[] = { { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, FW2_CAPACITY) } }; +#define FWII_NAME "Vector Graphic Flashwriter 2 FWII" + static MTAB fw2_mod[] = { /* quiet, no warning messages */ - { UNIT_FW2_VERBOSE, 0, "QUIET", "QUIET", NULL }, + { UNIT_FW2_VERBOSE, 0, "QUIET", "QUIET", NULL, NULL, NULL, + "No verbose messages for unit " FWII_NAME "n" }, /* verbose, show warning messages */ - { UNIT_FW2_VERBOSE, UNIT_FW2_VERBOSE, "VERBOSE", "VERBOSE", NULL }, + { UNIT_FW2_VERBOSE, UNIT_FW2_VERBOSE, "VERBOSE", "VERBOSE", NULL, NULL, NULL, + "Verbose messages for unit " FWII_NAME "n" }, { 0 } }; @@ -102,7 +106,7 @@ DEVICE fw2_dev = { NULL, NULL, NULL, NULL, &fw2_attach, &fw2_detach, NULL, (DEV_DISABLE | DEV_DIS), 0, - NULL, NULL, "Vector Graphic Flashwriter 2 FWII" + NULL, NULL, FWII_NAME }; /* Attach routine */ diff --git a/AltairZ80/i8272.c b/AltairZ80/i8272.c index bf7451da..5702caef 100644 --- a/AltairZ80/i8272.c +++ b/AltairZ80/i8272.c @@ -143,8 +143,6 @@ extern uint32 sim_map_resource(uint32 baseaddr, uint32 size, uint32 resource_typ extern void PutByteDMA(const uint32 Addr, const uint32 Value); extern uint8 GetByteDMA(const uint32 Addr); -#define UNIT_V_I8272_WLK (UNIT_V_UF + 0) /* write locked */ -#define UNIT_I8272_WLK (1 << UNIT_V_I8272_WLK) #define UNIT_V_I8272_VERBOSE (UNIT_V_UF + 1) /* verbose mode, i.e. show error messages */ #define UNIT_I8272_VERBOSE (1 << UNIT_V_I8272_VERBOSE) #define I8272_CAPACITY (77*2*16*256) /* Default Micropolis Disk Capacity */ @@ -191,29 +189,32 @@ static UNIT i8272_unit[] = { { UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, I8272_CAPACITY) } }; +#define I8272_NAME "Intel/NEC(765) FDC Core I8272" + static MTAB i8272_mod[] = { - { MTAB_XTD|MTAB_VDV, 0, "IOBASE", "IOBASE", &set_iobase, &show_iobase, NULL }, - { UNIT_I8272_WLK, 0, "WRTENB", "WRTENB", NULL }, - { UNIT_I8272_WLK, UNIT_I8272_WLK, "WRTLCK", "WRTLCK", NULL }, + { MTAB_XTD|MTAB_VDV, 0, "IOBASE", "IOBASE", + &set_iobase, &show_iobase, NULL, "Sets disk controller I/O base address" }, /* quiet, no warning messages */ - { UNIT_I8272_VERBOSE, 0, "QUIET", "QUIET", NULL }, + { UNIT_I8272_VERBOSE, 0, "QUIET", "QUIET", + NULL, NULL, NULL, "No verbose messages for unit " I8272_NAME "n" }, /* verbose, show warning messages */ - { UNIT_I8272_VERBOSE, UNIT_I8272_VERBOSE, "VERBOSE", "VERBOSE", NULL }, + { UNIT_I8272_VERBOSE, UNIT_I8272_VERBOSE, "VERBOSE", "VERBOSE", + NULL, NULL, NULL, "Verbose messages for unit " I8272_NAME "n" }, { 0 } }; /* Debug Flags */ static DEBTAB i8272_dt[] = { - { "ERROR", ERROR_MSG }, - { "SEEK", SEEK_MSG }, - { "CMD", CMD_MSG }, - { "RDDATA", RD_DATA_MSG }, - { "WRDATA", WR_DATA_MSG }, - { "STATUS", STATUS_MSG }, - { "FMT", FMT_MSG }, - { "VERBOSE",VERBOSE_MSG }, - { "IRQ", IRQ_MSG }, - { NULL, 0 } + { "ERROR", ERROR_MSG, "Error messages" }, + { "SEEK", SEEK_MSG, "Seek messages" }, + { "CMD", CMD_MSG, "Command messages" }, + { "READ", RD_DATA_MSG, "Read messages" }, + { "WRITE", WR_DATA_MSG, "Write messages" }, + { "STATUS", STATUS_MSG, "Status messages" }, + { "FMT", FMT_MSG, "Format messages" }, + { "VERBOSE", VERBOSE_MSG, "Verbose messages" }, + { "IRQ", IRQ_MSG, "IRQ messages" }, + { NULL, 0 } }; DEVICE i8272_dev = { @@ -222,7 +223,7 @@ DEVICE i8272_dev = { NULL, NULL, &i8272_reset, NULL, &i8272_attach, &i8272_detach, &i8272_info_data, (DEV_DISABLE | DEV_DIS | DEV_DEBUG), ERROR_MSG, - i8272_dt, NULL, "Intel/NEC(765) FDC Core I8272" + i8272_dt, NULL, I8272_NAME }; static uint8 I8272_Setup_Cmd(uint8 fdc_cmd); diff --git a/AltairZ80/m68k.h b/AltairZ80/m68k.h new file mode 100755 index 00000000..85550763 --- /dev/null +++ b/AltairZ80/m68k.h @@ -0,0 +1,339 @@ +#ifndef M68K__HEADER +#define M68K__HEADER + +/* ======================================================================== */ +/* ========================= LICENSING & COPYRIGHT ======================== */ +/* ======================================================================== */ +/* + * MUSASHI + * Version 3.3 + * + * A portable Motorola M680x0 processor emulation engine. + * Copyright 1998-2001 Karl Stenerud. All rights reserved. + * + * This code may be freely used for non-commercial purposes as long as this + * copyright notice remains unaltered in the source code and any binary files + * containing this code in compiled form. + * + * All other lisencing terms must be negotiated with the author + * (Karl Stenerud). + * + * The latest version of this code can be obtained at: + * http://kstenerud.cjb.net + */ + + + +/* ======================================================================== */ +/* ============================ GENERAL DEFINES =========================== */ + +/* ======================================================================== */ + +/* There are 7 levels of interrupt to the 68K. + * A transition from < 7 to 7 will cause a non-maskable interrupt (NMI). + */ +#define M68K_IRQ_NONE 0 +#define M68K_IRQ_1 1 +#define M68K_IRQ_2 2 +#define M68K_IRQ_3 3 +#define M68K_IRQ_4 4 +#define M68K_IRQ_5 5 +#define M68K_IRQ_6 6 +#define M68K_IRQ_7 7 + + +/* Special interrupt acknowledge values. + * Use these as special returns from the interrupt acknowledge callback + * (specified later in this header). + */ + +/* 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. + */ +#define M68K_INT_ACK_AUTOVECTOR 0xffffffff + +/* 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 M68K_INT_ACK_SPURIOUS 0xfffffffe + + +/* CPU types for use in m68k_set_cpu_type() */ +enum +{ + M68K_CPU_TYPE_INVALID, + M68K_CPU_TYPE_68000, + M68K_CPU_TYPE_68010, + M68K_CPU_TYPE_68EC020, + M68K_CPU_TYPE_68020, + M68K_CPU_TYPE_68030, /* Supported by disassembler ONLY */ + M68K_CPU_TYPE_68040 /* Supported by disassembler ONLY */ +}; + +/* Registers used by m68k_get_reg() and m68k_set_reg() */ +typedef enum +{ + /* Real registers */ + M68K_REG_D0, /* Data registers */ + M68K_REG_D1, + M68K_REG_D2, + M68K_REG_D3, + M68K_REG_D4, + M68K_REG_D5, + M68K_REG_D6, + M68K_REG_D7, + M68K_REG_A0, /* Address registers */ + M68K_REG_A1, + M68K_REG_A2, + M68K_REG_A3, + M68K_REG_A4, + M68K_REG_A5, + M68K_REG_A6, + M68K_REG_A7, + M68K_REG_PC, /* Program Counter */ + M68K_REG_SR, /* Status Register */ + M68K_REG_SP, /* The current Stack Pointer (located in A7) */ + M68K_REG_USP, /* User Stack Pointer */ + M68K_REG_ISP, /* Interrupt Stack Pointer */ + M68K_REG_MSP, /* Master Stack Pointer */ + M68K_REG_SFC, /* Source Function Code */ + M68K_REG_DFC, /* Destination Function Code */ + M68K_REG_VBR, /* Vector Base Register */ + M68K_REG_CACR, /* Cache Control Register */ + M68K_REG_CAAR, /* Cache Address Register */ + + /* Assumed registers */ + /* These are cheat registers which emulate the 1-longword prefetch + * present in the 68000 and 68010. + */ + M68K_REG_PREF_ADDR, /* Last prefetch address */ + M68K_REG_PREF_DATA, /* Last prefetch data */ + + /* Convenience registers */ + M68K_REG_PPC, /* Previous value in the program counter */ + M68K_REG_IR, /* Instruction register */ + M68K_REG_CPU_TYPE /* Type of CPU being run */ +} m68k_register_t; + +/* ======================================================================== */ +/* ====================== FUNCTIONS CALLED BY THE CPU ===================== */ +/* ======================================================================== */ + +/* You will have to implement these functions */ + +/* read/write functions called by the CPU to access memory. + * while values used are 32 bits, only the appropriate number + * of bits are relevant (i.e. in write_memory_8, only the lower 8 bits + * of value should be written to memory). + * + * NOTE: I have separated the immediate and PC-relative memory fetches + * from the other memory fetches because some systems require + * differentiation between PROGRAM and DATA fetches (usually + * for security setups such as encryption). + * This separation can either be achieved by setting + * M68K_SEPARATE_READS in m68kconf.h and defining + * the read functions, or by setting M68K_EMULATE_FC and + * making a function code callback function. + * Using the callback offers better emulation coverage + * because you can also monitor whether the CPU is in SYSTEM or + * USER mode, but it is also slower. + */ + +/* Read from anywhere */ +unsigned int m68k_read_memory_8(unsigned int address); +unsigned int m68k_read_memory_16(unsigned int address); +unsigned int m68k_read_memory_32(unsigned int address); + +/* Read data immediately following the PC */ +unsigned int m68k_read_immediate_16(unsigned int address); +unsigned int m68k_read_immediate_32(unsigned int address); + +/* Read data relative to the PC */ +unsigned int m68k_read_pcrelative_8(unsigned int address); +unsigned int m68k_read_pcrelative_16(unsigned int address); +unsigned int m68k_read_pcrelative_32(unsigned int address); + +/* Memory access for the disassembler */ +unsigned int m68k_read_disassembler_8 (unsigned int address); +unsigned int m68k_read_disassembler_16 (unsigned int address); +unsigned int m68k_read_disassembler_32 (unsigned int address); + +/* Write to anywhere */ +void m68k_write_memory_8(unsigned int address, unsigned int value); +void m68k_write_memory_16(unsigned int address, unsigned int value); +void m68k_write_memory_32(unsigned int address, unsigned int value); + + + +/* ======================================================================== */ +/* ============================== CALLBACKS =============================== */ +/* ======================================================================== */ + +/* These functions allow you to set callbacks to the host when specific events + * occur. Note that you must enable the corresponding value in m68kconf.h + * in order for these to do anything useful. + * Note: I have defined default callbacks which are used if you have enabled + * the corresponding #define in m68kconf.h but either haven't assigned a + * callback or have assigned a callback of NULL. + */ + +/* Set the callback for an interrupt acknowledge. + * You must enable M68K_EMULATE_INT_ACK in m68kconf.h. + * The CPU will call the callback with the interrupt level being acknowledged. + * The host program must return either a vector from 0x02-0xff, or one of the + * special interrupt acknowledge values specified earlier in this header. + * If this is not implemented, the CPU will always assume an autovectored + * interrupt, and will automatically clear the interrupt request when it + * services the interrupt. + * Default behavior: return M68K_INT_ACK_AUTOVECTOR. + */ +void m68k_set_int_ack_callback(int (*callback)(int int_level)); + + +/* Set the callback for a breakpoint acknowledge (68010+). + * You must enable M68K_EMULATE_BKPT_ACK in m68kconf.h. + * The CPU will call the callback with whatever was in the data field of the + * BKPT instruction for 68020+, or 0 for 68010. + * Default behavior: do nothing. + */ +void m68k_set_bkpt_ack_callback(void (*callback)(unsigned int data)); + + +/* Set the callback for the RESET instruction. + * You must enable M68K_EMULATE_RESET in m68kconf.h. + * The CPU calls this callback every time it encounters a RESET instruction. + * Default behavior: do nothing. + */ +void m68k_set_reset_instr_callback(void (*callback)(void)); + + +/* Set the callback for informing of a large PC change. + * You must enable M68K_MONITOR_PC in m68kconf.h. + * The CPU calls this callback with the new PC value every time the PC changes + * by a large value (currently set for changes by longwords). + * Default behavior: do nothing. + */ +void m68k_set_pc_changed_callback(void (*callback)(unsigned int new_pc)); + + +/* Set the callback for CPU function code changes. + * You must enable M68K_EMULATE_FC in m68kconf.h. + * The CPU calls this callback with the function code before every memory + * access to set the CPU's function code according to what kind of memory + * access it is (supervisor/user, program/data and such). + * Default behavior: do nothing. + */ +void m68k_set_fc_callback(void (*callback)(unsigned int new_fc)); + + +/* Set a callback for the instruction cycle of the CPU. + * You must enable M68K_INSTRUCTION_HOOK in m68kconf.h. + * The CPU calls this callback just before fetching the opcode in the + * instruction cycle. + * Default behavior: do nothing. + */ +void m68k_set_instr_hook_callback(void (*callback)(void)); + + + +/* ======================================================================== */ +/* ====================== FUNCTIONS TO ACCESS THE CPU ===================== */ +/* ======================================================================== */ + +/* Use this function to set the CPU type you want to emulate. + * Currently supported types are: M68K_CPU_TYPE_68000, M68K_CPU_TYPE_68010, + * M68K_CPU_TYPE_EC020, and M68K_CPU_TYPE_68020. + */ +void m68k_set_cpu_type(unsigned int cpu_type); + +/* Pulse the RESET pin on the CPU. + * You *MUST* reset the CPU at least once to initialize the emulation + * Note: If you didn't call m68k_set_cpu_type() before resetting + * the CPU for the first time, the CPU will be set to + * M68K_CPU_TYPE_68000. + */ +void m68k_pulse_reset(void); + +/* execute num_cycles worth of instructions. returns number of cycles used */ +int m68k_execute(int num_cycles); + +/* These functions let you read/write/modify the number of cycles left to run + * while m68k_execute() is running. + * These are useful if the 68k accesses a memory-mapped port on another device + * that requires immediate processing by another CPU. + */ +int m68k_cycles_run(void); /* Number of cycles run so far */ +int m68k_cycles_remaining(void); /* Number of cycles left */ +void m68k_modify_timeslice(int cycles); /* Modify cycles left */ +void m68k_end_timeslice(void); /* End timeslice now */ + +/* Set the IPL0-IPL2 pins on the CPU (IRQ). + * A transition from < 7 to 7 will cause a non-maskable interrupt (NMI). + * Setting IRQ to 0 will clear an interrupt request. + */ +void m68k_set_irq(unsigned int int_level); + + +/* Halt the CPU as if you pulsed the HALT pin. */ +void m68k_pulse_halt(void); + + +/* Context switching to allow multiple CPUs */ + +/* Get the size of the cpu context in bytes */ +unsigned int m68k_context_size(void); + +/* Get a cpu context */ +unsigned int m68k_get_context(void* dst); + +/* set the current cpu context */ +void m68k_set_context(void* dst); + +/* Save the current cpu context to disk. + * You must provide a function pointer of the form: + * void save_value(char* identifier, unsigned int value) + */ +void m68k_save_context( void (*save_value)(char* identifier, unsigned int value)); + +/* Load a cpu context from disk. + * You must provide a function pointer of the form: + * unsigned int load_value(char* identifier) + */ +void m68k_load_context(unsigned int (*load_value)(char* identifier)); + + + +/* Peek at the internals of a CPU context. This can either be a context + * retrieved using m68k_get_context() or the currently running context. + * If context is NULL, the currently running CPU context will be used. + */ +unsigned int m68k_get_reg(void* context, m68k_register_t reg); + +/* Poke values into the internals of the currently running CPU context */ +void m68k_set_reg(m68k_register_t reg, unsigned int value); + +/* Check if an instruction is valid for the specified CPU type */ +unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cpu_type); + +/* Disassemble 1 instruction using the epecified CPU type at pc. Stores + * disassembly in str_buff and returns the size of the instruction in bytes. + */ +unsigned int m68k_disassemble(char* str_buff, unsigned int pc, unsigned int cpu_type); + + +/* ======================================================================== */ +/* ============================= CONFIGURATION ============================ */ +/* ======================================================================== */ + +/* Import the configuration for this build */ +#include "m68kconf.h" + + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + +#endif /* M68K__HEADER */ diff --git a/AltairZ80/m68kconf.h b/AltairZ80/m68kconf.h new file mode 100644 index 00000000..3e954c58 --- /dev/null +++ b/AltairZ80/m68kconf.h @@ -0,0 +1,193 @@ +/* ======================================================================== */ +/* ========================= LICENSING & COPYRIGHT ======================== */ +/* ======================================================================== */ +/* + * MUSASHI + * Version 3.3 + * + * A portable Motorola M680x0 processor emulation engine. + * Copyright 1998-2001 Karl Stenerud. All rights reserved. + * + * This code may be freely used for non-commercial purposes as long as this + * copyright notice remains unaltered in the source code and any binary files + * containing this code in compiled form. + * + * All other lisencing terms must be negotiated with the author + * (Karl Stenerud). + * + * The latest version of this code can be obtained at: + * http://kstenerud.cjb.net + */ + + + +#ifndef M68KCONF__HEADER +#define M68KCONF__HEADER + + +/* Configuration switches. + * Use OPT_SPECIFY_HANDLER for configuration options that allow callbacks. + * OPT_SPECIFY_HANDLER causes the core to link directly to the function + * or macro you specify, rather than using callback functions whose pointer + * must be passed in using m68k_set_xxx_callback(). + */ +#define OPT_OFF 0 +#define OPT_ON 1 +#define OPT_SPECIFY_HANDLER 2 + + +/* ======================================================================== */ +/* ============================== MAME STUFF ============================== */ +/* ======================================================================== */ + +/* If you're compiling this for MAME, only change M68K_COMPILE_FOR_MAME + * to OPT_ON and use m68kmame.h to configure the 68k core. + */ +#ifndef M68K_COMPILE_FOR_MAME +#define M68K_COMPILE_FOR_MAME OPT_OFF +#endif /* M68K_COMPILE_FOR_MAME */ + +#if M68K_COMPILE_FOR_MAME == OPT_ON +#include "m68kmame.h" +#else + + + +/* ======================================================================== */ +/* ============================= CONFIGURATION ============================ */ +/* ======================================================================== */ + +/* Turn on if you want to use the following M68K variants */ +#define M68K_EMULATE_010 OPT_OFF +#define M68K_EMULATE_EC020 OPT_OFF +#define M68K_EMULATE_020 OPT_OFF + + +/* If on, the CPU will call m68k_read_immediate_xx() for immediate addressing + * and m68k_read_pcrelative_xx() for PC-relative addressing. + * If off, all read requests from the CPU will be redirected to m68k_read_xx() + */ +#define M68K_SEPARATE_READS OPT_OFF + + +/* If on, CPU will call the interrupt acknowledge callback when it services an + * interrupt. + * If off, all interrupts will be autovectored and all interrupt requests will + * auto-clear when the interrupt is serviced. + */ +#define M68K_EMULATE_INT_ACK OPT_SPECIFY_HANDLER +#define M68K_INT_ACK_CALLBACK(A) m68k_cpu_irq_ack(A) + + +/* If on, CPU will call the breakpoint acknowledge callback when it encounters + * a breakpoint instruction and it is running a 68010+. + */ +#define M68K_EMULATE_BKPT_ACK OPT_OFF +#define M68K_BKPT_ACK_CALLBACK() your_bkpt_ack_handler_function() + + +/* If on, the CPU will monitor the trace flags and take trace exceptions + */ +#define M68K_EMULATE_TRACE OPT_OFF + + +/* If on, CPU will call the output reset callback when it encounters a reset + * instruction. + */ +#define M68K_EMULATE_RESET OPT_SPECIFY_HANDLER +#define M68K_RESET_CALLBACK() m68k_cpu_pulse_reset() + + +/* If on, CPU will call the set fc callback on every memory access to + * differentiate between user/supervisor, program/data access like a real + * 68000 would. This should be enabled and the callback should be set if you + * want to properly emulate the m68010 or higher. (moves uses function codes + * to read/write data from different address spaces) + */ +#define M68K_EMULATE_FC OPT_SPECIFY_HANDLER +#define M68K_SET_FC_CALLBACK(A) m68k_cpu_set_fc(A) + + +/* If on, CPU will call the pc changed callback when it changes the PC by a + * large value. This allows host programs to be nicer when it comes to + * fetching immediate data and instructions on a banked memory system. + */ +#define M68K_MONITOR_PC OPT_OFF +#define M68K_SET_PC_CALLBACK(A) your_pc_changed_handler_function(A) + + +/* If on, CPU will call the instruction hook callback before every + * instruction. + */ +#define M68K_INSTRUCTION_HOOK OPT_OFF +#define M68K_INSTRUCTION_CALLBACK() your_instruction_hook_function() + + +/* If on, the CPU will emulate the 4-byte prefetch queue of a real 68000 */ +#define M68K_EMULATE_PREFETCH OPT_ON + + +/* If on, the CPU will generate address error exceptions if it tries to + * access a word or longword at an odd address. + * NOTE: Do not enable this! It is not working! + */ +#define M68K_EMULATE_ADDRESS_ERROR OPT_OFF + + +/* Turn on to enable logging of illegal instruction calls. + * M68K_LOG_FILEHANDLE must be #defined to a stdio file stream. + * Turn on M68K_LOG_1010_1111 to log all 1010 and 1111 calls. + */ +#define M68K_LOG_ENABLE OPT_OFF +#define M68K_LOG_1010_1111 OPT_OFF +#define M68K_LOG_FILEHANDLE some_file_handle + + +/* ----------------------------- COMPATIBILITY ---------------------------- */ + +/* The following options set optimizations that violate the current ANSI + * standard, but will be compliant under the forthcoming C9X standard. + */ + + +/* If on, the emulation core will use 64-bit integers to speed up some + * operations. +*/ +#define M68K_USE_64_BIT OPT_ON + + +/* Set to your compiler's static inline keyword to enable it, or + * set it to blank to disable it. + * If you define INLINE in the makefile, it will override this value. + * NOTE: not enabling inline functions will SEVERELY slow down emulation. + */ +#ifndef INLINE +#define INLINE static __inline +#endif /* INLINE */ + + +/* If your environment requires special prefixes for system callback functions + * such as the argument to qsort(), then set them here or in the makefile. + */ +#ifndef DECL_SPEC +#define DECL_SPEC +#endif + +#endif /* M68K_COMPILE_FOR_MAME */ + +#include "m68ksim.h" + +#define m68k_read_memory_8(A) m68k_cpu_read_byte(A) +#define m68k_read_memory_16(A) m68k_cpu_read_word(A) +#define m68k_read_memory_32(A) m68k_cpu_read_long(A) + +#define m68k_write_memory_8(A, V) m68k_cpu_write_byte(A, V) +#define m68k_write_memory_16(A, V) m68k_cpu_write_word(A, V) +#define m68k_write_memory_32(A, V) m68k_cpu_write_long(A, V) + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + +#endif /* M68KCONF__HEADER */ diff --git a/AltairZ80/m68kcpu.c b/AltairZ80/m68kcpu.c new file mode 100755 index 00000000..561a5385 --- /dev/null +++ b/AltairZ80/m68kcpu.c @@ -0,0 +1,894 @@ +/* ======================================================================== */ +/* ========================= LICENSING & COPYRIGHT ======================== */ +/* ======================================================================== */ + +#if 0 +static const char* copyright_notice = +"MUSASHI\n" +"Version 3.3 (2001-01-29)\n" +"A portable Motorola M680x0 processor emulation engine.\n" +"Copyright 1998-2001 Karl Stenerud. All rights reserved.\n" +"\n" +"This code may be freely used for non-commercial purpooses as long as this\n" +"copyright notice remains unaltered in the source code and any binary files\n" +"containing this code in compiled form.\n" +"\n" +"All other lisencing terms must be negotiated with the author\n" +"(Karl Stenerud).\n" +"\n" +"The latest version of this code can be obtained at:\n" +"http://kstenerud.cjb.net\n" +; +#endif + + +/* ======================================================================== */ +/* ================================= NOTES ================================ */ +/* ======================================================================== */ + + + +/* ======================================================================== */ +/* ================================ INCLUDES ============================== */ +/* ======================================================================== */ + +#include "m68kops.h" +#include "m68kcpu.h" + +/* ======================================================================== */ +/* ================================= DATA ================================= */ +/* ======================================================================== */ + +int m68ki_initial_cycles; +int m68ki_remaining_cycles = 0; /* Number of clocks remaining */ +uint m68ki_tracing = 0; +uint m68ki_address_space; + +#ifdef M68K_LOG_ENABLE +char* m68ki_cpu_names[9] = +{ + "Invalid CPU", + "M68000", + "M68010", + "Invalid CPU", + "M68EC020" + "Invalid CPU", + "Invalid CPU", + "Invalid CPU", + "M68020" +}; +#endif /* M68K_LOG_ENABLE */ + +/* The CPU core */ +m68ki_cpu_core m68ki_cpu = {0}; + +#if M68K_EMULATE_ADDRESS_ERROR +jmp_buf m68ki_address_error_trap; +#endif /* M68K_EMULATE_ADDRESS_ERROR */ + +/* Used by shift & rotate instructions */ +uint8 m68ki_shift_8_table[65] = +{ + 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff +}; +uint16 m68ki_shift_16_table[65] = +{ + 0x0000, 0x8000, 0xc000, 0xe000, 0xf000, 0xf800, 0xfc00, 0xfe00, 0xff00, + 0xff80, 0xffc0, 0xffe0, 0xfff0, 0xfff8, 0xfffc, 0xfffe, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff +}; +uint m68ki_shift_32_table[65] = +{ + 0x00000000, 0x80000000, 0xc0000000, 0xe0000000, 0xf0000000, 0xf8000000, + 0xfc000000, 0xfe000000, 0xff000000, 0xff800000, 0xffc00000, 0xffe00000, + 0xfff00000, 0xfff80000, 0xfffc0000, 0xfffe0000, 0xffff0000, 0xffff8000, + 0xffffc000, 0xffffe000, 0xfffff000, 0xfffff800, 0xfffffc00, 0xfffffe00, + 0xffffff00, 0xffffff80, 0xffffffc0, 0xffffffe0, 0xfffffff0, 0xfffffff8, + 0xfffffffc, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff +}; + + +/* Number of clock cycles to use for exception processing. + * I used 4 for any vectors that are undocumented for processing times. + */ +uint8 m68ki_exception_cycle_table[3][256] = +{ + { /* 000 */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 34, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero -- ASG: changed from 42 */ + 40, /* 6: CHK -- ASG: chanaged from 44 */ + 34, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 34, /* 9: Trace */ + 4, /* 10: 1010 */ + 4, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 44, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 44, /* 24: Spurious Interrupt */ + 44, /* 25: Level 1 Interrupt Autovector */ + 44, /* 26: Level 2 Interrupt Autovector */ + 44, /* 27: Level 3 Interrupt Autovector */ + 44, /* 28: Level 4 Interrupt Autovector */ + 44, /* 29: Level 5 Interrupt Autovector */ + 44, /* 30: Level 6 Interrupt Autovector */ + 44, /* 31: Level 7 Interrupt Autovector */ + 34, /* 32: TRAP #0 -- ASG: chanaged from 38 */ + 34, /* 33: TRAP #1 */ + 34, /* 34: TRAP #2 */ + 34, /* 35: TRAP #3 */ + 34, /* 36: TRAP #4 */ + 34, /* 37: TRAP #5 */ + 34, /* 38: TRAP #6 */ + 34, /* 39: TRAP #7 */ + 34, /* 40: TRAP #8 */ + 34, /* 41: TRAP #9 */ + 34, /* 42: TRAP #10 */ + 34, /* 43: TRAP #11 */ + 34, /* 44: TRAP #12 */ + 34, /* 45: TRAP #13 */ + 34, /* 46: TRAP #14 */ + 34, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* 010 */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 126, /* 2: Bus Error (unemulated) */ + 126, /* 3: Address Error (unemulated) */ + 38, /* 4: Illegal Instruction */ + 44, /* 5: Divide by Zero */ + 44, /* 6: CHK */ + 34, /* 7: TRAPV */ + 38, /* 8: Privilege Violation */ + 38, /* 9: Trace */ + 4, /* 10: 1010 */ + 4, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 44, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 46, /* 24: Spurious Interrupt */ + 46, /* 25: Level 1 Interrupt Autovector */ + 46, /* 26: Level 2 Interrupt Autovector */ + 46, /* 27: Level 3 Interrupt Autovector */ + 46, /* 28: Level 4 Interrupt Autovector */ + 46, /* 29: Level 5 Interrupt Autovector */ + 46, /* 30: Level 6 Interrupt Autovector */ + 46, /* 31: Level 7 Interrupt Autovector */ + 38, /* 32: TRAP #0 */ + 38, /* 33: TRAP #1 */ + 38, /* 34: TRAP #2 */ + 38, /* 35: TRAP #3 */ + 38, /* 36: TRAP #4 */ + 38, /* 37: TRAP #5 */ + 38, /* 38: TRAP #6 */ + 38, /* 39: TRAP #7 */ + 38, /* 40: TRAP #8 */ + 38, /* 41: TRAP #9 */ + 38, /* 42: TRAP #10 */ + 38, /* 43: TRAP #11 */ + 38, /* 44: TRAP #12 */ + 38, /* 45: TRAP #13 */ + 38, /* 46: TRAP #14 */ + 38, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + }, + { /* 020 */ + 4, /* 0: Reset - Initial Stack Pointer */ + 4, /* 1: Reset - Initial Program Counter */ + 50, /* 2: Bus Error (unemulated) */ + 50, /* 3: Address Error (unemulated) */ + 20, /* 4: Illegal Instruction */ + 38, /* 5: Divide by Zero */ + 40, /* 6: CHK */ + 20, /* 7: TRAPV */ + 34, /* 8: Privilege Violation */ + 25, /* 9: Trace */ + 20, /* 10: 1010 */ + 20, /* 11: 1111 */ + 4, /* 12: RESERVED */ + 4, /* 13: Coprocessor Protocol Violation (unemulated) */ + 4, /* 14: Format Error */ + 30, /* 15: Uninitialized Interrupt */ + 4, /* 16: RESERVED */ + 4, /* 17: RESERVED */ + 4, /* 18: RESERVED */ + 4, /* 19: RESERVED */ + 4, /* 20: RESERVED */ + 4, /* 21: RESERVED */ + 4, /* 22: RESERVED */ + 4, /* 23: RESERVED */ + 30, /* 24: Spurious Interrupt */ + 30, /* 25: Level 1 Interrupt Autovector */ + 30, /* 26: Level 2 Interrupt Autovector */ + 30, /* 27: Level 3 Interrupt Autovector */ + 30, /* 28: Level 4 Interrupt Autovector */ + 30, /* 29: Level 5 Interrupt Autovector */ + 30, /* 30: Level 6 Interrupt Autovector */ + 30, /* 31: Level 7 Interrupt Autovector */ + 20, /* 32: TRAP #0 */ + 20, /* 33: TRAP #1 */ + 20, /* 34: TRAP #2 */ + 20, /* 35: TRAP #3 */ + 20, /* 36: TRAP #4 */ + 20, /* 37: TRAP #5 */ + 20, /* 38: TRAP #6 */ + 20, /* 39: TRAP #7 */ + 20, /* 40: TRAP #8 */ + 20, /* 41: TRAP #9 */ + 20, /* 42: TRAP #10 */ + 20, /* 43: TRAP #11 */ + 20, /* 44: TRAP #12 */ + 20, /* 45: TRAP #13 */ + 20, /* 46: TRAP #14 */ + 20, /* 47: TRAP #15 */ + 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */ + 4, /* 49: FP Inexact Result (unemulated) */ + 4, /* 50: FP Divide by Zero (unemulated) */ + 4, /* 51: FP Underflow (unemulated) */ + 4, /* 52: FP Operand Error (unemulated) */ + 4, /* 53: FP Overflow (unemulated) */ + 4, /* 54: FP Signaling NAN (unemulated) */ + 4, /* 55: FP Unimplemented Data Type (unemulated) */ + 4, /* 56: MMU Configuration Error (unemulated) */ + 4, /* 57: MMU Illegal Operation Error (unemulated) */ + 4, /* 58: MMU Access Level Violation Error (unemulated) */ + 4, /* 59: RESERVED */ + 4, /* 60: RESERVED */ + 4, /* 61: RESERVED */ + 4, /* 62: RESERVED */ + 4, /* 63: RESERVED */ + /* 64-255: User Defined */ + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 + } +}; + +uint8 m68ki_ea_idx_cycle_table[64] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, /* ..01.000 no memory indirect, base NULL */ + 5, /* ..01..01 memory indirect, base NULL, outer NULL */ + 7, /* ..01..10 memory indirect, base NULL, outer 16 */ + 7, /* ..01..11 memory indirect, base NULL, outer 32 */ + 0, 5, 7, 7, 0, 5, 7, 7, 0, 5, 7, 7, + 2, /* ..10.000 no memory indirect, base 16 */ + 7, /* ..10..01 memory indirect, base 16, outer NULL */ + 9, /* ..10..10 memory indirect, base 16, outer 16 */ + 9, /* ..10..11 memory indirect, base 16, outer 32 */ + 0, 7, 9, 9, 0, 7, 9, 9, 0, 7, 9, 9, + 6, /* ..11.000 no memory indirect, base 32 */ + 11, /* ..11..01 memory indirect, base 32, outer NULL */ + 13, /* ..11..10 memory indirect, base 32, outer 16 */ + 13, /* ..11..11 memory indirect, base 32, outer 32 */ + 0, 11, 13, 13, 0, 11, 13, 13, 0, 11, 13, 13 +}; + + + +/* ======================================================================== */ +/* =============================== CALLBACKS ============================== */ +/* ======================================================================== */ + +/* Default callbacks used if the callback hasn't been set yet, or if the + * callback is set to NULL + */ + +/* Interrupt acknowledge */ +static int default_int_ack_callback_data; +static int default_int_ack_callback(int int_level) +{ + default_int_ack_callback_data = int_level; + CPU_INT_LEVEL = 0; + return M68K_INT_ACK_AUTOVECTOR; +} + +/* Breakpoint acknowledge */ +static unsigned int default_bkpt_ack_callback_data; +static void default_bkpt_ack_callback(unsigned int data) +{ + default_bkpt_ack_callback_data = data; +} + +/* Called when a reset instruction is executed */ +static void default_reset_instr_callback(void) +{ +} + +/* Called when the program counter changed by a large value */ +static unsigned int default_pc_changed_callback_data; +static void default_pc_changed_callback(unsigned int new_pc) +{ + default_pc_changed_callback_data = new_pc; +} + +/* Called every time there's bus activity (read/write to/from memory */ +static unsigned int default_set_fc_callback_data; +static void default_set_fc_callback(unsigned int new_fc) +{ + default_set_fc_callback_data = new_fc; +} + +/* Called every instruction cycle prior to execution */ +static void default_instr_hook_callback(void) +{ +} + + + +/* ======================================================================== */ +/* ================================= API ================================== */ +/* ======================================================================== */ + +/* Access the internals of the CPU */ +unsigned int m68k_get_reg(void* context, m68k_register_t regnum) +{ + m68ki_cpu_core* cpu = context != NULL ?(m68ki_cpu_core*)context : &m68ki_cpu; + + switch(regnum) + { + case M68K_REG_D0: return cpu->dar[0]; + case M68K_REG_D1: return cpu->dar[1]; + case M68K_REG_D2: return cpu->dar[2]; + case M68K_REG_D3: return cpu->dar[3]; + case M68K_REG_D4: return cpu->dar[4]; + case M68K_REG_D5: return cpu->dar[5]; + case M68K_REG_D6: return cpu->dar[6]; + case M68K_REG_D7: return cpu->dar[7]; + case M68K_REG_A0: return cpu->dar[8]; + case M68K_REG_A1: return cpu->dar[9]; + case M68K_REG_A2: return cpu->dar[10]; + case M68K_REG_A3: return cpu->dar[11]; + case M68K_REG_A4: return cpu->dar[12]; + case M68K_REG_A5: return cpu->dar[13]; + case M68K_REG_A6: return cpu->dar[14]; + case M68K_REG_A7: return cpu->dar[15]; + case M68K_REG_PC: return MASK_OUT_ABOVE_32(cpu->pc); + case M68K_REG_SR: return cpu->t1_flag | + cpu->t0_flag | + (cpu->s_flag << 11) | + (cpu->m_flag << 11) | + cpu->int_mask | + ((cpu->x_flag & XFLAG_SET) >> 4) | + ((cpu->n_flag & NFLAG_SET) >> 4) | + ((!cpu->not_z_flag) << 2) | + ((cpu->v_flag & VFLAG_SET) >> 6) | + ((cpu->c_flag & CFLAG_SET) >> 8); + case M68K_REG_SP: return cpu->dar[15]; + case M68K_REG_USP: return cpu->s_flag ? cpu->sp[0] : cpu->dar[15]; + case M68K_REG_ISP: return cpu->s_flag && !cpu->m_flag ? cpu->dar[15] : cpu->sp[4]; + case M68K_REG_MSP: return cpu->s_flag && cpu->m_flag ? cpu->dar[15] : cpu->sp[6]; + case M68K_REG_SFC: return cpu->sfc; + case M68K_REG_DFC: return cpu->dfc; + case M68K_REG_VBR: return cpu->vbr; + case M68K_REG_CACR: return cpu->cacr; + case M68K_REG_CAAR: return cpu->caar; + case M68K_REG_PREF_ADDR: return cpu->pref_addr; + case M68K_REG_PREF_DATA: return cpu->pref_data; + case M68K_REG_PPC: return MASK_OUT_ABOVE_32(cpu->ppc); + case M68K_REG_IR: return cpu->ir; + case M68K_REG_CPU_TYPE: + switch(cpu->cpu_type) + { + case CPU_TYPE_000: return (unsigned int)M68K_CPU_TYPE_68000; + case CPU_TYPE_010: return (unsigned int)M68K_CPU_TYPE_68010; + case CPU_TYPE_EC020: return (unsigned int)M68K_CPU_TYPE_68EC020; + case CPU_TYPE_020: return (unsigned int)M68K_CPU_TYPE_68020; + } + return M68K_CPU_TYPE_INVALID; + default: return 0; + } + return 0; +} + +void m68k_set_reg(m68k_register_t regnum, unsigned int value) +{ + switch(regnum) + { + case M68K_REG_D0: REG_D[0] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D1: REG_D[1] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D2: REG_D[2] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D3: REG_D[3] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D4: REG_D[4] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D5: REG_D[5] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D6: REG_D[6] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_D7: REG_D[7] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A0: REG_A[0] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A1: REG_A[1] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A2: REG_A[2] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A3: REG_A[3] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A4: REG_A[4] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A5: REG_A[5] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A6: REG_A[6] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_A7: REG_A[7] = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_PC: m68ki_jump(MASK_OUT_ABOVE_32(value)); return; + case M68K_REG_SR: m68ki_set_sr(value); return; + case M68K_REG_SP: REG_SP = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_USP: if(FLAG_S) + REG_USP = MASK_OUT_ABOVE_32(value); + else + REG_SP = MASK_OUT_ABOVE_32(value); + return; + case M68K_REG_ISP: if(FLAG_S && !FLAG_M) + REG_SP = MASK_OUT_ABOVE_32(value); + else + REG_ISP = MASK_OUT_ABOVE_32(value); + return; + case M68K_REG_MSP: if(FLAG_S && FLAG_M) + REG_SP = MASK_OUT_ABOVE_32(value); + else + REG_MSP = MASK_OUT_ABOVE_32(value); + return; + case M68K_REG_VBR: REG_VBR = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_SFC: REG_SFC = value & 7; return; + case M68K_REG_DFC: REG_DFC = value & 7; return; + case M68K_REG_CACR: REG_CACR = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_CAAR: REG_CAAR = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_PPC: REG_PPC = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_IR: REG_IR = MASK_OUT_ABOVE_16(value); return; + case M68K_REG_CPU_TYPE: m68k_set_cpu_type(value); return; + default: return; + } +} + +/* Set the callbacks */ +void m68k_set_int_ack_callback(int (*callback)(int int_level)) +{ + CALLBACK_INT_ACK = callback ? callback : default_int_ack_callback; +} + +void m68k_set_bkpt_ack_callback(void (*callback)(unsigned int data)) +{ + CALLBACK_BKPT_ACK = callback ? callback : default_bkpt_ack_callback; +} + +void m68k_set_reset_instr_callback(void (*callback)(void)) +{ + CALLBACK_RESET_INSTR = callback ? callback : default_reset_instr_callback; +} + +void m68k_set_pc_changed_callback(void (*callback)(unsigned int new_pc)) +{ + CALLBACK_PC_CHANGED = callback ? callback : default_pc_changed_callback; +} + +void m68k_set_fc_callback(void (*callback)(unsigned int new_fc)) +{ + CALLBACK_SET_FC = callback ? callback : default_set_fc_callback; +} + +void m68k_set_instr_hook_callback(void (*callback)(void)) +{ + CALLBACK_INSTR_HOOK = callback ? callback : default_instr_hook_callback; +} + +#include +/* Set the CPU type. */ +void m68k_set_cpu_type(unsigned int cpu_type) +{ + switch(cpu_type) + { + case M68K_CPU_TYPE_68000: + CPU_TYPE = CPU_TYPE_000; + CPU_ADDRESS_MASK = 0x00ffffff; + CPU_SR_MASK = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */ + CYC_INSTRUCTION = m68ki_cycles[0]; + CYC_EXCEPTION = m68ki_exception_cycle_table[0]; + CYC_BCC_NOTAKE_B = -2; + CYC_BCC_NOTAKE_W = 2; + CYC_DBCC_F_NOEXP = -2; + CYC_DBCC_F_EXP = 2; + CYC_SCC_R_FALSE = 2; + CYC_MOVEM_W = 2; + CYC_MOVEM_L = 3; + CYC_SHIFT = 1; + CYC_RESET = 132; + return; + case M68K_CPU_TYPE_68010: + CPU_TYPE = CPU_TYPE_010; + CPU_ADDRESS_MASK = 0x00ffffff; + CPU_SR_MASK = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */ + CYC_INSTRUCTION = m68ki_cycles[1]; + CYC_EXCEPTION = m68ki_exception_cycle_table[1]; + CYC_BCC_NOTAKE_B = -4; + CYC_BCC_NOTAKE_W = 0; + CYC_DBCC_F_NOEXP = 0; + CYC_DBCC_F_EXP = 6; + CYC_SCC_R_FALSE = 0; + CYC_MOVEM_W = 2; + CYC_MOVEM_L = 3; + CYC_SHIFT = 1; + CYC_RESET = 130; + return; + case M68K_CPU_TYPE_68EC020: + CPU_TYPE = CPU_TYPE_EC020; + CPU_ADDRESS_MASK = 0x00ffffff; + CPU_SR_MASK = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + CYC_INSTRUCTION = m68ki_cycles[2]; + CYC_EXCEPTION = m68ki_exception_cycle_table[2]; + CYC_BCC_NOTAKE_B = -2; + CYC_BCC_NOTAKE_W = 0; + CYC_DBCC_F_NOEXP = 0; + CYC_DBCC_F_EXP = 4; + CYC_SCC_R_FALSE = 0; + CYC_MOVEM_W = 2; + CYC_MOVEM_L = 2; + CYC_SHIFT = 0; + CYC_RESET = 518; + return; + case M68K_CPU_TYPE_68020: + CPU_TYPE = CPU_TYPE_020; + CPU_ADDRESS_MASK = 0xffffffff; + CPU_SR_MASK = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */ + CYC_INSTRUCTION = m68ki_cycles[2]; + CYC_EXCEPTION = m68ki_exception_cycle_table[2]; + CYC_BCC_NOTAKE_B = -2; + CYC_BCC_NOTAKE_W = 0; + CYC_DBCC_F_NOEXP = 0; + CYC_DBCC_F_EXP = 4; + CYC_SCC_R_FALSE = 0; + CYC_MOVEM_W = 2; + CYC_MOVEM_L = 2; + CYC_SHIFT = 0; + CYC_RESET = 518; + return; + } +} + +/* Execute some instructions until we use up num_cycles clock cycles */ +/* ASG: removed per-instruction interrupt checks */ +int m68k_execute(int num_cycles) +{ + /* Make sure we're not stopped */ + if(!CPU_STOPPED) + { + /* Set our pool of clock cycles available */ + SET_CYCLES(num_cycles); + m68ki_initial_cycles = num_cycles; + + /* ASG: update cycles */ + USE_CYCLES(CPU_INT_CYCLES); + CPU_INT_CYCLES = 0; + + /* Return point if we had an address error */ + m68ki_set_address_error_trap(); /* auto-disable (see m68kcpu.h) */ + + /* Main loop. Keep going until we run out of clock cycles */ + do + { + /* Set tracing accodring to T1. (T0 is done inside instruction) */ + m68ki_trace_t1(); /* auto-disable (see m68kcpu.h) */ + + /* Set the address space for reads */ + m68ki_use_data_space(); /* auto-disable (see m68kcpu.h) */ + + /* Call external hook to peek at CPU */ + m68ki_instr_hook(); /* auto-disable (see m68kcpu.h) */ + + /* Record previous program counter */ + REG_PPC = REG_PC; + + /* Read an instruction and call its handler */ + REG_IR = m68ki_read_imm_16(); + m68ki_instruction_jump_table[REG_IR](); + USE_CYCLES(CYC_INSTRUCTION[REG_IR]); + + /* Trace m68k_exception, if necessary */ + m68ki_exception_if_trace(); /* auto-disable (see m68kcpu.h) */ + } while(GET_CYCLES() > 0); + + /* set previous PC to current PC for the next entry into the loop */ + REG_PPC = REG_PC; + + /* ASG: update cycles */ + USE_CYCLES(CPU_INT_CYCLES); + CPU_INT_CYCLES = 0; + + /* return how many clocks we used */ + return m68ki_initial_cycles - GET_CYCLES(); + } + + /* We get here if the CPU is stopped or halted */ + SET_CYCLES(0); + CPU_INT_CYCLES = 0; + + return num_cycles; +} + + +int m68k_cycles_run(void) +{ + return m68ki_initial_cycles - GET_CYCLES(); +} + +int m68k_cycles_remaining(void) +{ + return GET_CYCLES(); +} + +/* Change the timeslice */ +void m68k_modify_timeslice(int cycles) +{ + m68ki_initial_cycles += cycles; + ADD_CYCLES(cycles); +} + + +void m68k_end_timeslice(void) +{ + m68ki_initial_cycles = GET_CYCLES(); + SET_CYCLES(0); +} + + +/* ASG: rewrote so that the int_level is a mask of the IPL0/IPL1/IPL2 bits */ +/* KS: Modified so that IPL* bits match with mask positions in the SR + * and cleaned out remenants of the interrupt controller. + */ +void m68k_set_irq(unsigned int int_level) +{ + uint old_level = CPU_INT_LEVEL; + CPU_INT_LEVEL = int_level << 8; + + /* A transition from < 7 to 7 always interrupts (NMI) */ + /* Note: Level 7 can also level trigger like a normal IRQ */ + if(old_level != 0x0700 && CPU_INT_LEVEL == 0x0700) + m68ki_exception_interrupt(7); /* Edge triggered level 7 (NMI) */ + else + m68ki_check_interrupts(); /* Level triggered (IRQ) */ +} + + +/* Pulse the RESET line on the CPU */ +void m68k_pulse_reset(void) +{ + static uint emulation_initialized = 0; + + /* The first call to this function initializes the opcode handler jump table */ + if(!emulation_initialized) + { + m68ki_build_opcode_table(); + m68k_set_int_ack_callback(NULL); + m68k_set_bkpt_ack_callback(NULL); + m68k_set_reset_instr_callback(NULL); + m68k_set_pc_changed_callback(NULL); + m68k_set_fc_callback(NULL); + m68k_set_instr_hook_callback(NULL); + + emulation_initialized = 1; + } + + + if(CPU_TYPE == 0) /* KW 990319 */ + m68k_set_cpu_type(M68K_CPU_TYPE_68000); + + /* Clear all stop levels and eat up all remaining cycles */ + CPU_STOPPED = 0; + SET_CYCLES(0); + + /* Turn off tracing */ + FLAG_T1 = FLAG_T0 = 0; + m68ki_clear_trace(); + /* Interrupt mask to level 7 */ + FLAG_INT_MASK = 0x0700; + /* Reset VBR */ + REG_VBR = 0; + /* Go to supervisor mode */ + m68ki_set_sm_flag(SFLAG_SET | MFLAG_CLEAR); + + /* Invalidate the prefetch queue */ +#if M68K_EMULATE_PREFETCH + /* Set to arbitrary number since our first fetch is from 0 */ + CPU_PREF_ADDR = 0x1000; +#endif /* M68K_EMULATE_PREFETCH */ + + /* Read the initial stack pointer and program counter */ + m68ki_jump(0); + REG_SP = m68ki_read_imm_32(); + REG_PC = m68ki_read_imm_32(); + m68ki_jump(REG_PC); +} + +/* Pulse the HALT line on the CPU */ +void m68k_pulse_halt(void) +{ + CPU_STOPPED |= STOP_LEVEL_HALT; +} + + +/* Get and set the current CPU context */ +/* This is to allow for multiple CPUs */ +unsigned int m68k_context_size() +{ + return sizeof(m68ki_cpu_core); +} + +unsigned int m68k_get_context(void* dst) +{ + if(dst) *(m68ki_cpu_core*)dst = m68ki_cpu; + return sizeof(m68ki_cpu_core); +} + +void m68k_set_context(void* src) +{ + if(src) m68ki_cpu = *(m68ki_cpu_core*)src; +} + +void m68k_save_context( void (*save_value)(char*, unsigned int)) +{ + if(!save_value) + return; + + save_value("CPU_TYPE" , m68k_get_reg(NULL, M68K_REG_CPU_TYPE)); + save_value("D0" , REG_D[0]); + save_value("D1" , REG_D[1]); + save_value("D2" , REG_D[2]); + save_value("D3" , REG_D[3]); + save_value("D4" , REG_D[4]); + save_value("D5" , REG_D[5]); + save_value("D6" , REG_D[6]); + save_value("D7" , REG_D[7]); + save_value("A0" , REG_A[0]); + save_value("A1" , REG_A[1]); + save_value("A2" , REG_A[2]); + save_value("A3" , REG_A[3]); + save_value("A4" , REG_A[4]); + save_value("A5" , REG_A[5]); + save_value("A6" , REG_A[6]); + save_value("A7" , REG_A[7]); + save_value("PPC" , REG_PPC); + save_value("PC" , REG_PC); + save_value("USP" , REG_USP); + save_value("ISP" , REG_ISP); + save_value("MSP" , REG_MSP); + save_value("VBR" , REG_VBR); + save_value("SFC" , REG_SFC); + save_value("DFC" , REG_DFC); + save_value("CACR" , REG_CACR); + save_value("CAAR" , REG_CAAR); + save_value("SR" , m68ki_get_sr()); + save_value("INT_LEVEL" , CPU_INT_LEVEL); + save_value("INT_CYCLES", CPU_INT_CYCLES); + save_value("STOPPED" , (CPU_STOPPED & STOP_LEVEL_STOP) != 0); + save_value("HALTED" , (CPU_STOPPED & STOP_LEVEL_HALT) != 0); + save_value("PREF_ADDR" , CPU_PREF_ADDR); + save_value("PREF_DATA" , CPU_PREF_DATA); +} + +void m68k_load_context(unsigned int (*load_value)(char*)) +{ + unsigned int temp; + + m68k_set_cpu_type(load_value("CPU_TYPE")); + REG_PPC = load_value("PPC"); + REG_PC = load_value("PC"); + m68ki_jump(REG_PC); + CPU_INT_LEVEL = 0; + m68ki_set_sr_noint(load_value("SR")); + REG_D[0] = load_value("D0"); + REG_D[1] = load_value("D1"); + REG_D[2] = load_value("D2"); + REG_D[3] = load_value("D3"); + REG_D[4] = load_value("D4"); + REG_D[5] = load_value("D5"); + REG_D[6] = load_value("D6"); + REG_D[7] = load_value("D7"); + REG_A[0] = load_value("A0"); + REG_A[1] = load_value("A1"); + REG_A[2] = load_value("A2"); + REG_A[3] = load_value("A3"); + REG_A[4] = load_value("A4"); + REG_A[5] = load_value("A5"); + REG_A[6] = load_value("A6"); + REG_A[7] = load_value("A7"); + REG_USP = load_value("USP"); + REG_ISP = load_value("ISP"); + REG_MSP = load_value("MSP"); + REG_VBR = load_value("VBR"); + REG_SFC = load_value("SFC"); + REG_DFC = load_value("DFC"); + REG_CACR = load_value("CACR"); + REG_CAAR = load_value("CAAR"); + CPU_INT_LEVEL = load_value("INT_LEVEL"); + CPU_INT_CYCLES = load_value("INT_CYCLES"); + + CPU_STOPPED = 0; + temp = load_value("STOPPED"); + if(temp) CPU_STOPPED |= STOP_LEVEL_STOP; + temp = load_value("HALTED"); + if(temp) CPU_STOPPED |= STOP_LEVEL_HALT; + + CPU_PREF_ADDR = load_value("PREF_ADDR"); + CPU_PREF_DATA = load_value("PREF_DATA"); +} + + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ diff --git a/AltairZ80/m68kcpu.h b/AltairZ80/m68kcpu.h new file mode 100755 index 00000000..78e4595e --- /dev/null +++ b/AltairZ80/m68kcpu.h @@ -0,0 +1,1841 @@ +#include +/* ======================================================================== */ +/* ========================= LICENSING & COPYRIGHT ======================== */ +/* ======================================================================== */ +/* + * MUSASHI + * Version 3.3 + * + * A portable Motorola M680x0 processor emulation engine. + * Copyright 1998-2001 Karl Stenerud. All rights reserved. + * + * This code may be freely used for non-commercial purposes as long as this + * copyright notice remains unaltered in the source code and any binary files + * containing this code in compiled form. + * + * All other lisencing terms must be negotiated with the author + * (Karl Stenerud). + * + * The latest version of this code can be obtained at: + * http://kstenerud.cjb.net + */ + + + + +#ifndef M68KCPU__HEADER +#define M68KCPU__HEADER + +#include "m68k.h" +#include + +#if M68K_EMULATE_ADDRESS_ERROR +#include +#endif /* M68K_EMULATE_ADDRESS_ERROR */ + +/* ======================================================================== */ +/* ==================== ARCHITECTURE-DEPENDANT DEFINES ==================== */ +/* ======================================================================== */ + +/* Check for > 32bit sizes */ +#if UINT_MAX > 0xffffffff + #define M68K_INT_GT_32_BIT 1 +#endif + +/* Data types used in this emulation core */ +#undef sint8 +#undef sint16 +#undef sint32 +#undef sint64 +#undef uint8 +#undef uint16 +#undef uint32 +#undef uint64 +#undef sint +#undef uint + +#define sint8 signed char /* ASG: changed from char to signed char */ +#define sint16 signed short +#define sint32 signed long +#define uint8 unsigned char +#define uint16 unsigned short +#define uint32 unsigned long + +/* signed and unsigned int must be at least 32 bits wide */ +#define sint signed int +#define uint unsigned int + + +#if M68K_USE_64_BIT +#define sint64 signed long long +#define uint64 unsigned long long +#else +#define sint64 sint32 +#define uint64 uint32 +#endif /* M68K_USE_64_BIT */ + + + +/* Allow for architectures that don't have 8-bit sizes */ +#if UCHAR_MAX == 0xff + #define MAKE_INT_8(A) (sint8)(A) +#else + #undef sint8 + #define sint8 signed int + #undef uint8 + #define uint8 unsigned int + INLINE sint MAKE_INT_8(uint value) + { + return (value & 0x80) ? value | ~0xff : value & 0xff; + } +#endif /* UCHAR_MAX == 0xff */ + + +/* Allow for architectures that don't have 16-bit sizes */ +#if USHRT_MAX == 0xffff + #define MAKE_INT_16(A) (sint16)(A) +#else + #undef sint16 + #define sint16 signed int + #undef uint16 + #define uint16 unsigned int + INLINE sint MAKE_INT_16(uint value) + { + return (value & 0x8000) ? value | ~0xffff : value & 0xffff; + } +#endif /* USHRT_MAX == 0xffff */ + + +/* Allow for architectures that don't have 32-bit sizes */ +#if ULONG_MAX == 0xffffffff + #define MAKE_INT_32(A) (sint32)(A) +#else + #undef sint32 + #define sint32 signed int + #undef uint32 + #define uint32 unsigned int + INLINE sint MAKE_INT_32(uint value) + { + return (value & 0x80000000) ? value | ~0xffffffff : value & 0xffffffff; + } +#endif /* ULONG_MAX == 0xffffffff */ + + + + +/* ======================================================================== */ +/* ============================ GENERAL DEFINES =========================== */ +/* ======================================================================== */ + +/* Exception Vectors handled by emulation */ +#define EXCEPTION_BUS_ERROR 2 /* This one is not emulated! */ +#define EXCEPTION_ADDRESS_ERROR 3 /* This one is partially emulated (doesn't stack a proper frame yet) */ +#define EXCEPTION_ILLEGAL_INSTRUCTION_M68K 4 +#define EXCEPTION_ZERO_DIVIDE 5 +#define EXCEPTION_CHK 6 +#define EXCEPTION_TRAPV 7 +#define EXCEPTION_PRIVILEGE_VIOLATION 8 +#define EXCEPTION_TRACE 9 +#define EXCEPTION_1010 10 +#define EXCEPTION_1111 11 +#define EXCEPTION_FORMAT_ERROR 14 +#define EXCEPTION_UNINITIALIZED_INTERRUPT 15 +#define EXCEPTION_SPURIOUS_INTERRUPT 24 +#define EXCEPTION_INTERRUPT_AUTOVECTOR 24 +#define EXCEPTION_TRAP_BASE 32 + +/* Function codes set by CPU during data/address bus activity */ +#define FUNCTION_CODE_USER_DATA 1 +#define FUNCTION_CODE_USER_PROGRAM 2 +#define FUNCTION_CODE_SUPERVISOR_DATA 5 +#define FUNCTION_CODE_SUPERVISOR_PROGRAM 6 +#define FUNCTION_CODE_CPU_SPACE 7 + +/* CPU types for deciding what to emulate */ +#define CPU_TYPE_000 1 +#define CPU_TYPE_010 2 +#define CPU_TYPE_EC020 4 +#define CPU_TYPE_020 8 + +/* Different ways to stop the CPU */ +#define STOP_LEVEL_STOP 1 +#define STOP_LEVEL_HALT 2 + +#ifndef NULL +#define NULL ((void*)0) +#endif + +/* ======================================================================== */ +/* ================================ MACROS ================================ */ +/* ======================================================================== */ + + +/* ---------------------------- General Macros ---------------------------- */ + +/* Bit Isolation Macros */ +#define BIT_0(A) ((A) & 0x00000001) +#define BIT_1(A) ((A) & 0x00000002) +#define BIT_2(A) ((A) & 0x00000004) +#define BIT_3(A) ((A) & 0x00000008) +#define BIT_4(A) ((A) & 0x00000010) +#define BIT_5(A) ((A) & 0x00000020) +#define BIT_6(A) ((A) & 0x00000040) +#define BIT_7(A) ((A) & 0x00000080) +#define BIT_8(A) ((A) & 0x00000100) +#define BIT_9(A) ((A) & 0x00000200) +#define BIT_A(A) ((A) & 0x00000400) +#define BIT_B(A) ((A) & 0x00000800) +#define BIT_C(A) ((A) & 0x00001000) +#define BIT_D(A) ((A) & 0x00002000) +#define BIT_E(A) ((A) & 0x00004000) +#define BIT_F(A) ((A) & 0x00008000) +#define BIT_10(A) ((A) & 0x00010000) +#define BIT_11(A) ((A) & 0x00020000) +#define BIT_12(A) ((A) & 0x00040000) +#define BIT_13(A) ((A) & 0x00080000) +#define BIT_14(A) ((A) & 0x00100000) +#define BIT_15(A) ((A) & 0x00200000) +#define BIT_16(A) ((A) & 0x00400000) +#define BIT_17(A) ((A) & 0x00800000) +#define BIT_18(A) ((A) & 0x01000000) +#define BIT_19(A) ((A) & 0x02000000) +#define BIT_1A(A) ((A) & 0x04000000) +#define BIT_1B(A) ((A) & 0x08000000) +#define BIT_1C(A) ((A) & 0x10000000) +#define BIT_1D(A) ((A) & 0x20000000) +#define BIT_1E(A) ((A) & 0x40000000) +#define BIT_1F(A) ((A) & 0x80000000) + +/* Get the most significant bit for specific sizes */ +#define GET_MSB_8(A) ((A) & 0x80) +#define GET_MSB_9(A) ((A) & 0x100) +#define GET_MSB_16(A) ((A) & 0x8000) +#define GET_MSB_17(A) ((A) & 0x10000) +#define GET_MSB_32(A) ((A) & 0x80000000) +#if M68K_USE_64_BIT +#define GET_MSB_33(A) ((A) & 0x100000000) +#endif /* M68K_USE_64_BIT */ + +/* Isolate nibbles */ +#define LOW_NIBBLE(A) ((A) & 0x0f) +#define HIGH_NIBBLE(A) ((A) & 0xf0) + +/* These are used to isolate 8, 16, and 32 bit sizes */ +#define MASK_OUT_ABOVE_2(A) ((A) & 3) +#define MASK_OUT_ABOVE_8(A) ((A) & 0xff) +#define MASK_OUT_ABOVE_16(A) ((A) & 0xffff) +#define MASK_OUT_BELOW_2(A) ((A) & ~3) +#define MASK_OUT_BELOW_8(A) ((A) & ~0xff) +#define MASK_OUT_BELOW_16(A) ((A) & ~0xffff) + +/* No need to mask if we are 32 bit */ +#if M68K_INT_GT_32BIT || M68K_USE_64_BIT + #define MASK_OUT_ABOVE_32(A) ((A) & 0xffffffff) + #define MASK_OUT_BELOW_32(A) ((A) & ~0xffffffff) +#else + #define MASK_OUT_ABOVE_32(A) (A) + #define MASK_OUT_BELOW_32(A) 0 +#endif /* M68K_INT_GT_32BIT || M68K_USE_64_BIT */ + +/* Simulate address lines of 68k family */ +#define ADDRESS_68K(A) ((A)&CPU_ADDRESS_MASK) + + +/* Shift & Rotate Macros. */ +#define LSL(A, C) ((A) << (C)) +#define LSR(A, C) ((A) >> (C)) + +/* Some > 32-bit optimizations */ +#if M68K_INT_GT_32BIT + /* Shift left and right */ + #define LSR_32(A, C) ((A) >> (C)) + #define LSL_32(A, C) ((A) << (C)) +#else + /* We have to do this because the morons at ANSI decided that shifts + * by >= data size are undefined. + */ + #define LSR_32(A, C) ((C) < 32 ? (A) >> (C) : 0) + #define LSL_32(A, C) ((C) < 32 ? (A) << (C) : 0) +#endif /* M68K_INT_GT_32BIT */ + +#if M68K_USE_64_BIT + #define LSL_32_64(A, C) ((A) << (C)) + #define LSR_32_64(A, C) ((A) >> (C)) + #define ROL_33_64(A, C) (LSL_32_64(A, C) | LSR_32_64(A, 33-(C))) + #define ROR_33_64(A, C) (LSR_32_64(A, C) | LSL_32_64(A, 33-(C))) +#endif /* M68K_USE_64_BIT */ + +#define ROL_8(A, C) MASK_OUT_ABOVE_8(LSL(A, C) | LSR(A, 8-(C))) +#define ROL_9(A, C) (LSL(A, C) | LSR(A, 9-(C))) +#define ROL_16(A, C) MASK_OUT_ABOVE_16(LSL(A, C) | LSR(A, 16-(C))) +#define ROL_17(A, C) (LSL(A, C) | LSR(A, 17-(C))) +#define ROL_32(A, C) MASK_OUT_ABOVE_32(LSL_32(A, C) | LSR_32(A, 32-(C))) +#define ROL_33(A, C) (LSL_32(A, C) | LSR_32(A, 33-(C))) + +#define ROR_8(A, C) MASK_OUT_ABOVE_8(LSR(A, C) | LSL(A, 8-(C))) +#define ROR_9(A, C) (LSR(A, C) | LSL(A, 9-(C))) +#define ROR_16(A, C) MASK_OUT_ABOVE_16(LSR(A, C) | LSL(A, 16-(C))) +#define ROR_17(A, C) (LSR(A, C) | LSL(A, 17-(C))) +#define ROR_32(A, C) MASK_OUT_ABOVE_32(LSR_32(A, C) | LSL_32(A, 32-(C))) +#define ROR_33(A, C) (LSR_32(A, C) | LSL_32(A, 33-(C))) + + + +/* ------------------------------ CPU Access ------------------------------ */ + +/* Access the CPU registers */ +#define CPU_TYPE m68ki_cpu.cpu_type + +#define REG_DA m68ki_cpu.dar /* easy access to data and address regs */ +#define REG_D m68ki_cpu.dar +#define REG_A (m68ki_cpu.dar+8) +#define REG_PPC m68ki_cpu.ppc +#define REG_PC m68ki_cpu.pc +#define REG_SP_BASE m68ki_cpu.sp +#define REG_USP m68ki_cpu.sp[0] +#define REG_ISP m68ki_cpu.sp[4] +#define REG_MSP m68ki_cpu.sp[6] +#define REG_SP m68ki_cpu.dar[15] +#define REG_VBR m68ki_cpu.vbr +#define REG_SFC m68ki_cpu.sfc +#define REG_DFC m68ki_cpu.dfc +#define REG_CACR m68ki_cpu.cacr +#define REG_CAAR m68ki_cpu.caar +#define REG_IR m68ki_cpu.ir + +#define FLAG_T1 m68ki_cpu.t1_flag +#define FLAG_T0 m68ki_cpu.t0_flag +#define FLAG_S m68ki_cpu.s_flag +#define FLAG_M m68ki_cpu.m_flag +#define FLAG_X m68ki_cpu.x_flag +#define FLAG_N m68ki_cpu.n_flag +#define FLAG_Z m68ki_cpu.not_z_flag +#define FLAG_V m68ki_cpu.v_flag +#define FLAG_C m68ki_cpu.c_flag +#define FLAG_INT_MASK m68ki_cpu.int_mask + +#define CPU_INT_LEVEL m68ki_cpu.int_level /* ASG: changed from CPU_INTS_PENDING */ +#define CPU_INT_CYCLES m68ki_cpu.int_cycles /* ASG */ +#define CPU_STOPPED m68ki_cpu.stopped +#define CPU_PREF_ADDR m68ki_cpu.pref_addr +#define CPU_PREF_DATA m68ki_cpu.pref_data +#define CPU_ADDRESS_MASK m68ki_cpu.address_mask +#define CPU_SR_MASK m68ki_cpu.sr_mask + +#define CYC_INSTRUCTION m68ki_cpu.cyc_instruction +#define CYC_EXCEPTION m68ki_cpu.cyc_exception +#define CYC_BCC_NOTAKE_B m68ki_cpu.cyc_bcc_notake_b +#define CYC_BCC_NOTAKE_W m68ki_cpu.cyc_bcc_notake_w +#define CYC_DBCC_F_NOEXP m68ki_cpu.cyc_dbcc_f_noexp +#define CYC_DBCC_F_EXP m68ki_cpu.cyc_dbcc_f_exp +#define CYC_SCC_R_FALSE m68ki_cpu.cyc_scc_r_false +#define CYC_MOVEM_W m68ki_cpu.cyc_movem_w +#define CYC_MOVEM_L m68ki_cpu.cyc_movem_l +#define CYC_SHIFT m68ki_cpu.cyc_shift +#define CYC_RESET m68ki_cpu.cyc_reset + + +#define CALLBACK_INT_ACK m68ki_cpu.int_ack_callback +#define CALLBACK_BKPT_ACK m68ki_cpu.bkpt_ack_callback +#define CALLBACK_RESET_INSTR m68ki_cpu.reset_instr_callback +#define CALLBACK_PC_CHANGED m68ki_cpu.pc_changed_callback +#define CALLBACK_SET_FC m68ki_cpu.set_fc_callback +#define CALLBACK_INSTR_HOOK m68ki_cpu.instr_hook_callback + + + +/* ----------------------------- Configuration ---------------------------- */ + +/* These defines are dependant on the configuration defines in m68kconf.h */ + +/* Disable certain comparisons if we're not using all CPU types */ +#if M68K_EMULATE_020 + #define CPU_TYPE_IS_020_PLUS(A) ((A) & CPU_TYPE_020) + #define CPU_TYPE_IS_020_LESS(A) 1 +#else + #define CPU_TYPE_IS_020_PLUS(A) 0 + #define CPU_TYPE_IS_020_LESS(A) 1 +#endif + +#if M68K_EMULATE_EC020 + #define CPU_TYPE_IS_EC020_PLUS(A) ((A) & (CPU_TYPE_EC020 | CPU_TYPE_020)) + #define CPU_TYPE_IS_EC020_LESS(A) ((A) & (CPU_TYPE_000 | CPU_TYPE_010 | CPU_TYPE_EC020)) +#else + #define CPU_TYPE_IS_EC020_PLUS(A) CPU_TYPE_IS_020_PLUS(A) + #define CPU_TYPE_IS_EC020_LESS(A) CPU_TYPE_IS_020_LESS(A) +#endif + +#if M68K_EMULATE_010 + #define CPU_TYPE_IS_010(A) ((A) == CPU_TYPE_010) + #define CPU_TYPE_IS_010_PLUS(A) ((A) & (CPU_TYPE_010 | CPU_TYPE_EC020 | CPU_TYPE_020)) + #define CPU_TYPE_IS_010_LESS(A) ((A) & (CPU_TYPE_000 | CPU_TYPE_010)) +#else + #define CPU_TYPE_IS_010(A) 0 + #define CPU_TYPE_IS_010_PLUS(A) CPU_TYPE_IS_EC020_PLUS(A) + #define CPU_TYPE_IS_010_LESS(A) CPU_TYPE_IS_EC020_LESS(A) +#endif + +#if M68K_EMULATE_020 || M68K_EMULATE_EC020 + #define CPU_TYPE_IS_020_VARIANT(A) ((A) & (CPU_TYPE_EC020 | CPU_TYPE_020)) +#else + #define CPU_TYPE_IS_020_VARIANT(A) 0 +#endif + +#if M68K_EMULATE_020 || M68K_EMULATE_EC020 || M68K_EMULATE_010 + #define CPU_TYPE_IS_000(A) ((A) == CPU_TYPE_000) +#else + #define CPU_TYPE_IS_000(A) 1 +#endif + + +#if !M68K_SEPARATE_READS +#define m68k_read_immediate_16(A) m68ki_read_program_16(A) +#define m68k_read_immediate_32(A) m68ki_read_program_32(A) + +#define m68k_read_pcrelative_8(A) m68ki_read_program_8(A) +#define m68k_read_pcrelative_16(A) m68ki_read_program_16(A) +#define m68k_read_pcrelative_32(A) m68ki_read_program_32(A) +#endif /* M68K_SEPARATE_READS */ + + +/* Enable or disable callback functions */ +#if M68K_EMULATE_INT_ACK + #if M68K_EMULATE_INT_ACK == OPT_SPECIFY_HANDLER + #define m68ki_int_ack(A) M68K_INT_ACK_CALLBACK(A) + #else + #define m68ki_int_ack(A) CALLBACK_INT_ACK(A) + #endif +#else + /* Default action is to used autovector mode, which is most common */ + #define m68ki_int_ack(A) M68K_INT_ACK_AUTOVECTOR +#endif /* M68K_EMULATE_INT_ACK */ + +#if M68K_EMULATE_BKPT_ACK + #if M68K_EMULATE_BKPT_ACK == OPT_SPECIFY_HANDLER + #define m68ki_bkpt_ack(A) M68K_BKPT_ACK_CALLBACK(A) + #else + #define m68ki_bkpt_ack(A) CALLBACK_BKPT_ACK(A) + #endif +#else + #define m68ki_bkpt_ack(A) +#endif /* M68K_EMULATE_BKPT_ACK */ + +#if M68K_EMULATE_RESET + #if M68K_EMULATE_RESET == OPT_SPECIFY_HANDLER + #define m68ki_output_reset() M68K_RESET_CALLBACK() + #else + #define m68ki_output_reset() CALLBACK_RESET_INSTR() + #endif +#else + #define m68ki_output_reset() +#endif /* M68K_EMULATE_RESET */ + +#if M68K_INSTRUCTION_HOOK + #if M68K_INSTRUCTION_HOOK == OPT_SPECIFY_HANDLER + #define m68ki_instr_hook() M68K_INSTRUCTION_CALLBACK() + #else + #define m68ki_instr_hook() CALLBACK_INSTR_HOOK() + #endif +#else + #define m68ki_instr_hook() +#endif /* M68K_INSTRUCTION_HOOK */ + +#if M68K_MONITOR_PC + #if M68K_MONITOR_PC == OPT_SPECIFY_HANDLER + #define m68ki_pc_changed(A) M68K_SET_PC_CALLBACK(ADDRESS_68K(A)) + #else + #define m68ki_pc_changed(A) CALLBACK_PC_CHANGED(ADDRESS_68K(A)) + #endif +#else + #define m68ki_pc_changed(A) +#endif /* M68K_MONITOR_PC */ + + +/* Enable or disable function code emulation */ +#if M68K_EMULATE_FC + #if M68K_EMULATE_FC == OPT_SPECIFY_HANDLER + #define m68ki_set_fc(A) M68K_SET_FC_CALLBACK(A) + #else + #define m68ki_set_fc(A) CALLBACK_SET_FC(A) + #endif + #define m68ki_use_data_space() m68ki_address_space = FUNCTION_CODE_USER_DATA + #define m68ki_use_program_space() m68ki_address_space = FUNCTION_CODE_USER_PROGRAM + #define m68ki_get_address_space() m68ki_address_space +#else + #define m68ki_set_fc(A) + #define m68ki_use_data_space() + #define m68ki_use_program_space() + #define m68ki_get_address_space() FUNCTION_CODE_USER_DATA +#endif /* M68K_EMULATE_FC */ + + +/* Enable or disable trace emulation */ +#if M68K_EMULATE_TRACE + /* Initiates trace checking before each instruction (t1) */ + #define m68ki_trace_t1() m68ki_tracing = FLAG_T1 + /* adds t0 to trace checking if we encounter change of flow */ + #define m68ki_trace_t0() m68ki_tracing |= FLAG_T0 + /* Clear all tracing */ + #define m68ki_clear_trace() m68ki_tracing = 0 + /* Cause a trace exception if we are tracing */ + #define m68ki_exception_if_trace() if(m68ki_tracing) m68ki_exception_trace() +#else + #define m68ki_trace_t1() + #define m68ki_trace_t0() + #define m68ki_clear_trace() + #define m68ki_exception_if_trace() +#endif /* M68K_EMULATE_TRACE */ + + + +/* Address error */ +#if M68K_EMULATE_ADDRESS_ERROR + extern jmp_buf m68ki_address_error_trap; + #define m68ki_set_address_error_trap() if(setjmp(m68ki_address_error_trap)) m68ki_exception_address_error(); + #define m68ki_check_address_error(A) if((A)&1) longjmp(m68ki_address_error_jump, 1); +#else + #define m68ki_set_address_error_trap() + #define m68ki_check_address_error(A) +#endif /* M68K_ADDRESS_ERROR */ + +/* Logging */ +#if M68K_LOG_ENABLE + #include + extern FILE* M68K_LOG_FILEHANDLE + extern char* m68ki_cpu_names[]; + + #define M68K_DO_LOG(A) if(M68K_LOG_FILEHANDLE) fprintf A + #if M68K_LOG_1010_1111 + #define M68K_DO_LOG_EMU(A) if(M68K_LOG_FILEHANDLE) fprintf A + #else + #define M68K_DO_LOG_EMU(A) + #endif +#else + #define M68K_DO_LOG(A) + #define M68K_DO_LOG_EMU(A) +#endif + + + +/* -------------------------- EA / Operand Access ------------------------- */ + +/* + * The general instruction format follows this pattern: + * .... XXX. .... .YYY + * where XXX is register X and YYY is register Y + */ +/* Data Register Isolation */ +#define DX (REG_D[(REG_IR >> 9) & 7]) +#define DY (REG_D[REG_IR & 7]) +/* Address Register Isolation */ +#define AX (REG_A[(REG_IR >> 9) & 7]) +#define AY (REG_A[REG_IR & 7]) + + +/* Effective Address Calculations */ +#define EA_AY_AI_8() AY /* address register indirect */ +#define EA_AY_AI_16() EA_AY_AI_8() +#define EA_AY_AI_32() EA_AY_AI_8() +#define EA_AY_PI_8() (AY++) /* postincrement (size = byte) */ +#define EA_AY_PI_16() ((AY+=2)-2) /* postincrement (size = word) */ +#define EA_AY_PI_32() ((AY+=4)-4) /* postincrement (size = long) */ +#define EA_AY_PD_8() (--AY) /* predecrement (size = byte) */ +#define EA_AY_PD_16() (AY-=2) /* predecrement (size = word) */ +#define EA_AY_PD_32() (AY-=4) /* predecrement (size = long) */ +#define EA_AY_DI_8() (AY+MAKE_INT_16(m68ki_read_imm_16())) /* displacement */ +#define EA_AY_DI_16() EA_AY_DI_8() +#define EA_AY_DI_32() EA_AY_DI_8() +#define EA_AY_IX_8() m68ki_get_ea_ix(AY) /* indirect + index */ +#define EA_AY_IX_16() EA_AY_IX_8() +#define EA_AY_IX_32() EA_AY_IX_8() + +#define EA_AX_AI_8() AX +#define EA_AX_AI_16() EA_AX_AI_8() +#define EA_AX_AI_32() EA_AX_AI_8() +#define EA_AX_PI_8() (AX++) +#define EA_AX_PI_16() ((AX+=2)-2) +#define EA_AX_PI_32() ((AX+=4)-4) +#define EA_AX_PD_8() (--AX) +#define EA_AX_PD_16() (AX-=2) +#define EA_AX_PD_32() (AX-=4) +#define EA_AX_DI_8() (AX+MAKE_INT_16(m68ki_read_imm_16())) +#define EA_AX_DI_16() EA_AX_DI_8() +#define EA_AX_DI_32() EA_AX_DI_8() +#define EA_AX_IX_8() m68ki_get_ea_ix(AX) +#define EA_AX_IX_16() EA_AX_IX_8() +#define EA_AX_IX_32() EA_AX_IX_8() + +#define EA_A7_PI_8() ((REG_A[7]+=2)-2) +#define EA_A7_PD_8() (REG_A[7]-=2) + +#define EA_AW_8() MAKE_INT_16(m68ki_read_imm_16()) /* absolute word */ +#define EA_AW_16() EA_AW_8() +#define EA_AW_32() EA_AW_8() +#define EA_AL_8() m68ki_read_imm_32() /* absolute long */ +#define EA_AL_16() EA_AL_8() +#define EA_AL_32() EA_AL_8() +#define EA_PCDI_8() m68ki_get_ea_pcdi() /* pc indirect + displacement */ +#define EA_PCDI_16() EA_PCDI_8() +#define EA_PCDI_32() EA_PCDI_8() +#define EA_PCIX_8() m68ki_get_ea_pcix() /* pc indirect + index */ +#define EA_PCIX_16() EA_PCIX_8() +#define EA_PCIX_32() EA_PCIX_8() + + +#define OPER_I_8() m68ki_read_imm_8() +#define OPER_I_16() m68ki_read_imm_16() +#define OPER_I_32() m68ki_read_imm_32() + + + +/* --------------------------- Status Register ---------------------------- */ + +/* Flag Calculation Macros */ +#define CFLAG_8(A) (A) +#define CFLAG_16(A) ((A)>>8) + +#if M68K_INT_GT_32_BIT + #define CFLAG_ADD_32(S, D, R) ((R)>>24) + #define CFLAG_SUB_32(S, D, R) ((R)>>24) +#else + #define CFLAG_ADD_32(S, D, R) (((S & D) | (~R & (S | D)))>>23) + #define CFLAG_SUB_32(S, D, R) (((S & R) | (~D & (S | R)))>>23) +#endif /* M68K_INT_GT_32_BIT */ + +#define VFLAG_ADD_8(S, D, R) ((S^R) & (D^R)) +#define VFLAG_ADD_16(S, D, R) (((S^R) & (D^R))>>8) +#define VFLAG_ADD_32(S, D, R) (((S^R) & (D^R))>>24) + +#define VFLAG_SUB_8(S, D, R) ((S^D) & (R^D)) +#define VFLAG_SUB_16(S, D, R) (((S^D) & (R^D))>>8) +#define VFLAG_SUB_32(S, D, R) (((S^D) & (R^D))>>24) + +#define NFLAG_8(A) (A) +#define NFLAG_16(A) ((A)>>8) +#define NFLAG_32(A) ((A)>>24) +#define NFLAG_64(A) ((A)>>56) + +#define ZFLAG_8(A) MASK_OUT_ABOVE_8(A) +#define ZFLAG_16(A) MASK_OUT_ABOVE_16(A) +#define ZFLAG_32(A) MASK_OUT_ABOVE_32(A) + + +/* Flag values */ +#define NFLAG_SET 0x80 +#define NFLAG_CLEAR 0 +#define CFLAG_SET 0x100 +#define CFLAG_CLEAR 0 +#define XFLAG_SET 0x100 +#define XFLAG_CLEAR 0 +#define VFLAG_SET 0x80 +#define VFLAG_CLEAR 0 +#define ZFLAG_SET 0 +#define ZFLAG_CLEAR 0xffffffff + +#define SFLAG_SET 4 +#define SFLAG_CLEAR 0 +#define MFLAG_SET 2 +#define MFLAG_CLEAR 0 + +/* Turn flag values into 1 or 0 */ +#define XFLAG_AS_1() ((FLAG_X>>8)&1) +#define NFLAG_AS_1() ((FLAG_N>>7)&1) +#define VFLAG_AS_1() ((FLAG_V>>7)&1) +#define ZFLAG_AS_1() (!FLAG_Z) +#define CFLAG_AS_1() ((FLAG_C>>8)&1) + + +/* Conditions */ +#define COND_CS() (FLAG_C&0x100) +#define COND_CC() (!COND_CS()) +#define COND_VS() (FLAG_V&0x80) +#define COND_VC() (!COND_VS()) +#define COND_NE() FLAG_Z +#define COND_EQ() (!COND_NE()) +#define COND_MI() (FLAG_N&0x80) +#define COND_PL() (!COND_MI()) +#define COND_LT() ((FLAG_N^FLAG_V)&0x80) +#define COND_GE() (!COND_LT()) +#define COND_HI() (COND_CC() && COND_NE()) +#define COND_LS() (COND_CS() || COND_EQ()) +#define COND_GT() (COND_GE() && COND_NE()) +#define COND_LE() (COND_LT() || COND_EQ()) + +/* Reversed conditions */ +#define COND_NOT_CS() COND_CC() +#define COND_NOT_CC() COND_CS() +#define COND_NOT_VS() COND_VC() +#define COND_NOT_VC() COND_VS() +#define COND_NOT_NE() COND_EQ() +#define COND_NOT_EQ() COND_NE() +#define COND_NOT_MI() COND_PL() +#define COND_NOT_PL() COND_MI() +#define COND_NOT_LT() COND_GE() +#define COND_NOT_GE() COND_LT() +#define COND_NOT_HI() COND_LS() +#define COND_NOT_LS() COND_HI() +#define COND_NOT_GT() COND_LE() +#define COND_NOT_LE() COND_GT() + +/* Not real conditions, but here for convenience */ +#define COND_XS() (FLAG_X&0x100) +#define COND_XC() (!COND_XS) + + +/* Get the condition code register */ +#define m68ki_get_ccr() ((COND_XS() >> 4) | \ + (COND_MI() >> 4) | \ + (COND_EQ() << 2) | \ + (COND_VS() >> 6) | \ + (COND_CS() >> 8)) + +/* Get the status register */ +#define m68ki_get_sr() ( FLAG_T1 | \ + FLAG_T0 | \ + (FLAG_S << 11) | \ + (FLAG_M << 11) | \ + FLAG_INT_MASK | \ + m68ki_get_ccr()) + + + +/* ---------------------------- Cycle Counting ---------------------------- */ + +#define ADD_CYCLES(A) m68ki_remaining_cycles += (A) +#define USE_CYCLES(A) m68ki_remaining_cycles -= (A) +#define SET_CYCLES(A) m68ki_remaining_cycles = A +#define GET_CYCLES() m68ki_remaining_cycles +#define USE_ALL_CYCLES() m68ki_remaining_cycles = 0 + + + +/* ----------------------------- Read / Write ----------------------------- */ + +/* Read from the current address space */ +#define m68ki_read_8(A) m68ki_read_8_fc (A, FLAG_S | m68ki_get_address_space()) +#define m68ki_read_16(A) m68ki_read_16_fc(A, FLAG_S | m68ki_get_address_space()) +#define m68ki_read_32(A) m68ki_read_32_fc(A, FLAG_S | m68ki_get_address_space()) + +/* Write to the current data space */ +#define m68ki_write_8(A, V) m68ki_write_8_fc (A, FLAG_S | FUNCTION_CODE_USER_DATA, V) +#define m68ki_write_16(A, V) m68ki_write_16_fc(A, FLAG_S | FUNCTION_CODE_USER_DATA, V) +#define m68ki_write_32(A, V) m68ki_write_32_fc(A, FLAG_S | FUNCTION_CODE_USER_DATA, V) + +/* map read immediate 8 to read immediate 16 */ +#define m68ki_read_imm_8() MASK_OUT_ABOVE_8(m68ki_read_imm_16()) + +/* Map PC-relative reads */ +#define m68ki_read_pcrel_8(A) m68k_read_pcrelative_8(A) +#define m68ki_read_pcrel_16(A) m68k_read_pcrelative_16(A) +#define m68ki_read_pcrel_32(A) m68k_read_pcrelative_32(A) + +/* Read from the program space */ +#define m68ki_read_program_8(A) m68ki_read_8_fc(A, FLAG_S | FUNCTION_CODE_USER_PROGRAM) +#define m68ki_read_program_16(A) m68ki_read_16_fc(A, FLAG_S | FUNCTION_CODE_USER_PROGRAM) +#define m68ki_read_program_32(A) m68ki_read_32_fc(A, FLAG_S | FUNCTION_CODE_USER_PROGRAM) + +/* Read from the data space */ +#define m68ki_read_data_8(A) m68ki_read_8_fc(A, FLAG_S | FUNCTION_CODE_USER_DATA) +#define m68ki_read_data_16(A) m68ki_read_16_fc(A, FLAG_S | FUNCTION_CODE_USER_DATA) +#define m68ki_read_data_32(A) m68ki_read_32_fc(A, FLAG_S | FUNCTION_CODE_USER_DATA) + + + +/* ======================================================================== */ +/* =============================== PROTOTYPES ============================= */ +/* ======================================================================== */ + +typedef struct +{ + uint cpu_type; /* CPU Type: 68000, 68010, 68EC020, or 68020 */ + uint dar[16]; /* Data and Address Registers */ + uint ppc; /* Previous program counter */ + uint pc; /* Program Counter */ + uint sp[7]; /* User, Interrupt, and Master Stack Pointers */ + uint vbr; /* Vector Base Register (m68010+) */ + uint sfc; /* Source Function Code Register (m68010+) */ + uint dfc; /* Destination Function Code Register (m68010+) */ + uint cacr; /* Cache Control Register (m68020, unemulated) */ + uint caar; /* Cache Address Register (m68020, unemulated) */ + uint ir; /* Instruction Register */ + uint t1_flag; /* Trace 1 */ + uint t0_flag; /* Trace 0 */ + uint s_flag; /* Supervisor */ + uint m_flag; /* Master/Interrupt state */ + uint x_flag; /* Extend */ + uint n_flag; /* Negative */ + uint not_z_flag; /* Zero, inverted for speedups */ + uint v_flag; /* Overflow */ + uint c_flag; /* Carry */ + uint int_mask; /* I0-I2 */ + uint int_level; /* State of interrupt pins IPL0-IPL2 -- ASG: changed from ints_pending */ + uint int_cycles; /* ASG: extra cycles from generated interrupts */ + uint stopped; /* Stopped state */ + uint pref_addr; /* Last prefetch address */ + uint pref_data; /* Data in the prefetch queue */ + uint address_mask; /* Available address pins */ + uint sr_mask; /* Implemented status register bits */ + + /* Clocks required for instructions / exceptions */ + uint cyc_bcc_notake_b; + uint cyc_bcc_notake_w; + uint cyc_dbcc_f_noexp; + uint cyc_dbcc_f_exp; + uint cyc_scc_r_false; + uint cyc_movem_w; + uint cyc_movem_l; + uint cyc_shift; + uint cyc_reset; + uint8* cyc_instruction; + uint8* cyc_exception; + + /* Callbacks to host */ + int (*int_ack_callback)(int int_line); /* Interrupt Acknowledge */ + void (*bkpt_ack_callback)(unsigned int data); /* Breakpoint Acknowledge */ + void (*reset_instr_callback)(void); /* Called when a RESET instruction is encountered */ + void (*pc_changed_callback)(unsigned int new_pc); /* Called when the PC changes by a large amount */ + void (*set_fc_callback)(unsigned int new_fc); /* Called when the CPU function code changes */ + void (*instr_hook_callback)(void); /* Called every instruction cycle prior to execution */ + +} m68ki_cpu_core; + + +extern m68ki_cpu_core m68ki_cpu; +extern sint m68ki_remaining_cycles; +extern uint m68ki_tracing; +extern uint8 m68ki_shift_8_table[]; +extern uint16 m68ki_shift_16_table[]; +extern uint m68ki_shift_32_table[]; +extern uint8 m68ki_exception_cycle_table[][256]; +extern uint m68ki_address_space; +extern uint8 m68ki_ea_idx_cycle_table[]; + + +/* Read data immediately after the program counter */ +INLINE uint m68ki_read_imm_16(void); +INLINE uint m68ki_read_imm_32(void); + +/* Read data with specific function code */ +INLINE uint m68ki_read_8_fc (uint address, uint fc); +INLINE uint m68ki_read_16_fc (uint address, uint fc); +INLINE uint m68ki_read_32_fc (uint address, uint fc); + +/* Write data with specific function code */ +INLINE void m68ki_write_8_fc (uint address, uint fc, uint value); +INLINE void m68ki_write_16_fc(uint address, uint fc, uint value); +INLINE void m68ki_write_32_fc(uint address, uint fc, uint value); + +/* Indexed and PC-relative ea fetching */ +INLINE uint m68ki_get_ea_pcdi(void); +INLINE uint m68ki_get_ea_pcix(void); +INLINE uint m68ki_get_ea_ix(uint An); + +/* Operand fetching */ +INLINE uint OPER_AY_AI_8(void); +INLINE uint OPER_AY_AI_16(void); +INLINE uint OPER_AY_AI_32(void); +INLINE uint OPER_AY_PI_8(void); +INLINE uint OPER_AY_PI_16(void); +INLINE uint OPER_AY_PI_32(void); +INLINE uint OPER_AY_PD_8(void); +INLINE uint OPER_AY_PD_16(void); +INLINE uint OPER_AY_PD_32(void); +INLINE uint OPER_AY_DI_8(void); +INLINE uint OPER_AY_DI_16(void); +INLINE uint OPER_AY_DI_32(void); +INLINE uint OPER_AY_IX_8(void); +INLINE uint OPER_AY_IX_16(void); +INLINE uint OPER_AY_IX_32(void); + +INLINE uint OPER_AX_AI_8(void); +INLINE uint OPER_AX_AI_16(void); +INLINE uint OPER_AX_AI_32(void); +INLINE uint OPER_AX_PI_8(void); +INLINE uint OPER_AX_PI_16(void); +INLINE uint OPER_AX_PI_32(void); +INLINE uint OPER_AX_PD_8(void); +INLINE uint OPER_AX_PD_16(void); +INLINE uint OPER_AX_PD_32(void); +INLINE uint OPER_AX_DI_8(void); +INLINE uint OPER_AX_DI_16(void); +INLINE uint OPER_AX_DI_32(void); +INLINE uint OPER_AX_IX_8(void); +INLINE uint OPER_AX_IX_16(void); +INLINE uint OPER_AX_IX_32(void); + +INLINE uint OPER_A7_PI_8(void); +INLINE uint OPER_A7_PD_8(void); + +INLINE uint OPER_AW_8(void); +INLINE uint OPER_AW_16(void); +INLINE uint OPER_AW_32(void); +INLINE uint OPER_AL_8(void); +INLINE uint OPER_AL_16(void); +INLINE uint OPER_AL_32(void); +INLINE uint OPER_PCDI_8(void); +INLINE uint OPER_PCDI_16(void); +INLINE uint OPER_PCDI_32(void); +INLINE uint OPER_PCIX_8(void); +INLINE uint OPER_PCIX_16(void); +INLINE uint OPER_PCIX_32(void); + +/* Stack operations */ +INLINE void m68ki_push_16(uint value); +INLINE void m68ki_push_32(uint value); +INLINE uint m68ki_pull_16(void); +INLINE uint m68ki_pull_32(void); + +/* Program flow operations */ +INLINE void m68ki_jump(uint new_pc); +INLINE void m68ki_jump_vector(uint vector); +INLINE void m68ki_branch_8(uint offset); +INLINE void m68ki_branch_16(uint offset); +INLINE void m68ki_branch_32(uint offset); + +/* Status register operations. */ +INLINE void m68ki_set_s_flag(uint value); /* Only bit 2 of value should be set (i.e. 4 or 0) */ +INLINE void m68ki_set_sm_flag(uint value); /* only bits 1 and 2 of value should be set */ +INLINE void m68ki_set_ccr(uint value); /* set the condition code register */ +INLINE void m68ki_set_sr(uint value); /* set the status register */ +INLINE void m68ki_set_sr_noint(uint value); /* set the status register */ + +/* Exception processing */ +INLINE uint m68ki_init_exception(void); /* Initial exception processing */ + +INLINE void m68ki_stack_frame_3word(uint pc, uint sr); /* Stack various frame types */ +INLINE void m68ki_stack_frame_buserr(uint pc, uint sr, uint address, uint write, uint instruction, uint fc); + +INLINE void m68ki_stack_frame_0000(uint pc, uint sr, uint vector); +INLINE void m68ki_stack_frame_0001(uint pc, uint sr, uint vector); +INLINE void m68ki_stack_frame_0010(uint sr, uint vector); +#if 0 +INLINE void m68ki_stack_frame_1000(uint pc, uint sr, uint vector); +INLINE void m68ki_stack_frame_1010(uint sr, uint vector, uint pc); +INLINE void m68ki_stack_frame_1011(uint sr, uint vector, uint pc); +#endif + +INLINE void m68ki_exception_trap(uint vector); +INLINE void m68ki_exception_trapN(uint vector); +INLINE void m68ki_exception_trace(void); +INLINE void m68ki_exception_privilege_violation(void); +INLINE void m68ki_exception_1010(void); +INLINE void m68ki_exception_1111(void); +INLINE void m68ki_exception_illegal(void); +INLINE void m68ki_exception_format_error(void); +INLINE void m68ki_exception_address_error(void); +INLINE void m68ki_exception_interrupt(uint int_level); +INLINE void m68ki_check_interrupts(void); /* ASG: check for interrupts */ + +/* quick disassembly (used for logging) */ +char* m68ki_disassemble_quick(unsigned int pc, unsigned int cpu_type); + + +/* ======================================================================== */ +/* =========================== UTILITY FUNCTIONS ========================== */ +/* ======================================================================== */ + + +/* ---------------------------- Read Immediate ---------------------------- */ + +/* Handles all immediate reads, does address error check, function code setting, + * and prefetching if they are enabled in m68kconf.h + */ +INLINE uint m68ki_read_imm_16(void) +{ + m68ki_set_fc(FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(REG_PC); /* auto-disable (see m68kcpu.h) */ +#if M68K_EMULATE_PREFETCH + if(MASK_OUT_BELOW_2(REG_PC) != CPU_PREF_ADDR) + { + CPU_PREF_ADDR = MASK_OUT_BELOW_2(REG_PC); + CPU_PREF_DATA = m68k_read_immediate_32(ADDRESS_68K(CPU_PREF_ADDR)); + } + REG_PC += 2; + return MASK_OUT_ABOVE_16(CPU_PREF_DATA >> ((2-((REG_PC-2)&2))<<3)); +#else + REG_PC += 2; + return m68k_read_immediate_16(ADDRESS_68K(REG_PC-2)); +#endif /* M68K_EMULATE_PREFETCH */ +} +INLINE uint m68ki_read_imm_32(void) +{ +#if M68K_EMULATE_PREFETCH + uint temp_val; + + m68ki_set_fc(FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(REG_PC); /* auto-disable (see m68kcpu.h) */ + if(MASK_OUT_BELOW_2(REG_PC) != CPU_PREF_ADDR) + { + CPU_PREF_ADDR = MASK_OUT_BELOW_2(REG_PC); + CPU_PREF_DATA = m68k_read_immediate_32(ADDRESS_68K(CPU_PREF_ADDR)); + } + temp_val = CPU_PREF_DATA; + REG_PC += 2; + if(MASK_OUT_BELOW_2(REG_PC) != CPU_PREF_ADDR) + { + CPU_PREF_ADDR = MASK_OUT_BELOW_2(REG_PC); + CPU_PREF_DATA = m68k_read_immediate_32(ADDRESS_68K(CPU_PREF_ADDR)); + temp_val = MASK_OUT_ABOVE_32((temp_val << 16) | (CPU_PREF_DATA >> 16)); + } + REG_PC += 2; + + return temp_val; +#else + m68ki_set_fc(FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(REG_PC); /* auto-disable (see m68kcpu.h) */ + REG_PC += 4; + return m68k_read_immediate_32(ADDRESS_68K(REG_PC-4)); +#endif /* M68K_EMULATE_PREFETCH */ +} + + + +/* ------------------------- Top level read/write ------------------------- */ + +/* Handles all memory accesses (except for immediate reads if they are + * configured to use separate functions in m68kconf.h). + * All memory accesses must go through these top level functions. + * These functions will also check for address error and set the function + * code if they are enabled in m68kconf.h. + */ +INLINE uint m68ki_read_8_fc(uint address, uint fc) +{ + m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ + return m68k_read_memory_8(ADDRESS_68K(address)); +} +INLINE uint m68ki_read_16_fc(uint address, uint fc) +{ + m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(address); /* auto-disable (see m68kcpu.h) */ + return m68k_read_memory_16(ADDRESS_68K(address)); +} +INLINE uint m68ki_read_32_fc(uint address, uint fc) +{ + m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(address); /* auto-disable (see m68kcpu.h) */ + return m68k_read_memory_32(ADDRESS_68K(address)); +} + +INLINE void m68ki_write_8_fc(uint address, uint fc, uint value) +{ + m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ + m68k_write_memory_8(ADDRESS_68K(address), value); +} +INLINE void m68ki_write_16_fc(uint address, uint fc, uint value) +{ + m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(address); /* auto-disable (see m68kcpu.h) */ + m68k_write_memory_16(ADDRESS_68K(address), value); +} +INLINE void m68ki_write_32_fc(uint address, uint fc, uint value) +{ + m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(address); /* auto-disable (see m68kcpu.h) */ + m68k_write_memory_32(ADDRESS_68K(address), value); +} + + + +/* --------------------- Effective Address Calculation -------------------- */ + +/* The program counter relative addressing modes cause operands to be + * retrieved from program space, not data space. + */ +INLINE uint m68ki_get_ea_pcdi(void) +{ + uint old_pc = REG_PC; + m68ki_use_program_space(); /* auto-disable */ + return old_pc + MAKE_INT_16(m68ki_read_imm_16()); +} + + +INLINE uint m68ki_get_ea_pcix(void) +{ + m68ki_use_program_space(); /* auto-disable */ + return m68ki_get_ea_ix(REG_PC); +} + +/* Indexed addressing modes are encoded as follows: + * + * Base instruction format: + * F E D C B A 9 8 7 6 | 5 4 3 | 2 1 0 + * x x x x x x x x x x | 1 1 0 | BASE REGISTER (An) + * + * Base instruction format for destination EA in move instructions: + * F E D C | B A 9 | 8 7 6 | 5 4 3 2 1 0 + * x x x x | BASE REG | 1 1 0 | X X X X X X (An) + * + * Brief extension format: + * F | E D C | B | A 9 | 8 | 7 6 5 4 3 2 1 0 + * D/A | REGISTER | W/L | SCALE | 0 | DISPLACEMENT + * + * Full extension format: + * F E D C B A 9 8 7 6 5 4 3 2 1 0 + * D/A | REGISTER | W/L | SCALE | 1 | BS | IS | BD SIZE | 0 | I/IS + * BASE DISPLACEMENT (0, 16, 32 bit) (bd) + * OUTER DISPLACEMENT (0, 16, 32 bit) (od) + * + * D/A: 0 = Dn, 1 = An (Xn) + * W/L: 0 = W (sign extend), 1 = L (.SIZE) + * SCALE: 00=1, 01=2, 10=4, 11=8 (*SCALE) + * BS: 0=add base reg, 1=suppress base reg (An suppressed) + * IS: 0=add index, 1=suppress index (Xn suppressed) + * BD SIZE: 00=reserved, 01=NULL, 10=Word, 11=Long (size of bd) + * + * IS I/IS Operation + * 0 000 No Memory Indirect + * 0 001 indir prex with null outer + * 0 010 indir prex with word outer + * 0 011 indir prex with long outer + * 0 100 reserved + * 0 101 indir postx with null outer + * 0 110 indir postx with word outer + * 0 111 indir postx with long outer + * 1 000 no memory indirect + * 1 001 mem indir with null outer + * 1 010 mem indir with word outer + * 1 011 mem indir with long outer + * 1 100-111 reserved + */ +INLINE uint m68ki_get_ea_ix(uint An) +{ + /* An = base register */ + uint extension = m68ki_read_imm_16(); + uint Xn = 0; /* Index register */ + uint bd = 0; /* Base Displacement */ + uint od = 0; /* Outer Displacement */ + + if(CPU_TYPE_IS_010_LESS(CPU_TYPE)) + { + /* Calculate index */ + Xn = REG_DA[extension>>12]; /* Xn */ + if(!BIT_B(extension)) /* W/L */ + Xn = MAKE_INT_16(Xn); + + /* Add base register and displacement and return */ + return An + Xn + MAKE_INT_8(extension); + } + + /* Brief extension format */ + if(!BIT_8(extension)) + { + /* Calculate index */ + Xn = REG_DA[extension>>12]; /* Xn */ + if(!BIT_B(extension)) /* W/L */ + Xn = MAKE_INT_16(Xn); + /* Add scale if proper CPU type */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + Xn <<= (extension>>9) & 3; /* SCALE */ + + /* Add base register and displacement and return */ + return An + Xn + MAKE_INT_8(extension); + } + + /* Full extension format */ + + USE_CYCLES(m68ki_ea_idx_cycle_table[extension&0x3f]); + + /* Check if base register is present */ + if(BIT_7(extension)) /* BS */ + An = 0; /* An */ + + /* Check if index is present */ + if(!BIT_6(extension)) /* IS */ + { + Xn = REG_DA[extension>>12]; /* Xn */ + if(!BIT_B(extension)) /* W/L */ + Xn = MAKE_INT_16(Xn); + Xn <<= (extension>>9) & 3; /* SCALE */ + } + + /* Check if base displacement is present */ + if(BIT_5(extension)) /* BD SIZE */ + bd = BIT_4(extension) ? m68ki_read_imm_32() : MAKE_INT_16(m68ki_read_imm_16()); + + /* If no indirect action, we are done */ + if(!(extension&7)) /* No Memory Indirect */ + return An + bd + Xn; + + /* Check if outer displacement is present */ + if(BIT_1(extension)) /* I/IS: od */ + od = BIT_0(extension) ? m68ki_read_imm_32() : MAKE_INT_16(m68ki_read_imm_16()); + + /* Postindex */ + if(BIT_2(extension)) /* I/IS: 0 = preindex, 1 = postindex */ + return m68ki_read_32(An + bd) + Xn + od; + + /* Preindex */ + return m68ki_read_32(An + bd + Xn) + od; +} + + +/* Fetch operands */ +INLINE uint OPER_AY_AI_8(void) {uint ea = EA_AY_AI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AY_AI_16(void) {uint ea = EA_AY_AI_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AY_AI_32(void) {uint ea = EA_AY_AI_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AY_PI_8(void) {uint ea = EA_AY_PI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AY_PI_16(void) {uint ea = EA_AY_PI_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AY_PI_32(void) {uint ea = EA_AY_PI_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AY_PD_8(void) {uint ea = EA_AY_PD_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AY_PD_16(void) {uint ea = EA_AY_PD_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AY_PD_32(void) {uint ea = EA_AY_PD_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AY_DI_8(void) {uint ea = EA_AY_DI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AY_DI_16(void) {uint ea = EA_AY_DI_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AY_DI_32(void) {uint ea = EA_AY_DI_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AY_IX_8(void) {uint ea = EA_AY_IX_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AY_IX_16(void) {uint ea = EA_AY_IX_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AY_IX_32(void) {uint ea = EA_AY_IX_32(); return m68ki_read_32(ea);} + +INLINE uint OPER_AX_AI_8(void) {uint ea = EA_AX_AI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AX_AI_16(void) {uint ea = EA_AX_AI_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AX_AI_32(void) {uint ea = EA_AX_AI_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AX_PI_8(void) {uint ea = EA_AX_PI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AX_PI_16(void) {uint ea = EA_AX_PI_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AX_PI_32(void) {uint ea = EA_AX_PI_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AX_PD_8(void) {uint ea = EA_AX_PD_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AX_PD_16(void) {uint ea = EA_AX_PD_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AX_PD_32(void) {uint ea = EA_AX_PD_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AX_DI_8(void) {uint ea = EA_AX_DI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AX_DI_16(void) {uint ea = EA_AX_DI_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AX_DI_32(void) {uint ea = EA_AX_DI_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AX_IX_8(void) {uint ea = EA_AX_IX_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AX_IX_16(void) {uint ea = EA_AX_IX_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AX_IX_32(void) {uint ea = EA_AX_IX_32(); return m68ki_read_32(ea);} + +INLINE uint OPER_A7_PI_8(void) {uint ea = EA_A7_PI_8(); return m68ki_read_8(ea); } +INLINE uint OPER_A7_PD_8(void) {uint ea = EA_A7_PD_8(); return m68ki_read_8(ea); } + +INLINE uint OPER_AW_8(void) {uint ea = EA_AW_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AW_16(void) {uint ea = EA_AW_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AW_32(void) {uint ea = EA_AW_32(); return m68ki_read_32(ea);} +INLINE uint OPER_AL_8(void) {uint ea = EA_AL_8(); return m68ki_read_8(ea); } +INLINE uint OPER_AL_16(void) {uint ea = EA_AL_16(); return m68ki_read_16(ea);} +INLINE uint OPER_AL_32(void) {uint ea = EA_AL_32(); return m68ki_read_32(ea);} +INLINE uint OPER_PCDI_8(void) {uint ea = EA_PCDI_8(); return m68ki_read_pcrel_8(ea); } +INLINE uint OPER_PCDI_16(void) {uint ea = EA_PCDI_16(); return m68ki_read_pcrel_16(ea);} +INLINE uint OPER_PCDI_32(void) {uint ea = EA_PCDI_32(); return m68ki_read_pcrel_32(ea);} +INLINE uint OPER_PCIX_8(void) {uint ea = EA_PCIX_8(); return m68ki_read_pcrel_8(ea); } +INLINE uint OPER_PCIX_16(void) {uint ea = EA_PCIX_16(); return m68ki_read_pcrel_16(ea);} +INLINE uint OPER_PCIX_32(void) {uint ea = EA_PCIX_32(); return m68ki_read_pcrel_32(ea);} + + + +/* ---------------------------- Stack Functions --------------------------- */ + +/* Push/pull data from the stack */ +INLINE void m68ki_push_16(uint value) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP - 2); + m68ki_write_16(REG_SP, value); +} + +INLINE void m68ki_push_32(uint value) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP - 4); + m68ki_write_32(REG_SP, value); +} + +INLINE uint m68ki_pull_16(void) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP + 2); + return m68ki_read_16(REG_SP-2); +} + +INLINE uint m68ki_pull_32(void) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP + 4); + return m68ki_read_32(REG_SP-4); +} + + +/* Increment/decrement the stack as if doing a push/pull but + * don't do any memory access. + */ +INLINE void m68ki_fake_push_16(void) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP - 2); +} + +INLINE void m68ki_fake_push_32(void) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP - 4); +} + +INLINE void m68ki_fake_pull_16(void) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP + 2); +} + +INLINE void m68ki_fake_pull_32(void) +{ + REG_SP = MASK_OUT_ABOVE_32(REG_SP + 4); +} + + +/* ----------------------------- Program Flow ----------------------------- */ + +/* Jump to a new program location or vector. + * These functions will also call the pc_changed callback if it was enabled + * in m68kconf.h. + */ +INLINE void m68ki_jump(uint new_pc) +{ + REG_PC = new_pc; + m68ki_pc_changed(REG_PC); +} + +INLINE void m68ki_jump_vector(uint vector) +{ + REG_PC = (vector<<2) + REG_VBR; + REG_PC = m68ki_read_data_32(REG_PC); + m68ki_pc_changed(REG_PC); +} + + +/* Branch to a new memory location. + * The 32-bit branch will call pc_changed if it was enabled in m68kconf.h. + * So far I've found no problems with not calling pc_changed for 8 or 16 + * bit branches. + */ +INLINE void m68ki_branch_8(uint offset) +{ + REG_PC += MAKE_INT_8(offset); +} + +INLINE void m68ki_branch_16(uint offset) +{ + REG_PC += MAKE_INT_16(offset); +} + +INLINE void m68ki_branch_32(uint offset) +{ + REG_PC += offset; + m68ki_pc_changed(REG_PC); +} + + + +/* ---------------------------- Status Register --------------------------- */ + +/* Set the S flag and change the active stack pointer. + * Note that value MUST be 4 or 0. + */ +INLINE void m68ki_set_s_flag(uint value) +{ + /* Backup the old stack pointer */ + REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)] = REG_SP; + /* Set the S flag */ + FLAG_S = value; + /* Set the new stack pointer */ + REG_SP = REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)]; +} + +/* Set the S and M flags and change the active stack pointer. + * Note that value MUST be 0, 2, 4, or 6 (bit2 = S, bit1 = M). + */ +INLINE void m68ki_set_sm_flag(uint value) +{ + /* Backup the old stack pointer */ + REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)] = REG_SP; + /* Set the S and M flags */ + FLAG_S = value & SFLAG_SET; + FLAG_M = value & MFLAG_SET; + /* Set the new stack pointer */ + REG_SP = REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)]; +} + + +/* Set the condition code register */ +INLINE void m68ki_set_ccr(uint value) +{ + FLAG_X = BIT_4(value) << 4; + FLAG_N = BIT_3(value) << 4; + FLAG_Z = !BIT_2(value); + FLAG_V = BIT_1(value) << 6; + FLAG_C = BIT_0(value) << 8; +} + +/* Set the status register but don't check for interrupts */ +INLINE void m68ki_set_sr_noint(uint value) +{ + /* Mask out the "unimplemented" bits */ + value &= CPU_SR_MASK; + + /* Now set the status register */ + FLAG_T1 = BIT_F(value); + FLAG_T0 = BIT_E(value); + FLAG_INT_MASK = value & 0x0700; + m68ki_set_ccr(value); + m68ki_set_sm_flag((value >> 11) & 6); +} + +/* Set the status register and check for interrupts */ +INLINE void m68ki_set_sr(uint value) +{ + m68ki_set_sr_noint(value); + m68ki_check_interrupts(); +} + + +/* ------------------------- Exception Processing ------------------------- */ + +/* Initiate exception processing */ +INLINE uint m68ki_init_exception(void) +{ + /* Save the old status register */ + uint sr = m68ki_get_sr(); + + /* Turn off trace flag, clear pending traces */ + FLAG_T1 = FLAG_T0 = 0; + m68ki_clear_trace(); + /* Enter supervisor mode */ + m68ki_set_s_flag(SFLAG_SET); + + return sr; +} + +/* 3 word stack frame (68000 only) */ +INLINE void m68ki_stack_frame_3word(uint pc, uint sr) +{ + m68ki_push_32(pc); + m68ki_push_16(sr); +} + +/* Format 0 stack frame. + * This is the standard stack frame for 68010+. + */ +INLINE void m68ki_stack_frame_0000(uint pc, uint sr, uint vector) +{ + /* Stack a 3-word frame if we are 68000 */ + if(CPU_TYPE == CPU_TYPE_000) + { + m68ki_stack_frame_3word(pc, sr); + return; + } + m68ki_push_16(vector<<2); + m68ki_push_32(pc); + m68ki_push_16(sr); +} + +/* Format 1 stack frame (68020). + * For 68020, this is the 4 word throwaway frame. + */ +INLINE void m68ki_stack_frame_0001(uint pc, uint sr, uint vector) +{ + m68ki_push_16(0x1000 | (vector<<2)); + m68ki_push_32(pc); + m68ki_push_16(sr); +} + +/* Format 2 stack frame. + * This is used only by 68020 for trap exceptions. + */ +INLINE void m68ki_stack_frame_0010(uint sr, uint vector) +{ + m68ki_push_32(REG_PPC); + m68ki_push_16(0x2000 | (vector<<2)); + m68ki_push_32(REG_PC); + m68ki_push_16(sr); +} + + +/* Bus error stack frame (68000 only). + */ +INLINE void m68ki_stack_frame_buserr(uint pc, uint sr, uint address, uint write, uint instruction, uint fc) +{ + m68ki_push_32(pc); + m68ki_push_16(sr); + m68ki_push_16(REG_IR); + m68ki_push_32(address); /* access address */ + /* 0 0 0 0 0 0 0 0 0 0 0 R/W I/N FC + * R/W 0 = write, 1 = read + * I/N 0 = instruction, 1 = not + * FC 3-bit function code + */ + m68ki_push_16(((!write)<<4) | ((!instruction)<<3) | fc); +} + +#if 0 +/* Format 8 stack frame (68010). + * 68010 only. This is the 29 word bus/address error frame. + */ +void m68ki_stack_frame_1000(uint pc, uint sr, uint vector) +{ + /* VERSION + * NUMBER + * INTERNAL INFORMATION, 16 WORDS + */ + m68ki_fake_push_32(); + m68ki_fake_push_32(); + m68ki_fake_push_32(); + m68ki_fake_push_32(); + m68ki_fake_push_32(); + m68ki_fake_push_32(); + m68ki_fake_push_32(); + m68ki_fake_push_32(); + + /* INSTRUCTION INPUT BUFFER */ + m68ki_push_16(0); + + /* UNUSED, RESERVED (not written) */ + m68ki_fake_push_16(); + + /* DATA INPUT BUFFER */ + m68ki_push_16(0); + + /* UNUSED, RESERVED (not written) */ + m68ki_fake_push_16(); + + /* DATA OUTPUT BUFFER */ + m68ki_push_16(0); + + /* UNUSED, RESERVED (not written) */ + m68ki_fake_push_16(); + + /* FAULT ADDRESS */ + m68ki_push_32(0); + + /* SPECIAL STATUS WORD */ + m68ki_push_16(0); + + /* 1000, VECTOR OFFSET */ + m68ki_push_16(0x8000 | (vector<<2)); + + /* PROGRAM COUNTER */ + m68ki_push_32(pc); + + /* STATUS REGISTER */ + m68ki_push_16(sr); +} + +/* Format A stack frame (short bus fault). + * This is used only by 68020 for bus fault and address error + * if the error happens at an instruction boundary. + * PC stacked is address of next instruction. + */ +void m68ki_stack_frame_1010(uint sr, uint vector, uint pc) +{ + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* DATA OUTPUT BUFFER (2 words) */ + m68ki_push_32(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* DATA CYCLE FAULT ADDRESS (2 words) */ + m68ki_push_32(0); + + /* INSTRUCTION PIPE STAGE B */ + m68ki_push_16(0); + + /* INSTRUCTION PIPE STAGE C */ + m68ki_push_16(0); + + /* SPECIAL STATUS REGISTER */ + m68ki_push_16(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* 1010, VECTOR OFFSET */ + m68ki_push_16(0xa000 | (vector<<2)); + + /* PROGRAM COUNTER */ + m68ki_push_32(pc); + + /* STATUS REGISTER */ + m68ki_push_16(sr); +} + +/* Format B stack frame (long bus fault). + * This is used only by 68020 for bus fault and address error + * if the error happens during instruction execution. + * PC stacked is address of instruction in progress. + */ +void m68ki_stack_frame_1011(uint sr, uint vector, uint pc) +{ + /* INTERNAL REGISTERS (18 words) */ + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + m68ki_push_32(0); + + /* VERSION# (4 bits), INTERNAL INFORMATION */ + m68ki_push_16(0); + + /* INTERNAL REGISTERS (3 words) */ + m68ki_push_32(0); + m68ki_push_16(0); + + /* DATA INTPUT BUFFER (2 words) */ + m68ki_push_32(0); + + /* INTERNAL REGISTERS (2 words) */ + m68ki_push_32(0); + + /* STAGE B ADDRESS (2 words) */ + m68ki_push_32(0); + + /* INTERNAL REGISTER (4 words) */ + m68ki_push_32(0); + m68ki_push_32(0); + + /* DATA OUTPUT BUFFER (2 words) */ + m68ki_push_32(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* DATA CYCLE FAULT ADDRESS (2 words) */ + m68ki_push_32(0); + + /* INSTRUCTION PIPE STAGE B */ + m68ki_push_16(0); + + /* INSTRUCTION PIPE STAGE C */ + m68ki_push_16(0); + + /* SPECIAL STATUS REGISTER */ + m68ki_push_16(0); + + /* INTERNAL REGISTER */ + m68ki_push_16(0); + + /* 1011, VECTOR OFFSET */ + m68ki_push_16(0xb000 | (vector<<2)); + + /* PROGRAM COUNTER */ + m68ki_push_32(pc); + + /* STATUS REGISTER */ + m68ki_push_16(sr); +} +#endif + +/* Used for Group 2 exceptions. + * These stack a type 2 frame on the 020. + */ +INLINE void m68ki_exception_trap(uint vector) +{ + uint sr = m68ki_init_exception(); + + if(CPU_TYPE_IS_010_LESS(CPU_TYPE)) + m68ki_stack_frame_0000(REG_PC, sr, vector); + else + m68ki_stack_frame_0010(sr, vector); + + m68ki_jump_vector(vector); + + /* Use up some clock cycles */ + USE_CYCLES(CYC_EXCEPTION[vector]); +} + +/* Trap#n stacks a 0 frame but behaves like group2 otherwise */ +INLINE void m68ki_exception_trapN(uint vector) +{ + uint sr = m68ki_init_exception(); + m68ki_stack_frame_0000(REG_PC, sr, vector); + m68ki_jump_vector(vector); + + /* Use up some clock cycles */ + USE_CYCLES(CYC_EXCEPTION[vector]); +} + +/* Exception for trace mode */ +INLINE void m68ki_exception_trace(void) +{ + uint sr = m68ki_init_exception(); + + if(CPU_TYPE_IS_010_LESS(CPU_TYPE)) + m68ki_stack_frame_0000(REG_PC, sr, EXCEPTION_TRACE); + else + m68ki_stack_frame_0010(sr, EXCEPTION_TRACE); + + m68ki_jump_vector(EXCEPTION_TRACE); + + /* Trace nullifies a STOP instruction */ + CPU_STOPPED &= ~STOP_LEVEL_STOP; + + /* Use up some clock cycles */ + USE_CYCLES(CYC_EXCEPTION[EXCEPTION_TRACE]); +} + +/* Exception for privilege violation */ +INLINE void m68ki_exception_privilege_violation(void) +{ + uint sr = m68ki_init_exception(); + m68ki_stack_frame_0000(REG_PC, sr, EXCEPTION_PRIVILEGE_VIOLATION); + m68ki_jump_vector(EXCEPTION_PRIVILEGE_VIOLATION); + + /* Use up some clock cycles and undo the instruction's cycles */ + USE_CYCLES(CYC_EXCEPTION[EXCEPTION_PRIVILEGE_VIOLATION] - CYC_INSTRUCTION[REG_IR]); +} + +/* Exception for A-Line instructions */ +INLINE void m68ki_exception_1010(void) +{ + uint sr; +#if M68K_LOG_1010_1111 == OPT_ON + M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: called 1010 instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PPC), REG_IR, + m68ki_disassemble_quick(ADDRESS_68K(REG_PPC)))); +#endif + + sr = m68ki_init_exception(); + m68ki_stack_frame_0000(REG_PC-2, sr, EXCEPTION_1010); + m68ki_jump_vector(EXCEPTION_1010); + + /* Use up some clock cycles and undo the instruction's cycles */ + USE_CYCLES(CYC_EXCEPTION[EXCEPTION_1010] - CYC_INSTRUCTION[REG_IR]); +} + +/* Exception for F-Line instructions */ +INLINE void m68ki_exception_1111(void) +{ + uint sr; + +#if M68K_LOG_1010_1111 == OPT_ON + M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: called 1111 instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PPC), REG_IR, + m68ki_disassemble_quick(ADDRESS_68K(REG_PPC)))); +#endif + + sr = m68ki_init_exception(); + m68ki_stack_frame_0000(REG_PC-2, sr, EXCEPTION_1111); + m68ki_jump_vector(EXCEPTION_1111); + + /* Use up some clock cycles and undo the instruction's cycles */ + USE_CYCLES(CYC_EXCEPTION[EXCEPTION_1111] - CYC_INSTRUCTION[REG_IR]); +} + +/* Exception for illegal instructions */ +INLINE void m68ki_exception_illegal(void) +{ + uint sr; + + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: illegal instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PPC), REG_IR, + m68ki_disassemble_quick(ADDRESS_68K(REG_PPC)))); + + sr = m68ki_init_exception(); + m68ki_stack_frame_0000(REG_PC, sr, EXCEPTION_ILLEGAL_INSTRUCTION_M68K); + m68ki_jump_vector(EXCEPTION_ILLEGAL_INSTRUCTION_M68K); + + /* Use up some clock cycles and undo the instruction's cycles */ + USE_CYCLES(CYC_EXCEPTION[EXCEPTION_ILLEGAL_INSTRUCTION_M68K] - CYC_INSTRUCTION[REG_IR]); +} + +/* Exception for format errror in RTE */ +INLINE void m68ki_exception_format_error(void) +{ + uint sr = m68ki_init_exception(); + m68ki_stack_frame_0000(REG_PC, sr, EXCEPTION_FORMAT_ERROR); + m68ki_jump_vector(EXCEPTION_FORMAT_ERROR); + + /* Use up some clock cycles and undo the instruction's cycles */ + USE_CYCLES(CYC_EXCEPTION[EXCEPTION_FORMAT_ERROR] - CYC_INSTRUCTION[REG_IR]); +} + +/* Exception for address error */ +INLINE void m68ki_exception_address_error(void) +{ + /* Not emulated yet */ +} + + +/* Service an interrupt request and start exception processing */ +void m68ki_exception_interrupt(uint int_level) +{ + uint vector; + uint sr; + uint new_pc; + + /* Turn off the stopped state */ + CPU_STOPPED &= ~STOP_LEVEL_STOP; + + /* If we are halted, don't do anything */ + if(CPU_STOPPED) + return; + + /* Acknowledge the interrupt */ + vector = m68ki_int_ack(int_level); + + /* Get the interrupt vector */ + if(vector == M68K_INT_ACK_AUTOVECTOR) + /* Use the autovectors. This is the most commonly used implementation */ + vector = EXCEPTION_INTERRUPT_AUTOVECTOR+int_level; + else if(vector == M68K_INT_ACK_SPURIOUS) + /* Called if no devices respond to the interrupt acknowledge */ + vector = EXCEPTION_SPURIOUS_INTERRUPT; + else if(vector > 255) + { + M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: Interrupt acknowledge returned invalid vector $%x\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC), vector)); + return; + } + + /* Start exception processing */ + sr = m68ki_init_exception(); + + /* Set the interrupt mask to the level of the one being serviced */ + FLAG_INT_MASK = int_level<<8; + + /* Get the new PC */ + new_pc = m68ki_read_data_32((vector<<2) + REG_VBR); + + /* If vector is uninitialized, call the uninitialized interrupt vector */ + if(new_pc == 0) + new_pc = m68ki_read_data_32((EXCEPTION_UNINITIALIZED_INTERRUPT<<2) + REG_VBR); + + /* Generate a stack frame */ + m68ki_stack_frame_0000(REG_PC, sr, vector); + if(FLAG_M && CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Create throwaway frame */ + m68ki_set_sm_flag(FLAG_S); /* clear M */ + sr |= 0x2000; /* Same as SR in master stack frame except S is forced high */ + m68ki_stack_frame_0001(REG_PC, sr, vector); + } + + m68ki_jump(new_pc); + + /* Defer cycle counting until later */ + CPU_INT_CYCLES += CYC_EXCEPTION[vector]; + +#if !M68K_EMULATE_INT_ACK + /* Automatically clear IRQ if we are not using an acknowledge scheme */ + CPU_INT_LEVEL = 0; +#endif /* M68K_EMULATE_INT_ACK */ +} + + +/* ASG: Check for interrupts */ +INLINE void m68ki_check_interrupts(void) +{ + if(CPU_INT_LEVEL > FLAG_INT_MASK) + m68ki_exception_interrupt(CPU_INT_LEVEL>>8); +} + + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + +#endif /* M68KCPU__HEADER */ diff --git a/AltairZ80/m68kdasm.c b/AltairZ80/m68kdasm.c new file mode 100755 index 00000000..941c789e --- /dev/null +++ b/AltairZ80/m68kdasm.c @@ -0,0 +1,3443 @@ +/* ======================================================================== */ +/* ========================= LICENSING & COPYRIGHT ======================== */ +/* ======================================================================== */ +/* + * MUSASHI + * Version 3.3 + * + * A portable Motorola M680x0 processor emulation engine. + * Copyright 1998-2001 Karl Stenerud. All rights reserved. + * + * This code may be freely used for non-commercial purposes as long as this + * copyright notice remains unaltered in the source code and any binary files + * containing this code in compiled form. + * + * All other lisencing terms must be negotiated with the author + * (Karl Stenerud). + * + * The latest version of this code can be obtained at: + * http://kstenerud.cjb.net + */ + + + +/* ======================================================================== */ +/* ================================ INCLUDES ============================== */ +/* ======================================================================== */ + +#include +#include +#include +#include "m68k.h" + +/* ======================================================================== */ +/* ============================ GENERAL DEFINES =========================== */ +/* ======================================================================== */ + +/* unsigned int and int must be at least 32 bits wide */ +#undef uint +#define uint unsigned int + +/* Bit Isolation Functions */ +#define BIT_0(A) ((A) & 0x00000001) +#define BIT_1(A) ((A) & 0x00000002) +#define BIT_2(A) ((A) & 0x00000004) +#define BIT_3(A) ((A) & 0x00000008) +#define BIT_4(A) ((A) & 0x00000010) +#define BIT_5(A) ((A) & 0x00000020) +#define BIT_6(A) ((A) & 0x00000040) +#define BIT_7(A) ((A) & 0x00000080) +#define BIT_8(A) ((A) & 0x00000100) +#define BIT_9(A) ((A) & 0x00000200) +#define BIT_A(A) ((A) & 0x00000400) +#define BIT_B(A) ((A) & 0x00000800) +#define BIT_C(A) ((A) & 0x00001000) +#define BIT_D(A) ((A) & 0x00002000) +#define BIT_E(A) ((A) & 0x00004000) +#define BIT_F(A) ((A) & 0x00008000) +#define BIT_10(A) ((A) & 0x00010000) +#define BIT_11(A) ((A) & 0x00020000) +#define BIT_12(A) ((A) & 0x00040000) +#define BIT_13(A) ((A) & 0x00080000) +#define BIT_14(A) ((A) & 0x00100000) +#define BIT_15(A) ((A) & 0x00200000) +#define BIT_16(A) ((A) & 0x00400000) +#define BIT_17(A) ((A) & 0x00800000) +#define BIT_18(A) ((A) & 0x01000000) +#define BIT_19(A) ((A) & 0x02000000) +#define BIT_1A(A) ((A) & 0x04000000) +#define BIT_1B(A) ((A) & 0x08000000) +#define BIT_1C(A) ((A) & 0x10000000) +#define BIT_1D(A) ((A) & 0x20000000) +#define BIT_1E(A) ((A) & 0x40000000) +#define BIT_1F(A) ((A) & 0x80000000) + +/* These are the CPU types understood by this disassembler */ +#define TYPE_68000 1 +#define TYPE_68010 2 +#define TYPE_68020 4 +#define TYPE_68030 8 +#define TYPE_68040 16 + +#define M68000_ONLY TYPE_68000 + +#define M68010_ONLY TYPE_68010 +#define M68010_LESS (TYPE_68000 | TYPE_68010) +#define M68010_PLUS (TYPE_68010 | TYPE_68020 | TYPE_68030 | TYPE_68040) + +#define M68020_ONLY TYPE_68020 +#define M68020_LESS (TYPE_68010 | TYPE_68020) +#define M68020_PLUS (TYPE_68020 | TYPE_68030 | TYPE_68040) + +#define M68030_ONLY TYPE_68030 +#define M68030_LESS (TYPE_68010 | TYPE_68020 | TYPE_68030) +#define M68030_PLUS (TYPE_68030 | TYPE_68040) + +#define M68040_PLUS TYPE_68040 + + +/* Extension word formats */ +#define EXT_8BIT_DISPLACEMENT(A) ((A)&0xff) +#define EXT_FULL(A) BIT_8(A) +#define EXT_EFFECTIVE_ZERO(A) (((A)&0xe4) == 0xc4 || ((A)&0xe2) == 0xc0) +#define EXT_BASE_REGISTER_PRESENT(A) (!BIT_7(A)) +#define EXT_INDEX_REGISTER_PRESENT(A) (!BIT_6(A)) +#define EXT_INDEX_REGISTER(A) (((A)>>12)&7) +#define EXT_INDEX_PRE_POST(A) (EXT_INDEX_PRESENT(A) && (A)&3) +#define EXT_INDEX_PRE(A) (EXT_INDEX_PRESENT(A) && ((A)&7) < 4 && ((A)&7) != 0) +#define EXT_INDEX_POST(A) (EXT_INDEX_PRESENT(A) && ((A)&7) > 4) +#define EXT_INDEX_SCALE(A) (((A)>>9)&3) +#define EXT_INDEX_LONG(A) BIT_B(A) +#define EXT_INDEX_AR(A) BIT_F(A) +#define EXT_BASE_DISPLACEMENT_PRESENT(A) (((A)&0x30) > 0x10) +#define EXT_BASE_DISPLACEMENT_WORD(A) (((A)&0x30) == 0x20) +#define EXT_BASE_DISPLACEMENT_LONG(A) (((A)&0x30) == 0x30) +#define EXT_OUTER_DISPLACEMENT_PRESENT(A) (((A)&3) > 1 && ((A)&0x47) < 0x44) +#define EXT_OUTER_DISPLACEMENT_WORD(A) (((A)&3) == 2 && ((A)&0x47) < 0x44) +#define EXT_OUTER_DISPLACEMENT_LONG(A) (((A)&3) == 3 && ((A)&0x47) < 0x44) + + + +/* ======================================================================== */ +/* =============================== PROTOTYPES ============================= */ +/* ======================================================================== */ + +/* Read data at the PC and increment PC */ +uint read_imm_8(void); +uint read_imm_16(void); +uint read_imm_32(void); + +/* Read data at the PC but don't imcrement the PC */ +uint peek_imm_8(void); +uint peek_imm_16(void); +uint peek_imm_32(void); + +/* make signed integers 100% portably */ +static int make_int_8(int value); +static int make_int_16(int value); + +/* make a string of a hex value */ +static char* make_signed_hex_str_8(uint val); +static char* make_signed_hex_str_16(uint val); +static char* make_signed_hex_str_32(uint val); + +/* make string of ea mode */ +static char* get_ea_mode_str(uint instruction, uint size); + +char* get_ea_mode_str_8(uint instruction); +char* get_ea_mode_str_16(uint instruction); +char* get_ea_mode_str_32(uint instruction); + +/* make string of immediate value */ +static char* get_imm_str_s(uint size); +static char* get_imm_str_u(uint size); + +char* get_imm_str_s8(void); +char* get_imm_str_s16(void); +char* get_imm_str_s32(void); + +/* Stuff to build the opcode handler jump table */ +static void build_opcode_table(void); +static int valid_ea(uint opcode, uint mask); +static int DECL_SPEC compare_nof_true_bits(const void *aptr, const void *bptr); + +/* used to build opcode handler jump table */ +typedef struct +{ + void (*opcode_handler)(void); /* handler function */ + uint mask; /* mask on opcode */ + uint match; /* what to match after masking */ + uint ea_mask; /* what ea modes are allowed */ +} opcode_struct; + + + +/* ======================================================================== */ +/* ================================= DATA ================================= */ +/* ======================================================================== */ + +/* Opcode handler jump table */ +static void (*g_instruction_table[0x10000])(void); +/* Flag if disassembler initialized */ +static int g_initialized = 0; + +/* Address mask to simulate address lines */ +static unsigned int g_address_mask = 0xffffffff; + +static char g_dasm_str[100]; /* string to hold disassembly */ +static char g_helper_str[100]; /* string to hold helpful info */ +static uint g_cpu_pc; /* program counter */ +static uint g_cpu_ir; /* instruction register */ +static uint g_cpu_type; + +/* used by ops like asr, ror, addq, etc */ +static uint g_3bit_qdata_table[8] = {8, 1, 2, 3, 4, 5, 6, 7}; + +static uint g_5bit_data_table[32] = +{ + 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 +}; + +static char* g_cc[16] = +{"t", "f", "hi", "ls", "cc", "cs", "ne", "eq", "vc", "vs", "pl", "mi", "ge", "lt", "gt", "le"}; + +static char* g_cpcc[64] = +{/* 000 001 010 011 100 101 110 111 */ + "f", "eq", "ogt", "oge", "olt", "ole", "ogl", "or", /* 000 */ + "un", "ueq", "ugt", "uge", "ult", "ule", "ne", "t", /* 001 */ + "sf", "seq", "gt", "ge", "lt", "le", "gl" "gle", /* 010 */ + "ngle", "ngl", "nle", "nlt", "nge", "ngt", "sne", "st", /* 011 */ + "?", "?", "?", "?", "?", "?", "?", "?", /* 100 */ + "?", "?", "?", "?", "?", "?", "?", "?", /* 101 */ + "?", "?", "?", "?", "?", "?", "?", "?", /* 110 */ + "?", "?", "?", "?", "?", "?", "?", "?" /* 111 */ +}; + + +/* ======================================================================== */ +/* =========================== UTILITY FUNCTIONS ========================== */ +/* ======================================================================== */ + +#define LIMIT_CPU_TYPES(ALLOWED_CPU_TYPES) \ + if(!(g_cpu_type & ALLOWED_CPU_TYPES)) \ + { \ + d68000_illegal(); \ + return; \ + } + +#define read_imm_8() (m68k_read_disassembler_16(((g_cpu_pc+=2)-2)&g_address_mask)&0xff) +#define read_imm_16() m68k_read_disassembler_16(((g_cpu_pc+=2)-2)&g_address_mask) +#define read_imm_32() m68k_read_disassembler_32(((g_cpu_pc+=4)-4)&g_address_mask) + +#define peek_imm_8() (m68k_read_disassembler_16(g_cpu_pc & g_address_mask)&0xff) +#define peek_imm_16() m68k_read_disassembler_16(g_cpu_pc & g_address_mask) +#define peek_imm_32() m68k_read_disassembler_32(g_cpu_pc & g_address_mask) + +/* Fake a split interface */ +#define get_ea_mode_str_8(instruction) get_ea_mode_str(instruction, 0) +#define get_ea_mode_str_16(instruction) get_ea_mode_str(instruction, 1) +#define get_ea_mode_str_32(instruction) get_ea_mode_str(instruction, 2) + +#define get_imm_str_s8() get_imm_str_s(0) +#define get_imm_str_s16() get_imm_str_s(1) +#define get_imm_str_s32() get_imm_str_s(2) + +#define get_imm_str_u8() get_imm_str_u(0) +#define get_imm_str_u16() get_imm_str_u(1) +#define get_imm_str_u32() get_imm_str_u(2) + + +/* 100% portable signed int generators */ +static int make_int_8(int value) +{ + return (value & 0x80) ? value | ~0xff : value & 0xff; +} + +static int make_int_16(int value) +{ + return (value & 0x8000) ? value | ~0xffff : value & 0xffff; +} + + +/* Get string representation of hex values */ +static char* make_signed_hex_str_8(uint val) +{ + static char str[20]; + + val &= 0xff; + + if(val == 0x80) + sprintf(str, "-$80"); + else if(val & 0x80) + sprintf(str, "-$%x", (0-val) & 0x7f); + else + sprintf(str, "$%x", val & 0x7f); + + return str; +} + +static char* make_signed_hex_str_16(uint val) +{ + static char str[20]; + + val &= 0xffff; + + if(val == 0x8000) + sprintf(str, "-$8000"); + else if(val & 0x8000) + sprintf(str, "-$%x", (0-val) & 0x7fff); + else + sprintf(str, "$%x", val & 0x7fff); + + return str; +} + +static char* make_signed_hex_str_32(uint val) +{ + static char str[20]; + + val &= 0xffffffff; + + if(val == 0x80000000) + sprintf(str, "-$80000000"); + else if(val & 0x80000000) + sprintf(str, "-$%x", (0-val) & 0x7fffffff); + else + sprintf(str, "$%x", val & 0x7fffffff); + + return str; +} + + +/* make string of immediate value */ +static char* get_imm_str_s(uint size) +{ + static char str[15]; + if(size == 0) + sprintf(str, "#%s", make_signed_hex_str_8(read_imm_8())); + else if(size == 1) + sprintf(str, "#%s", make_signed_hex_str_16(read_imm_16())); + else + sprintf(str, "#%s", make_signed_hex_str_32(read_imm_32())); + return str; +} + +static char* get_imm_str_u(uint size) +{ + static char str[15]; + if(size == 0) + sprintf(str, "#$%x", read_imm_8() & 0xff); + else if(size == 1) + sprintf(str, "#$%x", read_imm_16() & 0xffff); + else + sprintf(str, "#$%x", read_imm_32() & 0xffffffff); + return str; +} + +/* Make string of effective address mode */ +static char* get_ea_mode_str(uint instruction, uint size) +{ + static char b1[64]; + static char b2[64]; + static char* mode = b2; + uint extension; + uint base; + uint outer; + char base_reg[4]; + char index_reg[8]; + uint preindex; + uint postindex; + uint comma = 0; + uint temp_value; + + /* Switch buffers so we don't clobber on a double-call to this function */ + mode = mode == b1 ? b2 : b1; + + switch(instruction & 0x3f) + { + case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07: + /* data register direct */ + sprintf(mode, "D%d", instruction&7); + break; + case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e: case 0x0f: + /* address register direct */ + sprintf(mode, "A%d", instruction&7); + break; + case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: + /* address register indirect */ + sprintf(mode, "(A%d)", instruction&7); + break; + case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: + /* address register indirect with postincrement */ + sprintf(mode, "(A%d)+", instruction&7); + break; + case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: + /* address register indirect with predecrement */ + sprintf(mode, "-(A%d)", instruction&7); + break; + case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f: + /* address register indirect with displacement*/ + sprintf(mode, "(%s,A%d)", make_signed_hex_str_16(read_imm_16()), instruction&7); + break; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: + /* address register indirect with index */ + extension = read_imm_16(); + + if(EXT_FULL(extension)) + { + if(EXT_EFFECTIVE_ZERO(extension)) + { + strcpy(mode, "0"); + break; + } + base = EXT_BASE_DISPLACEMENT_PRESENT(extension) ? (EXT_BASE_DISPLACEMENT_LONG(extension) ? read_imm_32() : read_imm_16()) : 0; + outer = EXT_OUTER_DISPLACEMENT_PRESENT(extension) ? (EXT_OUTER_DISPLACEMENT_LONG(extension) ? read_imm_32() : read_imm_16()) : 0; + if(EXT_BASE_REGISTER_PRESENT(extension)) + sprintf(base_reg, "A%d", instruction&7); + else + *base_reg = 0; + if(EXT_INDEX_REGISTER_PRESENT(extension)) + { + sprintf(index_reg, "%c%d.%c", EXT_INDEX_AR(extension) ? 'A' : 'D', EXT_INDEX_REGISTER(extension), EXT_INDEX_LONG(extension) ? 'l' : 'w'); + if(EXT_INDEX_SCALE(extension)) + sprintf(index_reg+strlen(index_reg), "*%d", 1 << EXT_INDEX_SCALE(extension)); + } + else + *index_reg = 0; + preindex = (extension&7) > 0 && (extension&7) < 4; + postindex = (extension&7) > 4; + + strcpy(mode, "("); + if(preindex || postindex) + strcat(mode, "["); + if(base) + { + strcat(mode, make_signed_hex_str_16(base)); + comma = 1; + } + if(*base_reg) + { + if(comma) + strcat(mode, ","); + strcat(mode, base_reg); + comma = 1; + } + if(postindex) + { + strcat(mode, "]"); + comma = 1; + } + if(*index_reg) + { + if(comma) + strcat(mode, ","); + strcat(mode, index_reg); + comma = 1; + } + if(preindex) + { + strcat(mode, "]"); + comma = 1; + } + if(outer) + { + if(comma) + strcat(mode, ","); + strcat(mode, make_signed_hex_str_16(outer)); + } + strcat(mode, ")"); + break; + } + + if(EXT_8BIT_DISPLACEMENT(extension) == 0) + sprintf(mode, "(A%d,%c%d.%c", instruction&7, EXT_INDEX_AR(extension) ? 'A' : 'D', EXT_INDEX_REGISTER(extension), EXT_INDEX_LONG(extension) ? 'l' : 'w'); + else + sprintf(mode, "(%s,A%d,%c%d.%c", make_signed_hex_str_8(extension), instruction&7, EXT_INDEX_AR(extension) ? 'A' : 'D', EXT_INDEX_REGISTER(extension), EXT_INDEX_LONG(extension) ? 'l' : 'w'); + if(EXT_INDEX_SCALE(extension)) + sprintf(mode+strlen(mode), "*%d", 1 << EXT_INDEX_SCALE(extension)); + strcat(mode, ")"); + break; + case 0x38: + /* absolute short address */ + sprintf(mode, "$%x.w", read_imm_16()); + break; + case 0x39: + /* absolute long address */ + sprintf(mode, "$%x.l", read_imm_32()); + break; + case 0x3a: + /* program counter with displacement */ + temp_value = read_imm_16(); + sprintf(mode, "(%s,PC)", make_signed_hex_str_16(temp_value)); + sprintf(g_helper_str, "; ($%x)", (make_int_16(temp_value) + g_cpu_pc-2) & 0xffffffff); + break; + case 0x3b: + /* program counter with index */ + extension = read_imm_16(); + + if(EXT_FULL(extension)) + { + if(EXT_EFFECTIVE_ZERO(extension)) + { + strcpy(mode, "0"); + break; + } + base = EXT_BASE_DISPLACEMENT_PRESENT(extension) ? (EXT_BASE_DISPLACEMENT_LONG(extension) ? read_imm_32() : read_imm_16()) : 0; + outer = EXT_OUTER_DISPLACEMENT_PRESENT(extension) ? (EXT_OUTER_DISPLACEMENT_LONG(extension) ? read_imm_32() : read_imm_16()) : 0; + if(EXT_BASE_REGISTER_PRESENT(extension)) + strcpy(base_reg, "PC"); + else + *base_reg = 0; + if(EXT_INDEX_REGISTER_PRESENT(extension)) + { + sprintf(index_reg, "%c%d.%c", EXT_INDEX_AR(extension) ? 'A' : 'D', EXT_INDEX_REGISTER(extension), EXT_INDEX_LONG(extension) ? 'l' : 'w'); + if(EXT_INDEX_SCALE(extension)) + sprintf(index_reg+strlen(index_reg), "*%d", 1 << EXT_INDEX_SCALE(extension)); + } + else + *index_reg = 0; + preindex = (extension&7) > 0 && (extension&7) < 4; + postindex = (extension&7) > 4; + + strcpy(mode, "("); + if(preindex || postindex) + strcat(mode, "["); + if(base) + { + strcat(mode, make_signed_hex_str_16(base)); + comma = 1; + } + if(*base_reg) + { + if(comma) + strcat(mode, ","); + strcat(mode, base_reg); + comma = 1; + } + if(postindex) + { + strcat(mode, "]"); + comma = 1; + } + if(*index_reg) + { + if(comma) + strcat(mode, ","); + strcat(mode, index_reg); + comma = 1; + } + if(preindex) + { + strcat(mode, "]"); + comma = 1; + } + if(outer) + { + if(comma) + strcat(mode, ","); + strcat(mode, make_signed_hex_str_16(outer)); + } + strcat(mode, ")"); + break; + } + + if(EXT_8BIT_DISPLACEMENT(extension) == 0) + sprintf(mode, "(PC,%c%d.%c", EXT_INDEX_AR(extension) ? 'A' : 'D', EXT_INDEX_REGISTER(extension), EXT_INDEX_LONG(extension) ? 'l' : 'w'); + else + sprintf(mode, "(%s,PC,%c%d.%c", make_signed_hex_str_8(extension), EXT_INDEX_AR(extension) ? 'A' : 'D', EXT_INDEX_REGISTER(extension), EXT_INDEX_LONG(extension) ? 'l' : 'w'); + if(EXT_INDEX_SCALE(extension)) + sprintf(mode+strlen(mode), "*%d", 1 << EXT_INDEX_SCALE(extension)); + strcat(mode, ")"); + break; + case 0x3c: + /* Immediate */ + sprintf(mode, "%s", get_imm_str_u(size)); + break; + default: + sprintf(mode, "INVALID %x", instruction & 0x3f); + } + return mode; +} + + + +/* ======================================================================== */ +/* ========================= INSTRUCTION HANDLERS ========================= */ +/* ======================================================================== */ +/* Instruction handler function names follow this convention: + * + * d68000_NAME_EXTENSIONS(void) + * where NAME is the name of the opcode it handles and EXTENSIONS are any + * extensions for special instances of that opcode. + * + * Examples: + * d68000_add_er_8(): add opcode, from effective address to register, + * size = byte + * + * d68000_asr_s_8(): arithmetic shift right, static count, size = byte + * + * + * Common extensions: + * 8 : size = byte + * 16 : size = word + * 32 : size = long + * rr : register to register + * mm : memory to memory + * r : register + * s : static + * er : effective address -> register + * re : register -> effective address + * ea : using effective address mode of operation + * d : data register direct + * a : address register direct + * ai : address register indirect + * pi : address register indirect with postincrement + * pd : address register indirect with predecrement + * di : address register indirect with displacement + * ix : address register indirect with index + * aw : absolute word + * al : absolute long + */ + +static void d68000_illegal(void) +{ + sprintf(g_dasm_str, "dc.w $%04x; ILLEGAL", g_cpu_ir); +} + +static void d68000_1010(void) +{ + sprintf(g_dasm_str, "dc.w $%04x; opcode 1010", g_cpu_ir); +} + + +static void d68000_1111(void) +{ + sprintf(g_dasm_str, "dc.w $%04x; opcode 1111", g_cpu_ir); +} + + +static void d68000_abcd_rr(void) +{ + sprintf(g_dasm_str, "abcd D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + + +static void d68000_abcd_mm(void) +{ + sprintf(g_dasm_str, "abcd -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_add_er_8(void) +{ + sprintf(g_dasm_str, "add.b %s, D%d", get_ea_mode_str_8(g_cpu_ir), (g_cpu_ir>>9)&7); +} + + +static void d68000_add_er_16(void) +{ + sprintf(g_dasm_str, "add.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_add_er_32(void) +{ + sprintf(g_dasm_str, "add.l %s, D%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_add_re_8(void) +{ + sprintf(g_dasm_str, "add.b D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_add_re_16(void) +{ + sprintf(g_dasm_str, "add.w D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_add_re_32(void) +{ + sprintf(g_dasm_str, "add.l D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_adda_16(void) +{ + sprintf(g_dasm_str, "adda.w %s, A%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_adda_32(void) +{ + sprintf(g_dasm_str, "adda.l %s, A%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_addi_8(void) +{ + char* str = get_imm_str_s8(); + sprintf(g_dasm_str, "addi.b %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_addi_16(void) +{ + char* str = get_imm_str_s16(); + sprintf(g_dasm_str, "addi.w %s, %s", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_addi_32(void) +{ + char* str = get_imm_str_s32(); + sprintf(g_dasm_str, "addi.l %s, %s", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_addq_8(void) +{ + sprintf(g_dasm_str, "addq.b #%d, %s", g_3bit_qdata_table[(g_cpu_ir>>9)&7], get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_addq_16(void) +{ + sprintf(g_dasm_str, "addq.w #%d, %s", g_3bit_qdata_table[(g_cpu_ir>>9)&7], get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_addq_32(void) +{ + sprintf(g_dasm_str, "addq.l #%d, %s", g_3bit_qdata_table[(g_cpu_ir>>9)&7], get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_addx_rr_8(void) +{ + sprintf(g_dasm_str, "addx.b D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_addx_rr_16(void) +{ + sprintf(g_dasm_str, "addx.w D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_addx_rr_32(void) +{ + sprintf(g_dasm_str, "addx.l D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_addx_mm_8(void) +{ + sprintf(g_dasm_str, "addx.b -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_addx_mm_16(void) +{ + sprintf(g_dasm_str, "addx.w -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_addx_mm_32(void) +{ + sprintf(g_dasm_str, "addx.l -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_and_er_8(void) +{ + sprintf(g_dasm_str, "and.b %s, D%d", get_ea_mode_str_8(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_and_er_16(void) +{ + sprintf(g_dasm_str, "and.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_and_er_32(void) +{ + sprintf(g_dasm_str, "and.l %s, D%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_and_re_8(void) +{ + sprintf(g_dasm_str, "and.b D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_and_re_16(void) +{ + sprintf(g_dasm_str, "and.w D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_and_re_32(void) +{ + sprintf(g_dasm_str, "and.l D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_andi_8(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "andi.b %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_andi_16(void) +{ + char* str = get_imm_str_u16(); + sprintf(g_dasm_str, "andi.w %s, %s", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_andi_32(void) +{ + char* str = get_imm_str_u32(); + sprintf(g_dasm_str, "andi.l %s, %s", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_andi_to_ccr(void) +{ + sprintf(g_dasm_str, "andi %s, CCR", get_imm_str_u8()); +} + +static void d68000_andi_to_sr(void) +{ + sprintf(g_dasm_str, "andi %s, SR", get_imm_str_u16()); +} + +static void d68000_asr_s_8(void) +{ + sprintf(g_dasm_str, "asr.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_asr_s_16(void) +{ + sprintf(g_dasm_str, "asr.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_asr_s_32(void) +{ + sprintf(g_dasm_str, "asr.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_asr_r_8(void) +{ + sprintf(g_dasm_str, "asr.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_asr_r_16(void) +{ + sprintf(g_dasm_str, "asr.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_asr_r_32(void) +{ + sprintf(g_dasm_str, "asr.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_asr_ea(void) +{ + sprintf(g_dasm_str, "asr.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_asl_s_8(void) +{ + sprintf(g_dasm_str, "asl.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_asl_s_16(void) +{ + sprintf(g_dasm_str, "asl.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_asl_s_32(void) +{ + sprintf(g_dasm_str, "asl.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_asl_r_8(void) +{ + sprintf(g_dasm_str, "asl.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_asl_r_16(void) +{ + sprintf(g_dasm_str, "asl.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_asl_r_32(void) +{ + sprintf(g_dasm_str, "asl.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_asl_ea(void) +{ + sprintf(g_dasm_str, "asl.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_bcc_8(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "b%-2s %x", g_cc[(g_cpu_ir>>8)&0xf], temp_pc + make_int_8(g_cpu_ir)); +} + +static void d68000_bcc_16(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "b%-2s %x", g_cc[(g_cpu_ir>>8)&0xf], temp_pc + make_int_16(read_imm_16())); +} + +static void d68020_bcc_32(void) +{ + uint temp_pc = g_cpu_pc; + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "b%-2s %x; (2+)", g_cc[(g_cpu_ir>>8)&0xf], temp_pc + read_imm_32()); +} + +static void d68000_bchg_r(void) +{ + sprintf(g_dasm_str, "bchg D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_bchg_s(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "bchg %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_bclr_r(void) +{ + sprintf(g_dasm_str, "bclr D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_bclr_s(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "bclr %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68010_bkpt(void) +{ + LIMIT_CPU_TYPES(M68010_PLUS); + sprintf(g_dasm_str, "bkpt #%d; (1+)", g_cpu_ir&7); +} + +static void d68020_bfchg(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfchg %s {%s:%s}; (2+)", get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bfclr(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfclr %s {%s:%s}; (2+)", get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bfexts(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfexts D%d, %s {%s:%s}; (2+)", (extension>>12)&7, get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bfextu(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfextu D%d, %s {%s:%s}; (2+)", (extension>>12)&7, get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bfffo(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfffo D%d, %s {%s:%s}; (2+)", (extension>>12)&7, get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bfins(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfins D%d, %s {%s:%s}; (2+)", (extension>>12)&7, get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bfset(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bfset %s {%s:%s}; (2+)", get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68020_bftst(void) +{ + uint extension; + char offset[3]; + char width[3]; + + LIMIT_CPU_TYPES(M68020_PLUS); + + extension = read_imm_16(); + + if(BIT_B(extension)) + sprintf(offset, "D%d", (extension>>6)&7); + else + sprintf(offset, "%d", (extension>>6)&31); + if(BIT_5(extension)) + sprintf(width, "D%d", extension&7); + else + sprintf(width, "%d", g_5bit_data_table[extension&31]); + sprintf(g_dasm_str, "bftst %s {%s:%s}; (2+)", get_ea_mode_str_8(g_cpu_ir), offset, width); +} + +static void d68000_bra_8(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "bra %x", temp_pc + make_int_8(g_cpu_ir)); +} + +static void d68000_bra_16(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "bra %x", temp_pc + make_int_16(read_imm_16())); +} + +static void d68020_bra_32(void) +{ + uint temp_pc = g_cpu_pc; + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "bra %x; (2+)", temp_pc + read_imm_32()); +} + +static void d68000_bset_r(void) +{ + sprintf(g_dasm_str, "bset D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_bset_s(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "bset %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_bsr_8(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "bsr %x", temp_pc + make_int_8(g_cpu_ir)); +} + +static void d68000_bsr_16(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "bsr %x", temp_pc + make_int_16(read_imm_16())); +} + +static void d68020_bsr_32(void) +{ + uint temp_pc = g_cpu_pc; + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "bsr %x; (2+)", temp_pc + peek_imm_32()); +} + +static void d68000_btst_r(void) +{ + sprintf(g_dasm_str, "btst D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_btst_s(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "btst %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_callm(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_ONLY); + str = get_imm_str_u8(); + + sprintf(g_dasm_str, "callm %s, %s; (2)", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_cas_8(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + sprintf(g_dasm_str, "cas.b D%d, D%d, %s; (2+)", extension&7, (extension>>8)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_cas_16(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + sprintf(g_dasm_str, "cas.w D%d, D%d, %s; (2+)", extension&7, (extension>>8)&7, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_cas_32(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + sprintf(g_dasm_str, "cas.l D%d, D%d, %s; (2+)", extension&7, (extension>>8)&7, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_cas2_16(void) +{ +/* CAS2 Dc1:Dc2,Du1:Dc2:(Rn1):(Rn2) +f e d c b a 9 8 7 6 5 4 3 2 1 0 + DARn1 0 0 0 Du1 0 0 0 Dc1 + DARn2 0 0 0 Du2 0 0 0 Dc2 +*/ + + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_32(); + sprintf(g_dasm_str, "cas2.w D%d:D%d:D%d:D%d, (%c%d):(%c%d); (2+)", + (extension>>16)&7, extension&7, (extension>>22)&7, (extension>>6)&7, + BIT_1F(extension) ? 'A' : 'D', (extension>>28)&7, + BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68020_cas2_32(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_32(); + sprintf(g_dasm_str, "cas2.l D%d:D%d:D%d:D%d, (%c%d):(%c%d); (2+)", + (extension>>16)&7, extension&7, (extension>>22)&7, (extension>>6)&7, + BIT_1F(extension) ? 'A' : 'D', (extension>>28)&7, + BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68000_chk_16(void) +{ + sprintf(g_dasm_str, "chk.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68020_chk_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "chk.l %s, D%d; (2+)", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68020_chk2_cmp2_8(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + sprintf(g_dasm_str, "%s.b %s, %c%d; (2+)", BIT_B(extension) ? "chk2" : "cmp2", get_ea_mode_str_8(g_cpu_ir), BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68020_chk2_cmp2_16(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + sprintf(g_dasm_str, "%s.w %s, %c%d; (2+)", BIT_B(extension) ? "chk2" : "cmp2", get_ea_mode_str_16(g_cpu_ir), BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68020_chk2_cmp2_32(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + sprintf(g_dasm_str, "%s.l %s, %c%d; (2+)", BIT_B(extension) ? "chk2" : "cmp2", get_ea_mode_str_32(g_cpu_ir), BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68040_cinv(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + switch((g_cpu_ir>>3)&3) + { + case 0: + sprintf(g_dasm_str, "cinv (illegal scope); (4)"); + break; + case 1: + sprintf(g_dasm_str, "cinvl %d, (A%d); (4)", (g_cpu_ir>>6)&3, g_cpu_ir&7); + break; + case 2: + sprintf(g_dasm_str, "cinvp %d, (A%d); (4)", (g_cpu_ir>>6)&3, g_cpu_ir&7); + break; + case 3: + sprintf(g_dasm_str, "cinva %d; (4)", (g_cpu_ir>>6)&3); + break; + } +} + +static void d68000_clr_8(void) +{ + sprintf(g_dasm_str, "clr.b %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_clr_16(void) +{ + sprintf(g_dasm_str, "clr.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_clr_32(void) +{ + sprintf(g_dasm_str, "clr.l %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_cmp_8(void) +{ + sprintf(g_dasm_str, "cmp.b %s, D%d", get_ea_mode_str_8(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_cmp_16(void) +{ + sprintf(g_dasm_str, "cmp.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_cmp_32(void) +{ + sprintf(g_dasm_str, "cmp.l %s, D%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_cmpa_16(void) +{ + sprintf(g_dasm_str, "cmpa.w %s, A%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_cmpa_32(void) +{ + sprintf(g_dasm_str, "cmpa.l %s, A%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_cmpi_8(void) +{ + char* str = get_imm_str_s8(); + sprintf(g_dasm_str, "cmpi.b %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_cmpi_pcdi_8(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s8(); + sprintf(g_dasm_str, "cmpi.b %s, %s; (2+)", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_cmpi_pcix_8(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s8(); + sprintf(g_dasm_str, "cmpi.b %s, %s; (2+)", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_cmpi_16(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s16(); + sprintf(g_dasm_str, "cmpi.w %s, %s", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_cmpi_pcdi_16(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s16(); + sprintf(g_dasm_str, "cmpi.w %s, %s; (2+)", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_cmpi_pcix_16(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s16(); + sprintf(g_dasm_str, "cmpi.w %s, %s; (2+)", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_cmpi_32(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s32(); + sprintf(g_dasm_str, "cmpi.l %s, %s", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_cmpi_pcdi_32(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s32(); + sprintf(g_dasm_str, "cmpi.l %s, %s; (2+)", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_cmpi_pcix_32(void) +{ + char* str; + LIMIT_CPU_TYPES(M68020_PLUS); + str = get_imm_str_s32(); + sprintf(g_dasm_str, "cmpi.l %s, %s; (2+)", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_cmpm_8(void) +{ + sprintf(g_dasm_str, "cmpm.b (A%d)+, (A%d)+", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_cmpm_16(void) +{ + sprintf(g_dasm_str, "cmpm.w (A%d)+, (A%d)+", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_cmpm_32(void) +{ + sprintf(g_dasm_str, "cmpm.l (A%d)+, (A%d)+", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68020_cpbcc_16(void) +{ + uint extension; + uint new_pc = g_cpu_pc; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + new_pc += make_int_16(peek_imm_16()); + sprintf(g_dasm_str, "%db%-4s %s; %x (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[g_cpu_ir&0x3f], get_imm_str_s16(), new_pc, extension); +} + +static void d68020_cpbcc_32(void) +{ + uint extension; + uint new_pc = g_cpu_pc; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + new_pc += peek_imm_32(); + sprintf(g_dasm_str, "%db%-4s %s; %x (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[g_cpu_ir&0x3f], get_imm_str_s16(), new_pc, extension); +} + +static void d68020_cpdbcc(void) +{ + uint extension1; + uint extension2; + uint new_pc = g_cpu_pc; + LIMIT_CPU_TYPES(M68020_PLUS); + extension1 = read_imm_16(); + extension2 = read_imm_16(); + new_pc += make_int_16(peek_imm_16()); + sprintf(g_dasm_str, "%ddb%-4s D%d,%s; %x (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[extension1&0x3f], g_cpu_ir&7, get_imm_str_s16(), new_pc, extension2); +} + +static void d68020_cpgen(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "%dgen %s; (2-3)", (g_cpu_ir>>9)&7, get_imm_str_u32()); +} + +static void d68020_cprestore(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "%drestore %s; (2-3)", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_cpsave(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "%dsave %s; (2-3)", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_cpscc(void) +{ + uint extension1; + uint extension2; + LIMIT_CPU_TYPES(M68020_PLUS); + extension1 = read_imm_16(); + extension2 = read_imm_16(); + sprintf(g_dasm_str, "%ds%-4s %s; (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[extension1&0x3f], get_ea_mode_str_8(g_cpu_ir), extension2); +} + +static void d68020_cptrapcc_0(void) +{ + uint extension1; + uint extension2; + LIMIT_CPU_TYPES(M68020_PLUS); + extension1 = read_imm_16(); + extension2 = read_imm_16(); + sprintf(g_dasm_str, "%dtrap%-4s; (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[extension1&0x3f], extension2); +} + +static void d68020_cptrapcc_16(void) +{ + uint extension1; + uint extension2; + LIMIT_CPU_TYPES(M68020_PLUS); + extension1 = read_imm_16(); + extension2 = read_imm_16(); + sprintf(g_dasm_str, "%dtrap%-4s %s; (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[extension1&0x3f], get_imm_str_u16(), extension2); +} + +static void d68020_cptrapcc_32(void) +{ + uint extension1; + uint extension2; + LIMIT_CPU_TYPES(M68020_PLUS); + extension1 = read_imm_16(); + extension2 = read_imm_16(); + sprintf(g_dasm_str, "%dtrap%-4s %s; (extension = %x) (2-3)", (g_cpu_ir>>9)&7, g_cpcc[extension1&0x3f], get_imm_str_u32(), extension2); +} + +static void d68040_cpush(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + switch((g_cpu_ir>>3)&3) + { + case 0: + sprintf(g_dasm_str, "cpush (illegal scope); (4)"); + break; + case 1: + sprintf(g_dasm_str, "cpushl %d, (A%d); (4)", (g_cpu_ir>>6)&3, g_cpu_ir&7); + break; + case 2: + sprintf(g_dasm_str, "cpushp %d, (A%d); (4)", (g_cpu_ir>>6)&3, g_cpu_ir&7); + break; + case 3: + sprintf(g_dasm_str, "cpusha %d; (4)", (g_cpu_ir>>6)&3); + break; + } +} + +static void d68000_dbra(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "dbra D%d, %x", g_cpu_ir & 7, temp_pc + make_int_16(read_imm_16())); +} + +static void d68000_dbcc(void) +{ + uint temp_pc = g_cpu_pc; + sprintf(g_dasm_str, "db%-2s D%d, %x", g_cc[(g_cpu_ir>>8)&0xf], g_cpu_ir & 7, temp_pc + make_int_16(read_imm_16())); +} + +static void d68000_divs(void) +{ + sprintf(g_dasm_str, "divs.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_divu(void) +{ + sprintf(g_dasm_str, "divu.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68020_divl(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + + if(BIT_A(extension)) + sprintf(g_dasm_str, "div%c.l %s, D%d:D%d; (2+)", BIT_B(extension) ? 's' : 'u', get_ea_mode_str_32(g_cpu_ir), extension&7, (extension>>12)&7); + else if((extension&7) == ((extension>>12)&7)) + sprintf(g_dasm_str, "div%c.l %s, D%d; (2+)", BIT_B(extension) ? 's' : 'u', get_ea_mode_str_32(g_cpu_ir), (extension>>12)&7); + else + sprintf(g_dasm_str, "div%cl.l %s, D%d:D%d; (2+)", BIT_B(extension) ? 's' : 'u', get_ea_mode_str_32(g_cpu_ir), extension&7, (extension>>12)&7); +} + +static void d68000_eor_8(void) +{ + sprintf(g_dasm_str, "eor.b D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_eor_16(void) +{ + sprintf(g_dasm_str, "eor.w D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_eor_32(void) +{ + sprintf(g_dasm_str, "eor.l D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_eori_8(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "eori.b %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_eori_16(void) +{ + char* str = get_imm_str_u16(); + sprintf(g_dasm_str, "eori.w %s, %s", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_eori_32(void) +{ + char* str = get_imm_str_u32(); + sprintf(g_dasm_str, "eori.l %s, %s", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_eori_to_ccr(void) +{ + sprintf(g_dasm_str, "eori %s, CCR", get_imm_str_u8()); +} + +static void d68000_eori_to_sr(void) +{ + sprintf(g_dasm_str, "eori %s, SR", get_imm_str_u16()); +} + +static void d68000_exg_dd(void) +{ + sprintf(g_dasm_str, "exg D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_exg_aa(void) +{ + sprintf(g_dasm_str, "exg A%d, A%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_exg_da(void) +{ + sprintf(g_dasm_str, "exg D%d, A%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_ext_16(void) +{ + sprintf(g_dasm_str, "ext.w D%d", g_cpu_ir&7); +} + +static void d68000_ext_32(void) +{ + sprintf(g_dasm_str, "ext.l D%d", g_cpu_ir&7); +} + +static void d68020_extb_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "extb.l D%d; (2+)", g_cpu_ir&7); +} + +static void d68000_jmp(void) +{ + sprintf(g_dasm_str, "jmp %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_jsr(void) +{ + sprintf(g_dasm_str, "jsr %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_lea(void) +{ + sprintf(g_dasm_str, "lea %s, A%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_link_16(void) +{ + sprintf(g_dasm_str, "link A%d, %s", g_cpu_ir&7, get_imm_str_s16()); +} + +static void d68020_link_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "link A%d, %s; (2+)", g_cpu_ir&7, get_imm_str_s32()); +} + +static void d68000_lsr_s_8(void) +{ + sprintf(g_dasm_str, "lsr.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_lsr_s_16(void) +{ + sprintf(g_dasm_str, "lsr.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_lsr_s_32(void) +{ + sprintf(g_dasm_str, "lsr.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_lsr_r_8(void) +{ + sprintf(g_dasm_str, "lsr.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_lsr_r_16(void) +{ + sprintf(g_dasm_str, "lsr.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_lsr_r_32(void) +{ + sprintf(g_dasm_str, "lsr.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_lsr_ea(void) +{ + sprintf(g_dasm_str, "lsr.w %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_lsl_s_8(void) +{ + sprintf(g_dasm_str, "lsl.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_lsl_s_16(void) +{ + sprintf(g_dasm_str, "lsl.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_lsl_s_32(void) +{ + sprintf(g_dasm_str, "lsl.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_lsl_r_8(void) +{ + sprintf(g_dasm_str, "lsl.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_lsl_r_16(void) +{ + sprintf(g_dasm_str, "lsl.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_lsl_r_32(void) +{ + sprintf(g_dasm_str, "lsl.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_lsl_ea(void) +{ + sprintf(g_dasm_str, "lsl.w %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_move_8(void) +{ + char* str = get_ea_mode_str_8(g_cpu_ir); + sprintf(g_dasm_str, "move.b %s, %s", str, get_ea_mode_str_8(((g_cpu_ir>>9) & 7) | ((g_cpu_ir>>3) & 0x38))); +} + +static void d68000_move_16(void) +{ + char* str = get_ea_mode_str_16(g_cpu_ir); + sprintf(g_dasm_str, "move.w %s, %s", str, get_ea_mode_str_16(((g_cpu_ir>>9) & 7) | ((g_cpu_ir>>3) & 0x38))); +} + +static void d68000_move_32(void) +{ + char* str = get_ea_mode_str_32(g_cpu_ir); + sprintf(g_dasm_str, "move.l %s, %s", str, get_ea_mode_str_32(((g_cpu_ir>>9) & 7) | ((g_cpu_ir>>3) & 0x38))); +} + +static void d68000_movea_16(void) +{ + sprintf(g_dasm_str, "movea.w %s, A%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_movea_32(void) +{ + sprintf(g_dasm_str, "movea.l %s, A%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_move_to_ccr(void) +{ + sprintf(g_dasm_str, "move %s, CCR", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68010_move_fr_ccr(void) +{ + LIMIT_CPU_TYPES(M68010_PLUS); + sprintf(g_dasm_str, "move CCR, %s; (1+)", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_move_fr_sr(void) +{ + sprintf(g_dasm_str, "move SR, %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_move_to_sr(void) +{ + sprintf(g_dasm_str, "move %s, SR", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_move_fr_usp(void) +{ + sprintf(g_dasm_str, "move USP, A%d", g_cpu_ir&7); +} + +static void d68000_move_to_usp(void) +{ + sprintf(g_dasm_str, "move A%d, USP", g_cpu_ir&7); +} + +static void d68010_movec(void) +{ + uint extension; + char* reg_name; + char* processor; + LIMIT_CPU_TYPES(M68010_PLUS); + extension = read_imm_16(); + + switch(extension & 0xfff) + { + case 0x000: + reg_name = "SFC"; + processor = "1+"; + break; + case 0x001: + reg_name = "DFC"; + processor = "1+"; + break; + case 0x800: + reg_name = "USP"; + processor = "1+"; + break; + case 0x801: + reg_name = "VBR"; + processor = "1+"; + break; + case 0x002: + reg_name = "CACR"; + processor = "2+"; + break; + case 0x802: + reg_name = "CAAR"; + processor = "2,3"; + break; + case 0x803: + reg_name = "MSP"; + processor = "2+"; + break; + case 0x804: + reg_name = "ISP"; + processor = "2+"; + break; + case 0x003: + reg_name = "TC"; + processor = "4+"; + break; + case 0x004: + reg_name = "ITT0"; + processor = "4+"; + break; + case 0x005: + reg_name = "ITT1"; + processor = "4+"; + break; + case 0x006: + reg_name = "DTT0"; + processor = "4+"; + break; + case 0x007: + reg_name = "DTT1"; + processor = "4+"; + break; + case 0x805: + reg_name = "MMUSR"; + processor = "4+"; + break; + case 0x806: + reg_name = "URP"; + processor = "4+"; + break; + case 0x807: + reg_name = "SRP"; + processor = "4+"; + break; + default: + reg_name = make_signed_hex_str_16(extension & 0xfff); + processor = "?"; + } + + if(BIT_1(g_cpu_ir)) + sprintf(g_dasm_str, "movec %c%d, %s; (%s)", BIT_F(extension) ? 'A' : 'D', (extension>>12)&7, reg_name, processor); + else + sprintf(g_dasm_str, "movec %s, %c%d; (%s)", reg_name, BIT_F(extension) ? 'A' : 'D', (extension>>12)&7, processor); +} + +static void d68000_movem_pd_16(void) +{ + uint data = read_imm_16(); + char buffer[40]; + uint first; + uint run_length; + uint i; + + buffer[0] = 0; + for(i=0;i<8;i++) + { + if(data&(1<<(15-i))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(15-i))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "D%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-D%d", first + run_length); + } + } + for(i=0;i<8;i++) + { + if(data&(1<<(7-i))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(7-i))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "A%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-A%d", first + run_length); + } + } + sprintf(g_dasm_str, "movem.w %s, %s", buffer, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_movem_pd_32(void) +{ + uint data = read_imm_16(); + char buffer[40]; + uint first; + uint run_length; + uint i; + + buffer[0] = 0; + for(i=0;i<8;i++) + { + if(data&(1<<(15-i))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(15-i))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "D%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-D%d", first + run_length); + } + } + for(i=0;i<8;i++) + { + if(data&(1<<(7-i))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(7-i))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "A%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-A%d", first + run_length); + } + } + sprintf(g_dasm_str, "movem.l %s, %s", buffer, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_movem_er_16(void) +{ + uint data = read_imm_16(); + char buffer[40]; + uint first; + uint run_length; + uint i; + + buffer[0] = 0; + for(i=0;i<8;i++) + { + if(data&(1< 0) + sprintf(buffer+strlen(buffer), "-D%d", first + run_length); + } + } + for(i=0;i<8;i++) + { + if(data&(1<<(i+8))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(i+8))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "A%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-A%d", first + run_length); + } + } + sprintf(g_dasm_str, "movem.w %s, %s", get_ea_mode_str_16(g_cpu_ir), buffer); +} + +static void d68000_movem_er_32(void) +{ + uint data = read_imm_16(); + char buffer[40]; + uint first; + uint run_length; + uint i; + + buffer[0] = 0; + for(i=0;i<8;i++) + { + if(data&(1< 0) + sprintf(buffer+strlen(buffer), "-D%d", first + run_length); + } + } + for(i=0;i<8;i++) + { + if(data&(1<<(i+8))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(i+8))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "A%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-A%d", first + run_length); + } + } + sprintf(g_dasm_str, "movem.l %s, %s", get_ea_mode_str_32(g_cpu_ir), buffer); +} + +static void d68000_movem_re_16(void) +{ + uint data = read_imm_16(); + char buffer[40]; + uint first; + uint run_length; + uint i; + + buffer[0] = 0; + for(i=0;i<8;i++) + { + if(data&(1< 0) + sprintf(buffer+strlen(buffer), "-D%d", first + run_length); + } + } + for(i=0;i<8;i++) + { + if(data&(1<<(i+8))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(i+8))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "A%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-A%d", first + run_length); + } + } + sprintf(g_dasm_str, "movem.w %s, %s", buffer, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_movem_re_32(void) +{ + uint data = read_imm_16(); + char buffer[40]; + uint first; + uint run_length; + uint i; + + buffer[0] = 0; + for(i=0;i<8;i++) + { + if(data&(1< 0) + sprintf(buffer+strlen(buffer), "-D%d", first + run_length); + } + } + for(i=0;i<8;i++) + { + if(data&(1<<(i+8))) + { + first = i; + run_length = 0; + for(i++;i<8;i++) + if(data&(1<<(i+8))) + run_length++; + if(buffer[0] != 0) + strcat(buffer, "/"); + sprintf(buffer+strlen(buffer), "A%d", first); + if(run_length > 0) + sprintf(buffer+strlen(buffer), "-A%d", first + run_length); + } + } + sprintf(g_dasm_str, "movem.l %s, %s", buffer, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_movep_re_16(void) +{ + sprintf(g_dasm_str, "movep.w D%d, ($%x,A%d)", (g_cpu_ir>>9)&7, read_imm_16(), g_cpu_ir&7); +} + +static void d68000_movep_re_32(void) +{ + sprintf(g_dasm_str, "movep.l D%d, ($%x,A%d)", (g_cpu_ir>>9)&7, read_imm_16(), g_cpu_ir&7); +} + +static void d68000_movep_er_16(void) +{ + sprintf(g_dasm_str, "movep.w ($%x,A%d), D%d", read_imm_16(), g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_movep_er_32(void) +{ + sprintf(g_dasm_str, "movep.l ($%x,A%d), D%d", read_imm_16(), g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68010_moves_8(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68010_PLUS); + extension = read_imm_16(); + if(BIT_B(extension)) + sprintf(g_dasm_str, "moves.b %c%d, %s; (1+)", BIT_F(extension) ? 'A' : 'D', (extension>>12)&7, get_ea_mode_str_8(g_cpu_ir)); + else + sprintf(g_dasm_str, "moves.b %s, %c%d; (1+)", get_ea_mode_str_8(g_cpu_ir), BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68010_moves_16(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68010_PLUS); + extension = read_imm_16(); + if(BIT_B(extension)) + sprintf(g_dasm_str, "moves.w %c%d, %s; (1+)", BIT_F(extension) ? 'A' : 'D', (extension>>12)&7, get_ea_mode_str_16(g_cpu_ir)); + else + sprintf(g_dasm_str, "moves.w %s, %c%d; (1+)", get_ea_mode_str_16(g_cpu_ir), BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68010_moves_32(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68010_PLUS); + extension = read_imm_16(); + if(BIT_B(extension)) + sprintf(g_dasm_str, "moves.l %c%d, %s; (1+)", BIT_F(extension) ? 'A' : 'D', (extension>>12)&7, get_ea_mode_str_32(g_cpu_ir)); + else + sprintf(g_dasm_str, "moves.l %s, %c%d; (1+)", get_ea_mode_str_32(g_cpu_ir), BIT_F(extension) ? 'A' : 'D', (extension>>12)&7); +} + +static void d68000_moveq(void) +{ + sprintf(g_dasm_str, "moveq #%s, D%d", make_signed_hex_str_8(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68040_move16_pi_pi(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + sprintf(g_dasm_str, "move16 (A%d)+, (A%d)+; (4)", g_cpu_ir&7, (read_imm_16()>>12)&7); +} + +static void d68040_move16_pi_al(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + sprintf(g_dasm_str, "move16 (A%d)+, %s; (4)", g_cpu_ir&7, get_imm_str_u32()); +} + +static void d68040_move16_al_pi(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + sprintf(g_dasm_str, "move16 %s, (A%d)+; (4)", get_imm_str_u32(), g_cpu_ir&7); +} + +static void d68040_move16_ai_al(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + sprintf(g_dasm_str, "move16 (A%d), %s; (4)", g_cpu_ir&7, get_imm_str_u32()); +} + +static void d68040_move16_al_ai(void) +{ + LIMIT_CPU_TYPES(M68040_PLUS); + sprintf(g_dasm_str, "move16 %s, (A%d); (4)", get_imm_str_u32(), g_cpu_ir&7); +} + +static void d68000_muls(void) +{ + sprintf(g_dasm_str, "muls.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_mulu(void) +{ + sprintf(g_dasm_str, "mulu.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68020_mull(void) +{ + uint extension; + LIMIT_CPU_TYPES(M68020_PLUS); + extension = read_imm_16(); + + if(BIT_A(extension)) + sprintf(g_dasm_str, "mul%c.l %s, D%d-D%d; (2+)", BIT_B(extension) ? 's' : 'u', get_ea_mode_str_32(g_cpu_ir), extension&7, (extension>>12)&7); + else + sprintf(g_dasm_str, "mul%c.l %s, D%d; (2+)", BIT_B(extension) ? 's' : 'u', get_ea_mode_str_32(g_cpu_ir), (extension>>12)&7); +} + +static void d68000_nbcd(void) +{ + sprintf(g_dasm_str, "nbcd %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_neg_8(void) +{ + sprintf(g_dasm_str, "neg.b %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_neg_16(void) +{ + sprintf(g_dasm_str, "neg.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_neg_32(void) +{ + sprintf(g_dasm_str, "neg.l %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_negx_8(void) +{ + sprintf(g_dasm_str, "negx.b %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_negx_16(void) +{ + sprintf(g_dasm_str, "negx.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_negx_32(void) +{ + sprintf(g_dasm_str, "negx.l %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_nop(void) +{ + sprintf(g_dasm_str, "nop"); +} + +static void d68000_not_8(void) +{ + sprintf(g_dasm_str, "not.b %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_not_16(void) +{ + sprintf(g_dasm_str, "not.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_not_32(void) +{ + sprintf(g_dasm_str, "not.l %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_or_er_8(void) +{ + sprintf(g_dasm_str, "or.b %s, D%d", get_ea_mode_str_8(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_or_er_16(void) +{ + sprintf(g_dasm_str, "or.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_or_er_32(void) +{ + sprintf(g_dasm_str, "or.l %s, D%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_or_re_8(void) +{ + sprintf(g_dasm_str, "or.b D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_or_re_16(void) +{ + sprintf(g_dasm_str, "or.w D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_or_re_32(void) +{ + sprintf(g_dasm_str, "or.l D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_ori_8(void) +{ + char* str = get_imm_str_u8(); + sprintf(g_dasm_str, "ori.b %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_ori_16(void) +{ + char* str = get_imm_str_u16(); + sprintf(g_dasm_str, "ori.w %s, %s", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_ori_32(void) +{ + char* str = get_imm_str_u32(); + sprintf(g_dasm_str, "ori.l %s, %s", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_ori_to_ccr(void) +{ + sprintf(g_dasm_str, "ori %s, CCR", get_imm_str_u8()); +} + +static void d68000_ori_to_sr(void) +{ + sprintf(g_dasm_str, "ori %s, SR", get_imm_str_u16()); +} + +static void d68020_pack_rr(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "pack D%d, D%d, %s; (2+)", g_cpu_ir&7, (g_cpu_ir>>9)&7, get_imm_str_u16()); +} + +static void d68020_pack_mm(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "pack -(A%d), -(A%d), %s; (2+)", g_cpu_ir&7, (g_cpu_ir>>9)&7, get_imm_str_u16()); +} + +static void d68000_pea(void) +{ + sprintf(g_dasm_str, "pea %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_reset(void) +{ + sprintf(g_dasm_str, "reset"); +} + +static void d68000_ror_s_8(void) +{ + sprintf(g_dasm_str, "ror.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_ror_s_16(void) +{ + sprintf(g_dasm_str, "ror.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7],g_cpu_ir&7); +} + +static void d68000_ror_s_32(void) +{ + sprintf(g_dasm_str, "ror.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_ror_r_8(void) +{ + sprintf(g_dasm_str, "ror.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_ror_r_16(void) +{ + sprintf(g_dasm_str, "ror.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_ror_r_32(void) +{ + sprintf(g_dasm_str, "ror.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_ror_ea(void) +{ + sprintf(g_dasm_str, "ror.w %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_rol_s_8(void) +{ + sprintf(g_dasm_str, "rol.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_rol_s_16(void) +{ + sprintf(g_dasm_str, "rol.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_rol_s_32(void) +{ + sprintf(g_dasm_str, "rol.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_rol_r_8(void) +{ + sprintf(g_dasm_str, "rol.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_rol_r_16(void) +{ + sprintf(g_dasm_str, "rol.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_rol_r_32(void) +{ + sprintf(g_dasm_str, "rol.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_rol_ea(void) +{ + sprintf(g_dasm_str, "rol.w %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_roxr_s_8(void) +{ + sprintf(g_dasm_str, "roxr.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_roxr_s_16(void) +{ + sprintf(g_dasm_str, "roxr.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + + +static void d68000_roxr_s_32(void) +{ + sprintf(g_dasm_str, "roxr.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_roxr_r_8(void) +{ + sprintf(g_dasm_str, "roxr.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_roxr_r_16(void) +{ + sprintf(g_dasm_str, "roxr.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_roxr_r_32(void) +{ + sprintf(g_dasm_str, "roxr.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_roxr_ea(void) +{ + sprintf(g_dasm_str, "roxr.w %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_roxl_s_8(void) +{ + sprintf(g_dasm_str, "roxl.b #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_roxl_s_16(void) +{ + sprintf(g_dasm_str, "roxl.w #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_roxl_s_32(void) +{ + sprintf(g_dasm_str, "roxl.l #%d, D%d", g_3bit_qdata_table[(g_cpu_ir>>9)&7], g_cpu_ir&7); +} + +static void d68000_roxl_r_8(void) +{ + sprintf(g_dasm_str, "roxl.b D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_roxl_r_16(void) +{ + sprintf(g_dasm_str, "roxl.w D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_roxl_r_32(void) +{ + sprintf(g_dasm_str, "roxl.l D%d, D%d", (g_cpu_ir>>9)&7, g_cpu_ir&7); +} + +static void d68000_roxl_ea(void) +{ + sprintf(g_dasm_str, "roxl.w %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68010_rtd(void) +{ + LIMIT_CPU_TYPES(M68010_PLUS); + sprintf(g_dasm_str, "rtd %s; (1+)", get_imm_str_s16()); +} + +static void d68000_rte(void) +{ + sprintf(g_dasm_str, "rte"); +} + +static void d68020_rtm(void) +{ + LIMIT_CPU_TYPES(M68020_ONLY); + sprintf(g_dasm_str, "rtm %c%d; (2+)", BIT_3(g_cpu_ir) ? 'A' : 'D', g_cpu_ir&7); +} + +static void d68000_rtr(void) +{ + sprintf(g_dasm_str, "rtr"); +} + +static void d68000_rts(void) +{ + sprintf(g_dasm_str, "rts"); +} + +static void d68000_sbcd_rr(void) +{ + sprintf(g_dasm_str, "sbcd D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_sbcd_mm(void) +{ + sprintf(g_dasm_str, "sbcd -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_scc(void) +{ + sprintf(g_dasm_str, "s%-2s %s", g_cc[(g_cpu_ir>>8)&0xf], get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_stop(void) +{ + sprintf(g_dasm_str, "stop %s", get_imm_str_s16()); +} + +static void d68000_sub_er_8(void) +{ + sprintf(g_dasm_str, "sub.b %s, D%d", get_ea_mode_str_8(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_sub_er_16(void) +{ + sprintf(g_dasm_str, "sub.w %s, D%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_sub_er_32(void) +{ + sprintf(g_dasm_str, "sub.l %s, D%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_sub_re_8(void) +{ + sprintf(g_dasm_str, "sub.b D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_sub_re_16(void) +{ + sprintf(g_dasm_str, "sub.w D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_sub_re_32(void) +{ + sprintf(g_dasm_str, "sub.l D%d, %s", (g_cpu_ir>>9)&7, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_suba_16(void) +{ + sprintf(g_dasm_str, "suba.w %s, A%d", get_ea_mode_str_16(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_suba_32(void) +{ + sprintf(g_dasm_str, "suba.l %s, A%d", get_ea_mode_str_32(g_cpu_ir), (g_cpu_ir>>9)&7); +} + +static void d68000_subi_8(void) +{ + char* str = get_imm_str_s8(); + sprintf(g_dasm_str, "subi.b %s, %s", str, get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_subi_16(void) +{ + char* str = get_imm_str_s16(); + sprintf(g_dasm_str, "subi.w %s, %s", str, get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_subi_32(void) +{ + char* str = get_imm_str_s32(); + sprintf(g_dasm_str, "subi.l %s, %s", str, get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_subq_8(void) +{ + sprintf(g_dasm_str, "subq.b #%d, %s", g_3bit_qdata_table[(g_cpu_ir>>9)&7], get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_subq_16(void) +{ + sprintf(g_dasm_str, "subq.w #%d, %s", g_3bit_qdata_table[(g_cpu_ir>>9)&7], get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_subq_32(void) +{ + sprintf(g_dasm_str, "subq.l #%d, %s", g_3bit_qdata_table[(g_cpu_ir>>9)&7], get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_subx_rr_8(void) +{ + sprintf(g_dasm_str, "subx.b D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_subx_rr_16(void) +{ + sprintf(g_dasm_str, "subx.w D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_subx_rr_32(void) +{ + sprintf(g_dasm_str, "subx.l D%d, D%d", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_subx_mm_8(void) +{ + sprintf(g_dasm_str, "subx.b -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_subx_mm_16(void) +{ + sprintf(g_dasm_str, "subx.w -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_subx_mm_32(void) +{ + sprintf(g_dasm_str, "subx.l -(A%d), -(A%d)", g_cpu_ir&7, (g_cpu_ir>>9)&7); +} + +static void d68000_swap(void) +{ + sprintf(g_dasm_str, "swap D%d", g_cpu_ir&7); +} + +static void d68000_tas(void) +{ + sprintf(g_dasm_str, "tas %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_trap(void) +{ + sprintf(g_dasm_str, "trap #$%x", g_cpu_ir&0xf); +} + +static void d68020_trapcc_0(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "trap%-2s; (2+)", g_cc[(g_cpu_ir>>8)&0xf]); +} + +static void d68020_trapcc_16(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "trap%-2s %s; (2+)", g_cc[(g_cpu_ir>>8)&0xf], get_imm_str_u16()); +} + +static void d68020_trapcc_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "trap%-2s %s; (2+)", g_cc[(g_cpu_ir>>8)&0xf], get_imm_str_u32()); +} + +static void d68000_trapv(void) +{ + sprintf(g_dasm_str, "trapv"); +} + +static void d68000_tst_8(void) +{ + sprintf(g_dasm_str, "tst.b %s", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_tst_pcdi_8(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.b %s; (2+)", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_tst_pcix_8(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.b %s; (2+)", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68020_tst_i_8(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.b %s; (2+)", get_ea_mode_str_8(g_cpu_ir)); +} + +static void d68000_tst_16(void) +{ + sprintf(g_dasm_str, "tst.w %s", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_tst_a_16(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.w %s; (2+)", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_tst_pcdi_16(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.w %s; (2+)", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_tst_pcix_16(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.w %s; (2+)", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68020_tst_i_16(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.w %s; (2+)", get_ea_mode_str_16(g_cpu_ir)); +} + +static void d68000_tst_32(void) +{ + sprintf(g_dasm_str, "tst.l %s", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_tst_a_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.l %s; (2+)", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_tst_pcdi_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.l %s; (2+)", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_tst_pcix_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.l %s; (2+)", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68020_tst_i_32(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "tst.l %s; (2+)", get_ea_mode_str_32(g_cpu_ir)); +} + +static void d68000_unlk(void) +{ + sprintf(g_dasm_str, "unlk A%d", g_cpu_ir&7); +} + +static void d68020_unpk_rr(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "unpk D%d, D%d, %s; (2+)", g_cpu_ir&7, (g_cpu_ir>>9)&7, get_imm_str_u16()); +} + +static void d68020_unpk_mm(void) +{ + LIMIT_CPU_TYPES(M68020_PLUS); + sprintf(g_dasm_str, "unpk -(A%d), -(A%d), %s; (2+)", g_cpu_ir&7, (g_cpu_ir>>9)&7, get_imm_str_u16()); +} + + + +/* ======================================================================== */ +/* ======================= INSTRUCTION TABLE BUILDER ====================== */ +/* ======================================================================== */ + +/* EA Masks: +800 = data register direct +400 = address register direct +200 = address register indirect +100 = ARI postincrement + 80 = ARI pre-decrement + 40 = ARI displacement + 20 = ARI index + 10 = absolute short + 8 = absolute long + 4 = immediate / sr + 2 = pc displacement + 1 = pc idx +*/ + +static opcode_struct g_opcode_info[] = +{ +/* opcode handler mask match ea mask */ + {d68000_1010 , 0xf000, 0xa000, 0x000}, + {d68000_1111 , 0xf000, 0xf000, 0x000}, + {d68000_abcd_rr , 0xf1f8, 0xc100, 0x000}, + {d68000_abcd_mm , 0xf1f8, 0xc108, 0x000}, + {d68000_add_er_8 , 0xf1c0, 0xd000, 0xbff}, + {d68000_add_er_16 , 0xf1c0, 0xd040, 0xfff}, + {d68000_add_er_32 , 0xf1c0, 0xd080, 0xfff}, + {d68000_add_re_8 , 0xf1c0, 0xd100, 0x3f8}, + {d68000_add_re_16 , 0xf1c0, 0xd140, 0x3f8}, + {d68000_add_re_32 , 0xf1c0, 0xd180, 0x3f8}, + {d68000_adda_16 , 0xf1c0, 0xd0c0, 0xfff}, + {d68000_adda_32 , 0xf1c0, 0xd1c0, 0xfff}, + {d68000_addi_8 , 0xffc0, 0x0600, 0xbf8}, + {d68000_addi_16 , 0xffc0, 0x0640, 0xbf8}, + {d68000_addi_32 , 0xffc0, 0x0680, 0xbf8}, + {d68000_addq_8 , 0xf1c0, 0x5000, 0xbf8}, + {d68000_addq_16 , 0xf1c0, 0x5040, 0xff8}, + {d68000_addq_32 , 0xf1c0, 0x5080, 0xff8}, + {d68000_addx_rr_8 , 0xf1f8, 0xd100, 0x000}, + {d68000_addx_rr_16 , 0xf1f8, 0xd140, 0x000}, + {d68000_addx_rr_32 , 0xf1f8, 0xd180, 0x000}, + {d68000_addx_mm_8 , 0xf1f8, 0xd108, 0x000}, + {d68000_addx_mm_16 , 0xf1f8, 0xd148, 0x000}, + {d68000_addx_mm_32 , 0xf1f8, 0xd188, 0x000}, + {d68000_and_er_8 , 0xf1c0, 0xc000, 0xbff}, + {d68000_and_er_16 , 0xf1c0, 0xc040, 0xbff}, + {d68000_and_er_32 , 0xf1c0, 0xc080, 0xbff}, + {d68000_and_re_8 , 0xf1c0, 0xc100, 0x3f8}, + {d68000_and_re_16 , 0xf1c0, 0xc140, 0x3f8}, + {d68000_and_re_32 , 0xf1c0, 0xc180, 0x3f8}, + {d68000_andi_to_ccr , 0xffff, 0x023c, 0x000}, + {d68000_andi_to_sr , 0xffff, 0x027c, 0x000}, + {d68000_andi_8 , 0xffc0, 0x0200, 0xbf8}, + {d68000_andi_16 , 0xffc0, 0x0240, 0xbf8}, + {d68000_andi_32 , 0xffc0, 0x0280, 0xbf8}, + {d68000_asr_s_8 , 0xf1f8, 0xe000, 0x000}, + {d68000_asr_s_16 , 0xf1f8, 0xe040, 0x000}, + {d68000_asr_s_32 , 0xf1f8, 0xe080, 0x000}, + {d68000_asr_r_8 , 0xf1f8, 0xe020, 0x000}, + {d68000_asr_r_16 , 0xf1f8, 0xe060, 0x000}, + {d68000_asr_r_32 , 0xf1f8, 0xe0a0, 0x000}, + {d68000_asr_ea , 0xffc0, 0xe0c0, 0x3f8}, + {d68000_asl_s_8 , 0xf1f8, 0xe100, 0x000}, + {d68000_asl_s_16 , 0xf1f8, 0xe140, 0x000}, + {d68000_asl_s_32 , 0xf1f8, 0xe180, 0x000}, + {d68000_asl_r_8 , 0xf1f8, 0xe120, 0x000}, + {d68000_asl_r_16 , 0xf1f8, 0xe160, 0x000}, + {d68000_asl_r_32 , 0xf1f8, 0xe1a0, 0x000}, + {d68000_asl_ea , 0xffc0, 0xe1c0, 0x3f8}, + {d68000_bcc_8 , 0xf000, 0x6000, 0x000}, + {d68000_bcc_16 , 0xf0ff, 0x6000, 0x000}, + {d68020_bcc_32 , 0xf0ff, 0x60ff, 0x000}, + {d68000_bchg_r , 0xf1c0, 0x0140, 0xbf8}, + {d68000_bchg_s , 0xffc0, 0x0840, 0xbf8}, + {d68000_bclr_r , 0xf1c0, 0x0180, 0xbf8}, + {d68000_bclr_s , 0xffc0, 0x0880, 0xbf8}, + {d68020_bfchg , 0xffc0, 0xeac0, 0xa78}, + {d68020_bfclr , 0xffc0, 0xecc0, 0xa78}, + {d68020_bfexts , 0xffc0, 0xebc0, 0xa7b}, + {d68020_bfextu , 0xffc0, 0xe9c0, 0xa7b}, + {d68020_bfffo , 0xffc0, 0xedc0, 0xa7b}, + {d68020_bfins , 0xffc0, 0xefc0, 0xa78}, + {d68020_bfset , 0xffc0, 0xeec0, 0xa78}, + {d68020_bftst , 0xffc0, 0xe8c0, 0xa7b}, + {d68010_bkpt , 0xfff8, 0x4848, 0x000}, + {d68000_bra_8 , 0xff00, 0x6000, 0x000}, + {d68000_bra_16 , 0xffff, 0x6000, 0x000}, + {d68020_bra_32 , 0xffff, 0x60ff, 0x000}, + {d68000_bset_r , 0xf1c0, 0x01c0, 0xbf8}, + {d68000_bset_s , 0xffc0, 0x08c0, 0xbf8}, + {d68000_bsr_8 , 0xff00, 0x6100, 0x000}, + {d68000_bsr_16 , 0xffff, 0x6100, 0x000}, + {d68020_bsr_32 , 0xffff, 0x61ff, 0x000}, + {d68000_btst_r , 0xf1c0, 0x0100, 0xbff}, + {d68000_btst_s , 0xffc0, 0x0800, 0xbfb}, + {d68020_callm , 0xffc0, 0x06c0, 0x27b}, + {d68020_cas_8 , 0xffc0, 0x0ac0, 0x3f8}, + {d68020_cas_16 , 0xffc0, 0x0cc0, 0x3f8}, + {d68020_cas_32 , 0xffc0, 0x0ec0, 0x3f8}, + {d68020_cas2_16 , 0xffff, 0x0cfc, 0x000}, + {d68020_cas2_32 , 0xffff, 0x0efc, 0x000}, + {d68000_chk_16 , 0xf1c0, 0x4180, 0xbff}, + {d68020_chk_32 , 0xf1c0, 0x4100, 0xbff}, + {d68020_chk2_cmp2_8 , 0xffc0, 0x00c0, 0x27b}, + {d68020_chk2_cmp2_16 , 0xffc0, 0x02c0, 0x27b}, + {d68020_chk2_cmp2_32 , 0xffc0, 0x04c0, 0x27b}, + {d68040_cinv , 0xff20, 0xf400, 0x000}, + {d68000_clr_8 , 0xffc0, 0x4200, 0xbf8}, + {d68000_clr_16 , 0xffc0, 0x4240, 0xbf8}, + {d68000_clr_32 , 0xffc0, 0x4280, 0xbf8}, + {d68000_cmp_8 , 0xf1c0, 0xb000, 0xbff}, + {d68000_cmp_16 , 0xf1c0, 0xb040, 0xfff}, + {d68000_cmp_32 , 0xf1c0, 0xb080, 0xfff}, + {d68000_cmpa_16 , 0xf1c0, 0xb0c0, 0xfff}, + {d68000_cmpa_32 , 0xf1c0, 0xb1c0, 0xfff}, + {d68000_cmpi_8 , 0xffc0, 0x0c00, 0xbf8}, + {d68020_cmpi_pcdi_8 , 0xffff, 0x0c3a, 0x000}, + {d68020_cmpi_pcix_8 , 0xffff, 0x0c3b, 0x000}, + {d68000_cmpi_16 , 0xffc0, 0x0c40, 0xbf8}, + {d68020_cmpi_pcdi_16 , 0xffff, 0x0c7a, 0x000}, + {d68020_cmpi_pcix_16 , 0xffff, 0x0c7b, 0x000}, + {d68000_cmpi_32 , 0xffc0, 0x0c80, 0xbf8}, + {d68020_cmpi_pcdi_32 , 0xffff, 0x0cba, 0x000}, + {d68020_cmpi_pcix_32 , 0xffff, 0x0cbb, 0x000}, + {d68000_cmpm_8 , 0xf1f8, 0xb108, 0x000}, + {d68000_cmpm_16 , 0xf1f8, 0xb148, 0x000}, + {d68000_cmpm_32 , 0xf1f8, 0xb188, 0x000}, + {d68020_cpbcc_16 , 0xf1c0, 0xf080, 0x000}, + {d68020_cpbcc_32 , 0xf1c0, 0xf0c0, 0x000}, + {d68020_cpdbcc , 0xf1f8, 0xf048, 0x000}, + {d68020_cpgen , 0xf1c0, 0xf000, 0x000}, + {d68020_cprestore , 0xf1c0, 0xf140, 0x37f}, + {d68020_cpsave , 0xf1c0, 0xf100, 0x2f8}, + {d68020_cpscc , 0xf1c0, 0xf040, 0xbf8}, + {d68020_cptrapcc_0 , 0xf1ff, 0xf07c, 0x000}, + {d68020_cptrapcc_16 , 0xf1ff, 0xf07a, 0x000}, + {d68020_cptrapcc_32 , 0xf1ff, 0xf07b, 0x000}, + {d68040_cpush , 0xff20, 0xf420, 0x000}, + {d68000_dbcc , 0xf0f8, 0x50c8, 0x000}, + {d68000_dbra , 0xfff8, 0x51c8, 0x000}, + {d68000_divs , 0xf1c0, 0x81c0, 0xbff}, + {d68000_divu , 0xf1c0, 0x80c0, 0xbff}, + {d68020_divl , 0xffc0, 0x4c40, 0xbff}, + {d68000_eor_8 , 0xf1c0, 0xb100, 0xbf8}, + {d68000_eor_16 , 0xf1c0, 0xb140, 0xbf8}, + {d68000_eor_32 , 0xf1c0, 0xb180, 0xbf8}, + {d68000_eori_to_ccr , 0xffff, 0x0a3c, 0x000}, + {d68000_eori_to_sr , 0xffff, 0x0a7c, 0x000}, + {d68000_eori_8 , 0xffc0, 0x0a00, 0xbf8}, + {d68000_eori_16 , 0xffc0, 0x0a40, 0xbf8}, + {d68000_eori_32 , 0xffc0, 0x0a80, 0xbf8}, + {d68000_exg_dd , 0xf1f8, 0xc140, 0x000}, + {d68000_exg_aa , 0xf1f8, 0xc148, 0x000}, + {d68000_exg_da , 0xf1f8, 0xc188, 0x000}, + {d68020_extb_32 , 0xfff8, 0x49c0, 0x000}, + {d68000_ext_16 , 0xfff8, 0x4880, 0x000}, + {d68000_ext_32 , 0xfff8, 0x48c0, 0x000}, + {d68000_illegal , 0xffff, 0x4afc, 0x000}, + {d68000_jmp , 0xffc0, 0x4ec0, 0x27b}, + {d68000_jsr , 0xffc0, 0x4e80, 0x27b}, + {d68000_lea , 0xf1c0, 0x41c0, 0x27b}, + {d68000_link_16 , 0xfff8, 0x4e50, 0x000}, + {d68020_link_32 , 0xfff8, 0x4808, 0x000}, + {d68000_lsr_s_8 , 0xf1f8, 0xe008, 0x000}, + {d68000_lsr_s_16 , 0xf1f8, 0xe048, 0x000}, + {d68000_lsr_s_32 , 0xf1f8, 0xe088, 0x000}, + {d68000_lsr_r_8 , 0xf1f8, 0xe028, 0x000}, + {d68000_lsr_r_16 , 0xf1f8, 0xe068, 0x000}, + {d68000_lsr_r_32 , 0xf1f8, 0xe0a8, 0x000}, + {d68000_lsr_ea , 0xffc0, 0xe2c0, 0x3f8}, + {d68000_lsl_s_8 , 0xf1f8, 0xe108, 0x000}, + {d68000_lsl_s_16 , 0xf1f8, 0xe148, 0x000}, + {d68000_lsl_s_32 , 0xf1f8, 0xe188, 0x000}, + {d68000_lsl_r_8 , 0xf1f8, 0xe128, 0x000}, + {d68000_lsl_r_16 , 0xf1f8, 0xe168, 0x000}, + {d68000_lsl_r_32 , 0xf1f8, 0xe1a8, 0x000}, + {d68000_lsl_ea , 0xffc0, 0xe3c0, 0x3f8}, + {d68000_move_8 , 0xf000, 0x1000, 0xbff}, + {d68000_move_16 , 0xf000, 0x3000, 0xfff}, + {d68000_move_32 , 0xf000, 0x2000, 0xfff}, + {d68000_movea_16 , 0xf1c0, 0x3040, 0xfff}, + {d68000_movea_32 , 0xf1c0, 0x2040, 0xfff}, + {d68000_move_to_ccr , 0xffc0, 0x44c0, 0xbff}, + {d68010_move_fr_ccr , 0xffc0, 0x42c0, 0xbf8}, + {d68000_move_to_sr , 0xffc0, 0x46c0, 0xbff}, + {d68000_move_fr_sr , 0xffc0, 0x40c0, 0xbf8}, + {d68000_move_to_usp , 0xfff8, 0x4e60, 0x000}, + {d68000_move_fr_usp , 0xfff8, 0x4e68, 0x000}, + {d68010_movec , 0xfffe, 0x4e7a, 0x000}, + {d68000_movem_pd_16 , 0xfff8, 0x48a0, 0x000}, + {d68000_movem_pd_32 , 0xfff8, 0x48e0, 0x000}, + {d68000_movem_re_16 , 0xffc0, 0x4880, 0x2f8}, + {d68000_movem_re_32 , 0xffc0, 0x48c0, 0x2f8}, + {d68000_movem_er_16 , 0xffc0, 0x4c80, 0x37b}, + {d68000_movem_er_32 , 0xffc0, 0x4cc0, 0x37b}, + {d68000_movep_er_16 , 0xf1f8, 0x0108, 0x000}, + {d68000_movep_er_32 , 0xf1f8, 0x0148, 0x000}, + {d68000_movep_re_16 , 0xf1f8, 0x0188, 0x000}, + {d68000_movep_re_32 , 0xf1f8, 0x01c8, 0x000}, + {d68010_moves_8 , 0xffc0, 0x0e00, 0x3f8}, + {d68010_moves_16 , 0xffc0, 0x0e40, 0x3f8}, + {d68010_moves_32 , 0xffc0, 0x0e80, 0x3f8}, + {d68000_moveq , 0xf100, 0x7000, 0x000}, + {d68040_move16_pi_pi , 0xfff8, 0xf620, 0x000}, + {d68040_move16_pi_al , 0xfff8, 0xf600, 0x000}, + {d68040_move16_al_pi , 0xfff8, 0xf608, 0x000}, + {d68040_move16_ai_al , 0xfff8, 0xf610, 0x000}, + {d68040_move16_al_ai , 0xfff8, 0xf618, 0x000}, + {d68000_muls , 0xf1c0, 0xc1c0, 0xbff}, + {d68000_mulu , 0xf1c0, 0xc0c0, 0xbff}, + {d68020_mull , 0xffc0, 0x4c00, 0xbff}, + {d68000_nbcd , 0xffc0, 0x4800, 0xbf8}, + {d68000_neg_8 , 0xffc0, 0x4400, 0xbf8}, + {d68000_neg_16 , 0xffc0, 0x4440, 0xbf8}, + {d68000_neg_32 , 0xffc0, 0x4480, 0xbf8}, + {d68000_negx_8 , 0xffc0, 0x4000, 0xbf8}, + {d68000_negx_16 , 0xffc0, 0x4040, 0xbf8}, + {d68000_negx_32 , 0xffc0, 0x4080, 0xbf8}, + {d68000_nop , 0xffff, 0x4e71, 0x000}, + {d68000_not_8 , 0xffc0, 0x4600, 0xbf8}, + {d68000_not_16 , 0xffc0, 0x4640, 0xbf8}, + {d68000_not_32 , 0xffc0, 0x4680, 0xbf8}, + {d68000_or_er_8 , 0xf1c0, 0x8000, 0xbff}, + {d68000_or_er_16 , 0xf1c0, 0x8040, 0xbff}, + {d68000_or_er_32 , 0xf1c0, 0x8080, 0xbff}, + {d68000_or_re_8 , 0xf1c0, 0x8100, 0x3f8}, + {d68000_or_re_16 , 0xf1c0, 0x8140, 0x3f8}, + {d68000_or_re_32 , 0xf1c0, 0x8180, 0x3f8}, + {d68000_ori_to_ccr , 0xffff, 0x003c, 0x000}, + {d68000_ori_to_sr , 0xffff, 0x007c, 0x000}, + {d68000_ori_8 , 0xffc0, 0x0000, 0xbf8}, + {d68000_ori_16 , 0xffc0, 0x0040, 0xbf8}, + {d68000_ori_32 , 0xffc0, 0x0080, 0xbf8}, + {d68020_pack_rr , 0xf1f8, 0x8140, 0x000}, + {d68020_pack_mm , 0xf1f8, 0x8148, 0x000}, + {d68000_pea , 0xffc0, 0x4840, 0x27b}, + {d68000_reset , 0xffff, 0x4e70, 0x000}, + {d68000_ror_s_8 , 0xf1f8, 0xe018, 0x000}, + {d68000_ror_s_16 , 0xf1f8, 0xe058, 0x000}, + {d68000_ror_s_32 , 0xf1f8, 0xe098, 0x000}, + {d68000_ror_r_8 , 0xf1f8, 0xe038, 0x000}, + {d68000_ror_r_16 , 0xf1f8, 0xe078, 0x000}, + {d68000_ror_r_32 , 0xf1f8, 0xe0b8, 0x000}, + {d68000_ror_ea , 0xffc0, 0xe6c0, 0x3f8}, + {d68000_rol_s_8 , 0xf1f8, 0xe118, 0x000}, + {d68000_rol_s_16 , 0xf1f8, 0xe158, 0x000}, + {d68000_rol_s_32 , 0xf1f8, 0xe198, 0x000}, + {d68000_rol_r_8 , 0xf1f8, 0xe138, 0x000}, + {d68000_rol_r_16 , 0xf1f8, 0xe178, 0x000}, + {d68000_rol_r_32 , 0xf1f8, 0xe1b8, 0x000}, + {d68000_rol_ea , 0xffc0, 0xe7c0, 0x3f8}, + {d68000_roxr_s_8 , 0xf1f8, 0xe010, 0x000}, + {d68000_roxr_s_16 , 0xf1f8, 0xe050, 0x000}, + {d68000_roxr_s_32 , 0xf1f8, 0xe090, 0x000}, + {d68000_roxr_r_8 , 0xf1f8, 0xe030, 0x000}, + {d68000_roxr_r_16 , 0xf1f8, 0xe070, 0x000}, + {d68000_roxr_r_32 , 0xf1f8, 0xe0b0, 0x000}, + {d68000_roxr_ea , 0xffc0, 0xe4c0, 0x3f8}, + {d68000_roxl_s_8 , 0xf1f8, 0xe110, 0x000}, + {d68000_roxl_s_16 , 0xf1f8, 0xe150, 0x000}, + {d68000_roxl_s_32 , 0xf1f8, 0xe190, 0x000}, + {d68000_roxl_r_8 , 0xf1f8, 0xe130, 0x000}, + {d68000_roxl_r_16 , 0xf1f8, 0xe170, 0x000}, + {d68000_roxl_r_32 , 0xf1f8, 0xe1b0, 0x000}, + {d68000_roxl_ea , 0xffc0, 0xe5c0, 0x3f8}, + {d68010_rtd , 0xffff, 0x4e74, 0x000}, + {d68000_rte , 0xffff, 0x4e73, 0x000}, + {d68020_rtm , 0xfff0, 0x06c0, 0x000}, + {d68000_rtr , 0xffff, 0x4e77, 0x000}, + {d68000_rts , 0xffff, 0x4e75, 0x000}, + {d68000_sbcd_rr , 0xf1f8, 0x8100, 0x000}, + {d68000_sbcd_mm , 0xf1f8, 0x8108, 0x000}, + {d68000_scc , 0xf0c0, 0x50c0, 0xbf8}, + {d68000_stop , 0xffff, 0x4e72, 0x000}, + {d68000_sub_er_8 , 0xf1c0, 0x9000, 0xbff}, + {d68000_sub_er_16 , 0xf1c0, 0x9040, 0xfff}, + {d68000_sub_er_32 , 0xf1c0, 0x9080, 0xfff}, + {d68000_sub_re_8 , 0xf1c0, 0x9100, 0x3f8}, + {d68000_sub_re_16 , 0xf1c0, 0x9140, 0x3f8}, + {d68000_sub_re_32 , 0xf1c0, 0x9180, 0x3f8}, + {d68000_suba_16 , 0xf1c0, 0x90c0, 0xfff}, + {d68000_suba_32 , 0xf1c0, 0x91c0, 0xfff}, + {d68000_subi_8 , 0xffc0, 0x0400, 0xbf8}, + {d68000_subi_16 , 0xffc0, 0x0440, 0xbf8}, + {d68000_subi_32 , 0xffc0, 0x0480, 0xbf8}, + {d68000_subq_8 , 0xf1c0, 0x5100, 0xbf8}, + {d68000_subq_16 , 0xf1c0, 0x5140, 0xff8}, + {d68000_subq_32 , 0xf1c0, 0x5180, 0xff8}, + {d68000_subx_rr_8 , 0xf1f8, 0x9100, 0x000}, + {d68000_subx_rr_16 , 0xf1f8, 0x9140, 0x000}, + {d68000_subx_rr_32 , 0xf1f8, 0x9180, 0x000}, + {d68000_subx_mm_8 , 0xf1f8, 0x9108, 0x000}, + {d68000_subx_mm_16 , 0xf1f8, 0x9148, 0x000}, + {d68000_subx_mm_32 , 0xf1f8, 0x9188, 0x000}, + {d68000_swap , 0xfff8, 0x4840, 0x000}, + {d68000_tas , 0xffc0, 0x4ac0, 0xbf8}, + {d68000_trap , 0xfff0, 0x4e40, 0x000}, + {d68020_trapcc_0 , 0xf0ff, 0x50fc, 0x000}, + {d68020_trapcc_16 , 0xf0ff, 0x50fa, 0x000}, + {d68020_trapcc_32 , 0xf0ff, 0x50fb, 0x000}, + {d68000_trapv , 0xffff, 0x4e76, 0x000}, + {d68000_tst_8 , 0xffc0, 0x4a00, 0xbf8}, + {d68020_tst_pcdi_8 , 0xffff, 0x4a3a, 0x000}, + {d68020_tst_pcix_8 , 0xffff, 0x4a3b, 0x000}, + {d68020_tst_i_8 , 0xffff, 0x4a3c, 0x000}, + {d68000_tst_16 , 0xffc0, 0x4a40, 0xbf8}, + {d68020_tst_a_16 , 0xfff8, 0x4a48, 0x000}, + {d68020_tst_pcdi_16 , 0xffff, 0x4a7a, 0x000}, + {d68020_tst_pcix_16 , 0xffff, 0x4a7b, 0x000}, + {d68020_tst_i_16 , 0xffff, 0x4a7c, 0x000}, + {d68000_tst_32 , 0xffc0, 0x4a80, 0xbf8}, + {d68020_tst_a_32 , 0xfff8, 0x4a88, 0x000}, + {d68020_tst_pcdi_32 , 0xffff, 0x4aba, 0x000}, + {d68020_tst_pcix_32 , 0xffff, 0x4abb, 0x000}, + {d68020_tst_i_32 , 0xffff, 0x4abc, 0x000}, + {d68000_unlk , 0xfff8, 0x4e58, 0x000}, + {d68020_unpk_rr , 0xf1f8, 0x8180, 0x000}, + {d68020_unpk_mm , 0xf1f8, 0x8188, 0x000}, + {0, 0, 0, 0} +}; + +/* Check if opcode is using a valid ea mode */ +static int valid_ea(uint opcode, uint mask) +{ + if(mask == 0) + return 1; + + switch(opcode & 0x3f) + { + case 0x00: case 0x01: case 0x02: case 0x03: + case 0x04: case 0x05: case 0x06: case 0x07: + return (mask & 0x800) != 0; + case 0x08: case 0x09: case 0x0a: case 0x0b: + case 0x0c: case 0x0d: case 0x0e: case 0x0f: + return (mask & 0x400) != 0; + case 0x10: case 0x11: case 0x12: case 0x13: + case 0x14: case 0x15: case 0x16: case 0x17: + return (mask & 0x200) != 0; + case 0x18: case 0x19: case 0x1a: case 0x1b: + case 0x1c: case 0x1d: case 0x1e: case 0x1f: + return (mask & 0x100) != 0; + case 0x20: case 0x21: case 0x22: case 0x23: + case 0x24: case 0x25: case 0x26: case 0x27: + return (mask & 0x080) != 0; + case 0x28: case 0x29: case 0x2a: case 0x2b: + case 0x2c: case 0x2d: case 0x2e: case 0x2f: + return (mask & 0x040) != 0; + case 0x30: case 0x31: case 0x32: case 0x33: + case 0x34: case 0x35: case 0x36: case 0x37: + return (mask & 0x020) != 0; + case 0x38: + return (mask & 0x010) != 0; + case 0x39: + return (mask & 0x008) != 0; + case 0x3a: + return (mask & 0x002) != 0; + case 0x3b: + return (mask & 0x001) != 0; + case 0x3c: + return (mask & 0x004) != 0; + } + return 0; + +} + +/* Used by qsort */ +static int DECL_SPEC compare_nof_true_bits(const void *aptr, const void *bptr) +{ + uint a = ((const opcode_struct*)aptr)->mask; + uint b = ((const opcode_struct*)bptr)->mask; + + a = ((a & 0xAAAA) >> 1) + (a & 0x5555); + a = ((a & 0xCCCC) >> 2) + (a & 0x3333); + a = ((a & 0xF0F0) >> 4) + (a & 0x0F0F); + a = ((a & 0xFF00) >> 8) + (a & 0x00FF); + + b = ((b & 0xAAAA) >> 1) + (b & 0x5555); + b = ((b & 0xCCCC) >> 2) + (b & 0x3333); + b = ((b & 0xF0F0) >> 4) + (b & 0x0F0F); + b = ((b & 0xFF00) >> 8) + (b & 0x00FF); + + return b - a; /* reversed to get greatest to least sorting */ +} + +/* build the opcode handler jump table */ +static void build_opcode_table(void) +{ + uint i; + uint opcode; + opcode_struct* ostruct; + uint opcode_info_length = 0; + + for(ostruct = g_opcode_info;ostruct->opcode_handler != 0;ostruct++) + opcode_info_length++; + + qsort((void *)g_opcode_info, opcode_info_length, sizeof(g_opcode_info[0]), compare_nof_true_bits); + + for(i=0;i<0x10000;i++) + { + g_instruction_table[i] = d68000_illegal; /* default to illegal */ + opcode = i; + /* search through opcode info for a match */ + for(ostruct = g_opcode_info;ostruct->opcode_handler != 0;ostruct++) + { + /* match opcode mask and allowed ea modes */ + if((opcode & ostruct->mask) == ostruct->match) + { + /* Handle destination ea for move instructions */ + if((ostruct->opcode_handler == d68000_move_8 || + ostruct->opcode_handler == d68000_move_16 || + ostruct->opcode_handler == d68000_move_32) && + !valid_ea(((opcode>>9)&7) | ((opcode>>3)&0x38), 0xbf8)) + continue; + if(valid_ea(opcode, ostruct->ea_mask)) + { + g_instruction_table[i] = ostruct->opcode_handler; + break; + } + } + } + } +} + + + +/* ======================================================================== */ +/* ================================= API ================================== */ +/* ======================================================================== */ + +/* Disasemble one instruction at pc and store in str_buff */ +unsigned int m68k_disassemble(char* str_buff, unsigned int pc, unsigned int cpu_type) +{ + if(!g_initialized) + { + build_opcode_table(); + g_initialized = 1; + } + switch(cpu_type) + { + case M68K_CPU_TYPE_68000: + g_cpu_type = TYPE_68000; + g_address_mask = 0x00ffffff; + break; + case M68K_CPU_TYPE_68010: + g_cpu_type = TYPE_68010; + g_address_mask = 0x00ffffff; + break; + case M68K_CPU_TYPE_68EC020: + g_cpu_type = TYPE_68020; + g_address_mask = 0x00ffffff; + break; + case M68K_CPU_TYPE_68020: + g_cpu_type = TYPE_68020; + g_address_mask = 0xffffffff; + break; + case M68K_CPU_TYPE_68030: + g_cpu_type = TYPE_68030; + g_address_mask = 0xffffffff; + break; + case M68K_CPU_TYPE_68040: + g_cpu_type = TYPE_68040; + g_address_mask = 0xffffffff; + break; + default: + return 0; + } + + g_cpu_pc = pc; + g_helper_str[0] = 0; + g_cpu_ir = read_imm_16(); + g_instruction_table[g_cpu_ir](); + sprintf(str_buff, "%s%s", g_dasm_str, g_helper_str); + return g_cpu_pc - pc; +} + +char* m68ki_disassemble_quick(unsigned int pc, unsigned int cpu_type) +{ + static char buff[100]; + buff[0] = 0; + m68k_disassemble(buff, pc, cpu_type); + return buff; +} + +/* Check if the instruction is a valid one */ +unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cpu_type) +{ + if(!g_initialized) + { + build_opcode_table(); + g_initialized = 1; + } + + instruction &= 0xffff; + if(g_instruction_table[instruction] == d68000_illegal) + return 0; + + switch(cpu_type) + { + case M68K_CPU_TYPE_68000: + if(g_instruction_table[instruction] == d68010_bkpt) + return 0; + if(g_instruction_table[instruction] == d68010_move_fr_ccr) + return 0; + if(g_instruction_table[instruction] == d68010_movec) + return 0; + if(g_instruction_table[instruction] == d68010_moves_8) + return 0; + if(g_instruction_table[instruction] == d68010_moves_16) + return 0; + if(g_instruction_table[instruction] == d68010_moves_32) + return 0; + if(g_instruction_table[instruction] == d68010_rtd) + return 0; + case M68K_CPU_TYPE_68010: + if(g_instruction_table[instruction] == d68020_bcc_32) + return 0; + if(g_instruction_table[instruction] == d68020_bfchg) + return 0; + if(g_instruction_table[instruction] == d68020_bfclr) + return 0; + if(g_instruction_table[instruction] == d68020_bfexts) + return 0; + if(g_instruction_table[instruction] == d68020_bfextu) + return 0; + if(g_instruction_table[instruction] == d68020_bfffo) + return 0; + if(g_instruction_table[instruction] == d68020_bfins) + return 0; + if(g_instruction_table[instruction] == d68020_bfset) + return 0; + if(g_instruction_table[instruction] == d68020_bftst) + return 0; + if(g_instruction_table[instruction] == d68020_bra_32) + return 0; + if(g_instruction_table[instruction] == d68020_bsr_32) + return 0; + if(g_instruction_table[instruction] == d68020_callm) + return 0; + if(g_instruction_table[instruction] == d68020_cas_8) + return 0; + if(g_instruction_table[instruction] == d68020_cas_16) + return 0; + if(g_instruction_table[instruction] == d68020_cas_32) + return 0; + if(g_instruction_table[instruction] == d68020_cas2_16) + return 0; + if(g_instruction_table[instruction] == d68020_cas2_32) + return 0; + if(g_instruction_table[instruction] == d68020_chk_32) + return 0; + if(g_instruction_table[instruction] == d68020_chk2_cmp2_8) + return 0; + if(g_instruction_table[instruction] == d68020_chk2_cmp2_16) + return 0; + if(g_instruction_table[instruction] == d68020_chk2_cmp2_32) + return 0; + if(g_instruction_table[instruction] == d68020_cmpi_pcdi_8) + return 0; + if(g_instruction_table[instruction] == d68020_cmpi_pcix_8) + return 0; + if(g_instruction_table[instruction] == d68020_cmpi_pcdi_16) + return 0; + if(g_instruction_table[instruction] == d68020_cmpi_pcix_16) + return 0; + if(g_instruction_table[instruction] == d68020_cmpi_pcdi_32) + return 0; + if(g_instruction_table[instruction] == d68020_cmpi_pcix_32) + return 0; + if(g_instruction_table[instruction] == d68020_cpbcc_16) + return 0; + if(g_instruction_table[instruction] == d68020_cpbcc_32) + return 0; + if(g_instruction_table[instruction] == d68020_cpdbcc) + return 0; + if(g_instruction_table[instruction] == d68020_cpgen) + return 0; + if(g_instruction_table[instruction] == d68020_cprestore) + return 0; + if(g_instruction_table[instruction] == d68020_cpsave) + return 0; + if(g_instruction_table[instruction] == d68020_cpscc) + return 0; + if(g_instruction_table[instruction] == d68020_cptrapcc_0) + return 0; + if(g_instruction_table[instruction] == d68020_cptrapcc_16) + return 0; + if(g_instruction_table[instruction] == d68020_cptrapcc_32) + return 0; + if(g_instruction_table[instruction] == d68020_divl) + return 0; + if(g_instruction_table[instruction] == d68020_extb_32) + return 0; + if(g_instruction_table[instruction] == d68020_link_32) + return 0; + if(g_instruction_table[instruction] == d68020_mull) + return 0; + if(g_instruction_table[instruction] == d68020_pack_rr) + return 0; + if(g_instruction_table[instruction] == d68020_pack_mm) + return 0; + if(g_instruction_table[instruction] == d68020_rtm) + return 0; + if(g_instruction_table[instruction] == d68020_trapcc_0) + return 0; + if(g_instruction_table[instruction] == d68020_trapcc_16) + return 0; + if(g_instruction_table[instruction] == d68020_trapcc_32) + return 0; + if(g_instruction_table[instruction] == d68020_tst_pcdi_8) + return 0; + if(g_instruction_table[instruction] == d68020_tst_pcix_8) + return 0; + if(g_instruction_table[instruction] == d68020_tst_i_8) + return 0; + if(g_instruction_table[instruction] == d68020_tst_a_16) + return 0; + if(g_instruction_table[instruction] == d68020_tst_pcdi_16) + return 0; + if(g_instruction_table[instruction] == d68020_tst_pcix_16) + return 0; + if(g_instruction_table[instruction] == d68020_tst_i_16) + return 0; + if(g_instruction_table[instruction] == d68020_tst_a_32) + return 0; + if(g_instruction_table[instruction] == d68020_tst_pcdi_32) + return 0; + if(g_instruction_table[instruction] == d68020_tst_pcix_32) + return 0; + if(g_instruction_table[instruction] == d68020_tst_i_32) + return 0; + if(g_instruction_table[instruction] == d68020_unpk_rr) + return 0; + if(g_instruction_table[instruction] == d68020_unpk_mm) + return 0; + case M68K_CPU_TYPE_68EC020: + case M68K_CPU_TYPE_68020: + case M68K_CPU_TYPE_68030: + if(g_instruction_table[instruction] == d68040_cinv) + return 0; + if(g_instruction_table[instruction] == d68040_cpush) + return 0; + if(g_instruction_table[instruction] == d68040_move16_pi_pi) + return 0; + if(g_instruction_table[instruction] == d68040_move16_pi_al) + return 0; + if(g_instruction_table[instruction] == d68040_move16_al_pi) + return 0; + if(g_instruction_table[instruction] == d68040_move16_ai_al) + return 0; + if(g_instruction_table[instruction] == d68040_move16_al_ai) + return 0; + } + if(cpu_type != M68K_CPU_TYPE_68020 && cpu_type != M68K_CPU_TYPE_68EC020 && + (g_instruction_table[instruction] == d68020_callm || + g_instruction_table[instruction] == d68020_rtm)) + return 0; + + return 1; +} + + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ diff --git a/AltairZ80/m68kopac.c b/AltairZ80/m68kopac.c new file mode 100644 index 00000000..a44f9418 --- /dev/null +++ b/AltairZ80/m68kopac.c @@ -0,0 +1,11948 @@ +#include "m68kcpu.h" + +/* ======================================================================== */ +/* ========================= INSTRUCTION HANDLERS ========================= */ +/* ======================================================================== */ + + +void m68k_op_1010(void) +{ + m68ki_exception_1010(); +} + + +void m68k_op_1111(void) +{ + m68ki_exception_1111(); +} + + +void m68k_op_abcd_8_rr(void) +{ + uint* r_dst = &DX; + uint src = DY; + uint dst = *r_dst; + uint res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + + if(res > 9) + res += 6; + res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res -= 0xa0; + + FLAG_N = NFLAG_8(res); /* officially undefined */ + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; +} + + +void m68k_op_abcd_8_mm_ax7(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + + if(res > 9) + res += 6; + res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res -= 0xa0; + + FLAG_N = NFLAG_8(res); /* officially undefined */ + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_abcd_8_mm_ay7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + + if(res > 9) + res += 6; + res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res -= 0xa0; + + FLAG_N = NFLAG_8(res); /* officially undefined */ + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_abcd_8_mm_axy7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + + if(res > 9) + res += 6; + res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res -= 0xa0; + + FLAG_N = NFLAG_8(res); /* officially undefined */ + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_abcd_8_mm(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + + if(res > 9) + res += 6; + res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res -= 0xa0; + + FLAG_N = NFLAG_8(res); /* officially undefined */ + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_add_8_er_d(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_8(DY); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_pi7(void) +{ + uint* r_dst = &DX; + uint src = OPER_A7_PI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_pd7(void) +{ + uint* r_dst = &DX; + uint src = OPER_A7_PD_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_8_er_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_d(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(DY); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_a(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(AY); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_16_er_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_add_32_er_d(void) +{ + uint* r_dst = &DX; + uint src = DY; + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_a(void) +{ + uint* r_dst = &DX; + uint src = AY; + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_32_er_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_add_8_re_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_aw(void) +{ + uint ea = EA_AW_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_8_re_al(void) +{ + uint ea = EA_AL_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_aw(void) +{ + uint ea = EA_AW_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_16_re_al(void) +{ + uint ea = EA_AL_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_di(void) +{ + uint ea = EA_AY_DI_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_aw(void) +{ + uint ea = EA_AW_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_add_32_re_al(void) +{ + uint ea = EA_AL_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_adda_16_d(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(DY)); +} + + +void m68k_op_adda_16_a(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(AY)); +} + + +void m68k_op_adda_16_ai(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AY_AI_16())); +} + + +void m68k_op_adda_16_pi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AY_PI_16())); +} + + +void m68k_op_adda_16_pd(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AY_PD_16())); +} + + +void m68k_op_adda_16_di(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AY_DI_16())); +} + + +void m68k_op_adda_16_ix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AY_IX_16())); +} + + +void m68k_op_adda_16_aw(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AW_16())); +} + + +void m68k_op_adda_16_al(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_AL_16())); +} + + +void m68k_op_adda_16_pcdi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_PCDI_16())); +} + + +void m68k_op_adda_16_pcix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_PCIX_16())); +} + + +void m68k_op_adda_16_i(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + MAKE_INT_16(OPER_I_16())); +} + + +void m68k_op_adda_32_d(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + DY); +} + + +void m68k_op_adda_32_a(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + AY); +} + + +void m68k_op_adda_32_ai(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AY_AI_32()); +} + + +void m68k_op_adda_32_pi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AY_PI_32()); +} + + +void m68k_op_adda_32_pd(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AY_PD_32()); +} + + +void m68k_op_adda_32_di(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AY_DI_32()); +} + + +void m68k_op_adda_32_ix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AY_IX_32()); +} + + +void m68k_op_adda_32_aw(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AW_32()); +} + + +void m68k_op_adda_32_al(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_AL_32()); +} + + +void m68k_op_adda_32_pcdi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_PCDI_32()); +} + + +void m68k_op_adda_32_pcix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_PCIX_32()); +} + + +void m68k_op_adda_32_i(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + OPER_I_32()); +} + + +void m68k_op_addi_8_d(void) +{ + uint* r_dst = &DY; + uint src = OPER_I_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_addi_8_ai(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_AI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_pi(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_pi7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_pd(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_pd7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_di(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_DI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_ix(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_IX_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_aw(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AW_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_8_al(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AL_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addi_16_d(void) +{ + uint* r_dst = &DY; + uint src = OPER_I_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_addi_16_ai(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_AI_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_16_pi(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PI_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_16_pd(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PD_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_16_di(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_DI_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_16_ix(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_IX_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_16_aw(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AW_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_16_al(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AL_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addi_32_d(void) +{ + uint* r_dst = &DY; + uint src = OPER_I_32(); + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_addi_32_ai(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_AI_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addi_32_pi(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PI_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addi_32_pd(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PD_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addi_32_di(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_DI_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addi_32_ix(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_IX_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addi_32_aw(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AW_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addi_32_al(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AL_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_8_d(void) +{ + uint* r_dst = &DY; + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_addq_8_ai(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_AI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_pi(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_pi7(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_A7_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_pd(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_pd7(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_di(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_DI_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_ix(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_IX_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_aw(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AW_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_8_al(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AL_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst; + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_addq_16_d(void) +{ + uint* r_dst = &DY; + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_addq_16_a(void) +{ + uint* r_dst = &AY; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + (((REG_IR >> 9) - 1) & 7) + 1); +} + + +void m68k_op_addq_16_ai(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_AI_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_16_pi(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PI_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_16_pd(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PD_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_16_di(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_DI_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_16_ix(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_IX_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_16_aw(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AW_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_16_al(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AL_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst; + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_addq_32_d(void) +{ + uint* r_dst = &DY; + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint dst = *r_dst; + uint res = src + dst; + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_addq_32_a(void) +{ + uint* r_dst = &AY; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst + (((REG_IR >> 9) - 1) & 7) + 1); +} + + +void m68k_op_addq_32_ai(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_AI_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_32_pi(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PI_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_32_pd(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PD_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_32_di(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_DI_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_32_ix(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_IX_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_32_aw(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AW_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addq_32_al(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AL_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst; + + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_addx_8_rr(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_8(DY); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; +} + + +void m68k_op_addx_16_rr(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(DY); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; +} + + +void m68k_op_addx_32_rr(void) +{ + uint* r_dst = &DX; + uint src = DY; + uint dst = *r_dst; + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + *r_dst = res; +} + + +void m68k_op_addx_8_mm_ax7(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_addx_8_mm_ay7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_addx_8_mm_axy7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_addx_8_mm(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_V = VFLAG_ADD_8(src, dst, res); + FLAG_X = FLAG_C = CFLAG_8(res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_addx_16_mm(void) +{ + uint src = OPER_AY_PD_16(); + uint ea = EA_AX_PD_16(); + uint dst = m68ki_read_16(ea); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_V = VFLAG_ADD_16(src, dst, res); + FLAG_X = FLAG_C = CFLAG_16(res); + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_addx_32_mm(void) +{ + uint src = OPER_AY_PD_32(); + uint ea = EA_AX_PD_32(); + uint dst = m68ki_read_32(ea); + uint res = src + dst + XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_ADD_32(src, dst, res); + FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_8_er_d(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (DY | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_ai(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AY_AI_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_pi(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AY_PI_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_pi7(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_A7_PI_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_pd(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AY_PD_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_pd7(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_A7_PD_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_di(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AY_DI_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_ix(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AY_IX_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_aw(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AW_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_al(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_AL_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_pcdi(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_PCDI_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_pcix(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_PCIX_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_er_i(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DX &= (OPER_I_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_d(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (DY | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_ai(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AY_AI_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_pi(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AY_PI_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_pd(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AY_PD_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_di(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AY_DI_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_ix(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AY_IX_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_aw(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AW_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_al(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_AL_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_pcdi(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_PCDI_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_pcix(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_PCIX_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_16_er_i(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DX &= (OPER_I_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_d(void) +{ + FLAG_Z = DX &= DY; + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_ai(void) +{ + FLAG_Z = DX &= OPER_AY_AI_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_pi(void) +{ + FLAG_Z = DX &= OPER_AY_PI_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_pd(void) +{ + FLAG_Z = DX &= OPER_AY_PD_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_di(void) +{ + FLAG_Z = DX &= OPER_AY_DI_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_ix(void) +{ + FLAG_Z = DX &= OPER_AY_IX_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_aw(void) +{ + FLAG_Z = DX &= OPER_AW_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_al(void) +{ + FLAG_Z = DX &= OPER_AL_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_pcdi(void) +{ + FLAG_Z = DX &= OPER_PCDI_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_pcix(void) +{ + FLAG_Z = DX &= OPER_PCIX_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_32_er_i(void) +{ + FLAG_Z = DX &= OPER_I_32(); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_and_8_re_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_di(void) +{ + uint ea = EA_AY_DI_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_aw(void) +{ + uint ea = EA_AW_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_8_re_al(void) +{ + uint ea = EA_AL_8(); + uint res = DX & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_di(void) +{ + uint ea = EA_AY_DI_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_aw(void) +{ + uint ea = EA_AW_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_16_re_al(void) +{ + uint ea = EA_AL_16(); + uint res = DX & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_and_32_re_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_32_re_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_32_re_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_32_re_di(void) +{ + uint ea = EA_AY_DI_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_32_re_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_32_re_aw(void) +{ + uint ea = EA_AW_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_and_32_re_al(void) +{ + uint ea = EA_AL_32(); + uint res = DX & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_8_d(void) +{ + FLAG_Z = MASK_OUT_ABOVE_8(DY &= (OPER_I_8() | 0xffffff00)); + + FLAG_N = NFLAG_8(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_andi_8_ai(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_AI_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_pi(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PI_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_pi7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PI_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_pd(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PD_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_pd7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PD_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_di(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_DI_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_ix(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_IX_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_aw(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AW_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_8_al(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AL_8(); + uint res = src & m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_8(ea, res); +} + + +void m68k_op_andi_16_d(void) +{ + FLAG_Z = MASK_OUT_ABOVE_16(DY &= (OPER_I_16() | 0xffff0000)); + + FLAG_N = NFLAG_16(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_andi_16_ai(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_AI_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_16_pi(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PI_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_16_pd(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PD_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_16_di(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_DI_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_16_ix(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_IX_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_16_aw(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AW_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_16_al(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AL_16(); + uint res = src & m68ki_read_16(ea); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_16(ea, res); +} + + +void m68k_op_andi_32_d(void) +{ + FLAG_Z = DY &= (OPER_I_32()); + + FLAG_N = NFLAG_32(FLAG_Z); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_andi_32_ai(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_AI_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_32_pi(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PI_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_32_pd(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PD_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_32_di(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_DI_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_32_ix(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_IX_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_32_aw(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AW_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_32_al(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AL_32(); + uint res = src & m68ki_read_32(ea); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + + m68ki_write_32(ea, res); +} + + +void m68k_op_andi_16_toc(void) +{ + m68ki_set_ccr(m68ki_get_ccr() & OPER_I_16()); +} + + +void m68k_op_andi_16_tos(void) +{ + if(FLAG_S) + { + uint src = OPER_I_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(m68ki_get_sr() & src); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_asr_8_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = src >> shift; + + if(GET_MSB_8(src)) + res |= m68ki_shift_8_table[shift]; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_X = FLAG_C = src << (9-shift); +} + + +void m68k_op_asr_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = src >> shift; + + if(GET_MSB_16(src)) + res |= m68ki_shift_16_table[shift]; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_X = FLAG_C = src << (9-shift); +} + + +void m68k_op_asr_32_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = *r_dst; + uint res = src >> shift; + + if(GET_MSB_32(src)) + res |= m68ki_shift_32_table[shift]; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_X = FLAG_C = src << (9-shift); +} + + +void m68k_op_asr_8_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = src >> shift; + + if(shift != 0) + { + USE_CYCLES(shift<> shift; + + if(shift != 0) + { + USE_CYCLES(shift<> (shift - 1))<<8; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + if(GET_MSB_16(src)) + { + *r_dst |= 0xffff; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + return; + } + + *r_dst &= 0xffff0000; + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_asr_32_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = *r_dst; + uint res = src >> shift; + + if(shift != 0) + { + USE_CYCLES(shift<> (shift - 1))<<8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + if(GET_MSB_32(src)) + { + *r_dst = 0xffffffff; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + return; + } + + *r_dst = 0; + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_32(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_asr_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asr_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asr_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asr_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asr_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asr_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asr_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + if(GET_MSB_16(src)) + res |= 0x8000; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = FLAG_X = src << 8; +} + + +void m68k_op_asl_8_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = MASK_OUT_ABOVE_8(src << shift); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_X = FLAG_C = src << shift; + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + src &= m68ki_shift_8_table[shift + 1]; + FLAG_V = (!(src == 0 || (src == m68ki_shift_8_table[shift + 1] && shift < 8)))<<7; +} + + +void m68k_op_asl_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = MASK_OUT_ABOVE_16(src << shift); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> (8-shift); + src &= m68ki_shift_16_table[shift + 1]; + FLAG_V = (!(src == 0 || src == m68ki_shift_16_table[shift + 1]))<<7; +} + + +void m68k_op_asl_32_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32(src << shift); + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> (24-shift); + src &= m68ki_shift_32_table[shift + 1]; + FLAG_V = (!(src == 0 || src == m68ki_shift_32_table[shift + 1]))<<7; +} + + +void m68k_op_asl_8_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = MASK_OUT_ABOVE_8(src << shift); + + if(shift != 0) + { + USE_CYCLES(shift<> 8; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + src &= m68ki_shift_16_table[shift + 1]; + FLAG_V = (!(src == 0 || src == m68ki_shift_16_table[shift + 1]))<<7; + return; + } + + *r_dst &= 0xffff0000; + FLAG_X = FLAG_C = ((shift == 16 ? src & 1 : 0))<<8; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = (!(src == 0))<<7; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_asl_32_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32(src << shift); + + if(shift != 0) + { + USE_CYCLES(shift<> (32 - shift)) << 8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + src &= m68ki_shift_32_table[shift + 1]; + FLAG_V = (!(src == 0 || src == m68ki_shift_32_table[shift + 1]))<<7; + return; + } + + *r_dst = 0; + FLAG_X = FLAG_C = ((shift == 32 ? src & 1 : 0))<<8; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = (!(src == 0))<<7; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_32(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_asl_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_asl_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_asl_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_asl_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_asl_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_asl_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_asl_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + src &= 0xc000; + FLAG_V = (!(src == 0 || src == 0xc000))<<7; +} + + +void m68k_op_bhi_8(void) +{ + if(COND_HI()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bls_8(void) +{ + if(COND_LS()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bcc_8(void) +{ + if(COND_CC()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bcs_8(void) +{ + if(COND_CS()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bne_8(void) +{ + if(COND_NE()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_beq_8(void) +{ + if(COND_EQ()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bvc_8(void) +{ + if(COND_VC()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bvs_8(void) +{ + if(COND_VS()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bpl_8(void) +{ + if(COND_PL()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bmi_8(void) +{ + if(COND_MI()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bge_8(void) +{ + if(COND_GE()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_blt_8(void) +{ + if(COND_LT()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bgt_8(void) +{ + if(COND_GT()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_ble_8(void) +{ + if(COND_LE()) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + return; + } + USE_CYCLES(CYC_BCC_NOTAKE_B); +} + + +void m68k_op_bhi_16(void) +{ + if(COND_HI()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bls_16(void) +{ + if(COND_LS()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bcc_16(void) +{ + if(COND_CC()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bcs_16(void) +{ + if(COND_CS()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bne_16(void) +{ + if(COND_NE()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_beq_16(void) +{ + if(COND_EQ()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bvc_16(void) +{ + if(COND_VC()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bvs_16(void) +{ + if(COND_VS()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bpl_16(void) +{ + if(COND_PL()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bmi_16(void) +{ + if(COND_MI()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bge_16(void) +{ + if(COND_GE()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_blt_16(void) +{ + if(COND_LT()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bgt_16(void) +{ + if(COND_GT()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_ble_16(void) +{ + if(COND_LE()) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_BCC_NOTAKE_W); +} + + +void m68k_op_bhi_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_HI()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bls_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LS()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bcc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CC()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bcs_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CS()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bne_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_NE()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_beq_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_EQ()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bvc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VC()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bvs_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VS()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bpl_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_PL()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bmi_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_MI()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bge_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GE()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_blt_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LT()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bgt_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GT()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_ble_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LE()) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bchg_32_r_d(void) +{ + uint* r_dst = &DY; + uint mask = 1 << (DX & 0x1f); + + FLAG_Z = *r_dst & mask; + *r_dst ^= mask; +} + + +void m68k_op_bchg_8_r_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_aw(void) +{ + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_r_al(void) +{ + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_32_s_d(void) +{ + uint* r_dst = &DY; + uint mask = 1 << (OPER_I_8() & 0x1f); + + FLAG_Z = *r_dst & mask; + *r_dst ^= mask; +} + + +void m68k_op_bchg_8_s_ai(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_pi(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_pi7(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_pd(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_pd7(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_di(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_ix(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_aw(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bchg_8_s_al(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src ^ mask); +} + + +void m68k_op_bclr_32_r_d(void) +{ + uint* r_dst = &DY; + uint mask = 1 << (DX & 0x1f); + + FLAG_Z = *r_dst & mask; + *r_dst &= ~mask; +} + + +void m68k_op_bclr_8_r_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_aw(void) +{ + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_r_al(void) +{ + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_32_s_d(void) +{ + uint* r_dst = &DY; + uint mask = 1 << (OPER_I_8() & 0x1f); + + FLAG_Z = *r_dst & mask; + *r_dst &= ~mask; +} + + +void m68k_op_bclr_8_s_ai(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_pi(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_pi7(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_pd(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_pd7(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_di(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_ix(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_aw(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bclr_8_s_al(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src & ~mask); +} + + +void m68k_op_bfchg_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint* data = &DY; + uint64 mask; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + offset &= 31; + width = ((width-1) & 31) + 1; + + mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask = ROR_32(mask, offset); + + FLAG_N = NFLAG_32(*data<>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long ^ mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte ^ mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfchg_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long ^ mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte ^ mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfchg_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long ^ mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte ^ mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfchg_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long ^ mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte ^ mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfchg_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long ^ mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte ^ mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfclr_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint* data = &DY; + uint64 mask; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + + offset &= 31; + width = ((width-1) & 31) + 1; + + + mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask = ROR_32(mask, offset); + + FLAG_N = NFLAG_32(*data<>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long & ~mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte & ~mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfclr_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long & ~mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte & ~mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfclr_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long & ~mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte & ~mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfclr_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long & ~mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte & ~mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfclr_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long & ~mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte & ~mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint64 data = DY; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + offset &= 31; + width = ((width-1) & 31) + 1; + + data = ROL_32(data, offset); + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2>>12)&7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_PCDI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfexts_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_PCIX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data = MAKE_INT_32(data) >> (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint64 data = DY; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + offset &= 31; + width = ((width-1) & 31) + 1; + + data = ROL_32(data, offset); + FLAG_N = NFLAG_32(data); + data >>= 32 - width; + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2>>12)&7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_PCDI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfextu_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint data; + uint ea = EA_PCIX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + REG_D[(word2 >> 12) & 7] = data; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint64 data = DY; + uint bit; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + offset &= 31; + width = ((width-1) & 31) + 1; + + data = ROL_32(data, offset); + FLAG_N = NFLAG_32(data); + data >>= 32 - width; + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_PCDI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfffo_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + sint local_offset; + uint width = word2; + uint data; + uint bit; + uint ea = EA_PCIX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + local_offset = offset % 8; + if(local_offset < 0) + { + local_offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + data = m68ki_read_32(ea); + data = MASK_OUT_ABOVE_32(data< 32) + data |= (m68ki_read_8(ea+4) << local_offset) >> 8; + + FLAG_N = NFLAG_32(data); + data >>= (32 - width); + + FLAG_Z = data; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) + offset++; + + REG_D[(word2>>12)&7] = offset; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfins_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint* data = &DY; + uint64 mask; + uint64 insert = REG_D[(word2>>12)&7]; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + + offset &= 31; + width = ((width-1) & 31) + 1; + + + mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask = ROR_32(mask, offset); + + insert = MASK_OUT_ABOVE_32(insert << (32 - width)); + FLAG_N = NFLAG_32(insert); + FLAG_Z = insert; + insert = ROR_32(insert, offset); + + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + *data &= ~mask; + *data |= insert; + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfins_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint insert_base = REG_D[(word2>>12)&7]; + uint insert_long; + uint insert_byte; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + insert_base = MASK_OUT_ABOVE_32(insert_base << (32 - width)); + FLAG_N = NFLAG_32(insert_base); + FLAG_Z = insert_base; + insert_long = insert_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, (data_long & ~mask_long) | insert_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + insert_byte = MASK_OUT_ABOVE_8(insert_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, (data_byte & ~mask_byte) | insert_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfins_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint insert_base = REG_D[(word2>>12)&7]; + uint insert_long; + uint insert_byte; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + insert_base = MASK_OUT_ABOVE_32(insert_base << (32 - width)); + FLAG_N = NFLAG_32(insert_base); + FLAG_Z = insert_base; + insert_long = insert_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, (data_long & ~mask_long) | insert_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + insert_byte = MASK_OUT_ABOVE_8(insert_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, (data_byte & ~mask_byte) | insert_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfins_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint insert_base = REG_D[(word2>>12)&7]; + uint insert_long; + uint insert_byte; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + insert_base = MASK_OUT_ABOVE_32(insert_base << (32 - width)); + FLAG_N = NFLAG_32(insert_base); + FLAG_Z = insert_base; + insert_long = insert_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, (data_long & ~mask_long) | insert_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + insert_byte = MASK_OUT_ABOVE_8(insert_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, (data_byte & ~mask_byte) | insert_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfins_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint insert_base = REG_D[(word2>>12)&7]; + uint insert_long; + uint insert_byte; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + insert_base = MASK_OUT_ABOVE_32(insert_base << (32 - width)); + FLAG_N = NFLAG_32(insert_base); + FLAG_Z = insert_base; + insert_long = insert_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, (data_long & ~mask_long) | insert_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + insert_byte = MASK_OUT_ABOVE_8(insert_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, (data_byte & ~mask_byte) | insert_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfins_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint insert_base = REG_D[(word2>>12)&7]; + uint insert_long; + uint insert_byte; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + insert_base = MASK_OUT_ABOVE_32(insert_base << (32 - width)); + FLAG_N = NFLAG_32(insert_base); + FLAG_Z = insert_base; + insert_long = insert_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, (data_long & ~mask_long) | insert_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + insert_byte = MASK_OUT_ABOVE_8(insert_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, (data_byte & ~mask_byte) | insert_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfset_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint* data = &DY; + uint64 mask; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + + offset &= 31; + width = ((width-1) & 31) + 1; + + + mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask = ROR_32(mask, offset); + + FLAG_N = NFLAG_32(*data<>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_AI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long | mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte | mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfset_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_DI_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long | mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte | mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfset_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_IX_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long | mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte | mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfset_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AW_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long | mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte | mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bfset_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AL_8(); + + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = NFLAG_32(data_long << offset); + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + m68ki_write_32(ea, data_long | mask_long); + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + m68ki_write_8(ea+4, data_byte | mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint offset = (word2>>6)&31; + uint width = word2; + uint* data = &DY; + uint64 mask; + + + if(BIT_B(word2)) + offset = REG_D[offset&7]; + if(BIT_5(word2)) + width = REG_D[width&7]; + + + offset &= 31; + width = ((width-1) & 31) + 1; + + + mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask = ROR_32(mask, offset); + + FLAG_N = NFLAG_32(*data<>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_AI_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_DI_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AY_IX_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AW_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_AL_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_PCDI_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bftst_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + sint offset = (word2>>6)&31; + uint width = word2; + uint mask_base; + uint data_long; + uint mask_long; + uint data_byte = 0; + uint mask_byte = 0; + uint ea = EA_PCIX_8(); + + if(BIT_B(word2)) + offset = MAKE_INT_32(REG_D[offset&7]); + if(BIT_5(word2)) + width = REG_D[width&7]; + + /* Offset is signed so we have to use ugly math =( */ + ea += offset / 8; + offset %= 8; + if(offset < 0) + { + offset += 8; + ea--; + } + width = ((width-1) & 31) + 1; + + + mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); + mask_long = mask_base >> offset; + + data_long = m68ki_read_32(ea); + FLAG_N = ((data_long & (0x80000000 >> offset))<>24; + FLAG_Z = data_long & mask_long; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + + if((width + offset) > 32) + { + mask_byte = MASK_OUT_ABOVE_8(mask_base); + data_byte = m68ki_read_8(ea+4); + FLAG_Z |= (data_byte & mask_byte); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bkpt(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_bkpt_ack(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE) ? REG_IR & 7 : 0); /* auto-disable (see m68kcpu.h) */ + } + m68ki_exception_illegal(); +} + + +void m68k_op_bra_8(void) +{ + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_bra_16(void) +{ + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_bra_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint offset = OPER_I_32(); + REG_PC -= 4; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_32(offset); + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_bset_32_r_d(void) +{ + uint* r_dst = &DY; + uint mask = 1 << (DX & 0x1f); + + FLAG_Z = *r_dst & mask; + *r_dst |= mask; +} + + +void m68k_op_bset_8_r_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_aw(void) +{ + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_r_al(void) +{ + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + uint mask = 1 << (DX & 7); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_32_s_d(void) +{ + uint* r_dst = &DY; + uint mask = 1 << (OPER_I_8() & 0x1f); + + FLAG_Z = *r_dst & mask; + *r_dst |= mask; +} + + +void m68k_op_bset_8_s_ai(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_pi(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_pi7(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_pd(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_pd7(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_di(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_ix(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_aw(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bset_8_s_al(void) +{ + uint mask = 1 << (OPER_I_8() & 7); + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + + FLAG_Z = src & mask; + m68ki_write_8(ea, src | mask); +} + + +void m68k_op_bsr_8(void) +{ + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_branch_8(MASK_OUT_ABOVE_8(REG_IR)); +} + + +void m68k_op_bsr_16(void) +{ + uint offset = OPER_I_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + REG_PC -= 2; + m68ki_branch_16(offset); +} + + +void m68k_op_bsr_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint offset = OPER_I_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + REG_PC -= 4; + m68ki_branch_32(offset); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_btst_32_r_d(void) +{ + FLAG_Z = DY & (1 << (DX & 0x1f)); +} + + +void m68k_op_btst_8_r_ai(void) +{ + FLAG_Z = OPER_AY_AI_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_pi(void) +{ + FLAG_Z = OPER_AY_PI_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_pi7(void) +{ + FLAG_Z = OPER_A7_PI_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_pd(void) +{ + FLAG_Z = OPER_AY_PD_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_pd7(void) +{ + FLAG_Z = OPER_A7_PD_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_di(void) +{ + FLAG_Z = OPER_AY_DI_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_ix(void) +{ + FLAG_Z = OPER_AY_IX_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_aw(void) +{ + FLAG_Z = OPER_AW_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_al(void) +{ + FLAG_Z = OPER_AL_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_pcdi(void) +{ + FLAG_Z = OPER_PCDI_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_pcix(void) +{ + FLAG_Z = OPER_PCIX_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_8_r_i(void) +{ + FLAG_Z = OPER_I_8() & (1 << (DX & 7)); +} + + +void m68k_op_btst_32_s_d(void) +{ + FLAG_Z = DY & (1 << (OPER_I_8() & 0x1f)); +} + + +void m68k_op_btst_8_s_ai(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AY_AI_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_pi(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AY_PI_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_pi7(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_A7_PI_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_pd(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AY_PD_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_pd7(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_A7_PD_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_di(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AY_DI_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_ix(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AY_IX_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_aw(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AW_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_al(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_AL_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_pcdi(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_PCDI_8() & (1 << bit); +} + + +void m68k_op_btst_8_s_pcix(void) +{ + uint bit = OPER_I_8() & 7; + + FLAG_Z = OPER_PCIX_8() & (1 << bit); +} + + +void m68k_op_callm_32_ai(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_AY_AI_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_callm_32_di(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_AY_DI_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_callm_32_ix(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_AY_IX_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_callm_32_aw(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_AW_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_callm_32_al(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_AL_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_callm_32_pcdi(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_PCDI_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_callm_32_pcix(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + uint ea = EA_PCIX_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_PC += 2; +(void)ea; /* just to avoid an 'unused variable' warning */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_AI_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_pi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PI_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_pi7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_A7_PI_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_pd(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PD_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_pd7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_A7_PD_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_DI_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_IX_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AW_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_8_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AL_8(); + uint dest = m68ki_read_8(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_8(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(*compare, dest, res); + FLAG_C = CFLAG_8(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_8(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_8(ea, MASK_OUT_ABOVE_8(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_AI_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_pi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PI_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_pd(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PD_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_DI_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_IX_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AW_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_16_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AL_16(); + uint dest = m68ki_read_16(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - MASK_OUT_ABOVE_16(*compare); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(*compare, dest, res); + FLAG_C = CFLAG_16(res); + + if(COND_NE()) + *compare = MASK_OUT_BELOW_16(*compare) | dest; + else + { + USE_CYCLES(3); + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_D[(word2 >> 6) & 7])); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_AI_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_pi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PI_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_pd(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PD_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_DI_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_IX_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AW_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint ea = EA_AL_32(); + uint dest = m68ki_read_32(ea); + uint* compare = ®_D[word2 & 7]; + uint res = dest - *compare; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(*compare, dest, res); + FLAG_C = CFLAG_SUB_32(*compare, dest, res); + + if(COND_NE()) + *compare = dest; + else + { + USE_CYCLES(3); + m68ki_write_32(ea, REG_D[(word2 >> 6) & 7]); + } + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas2_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_32(); + uint* compare1 = ®_D[(word2 >> 16) & 7]; + uint ea1 = REG_DA[(word2 >> 28) & 15]; + uint dest1 = m68ki_read_16(ea1); + uint res1 = dest1 - MASK_OUT_ABOVE_16(*compare1); + uint* compare2 = ®_D[word2 & 7]; + uint ea2 = REG_DA[(word2 >> 12) & 15]; + uint dest2 = m68ki_read_16(ea2); + uint res2; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_16(res1); + FLAG_Z = MASK_OUT_ABOVE_16(res1); + FLAG_V = VFLAG_SUB_16(*compare1, dest1, res1); + FLAG_C = CFLAG_16(res1); + + if(COND_EQ()) + { + res2 = dest2 - MASK_OUT_ABOVE_16(*compare2); + + FLAG_N = NFLAG_16(res2); + FLAG_Z = MASK_OUT_ABOVE_16(res2); + FLAG_V = VFLAG_SUB_16(*compare2, dest2, res2); + FLAG_C = CFLAG_16(res2); + + if(COND_EQ()) + { + USE_CYCLES(3); + m68ki_write_16(ea1, REG_D[(word2 >> 22) & 7]); + m68ki_write_16(ea2, REG_D[(word2 >> 6) & 7]); + return; + } + } + *compare1 = BIT_1F(word2) ? MAKE_INT_16(dest1) : MASK_OUT_BELOW_16(*compare1) | dest1; + *compare2 = BIT_F(word2) ? MAKE_INT_16(dest2) : MASK_OUT_BELOW_16(*compare2) | dest2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cas2_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_32(); + uint* compare1 = ®_D[(word2 >> 16) & 7]; + uint ea1 = REG_DA[(word2 >> 28) & 15]; + uint dest1 = m68ki_read_32(ea1); + uint res1 = dest1 - *compare1; + uint* compare2 = ®_D[word2 & 7]; + uint ea2 = REG_DA[(word2 >> 12) & 15]; + uint dest2 = m68ki_read_32(ea2); + uint res2; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + FLAG_N = NFLAG_32(res1); + FLAG_Z = MASK_OUT_ABOVE_32(res1); + FLAG_V = VFLAG_SUB_32(*compare1, dest1, res1); + FLAG_C = CFLAG_SUB_32(*compare1, dest1, res1); + + if(COND_EQ()) + { + res2 = dest2 - *compare2; + + FLAG_N = NFLAG_32(res2); + FLAG_Z = MASK_OUT_ABOVE_32(res2); + FLAG_V = VFLAG_SUB_32(*compare2, dest2, res2); + FLAG_C = CFLAG_SUB_32(*compare2, dest2, res2); + + if(COND_EQ()) + { + USE_CYCLES(3); + m68ki_write_32(ea1, REG_D[(word2 >> 22) & 7]); + m68ki_write_32(ea2, REG_D[(word2 >> 6) & 7]); + return; + } + } + *compare1 = dest1; + *compare2 = dest2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_16_d(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(DY); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_ai(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AY_AI_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_pi(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AY_PI_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_pd(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AY_PD_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_di(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AY_DI_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_ix(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AY_IX_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_aw(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AW_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_al(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_AL_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_pcdi(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_PCDI_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_pcix(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_PCIX_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_16_i(void) +{ + sint src = MAKE_INT_16(DX); + sint bound = MAKE_INT_16(OPER_I_16()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); +} + + +void m68k_op_chk_32_d(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(DY); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AY_AI_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_pi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AY_PI_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_pd(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AY_PD_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AY_DI_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AY_IX_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AW_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_AL_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_PCDI_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_PCIX_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk_32_i(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + sint src = MAKE_INT_32(DX); + sint bound = MAKE_INT_32(OPER_I_32()); + + if(src >= 0 && src <= bound) + { + return; + } + FLAG_N = (src < 0)<<7; + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_AI_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_DI_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_IX_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AW_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AL_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_PCDI_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_8_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_PCIX_8(); + uint lower_bound = m68ki_read_8(ea); + uint upper_bound = m68ki_read_8(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_8(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_8(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_AI_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_DI_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_IX_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AW_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AL_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_PCDI_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_16_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_PCIX_16(); + uint lower_bound = m68ki_read_16(ea); + uint upper_bound = m68ki_read_16(ea + 1); + + if(!BIT_F(word2)) + compare = MAKE_INT_16(compare); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_16(FLAG_C); + FLAG_C = CFLAG_16(FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_ai(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_AI_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_di(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_DI_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_ix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AY_IX_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_aw(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AW_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_al(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_AL_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_PCDI_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_chk2cmp2_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint compare = REG_DA[(word2 >> 12) & 15]; + uint ea = EA_PCIX_32(); + uint lower_bound = m68ki_read_32(ea); + uint upper_bound = m68ki_read_32(ea + 1); + + FLAG_C = compare - lower_bound; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); + if(COND_CS()) + { + if(BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + return; + } + + FLAG_C = upper_bound - compare; + FLAG_Z = MASK_OUT_ABOVE_32(FLAG_C); + FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); + if(COND_CS() && BIT_B(word2)) + m68ki_exception_trap(EXCEPTION_CHK); + + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_clr_8_d(void) +{ + DY &= 0xffffff00; + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_8_al(void) +{ + m68ki_write_8(EA_AL_8(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_d(void) +{ + DY &= 0xffff0000; + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_ai(void) +{ + m68ki_write_16(EA_AY_AI_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_pi(void) +{ + m68ki_write_16(EA_AY_PI_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_pd(void) +{ + m68ki_write_16(EA_AY_PD_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_di(void) +{ + m68ki_write_16(EA_AY_DI_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_ix(void) +{ + m68ki_write_16(EA_AY_IX_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_aw(void) +{ + m68ki_write_16(EA_AW_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_16_al(void) +{ + m68ki_write_16(EA_AL_16(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_d(void) +{ + DY = 0; + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_ai(void) +{ + m68ki_write_32(EA_AY_AI_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_pi(void) +{ + m68ki_write_32(EA_AY_PI_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_pd(void) +{ + m68ki_write_32(EA_AY_PD_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_di(void) +{ + m68ki_write_32(EA_AY_DI_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_ix(void) +{ + m68ki_write_32(EA_AY_IX_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_aw(void) +{ + m68ki_write_32(EA_AW_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_clr_32_al(void) +{ + m68ki_write_32(EA_AL_32(), 0); + + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; +} + + +void m68k_op_cmp_8_d(void) +{ + uint src = MASK_OUT_ABOVE_8(DY); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_ai(void) +{ + uint src = OPER_AY_AI_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_pi(void) +{ + uint src = OPER_AY_PI_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_pi7(void) +{ + uint src = OPER_A7_PI_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_pd(void) +{ + uint src = OPER_AY_PD_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_pd7(void) +{ + uint src = OPER_A7_PD_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_di(void) +{ + uint src = OPER_AY_DI_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_ix(void) +{ + uint src = OPER_AY_IX_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_aw(void) +{ + uint src = OPER_AW_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_al(void) +{ + uint src = OPER_AL_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_pcdi(void) +{ + uint src = OPER_PCDI_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_pcix(void) +{ + uint src = OPER_PCIX_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_8_i(void) +{ + uint src = OPER_I_8(); + uint dst = MASK_OUT_ABOVE_8(DX); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmp_16_d(void) +{ + uint src = MASK_OUT_ABOVE_16(DY); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_a(void) +{ + uint src = MASK_OUT_ABOVE_16(AY); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_ai(void) +{ + uint src = OPER_AY_AI_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_pi(void) +{ + uint src = OPER_AY_PI_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_pd(void) +{ + uint src = OPER_AY_PD_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_di(void) +{ + uint src = OPER_AY_DI_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_ix(void) +{ + uint src = OPER_AY_IX_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_aw(void) +{ + uint src = OPER_AW_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_al(void) +{ + uint src = OPER_AL_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_pcdi(void) +{ + uint src = OPER_PCDI_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_pcix(void) +{ + uint src = OPER_PCIX_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_16_i(void) +{ + uint src = OPER_I_16(); + uint dst = MASK_OUT_ABOVE_16(DX); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmp_32_d(void) +{ + uint src = DY; + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_a(void) +{ + uint src = AY; + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_ai(void) +{ + uint src = OPER_AY_AI_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_pi(void) +{ + uint src = OPER_AY_PI_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_pd(void) +{ + uint src = OPER_AY_PD_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_di(void) +{ + uint src = OPER_AY_DI_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_ix(void) +{ + uint src = OPER_AY_IX_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_aw(void) +{ + uint src = OPER_AW_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_al(void) +{ + uint src = OPER_AL_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_pcdi(void) +{ + uint src = OPER_PCDI_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_pcix(void) +{ + uint src = OPER_PCIX_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmp_32_i(void) +{ + uint src = OPER_I_32(); + uint dst = DX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_d(void) +{ + uint src = MAKE_INT_16(DY); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_a(void) +{ + uint src = MAKE_INT_16(AY); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_ai(void) +{ + uint src = MAKE_INT_16(OPER_AY_AI_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_pi(void) +{ + uint src = MAKE_INT_16(OPER_AY_PI_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_pd(void) +{ + uint src = MAKE_INT_16(OPER_AY_PD_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_di(void) +{ + uint src = MAKE_INT_16(OPER_AY_DI_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_ix(void) +{ + uint src = MAKE_INT_16(OPER_AY_IX_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_aw(void) +{ + uint src = MAKE_INT_16(OPER_AW_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_al(void) +{ + uint src = MAKE_INT_16(OPER_AL_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_pcdi(void) +{ + uint src = MAKE_INT_16(OPER_PCDI_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_pcix(void) +{ + uint src = MAKE_INT_16(OPER_PCIX_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_16_i(void) +{ + uint src = MAKE_INT_16(OPER_I_16()); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_d(void) +{ + uint src = DY; + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_a(void) +{ + uint src = AY; + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_ai(void) +{ + uint src = OPER_AY_AI_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_pi(void) +{ + uint src = OPER_AY_PI_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_pd(void) +{ + uint src = OPER_AY_PD_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_di(void) +{ + uint src = OPER_AY_DI_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_ix(void) +{ + uint src = OPER_AY_IX_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_aw(void) +{ + uint src = OPER_AW_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_al(void) +{ + uint src = OPER_AL_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_pcdi(void) +{ + uint src = OPER_PCDI_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_pcix(void) +{ + uint src = OPER_PCIX_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpa_32_i(void) +{ + uint src = OPER_I_32(); + uint dst = AX; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_8_d(void) +{ + uint src = OPER_I_8(); + uint dst = MASK_OUT_ABOVE_8(DY); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_ai(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AY_AI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_pi(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AY_PI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_pi7(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_A7_PI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_pd(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AY_PD_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_pd7(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_A7_PD_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_di(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AY_DI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_ix(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AY_IX_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_aw(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AW_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_al(void) +{ + uint src = OPER_I_8(); + uint dst = OPER_AL_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpi_8_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_I_8(); + uint dst = OPER_PCDI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cmpi_8_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_I_8(); + uint dst = OPER_PCIX_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cmpi_16_d(void) +{ + uint src = OPER_I_16(); + uint dst = MASK_OUT_ABOVE_16(DY); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_ai(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AY_AI_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_pi(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AY_PI_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_pd(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AY_PD_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_di(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AY_DI_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_ix(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AY_IX_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_aw(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AW_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_al(void) +{ + uint src = OPER_I_16(); + uint dst = OPER_AL_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpi_16_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_I_16(); + uint dst = OPER_PCDI_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cmpi_16_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_I_16(); + uint dst = OPER_PCIX_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cmpi_32_d(void) +{ + uint src = OPER_I_32(); + uint dst = DY; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_ai(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AY_AI_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_pi(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AY_PI_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_pd(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AY_PD_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_di(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AY_DI_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_ix(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AY_IX_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_aw(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AW_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_al(void) +{ + uint src = OPER_I_32(); + uint dst = OPER_AL_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cmpi_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_I_32(); + uint dst = OPER_PCDI_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cmpi_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_I_32(); + uint dst = OPER_PCIX_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_cmpm_8_ax7(void) +{ + uint src = OPER_AY_PI_8(); + uint dst = OPER_A7_PI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpm_8_ay7(void) +{ + uint src = OPER_A7_PI_8(); + uint dst = OPER_AX_PI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpm_8_axy7(void) +{ + uint src = OPER_A7_PI_8(); + uint dst = OPER_A7_PI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpm_8(void) +{ + uint src = OPER_AY_PI_8(); + uint dst = OPER_AX_PI_8(); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_C = CFLAG_8(res); +} + + +void m68k_op_cmpm_16(void) +{ + uint src = OPER_AY_PI_16(); + uint dst = OPER_AX_PI_16(); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_C = CFLAG_16(res); +} + + +void m68k_op_cmpm_32(void) +{ + uint src = OPER_AY_PI_32(); + uint dst = OPER_AX_PI_32(); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_C = CFLAG_SUB_32(src, dst, res); +} + + +void m68k_op_cpbcc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_1111(); +} + + +void m68k_op_cpdbcc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_1111(); +} + + +void m68k_op_cpgen_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_1111(); +} + + +void m68k_op_cpscc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_1111(); +} + + +void m68k_op_cptrapcc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_1111(); +} + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + + diff --git a/AltairZ80/m68kopdm.c b/AltairZ80/m68kopdm.c new file mode 100644 index 00000000..66a4d1d0 --- /dev/null +++ b/AltairZ80/m68kopdm.c @@ -0,0 +1,13221 @@ +#include "m68kcpu.h" + +/* ======================================================================== */ +/* ========================= INSTRUCTION HANDLERS ========================= */ +/* ======================================================================== */ + + +void m68k_op_dbt_16(void) +{ + REG_PC += 2; +} + + +void m68k_op_dbf_16(void) +{ + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbhi_16(void) +{ + if(COND_NOT_HI()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbls_16(void) +{ + if(COND_NOT_LS()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbcc_16(void) +{ + if(COND_NOT_CC()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbcs_16(void) +{ + if(COND_NOT_CS()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbne_16(void) +{ + if(COND_NOT_NE()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbeq_16(void) +{ + if(COND_NOT_EQ()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbvc_16(void) +{ + if(COND_NOT_VC()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbvs_16(void) +{ + if(COND_NOT_VS()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbpl_16(void) +{ + if(COND_NOT_PL()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbmi_16(void) +{ + if(COND_NOT_MI()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbge_16(void) +{ + if(COND_NOT_GE()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dblt_16(void) +{ + if(COND_NOT_LT()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dbgt_16(void) +{ + if(COND_NOT_GT()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_dble_16(void) +{ + if(COND_NOT_LE()) + { + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(*r_dst - 1); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + if(res != 0xffff) + { + uint offset = OPER_I_16(); + REG_PC -= 2; + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_branch_16(offset); + USE_CYCLES(CYC_DBCC_F_NOEXP); + return; + } + REG_PC += 2; + USE_CYCLES(CYC_DBCC_F_EXP); + return; + } + REG_PC += 2; +} + + +void m68k_op_divs_16_d(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(DY); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_ai(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AY_AI_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_pi(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AY_PI_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_pd(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AY_PD_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_di(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AY_DI_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_ix(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AY_IX_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_aw(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AW_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_al(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_AL_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_pcdi(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_PCDI_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_pcix(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_PCIX_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divs_16_i(void) +{ + uint* r_dst = &DX; + sint src = MAKE_INT_16(OPER_I_16()); + sint quotient; + sint remainder; + + if(src != 0) + { + if((uint32)*r_dst == 0x80000000 && src == -1) + { + FLAG_Z = 0; + FLAG_N = NFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = 0; + return; + } + + quotient = MAKE_INT_32(*r_dst) / src; + remainder = MAKE_INT_32(*r_dst) % src; + + if(quotient == MAKE_INT_16(quotient)) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_d(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(DY); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divu_16_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_16(); + + if(src != 0) + { + uint quotient = *r_dst / src; + uint remainder = *r_dst % src; + + if(quotient < 0x10000) + { + FLAG_Z = quotient; + FLAG_N = NFLAG_16(quotient); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); + return; + } + FLAG_V = VFLAG_SET; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); +} + + +void m68k_op_divl_32_d(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = DY; + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = DY; + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_ai(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AY_AI_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AY_AI_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_pi(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AY_PI_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AY_PI_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_pd(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AY_PD_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AY_PD_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_di(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AY_DI_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AY_DI_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_ix(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AY_IX_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AY_IX_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_aw(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AW_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AW_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_al(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_AL_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_AL_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_pcdi(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_PCDI_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_PCDI_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_pcix(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_PCIX_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_PCIX_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_divl_32_i(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 divisor = OPER_I_32(); + uint64 dividend = 0; + uint64 quotient = 0; + uint64 remainder = 0; + + if(divisor != 0) + { + if(BIT_A(word2)) /* 64 bit */ + { + dividend = REG_D[word2 & 7]; + dividend <<= 32; + dividend |= REG_D[(word2 >> 12) & 7]; + + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)dividend / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)dividend % (sint64)((sint32)divisor)); + if((sint64)quotient != (sint64)((sint32)quotient)) + { + FLAG_V = VFLAG_SET; + return; + } + } + else /* unsigned */ + { + quotient = dividend / divisor; + if(quotient > 0xffffffff) + { + FLAG_V = VFLAG_SET; + return; + } + remainder = dividend % divisor; + } + } + else /* 32 bit */ + { + dividend = REG_D[(word2 >> 12) & 7]; + if(BIT_B(word2)) /* signed */ + { + quotient = (uint64)((sint64)((sint32)dividend) / (sint64)((sint32)divisor)); + remainder = (uint64)((sint64)((sint32)dividend) % (sint64)((sint32)divisor)); + } + else /* unsigned */ + { + quotient = dividend / divisor; + remainder = dividend % divisor; + } + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint divisor = OPER_I_32(); + uint dividend_hi = REG_D[word2 & 7]; + uint dividend_lo = REG_D[(word2 >> 12) & 7]; + uint quotient = 0; + uint remainder = 0; + uint dividend_neg = 0; + uint divisor_neg = 0; + sint i; + uint overflow; + + if(divisor != 0) + { + /* quad / long : long quotient, long remainder */ + if(BIT_A(word2)) + { + if(BIT_B(word2)) /* signed */ + { + /* special case in signed divide */ + if(dividend_hi == 0 && dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + REG_D[word2 & 7] = 0; + REG_D[(word2 >> 12) & 7] = 0x80000000; + + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + if(GET_MSB_32(dividend_hi)) + { + dividend_neg = 1; + dividend_hi = (uint)MASK_OUT_ABOVE_32((-(sint)dividend_hi) - (dividend_lo != 0)); + dividend_lo = (uint)MASK_OUT_ABOVE_32(-(sint)dividend_lo); + } + if(GET_MSB_32(divisor)) + { + divisor_neg = 1; + divisor = (uint)MASK_OUT_ABOVE_32(-(sint)divisor); + + } + } + + /* if the upper long is greater than the divisor, we're overflowing. */ + if(dividend_hi >= divisor) + { + FLAG_V = VFLAG_SET; + return; + } + + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + remainder = (remainder << 1) + ((dividend_hi >> i) & 1); + if(remainder >= divisor) + { + remainder -= divisor; + quotient++; + } + } + for(i = 31; i >= 0; i--) + { + quotient <<= 1; + overflow = GET_MSB_32(remainder); + remainder = (remainder << 1) + ((dividend_lo >> i) & 1); + if(remainder >= divisor || overflow) + { + remainder -= divisor; + quotient++; + } + } + + if(BIT_B(word2)) /* signed */ + { + if(quotient > 0x7fffffff) + { + FLAG_V = VFLAG_SET; + return; + } + if(dividend_neg) + { + remainder = (uint)MASK_OUT_ABOVE_32(-(sint)remainder); + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + if(divisor_neg) + quotient = (uint)MASK_OUT_ABOVE_32(-(sint)quotient); + } + + REG_D[word2 & 7] = remainder; + REG_D[(word2 >> 12) & 7] = quotient; + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + + /* long / long: long quotient, maybe long remainder */ + if(BIT_B(word2)) /* signed */ + { + /* Special case in divide */ + if(dividend_lo == 0x80000000 && divisor == 0xffffffff) + { + FLAG_N = NFLAG_SET; + FLAG_Z = ZFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + REG_D[(word2 >> 12) & 7] = 0x80000000; + REG_D[word2 & 7] = 0; + return; + } + REG_D[word2 & 7] = MAKE_INT_32(dividend_lo) % MAKE_INT_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MAKE_INT_32(dividend_lo) / MAKE_INT_32(divisor); + } + else + { + REG_D[word2 & 7] = MASK_OUT_ABOVE_32(dividend_lo) % MASK_OUT_ABOVE_32(divisor); + quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); + } + + FLAG_N = NFLAG_32(quotient); + FLAG_Z = quotient; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_trap(EXCEPTION_ZERO_DIVIDE); + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_eor_8_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY ^= MASK_OUT_ABOVE_8(DX)); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_aw(void) +{ + uint ea = EA_AW_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_8_al(void) +{ + uint ea = EA_AL_8(); + uint res = MASK_OUT_ABOVE_8(DX ^ m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY ^= MASK_OUT_ABOVE_16(DX)); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_aw(void) +{ + uint ea = EA_AW_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_16_al(void) +{ + uint ea = EA_AL_16(); + uint res = MASK_OUT_ABOVE_16(DX ^ m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_d(void) +{ + uint res = DY ^= DX; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_di(void) +{ + uint ea = EA_AY_DI_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_aw(void) +{ + uint ea = EA_AW_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eor_32_al(void) +{ + uint ea = EA_AL_32(); + uint res = DX ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY ^= OPER_I_8()); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_ai(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_AI_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_pi(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PI_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_pi7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PI_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_pd(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PD_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_pd7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PD_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_di(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_DI_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_ix(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_IX_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_aw(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AW_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_8_al(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AL_8(); + uint res = src ^ m68ki_read_8(ea); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY ^= OPER_I_16()); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_ai(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_AI_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_pi(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PI_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_pd(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PD_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_di(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_DI_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_ix(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_IX_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_aw(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AW_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_al(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AL_16(); + uint res = src ^ m68ki_read_16(ea); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_d(void) +{ + uint res = DY ^= OPER_I_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_ai(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_AI_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_pi(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PI_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_pd(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PD_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_di(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_DI_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_ix(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_IX_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_aw(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AW_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_32_al(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AL_32(); + uint res = src ^ m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_eori_16_toc(void) +{ + m68ki_set_ccr(m68ki_get_ccr() ^ OPER_I_16()); +} + + +void m68k_op_eori_16_tos(void) +{ + if(FLAG_S) + { + uint src = OPER_I_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(m68ki_get_sr() ^ src); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_exg_32_dd(void) +{ + uint* reg_a = &DX; + uint* reg_b = &DY; + uint tmp = *reg_a; + *reg_a = *reg_b; + *reg_b = tmp; +} + + +void m68k_op_exg_32_aa(void) +{ + uint* reg_a = &AX; + uint* reg_b = &AY; + uint tmp = *reg_a; + *reg_a = *reg_b; + *reg_b = tmp; +} + + +void m68k_op_exg_32_da(void) +{ + uint* reg_a = &DX; + uint* reg_b = &AY; + uint tmp = *reg_a; + *reg_a = *reg_b; + *reg_b = tmp; +} + + +void m68k_op_ext_16(void) +{ + uint* r_dst = &DY; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | MASK_OUT_ABOVE_8(*r_dst) | (GET_MSB_8(*r_dst) ? 0xff00 : 0); + + FLAG_N = NFLAG_16(*r_dst); + FLAG_Z = MASK_OUT_ABOVE_16(*r_dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_ext_32(void) +{ + uint* r_dst = &DY; + + *r_dst = MASK_OUT_ABOVE_16(*r_dst) | (GET_MSB_16(*r_dst) ? 0xffff0000 : 0); + + FLAG_N = NFLAG_32(*r_dst); + FLAG_Z = *r_dst; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_extb_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint* r_dst = &DY; + + *r_dst = MASK_OUT_ABOVE_8(*r_dst) | (GET_MSB_8(*r_dst) ? 0xffffff00 : 0); + + FLAG_N = NFLAG_32(*r_dst); + FLAG_Z = *r_dst; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_illegal(void) +{ + m68ki_exception_illegal(); +} + + +void m68k_op_jmp_32_ai(void) +{ + m68ki_jump(EA_AY_AI_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jmp_32_di(void) +{ + m68ki_jump(EA_AY_DI_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jmp_32_ix(void) +{ + m68ki_jump(EA_AY_IX_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jmp_32_aw(void) +{ + m68ki_jump(EA_AW_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jmp_32_al(void) +{ + m68ki_jump(EA_AL_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jmp_32_pcdi(void) +{ + m68ki_jump(EA_PCDI_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jmp_32_pcix(void) +{ + m68ki_jump(EA_PCIX_32()); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(REG_PC == REG_PPC) + USE_ALL_CYCLES(); +} + + +void m68k_op_jsr_32_ai(void) +{ + uint ea = EA_AY_AI_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_jsr_32_di(void) +{ + uint ea = EA_AY_DI_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_jsr_32_ix(void) +{ + uint ea = EA_AY_IX_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_jsr_32_aw(void) +{ + uint ea = EA_AW_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_jsr_32_al(void) +{ + uint ea = EA_AL_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_jsr_32_pcdi(void) +{ + uint ea = EA_PCDI_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_jsr_32_pcix(void) +{ + uint ea = EA_PCIX_32(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_push_32(REG_PC); + m68ki_jump(ea); +} + + +void m68k_op_lea_32_ai(void) +{ + AX = EA_AY_AI_32(); +} + + +void m68k_op_lea_32_di(void) +{ + AX = EA_AY_DI_32(); +} + + +void m68k_op_lea_32_ix(void) +{ + AX = EA_AY_IX_32(); +} + + +void m68k_op_lea_32_aw(void) +{ + AX = EA_AW_32(); +} + + +void m68k_op_lea_32_al(void) +{ + AX = EA_AL_32(); +} + + +void m68k_op_lea_32_pcdi(void) +{ + AX = EA_PCDI_32(); +} + + +void m68k_op_lea_32_pcix(void) +{ + AX = EA_PCIX_32(); +} + + +void m68k_op_link_16_a7(void) +{ + REG_A[7] -= 4; + m68ki_write_32(REG_A[7], REG_A[7]); + REG_A[7] = MASK_OUT_ABOVE_32(REG_A[7] + MAKE_INT_16(OPER_I_16())); +} + + +void m68k_op_link_16(void) +{ + uint* r_dst = &AY; + + m68ki_push_32(*r_dst); + *r_dst = REG_A[7]; + REG_A[7] = MASK_OUT_ABOVE_32(REG_A[7] + MAKE_INT_16(OPER_I_16())); +} + + +void m68k_op_link_32_a7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_A[7] -= 4; + m68ki_write_32(REG_A[7], REG_A[7]); + REG_A[7] = MASK_OUT_ABOVE_32(REG_A[7] + OPER_I_32()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_link_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint* r_dst = &AY; + + m68ki_push_32(*r_dst); + *r_dst = REG_A[7]; + REG_A[7] = MASK_OUT_ABOVE_32(REG_A[7] + OPER_I_32()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_lsr_8_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = src >> shift; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_X = FLAG_C = src << (9-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = src >> shift; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_X = FLAG_C = src << (9-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_32_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = *r_dst; + uint res = src >> shift; + + *r_dst = res; + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_X = FLAG_C = src << (9-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_8_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = src >> shift; + + if(shift != 0) + { + USE_CYCLES(shift<> shift; + + if(shift != 0) + { + USE_CYCLES(shift<> (shift - 1))<<8; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + *r_dst &= 0xffff0000; + FLAG_X = XFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_32_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = *r_dst; + uint res = src >> shift; + + if(shift != 0) + { + USE_CYCLES(shift<> (shift - 1))<<8; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + *r_dst = 0; + FLAG_X = FLAG_C = (shift == 32 ? GET_MSB_32(src)>>23 : 0); + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_32(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsr_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = src >> 1; + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_CLEAR; + FLAG_Z = res; + FLAG_C = FLAG_X = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_8_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = MASK_OUT_ABOVE_8(src << shift); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src << shift; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = MASK_OUT_ABOVE_16(src << shift); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> (8-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_32_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32(src << shift); + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> (24-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_8_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = MASK_OUT_ABOVE_8(src << shift); + + if(shift != 0) + { + USE_CYCLES(shift<> 8; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + *r_dst &= 0xffff0000; + FLAG_X = XFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_32_r(void) +{ + uint* r_dst = &DY; + uint shift = DX & 0x3f; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32(src << shift); + + if(shift != 0) + { + USE_CYCLES(shift<> (32 - shift)) << 8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + *r_dst = 0; + FLAG_X = FLAG_C = ((shift == 32 ? src & 1 : 0))<<8; + FLAG_N = NFLAG_CLEAR; + FLAG_Z = ZFLAG_SET; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_32(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_lsl_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(src << 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_X = FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_move_8_d_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_di(void) +{ + uint res = OPER_AY_DI_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_aw(void) +{ + uint res = OPER_AW_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_al(void) +{ + uint res = OPER_AL_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_d_i(void) +{ + uint res = OPER_I_8(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ai_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AX_AI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi7_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_A7_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pi_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AX_PI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd7_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_A7_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_pd_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AX_PD_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_di_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AX_DI_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_ix_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AX_IX_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_aw_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AW_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_ai(void) +{ + uint res = OPER_AY_AI_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_pi(void) +{ + uint res = OPER_AY_PI_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_pi7(void) +{ + uint res = OPER_A7_PI_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_pd(void) +{ + uint res = OPER_AY_PD_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_pd7(void) +{ + uint res = OPER_A7_PD_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_di(void) +{ + uint res = OPER_AY_DI_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_ix(void) +{ + uint res = OPER_AY_IX_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_aw(void) +{ + uint res = OPER_AW_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_al(void) +{ + uint res = OPER_AL_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_pcdi(void) +{ + uint res = OPER_PCDI_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_pcix(void) +{ + uint res = OPER_PCIX_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_8_al_i(void) +{ + uint res = OPER_I_8(); + uint ea = EA_AL_8(); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_di(void) +{ + uint res = OPER_AY_DI_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_aw(void) +{ + uint res = OPER_AW_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_al(void) +{ + uint res = OPER_AL_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_d_i(void) +{ + uint res = OPER_I_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ai_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AX_AI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pi_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AX_PI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_pd_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AX_PD_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_di_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AX_DI_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_ix_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AX_IX_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_aw_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AW_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_a(void) +{ + uint res = MASK_OUT_ABOVE_16(AY); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_ai(void) +{ + uint res = OPER_AY_AI_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_pi(void) +{ + uint res = OPER_AY_PI_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_pd(void) +{ + uint res = OPER_AY_PD_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_di(void) +{ + uint res = OPER_AY_DI_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_ix(void) +{ + uint res = OPER_AY_IX_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_aw(void) +{ + uint res = OPER_AW_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_al(void) +{ + uint res = OPER_AL_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_pcdi(void) +{ + uint res = OPER_PCDI_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_pcix(void) +{ + uint res = OPER_PCIX_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_16_al_i(void) +{ + uint res = OPER_I_16(); + uint ea = EA_AL_16(); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_d(void) +{ + uint res = DY; + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_a(void) +{ + uint res = AY; + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_di(void) +{ + uint res = OPER_AY_DI_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_aw(void) +{ + uint res = OPER_AW_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_al(void) +{ + uint res = OPER_AL_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_d_i(void) +{ + uint res = OPER_I_32(); + uint* r_dst = &DX; + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_d(void) +{ + uint res = DY; + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_a(void) +{ + uint res = AY; + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ai_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AX_AI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_d(void) +{ + uint res = DY; + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_a(void) +{ + uint res = AY; + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pi_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AX_PI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_d(void) +{ + uint res = DY; + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_a(void) +{ + uint res = AY; + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_pd_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AX_PD_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_d(void) +{ + uint res = DY; + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_a(void) +{ + uint res = AY; + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_di_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AX_DI_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_d(void) +{ + uint res = DY; + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_a(void) +{ + uint res = AY; + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_ix_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AX_IX_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_d(void) +{ + uint res = DY; + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_a(void) +{ + uint res = AY; + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_aw_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AW_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_d(void) +{ + uint res = DY; + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_a(void) +{ + uint res = AY; + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_ai(void) +{ + uint res = OPER_AY_AI_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_pi(void) +{ + uint res = OPER_AY_PI_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_pd(void) +{ + uint res = OPER_AY_PD_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_di(void) +{ + uint res = OPER_AY_DI_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_ix(void) +{ + uint res = OPER_AY_IX_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_aw(void) +{ + uint res = OPER_AW_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_al(void) +{ + uint res = OPER_AL_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_pcdi(void) +{ + uint res = OPER_PCDI_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_pcix(void) +{ + uint res = OPER_PCIX_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_move_32_al_i(void) +{ + uint res = OPER_I_32(); + uint ea = EA_AL_32(); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_movea_16_d(void) +{ + AX = MAKE_INT_16(DY); +} + + +void m68k_op_movea_16_a(void) +{ + AX = MAKE_INT_16(AY); +} + + +void m68k_op_movea_16_ai(void) +{ + AX = MAKE_INT_16(OPER_AY_AI_16()); +} + + +void m68k_op_movea_16_pi(void) +{ + AX = MAKE_INT_16(OPER_AY_PI_16()); +} + + +void m68k_op_movea_16_pd(void) +{ + AX = MAKE_INT_16(OPER_AY_PD_16()); +} + + +void m68k_op_movea_16_di(void) +{ + AX = MAKE_INT_16(OPER_AY_DI_16()); +} + + +void m68k_op_movea_16_ix(void) +{ + AX = MAKE_INT_16(OPER_AY_IX_16()); +} + + +void m68k_op_movea_16_aw(void) +{ + AX = MAKE_INT_16(OPER_AW_16()); +} + + +void m68k_op_movea_16_al(void) +{ + AX = MAKE_INT_16(OPER_AL_16()); +} + + +void m68k_op_movea_16_pcdi(void) +{ + AX = MAKE_INT_16(OPER_PCDI_16()); +} + + +void m68k_op_movea_16_pcix(void) +{ + AX = MAKE_INT_16(OPER_PCIX_16()); +} + + +void m68k_op_movea_16_i(void) +{ + AX = MAKE_INT_16(OPER_I_16()); +} + + +void m68k_op_movea_32_d(void) +{ + AX = DY; +} + + +void m68k_op_movea_32_a(void) +{ + AX = AY; +} + + +void m68k_op_movea_32_ai(void) +{ + AX = OPER_AY_AI_32(); +} + + +void m68k_op_movea_32_pi(void) +{ + AX = OPER_AY_PI_32(); +} + + +void m68k_op_movea_32_pd(void) +{ + AX = OPER_AY_PD_32(); +} + + +void m68k_op_movea_32_di(void) +{ + AX = OPER_AY_DI_32(); +} + + +void m68k_op_movea_32_ix(void) +{ + AX = OPER_AY_IX_32(); +} + + +void m68k_op_movea_32_aw(void) +{ + AX = OPER_AW_32(); +} + + +void m68k_op_movea_32_al(void) +{ + AX = OPER_AL_32(); +} + + +void m68k_op_movea_32_pcdi(void) +{ + AX = OPER_PCDI_32(); +} + + +void m68k_op_movea_32_pcix(void) +{ + AX = OPER_PCIX_32(); +} + + +void m68k_op_movea_32_i(void) +{ + AX = OPER_I_32(); +} + + +void m68k_op_move_16_frc_d(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + DY = MASK_OUT_BELOW_16(DY) | m68ki_get_ccr(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_ai(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AY_AI_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_pi(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AY_PI_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_pd(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AY_PD_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_di(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AY_DI_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_ix(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AY_IX_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_aw(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AW_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_frc_al(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + m68ki_write_16(EA_AL_16(), m68ki_get_ccr()); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_move_16_toc_d(void) +{ + m68ki_set_ccr(DY); +} + + +void m68k_op_move_16_toc_ai(void) +{ + m68ki_set_ccr(OPER_AY_AI_16()); +} + + +void m68k_op_move_16_toc_pi(void) +{ + m68ki_set_ccr(OPER_AY_PI_16()); +} + + +void m68k_op_move_16_toc_pd(void) +{ + m68ki_set_ccr(OPER_AY_PD_16()); +} + + +void m68k_op_move_16_toc_di(void) +{ + m68ki_set_ccr(OPER_AY_DI_16()); +} + + +void m68k_op_move_16_toc_ix(void) +{ + m68ki_set_ccr(OPER_AY_IX_16()); +} + + +void m68k_op_move_16_toc_aw(void) +{ + m68ki_set_ccr(OPER_AW_16()); +} + + +void m68k_op_move_16_toc_al(void) +{ + m68ki_set_ccr(OPER_AL_16()); +} + + +void m68k_op_move_16_toc_pcdi(void) +{ + m68ki_set_ccr(OPER_PCDI_16()); +} + + +void m68k_op_move_16_toc_pcix(void) +{ + m68ki_set_ccr(OPER_PCIX_16()); +} + + +void m68k_op_move_16_toc_i(void) +{ + m68ki_set_ccr(OPER_I_16()); +} + + +void m68k_op_move_16_frs_d(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + DY = MASK_OUT_BELOW_16(DY) | m68ki_get_sr(); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_ai(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AY_AI_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_pi(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AY_PI_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_pd(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AY_PD_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_di(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AY_DI_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_ix(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AY_IX_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_aw(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AW_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_frs_al(void) +{ + if(CPU_TYPE_IS_000(CPU_TYPE) || FLAG_S) /* NS990408 */ + { + uint ea = EA_AL_16(); + m68ki_write_16(ea, m68ki_get_sr()); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_d(void) +{ + if(FLAG_S) + { + m68ki_set_sr(DY); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_ai(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AY_AI_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_pi(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AY_PI_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_pd(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AY_PD_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_di(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AY_DI_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_ix(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AY_IX_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_aw(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AW_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_al(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_AL_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_pcdi(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_PCDI_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_pcix(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_PCIX_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_16_tos_i(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_I_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(new_sr); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_32_fru(void) +{ + if(FLAG_S) + { + AY = REG_USP; + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_move_32_tou(void) +{ + if(FLAG_S) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_USP = AY; + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_movec_32_cr(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + switch (word2 & 0xfff) + { + case 0x000: /* SFC */ + REG_DA[(word2 >> 12) & 15] = REG_SFC; + return; + case 0x001: /* DFC */ + REG_DA[(word2 >> 12) & 15] = REG_DFC; + return; + case 0x002: /* CACR */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_DA[(word2 >> 12) & 15] = REG_CACR; + return; + } + return; + case 0x800: /* USP */ + REG_DA[(word2 >> 12) & 15] = REG_USP; + return; + case 0x801: /* VBR */ + REG_DA[(word2 >> 12) & 15] = REG_VBR; + return; + case 0x802: /* CAAR */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_DA[(word2 >> 12) & 15] = REG_CAAR; + return; + } + m68ki_exception_illegal(); + break; + case 0x803: /* MSP */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_DA[(word2 >> 12) & 15] = FLAG_M ? REG_SP : REG_MSP; + return; + } + m68ki_exception_illegal(); + return; + case 0x804: /* ISP */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_DA[(word2 >> 12) & 15] = FLAG_M ? REG_ISP : REG_SP; + return; + } + m68ki_exception_illegal(); + return; + default: + m68ki_exception_illegal(); + return; + } + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_movec_32_rc(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + switch (word2 & 0xfff) + { + case 0x000: /* SFC */ + REG_SFC = REG_DA[(word2 >> 12) & 15] & 7; + return; + case 0x001: /* DFC */ + REG_DFC = REG_DA[(word2 >> 12) & 15] & 7; + return; + case 0x002: /* CACR */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_CACR = REG_DA[(word2 >> 12) & 15]; + return; + } + m68ki_exception_illegal(); + return; + case 0x800: /* USP */ + REG_USP = REG_DA[(word2 >> 12) & 15]; + return; + case 0x801: /* VBR */ + REG_VBR = REG_DA[(word2 >> 12) & 15]; + return; + case 0x802: /* CAAR */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_CAAR = REG_DA[(word2 >> 12) & 15]; + return; + } + m68ki_exception_illegal(); + return; + case 0x803: /* MSP */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* we are in supervisor mode so just check for M flag */ + if(!FLAG_M) + { + REG_MSP = REG_DA[(word2 >> 12) & 15]; + return; + } + REG_SP = REG_DA[(word2 >> 12) & 15]; + return; + } + m68ki_exception_illegal(); + return; + case 0x804: /* ISP */ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(!FLAG_M) + { + REG_SP = REG_DA[(word2 >> 12) & 15]; + return; + } + REG_ISP = REG_DA[(word2 >> 12) & 15]; + return; + } + m68ki_exception_illegal(); + return; + default: + m68ki_exception_illegal(); + return; + } + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_movem_16_re_pd(void) +{ + uint i = 0; + uint register_list = OPER_I_16(); + uint ea = AY; + uint count = 0; + + for(; i < 16; i++) + if(register_list & (1 << i)) + { + ea -= 2; + m68ki_write_16(ea, MASK_OUT_ABOVE_16(REG_DA[15-i])); + count++; + } + AY = ea; + + USE_CYCLES(count<> 8)); + m68ki_write_8(ea += 2, MASK_OUT_ABOVE_8(src)); +} + + +void m68k_op_movep_32_re(void) +{ + uint ea = EA_AY_DI_32(); + uint src = DX; + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(src >> 24)); + m68ki_write_8(ea += 2, MASK_OUT_ABOVE_8(src >> 16)); + m68ki_write_8(ea += 2, MASK_OUT_ABOVE_8(src >> 8)); + m68ki_write_8(ea += 2, MASK_OUT_ABOVE_8(src)); +} + + +void m68k_op_movep_16_er(void) +{ + uint ea = EA_AY_DI_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | ((m68ki_read_8(ea) << 8) + m68ki_read_8(ea + 2)); +} + + +void m68k_op_movep_32_er(void) +{ + uint ea = EA_AY_DI_32(); + + DX = (m68ki_read_8(ea) << 24) + (m68ki_read_8(ea + 2) << 16) + + (m68ki_read_8(ea + 4) << 8) + m68ki_read_8(ea + 6); +} + + +void m68k_op_moves_8_ai(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_AI_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_pi(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PI_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_pi7(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_A7_PI_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_pd(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PD_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_pd7(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_A7_PD_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_di(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_DI_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_ix(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_IX_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_aw(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AW_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_8_al(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AL_8(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_8_fc(ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_ai(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_AI_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_pi(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PI_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_pd(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PD_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_di(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_DI_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_ix(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_IX_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_aw(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AW_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_16_al(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AL_16(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_16_fc(ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + return; + } + if(BIT_F(word2)) /* Memory to address register */ + { + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(ea, REG_SFC)); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to data register */ + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_ai(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_AI_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_pi(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PI_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_pd(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_PD_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_di(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_DI_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_ix(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AY_IX_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_aw(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AW_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moves_32_al(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + if(FLAG_S) + { + uint word2 = OPER_I_16(); + uint ea = EA_AL_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + if(BIT_B(word2)) /* Register to memory */ + { + m68ki_write_32_fc(ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + /* Memory to register */ + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(ea, REG_SFC); + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + USE_CYCLES(2); + return; + } + m68ki_exception_privilege_violation(); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_moveq_32(void) +{ + uint res = DX = MAKE_INT_8(MASK_OUT_ABOVE_8(REG_IR)); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_d(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(DY) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_ai(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AY_AI_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_pi(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AY_PI_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_pd(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AY_PD_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_di(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AY_DI_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_ix(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AY_IX_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_aw(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AW_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_al(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_AL_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_pcdi(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_PCDI_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_pcix(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_PCIX_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_muls_16_i(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_32(MAKE_INT_16(OPER_I_16()) * MAKE_INT_16(MASK_OUT_ABOVE_16(*r_dst))); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_d(void) +{ + uint* r_dst = &DX; + uint res = MASK_OUT_ABOVE_16(DY) * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_ai(void) +{ + uint* r_dst = &DX; + uint res = OPER_AY_AI_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_pi(void) +{ + uint* r_dst = &DX; + uint res = OPER_AY_PI_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_pd(void) +{ + uint* r_dst = &DX; + uint res = OPER_AY_PD_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_di(void) +{ + uint* r_dst = &DX; + uint res = OPER_AY_DI_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_ix(void) +{ + uint* r_dst = &DX; + uint res = OPER_AY_IX_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_aw(void) +{ + uint* r_dst = &DX; + uint res = OPER_AW_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_al(void) +{ + uint* r_dst = &DX; + uint res = OPER_AL_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_pcdi(void) +{ + uint* r_dst = &DX; + uint res = OPER_PCDI_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_pcix(void) +{ + uint* r_dst = &DX; + uint res = OPER_PCIX_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mulu_16_i(void) +{ + uint* r_dst = &DX; + uint res = OPER_I_16() * MASK_OUT_ABOVE_16(*r_dst); + + *r_dst = res; + + FLAG_Z = res; + FLAG_N = NFLAG_32(res); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_mull_32_d(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = DY; + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = DY; + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_ai(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AY_AI_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AY_AI_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_pi(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AY_PI_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AY_PI_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_pd(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AY_PD_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AY_PD_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_di(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AY_DI_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AY_DI_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_ix(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AY_IX_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AY_IX_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_aw(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AW_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AW_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_al(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_AL_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_AL_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_pcdi(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_PCDI_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_PCDI_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_pcix(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_PCIX_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_PCIX_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +void m68k_op_mull_32_i(void) +{ +#if M68K_USE_64_BIT + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint64 src = OPER_I_32(); + uint64 dst = REG_D[(word2 >> 12) & 7]; + uint64 res; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + res = (sint64)((sint32)src) * (sint64)((sint32)dst); + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = ((sint64)res != (sint32)res)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + + res = src * dst; + if(!BIT_A(word2)) + { + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_N = NFLAG_32(res); + FLAG_V = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = FLAG_Z; + return; + } + FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); + FLAG_N = NFLAG_64(res); + FLAG_V = VFLAG_CLEAR; + REG_D[word2 & 7] = (res >> 32); + REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); + return; + } + m68ki_exception_illegal(); + +#else + + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint word2 = OPER_I_16(); + uint src = OPER_I_32(); + uint dst = REG_D[(word2 >> 12) & 7]; + uint neg = GET_MSB_32(src ^ dst); + uint src1; + uint src2; + uint dst1; + uint dst2; + uint r1; + uint r2; + uint r3; + uint r4; + uint lo; + uint hi; + + FLAG_C = CFLAG_CLEAR; + + if(BIT_B(word2)) /* signed */ + { + if(GET_MSB_32(src)) + src = (uint)MASK_OUT_ABOVE_32(-(sint)src); + if(GET_MSB_32(dst)) + dst = (uint)MASK_OUT_ABOVE_32(-(sint)dst); + } + + src1 = MASK_OUT_ABOVE_16(src); + src2 = src>>16; + dst1 = MASK_OUT_ABOVE_16(dst); + dst2 = dst>>16; + + + r1 = src1 * dst1; + r2 = src1 * dst2; + r3 = src2 * dst1; + r4 = src2 * dst2; + + lo = r1 + (MASK_OUT_ABOVE_16(r2)<<16) + (MASK_OUT_ABOVE_16(r3)<<16); + hi = r4 + (r2>>16) + (r3>>16) + (((r1>>16) + MASK_OUT_ABOVE_16(r2) + MASK_OUT_ABOVE_16(r3)) >> 16); + + if(BIT_B(word2) && neg) + { + hi = (uint)MASK_OUT_ABOVE_32((-(sint)hi) - (lo != 0)); + lo = (uint)MASK_OUT_ABOVE_32(-(sint)lo); + } + + if(BIT_A(word2)) + { + REG_D[word2 & 7] = hi; + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(hi); + FLAG_Z = hi | lo; + FLAG_V = VFLAG_CLEAR; + return; + } + + REG_D[(word2 >> 12) & 7] = lo; + FLAG_N = NFLAG_32(lo); + FLAG_Z = lo; + if(BIT_B(word2)) + FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + else + FLAG_V = (hi != 0) << 7; + return; + } + m68ki_exception_illegal(); + +#endif +} + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + + diff --git a/AltairZ80/m68kopnz.c b/AltairZ80/m68kopnz.c new file mode 100644 index 00000000..11ba57a1 --- /dev/null +++ b/AltairZ80/m68kopnz.c @@ -0,0 +1,8710 @@ +#include "m68kcpu.h" + +/* ======================================================================== */ +/* ========================= INSTRUCTION HANDLERS ========================= */ +/* ======================================================================== */ + + +void m68k_op_nbcd_8_d(void) +{ + uint* r_dst = &DY; + uint dst = *r_dst; + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_aw(void) +{ + uint ea = EA_AW_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_nbcd_8_al(void) +{ + uint ea = EA_AL_8(); + uint dst = m68ki_read_8(ea); + uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + + if(res != 0x9a) + { + if((res & 0x0f) == 0xa) + res = (res & 0xf0) + 0x10; + + res = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, MASK_OUT_ABOVE_8(res)); + + FLAG_Z |= res; + FLAG_C = CFLAG_SET; + FLAG_X = XFLAG_SET; + } + else + { + FLAG_C = CFLAG_CLEAR; + FLAG_X = XFLAG_CLEAR; + } + FLAG_N = NFLAG_8(res); /* officially undefined */ +} + + +void m68k_op_neg_8_d(void) +{ + uint* r_dst = &DY; + uint res = 0 - MASK_OUT_ABOVE_8(*r_dst); + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = *r_dst & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_neg_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_aw(void) +{ + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_8_al(void) +{ + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_8(res); + FLAG_C = FLAG_X = CFLAG_8(res); + FLAG_V = src & res; + FLAG_Z = MASK_OUT_ABOVE_8(res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_neg_16_d(void) +{ + uint* r_dst = &DY; + uint res = 0 - MASK_OUT_ABOVE_16(*r_dst); + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (*r_dst & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_neg_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_16(res); + FLAG_C = FLAG_X = CFLAG_16(res); + FLAG_V = (src & res)>>8; + FLAG_Z = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_neg_32_d(void) +{ + uint* r_dst = &DY; + uint res = 0 - *r_dst; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(*r_dst, 0, res); + FLAG_V = (*r_dst & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_neg_32_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_neg_32_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_neg_32_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_neg_32_di(void) +{ + uint ea = EA_AY_DI_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_neg_32_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_neg_32_aw(void) +{ + uint ea = EA_AW_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_neg_32_al(void) +{ + uint ea = EA_AL_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - src; + + FLAG_N = NFLAG_32(res); + FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + FLAG_Z = MASK_OUT_ABOVE_32(res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_negx_8_d(void) +{ + uint* r_dst = &DY; + uint res = 0 - MASK_OUT_ABOVE_8(*r_dst) - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = *r_dst & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; +} + + +void m68k_op_negx_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_aw(void) +{ + uint ea = EA_AW_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_8_al(void) +{ + uint ea = EA_AL_8(); + uint src = m68ki_read_8(ea); + uint res = 0 - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = src & res; + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_negx_16_d(void) +{ + uint* r_dst = &DY; + uint res = 0 - MASK_OUT_ABOVE_16(*r_dst) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (*r_dst & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; +} + + +void m68k_op_negx_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = (src & res)>>8; + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_negx_32_d(void) +{ + uint* r_dst = &DY; + uint res = 0 - MASK_OUT_ABOVE_32(*r_dst) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(*r_dst, 0, res); + FLAG_V = (*r_dst & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + *r_dst = res; +} + + +void m68k_op_negx_32_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_negx_32_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_negx_32_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_negx_32_di(void) +{ + uint ea = EA_AY_DI_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_negx_32_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_negx_32_aw(void) +{ + uint ea = EA_AW_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_negx_32_al(void) +{ + uint ea = EA_AL_32(); + uint src = m68ki_read_32(ea); + uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); + FLAG_V = (src & res)>>24; + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_nop(void) +{ + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ +} + + +void m68k_op_not_8_d(void) +{ + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_8(~*r_dst); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_aw(void) +{ + uint ea = EA_AW_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_8_al(void) +{ + uint ea = EA_AL_8(); + uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_d(void) +{ + uint* r_dst = &DY; + uint res = MASK_OUT_ABOVE_16(~*r_dst); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_aw(void) +{ + uint ea = EA_AW_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_16_al(void) +{ + uint ea = EA_AL_16(); + uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_d(void) +{ + uint* r_dst = &DY; + uint res = *r_dst = MASK_OUT_ABOVE_32(~*r_dst); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_di(void) +{ + uint ea = EA_AY_DI_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_aw(void) +{ + uint ea = EA_AW_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_not_32_al(void) +{ + uint ea = EA_AL_32(); + uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea)); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_d(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= MASK_OUT_ABOVE_8(DY))); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_ai(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_AI_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_pi(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_PI_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_pi7(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_A7_PI_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_pd(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_PD_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_pd7(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_A7_PD_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_di(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_DI_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_ix(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_IX_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_aw(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AW_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_al(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_AL_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_pcdi(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_PCDI_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_pcix(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_PCIX_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_er_i(void) +{ + uint res = MASK_OUT_ABOVE_8((DX |= OPER_I_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_d(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= MASK_OUT_ABOVE_16(DY))); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_ai(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_AI_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_pi(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_PI_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_pd(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_PD_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_di(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_DI_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_ix(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_IX_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_aw(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AW_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_al(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_AL_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_pcdi(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_PCDI_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_pcix(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_PCIX_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_er_i(void) +{ + uint res = MASK_OUT_ABOVE_16((DX |= OPER_I_16())); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_d(void) +{ + uint res = DX |= DY; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_ai(void) +{ + uint res = DX |= OPER_AY_AI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_pi(void) +{ + uint res = DX |= OPER_AY_PI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_pd(void) +{ + uint res = DX |= OPER_AY_PD_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_di(void) +{ + uint res = DX |= OPER_AY_DI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_ix(void) +{ + uint res = DX |= OPER_AY_IX_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_aw(void) +{ + uint res = DX |= OPER_AW_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_al(void) +{ + uint res = DX |= OPER_AL_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_pcdi(void) +{ + uint res = DX |= OPER_PCDI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_pcix(void) +{ + uint res = DX |= OPER_PCIX_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_er_i(void) +{ + uint res = DX |= OPER_I_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_di(void) +{ + uint ea = EA_AY_DI_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_aw(void) +{ + uint ea = EA_AW_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_8_re_al(void) +{ + uint ea = EA_AL_8(); + uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_di(void) +{ + uint ea = EA_AY_DI_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_aw(void) +{ + uint ea = EA_AW_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_16_re_al(void) +{ + uint ea = EA_AL_16(); + uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_di(void) +{ + uint ea = EA_AY_DI_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_aw(void) +{ + uint ea = EA_AW_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_or_32_re_al(void) +{ + uint ea = EA_AL_32(); + uint res = DX | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_d(void) +{ + uint res = MASK_OUT_ABOVE_8((DY |= OPER_I_8())); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_ai(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_AI_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_pi(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PI_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_pi7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PI_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_pd(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PD_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_pd7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PD_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_di(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_DI_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_ix(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_IX_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_aw(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AW_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_8_al(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AL_8(); + uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea)); + + m68ki_write_8(ea, res); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY |= OPER_I_16()); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_ai(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_AI_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_pi(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PI_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_pd(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PD_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_di(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_DI_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_ix(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_IX_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_aw(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AW_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_al(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AL_16(); + uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_d(void) +{ + uint res = DY |= OPER_I_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_ai(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_AI_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_pi(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PI_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_pd(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PD_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_di(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_DI_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_ix(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_IX_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_aw(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AW_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_32_al(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AL_32(); + uint res = src | m68ki_read_32(ea); + + m68ki_write_32(ea, res); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ori_16_toc(void) +{ + m68ki_set_ccr(m68ki_get_ccr() | OPER_I_16()); +} + + +void m68k_op_ori_16_tos(void) +{ + if(FLAG_S) + { + uint src = OPER_I_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_sr(m68ki_get_sr() | src); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_pack_16_rr(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: DX and DY are reversed in Motorola's docs */ + uint src = DY + OPER_I_16(); + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | ((src >> 4) & 0x00f0) | (src & 0x000f); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_pack_16_mm_ax7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: AX and AY are reversed in Motorola's docs */ + uint ea_src = EA_AY_PD_8(); + uint src = m68ki_read_8(ea_src); + ea_src = EA_AY_PD_8(); + src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16(); + + m68ki_write_8(EA_A7_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f)); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_pack_16_mm_ay7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: AX and AY are reversed in Motorola's docs */ + uint ea_src = EA_A7_PD_8(); + uint src = m68ki_read_8(ea_src); + ea_src = EA_A7_PD_8(); + src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16(); + + m68ki_write_8(EA_AX_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f)); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_pack_16_mm_axy7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint ea_src = EA_A7_PD_8(); + uint src = m68ki_read_8(ea_src); + ea_src = EA_A7_PD_8(); + src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16(); + + m68ki_write_8(EA_A7_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f)); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_pack_16_mm(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: AX and AY are reversed in Motorola's docs */ + uint ea_src = EA_AY_PD_8(); + uint src = m68ki_read_8(ea_src); + ea_src = EA_AY_PD_8(); + src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16(); + + m68ki_write_8(EA_AX_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f)); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_pea_32_ai(void) +{ + uint ea = EA_AY_AI_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_pea_32_di(void) +{ + uint ea = EA_AY_DI_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_pea_32_ix(void) +{ + uint ea = EA_AY_IX_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_pea_32_aw(void) +{ + uint ea = EA_AW_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_pea_32_al(void) +{ + uint ea = EA_AL_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_pea_32_pcdi(void) +{ + uint ea = EA_PCDI_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_pea_32_pcix(void) +{ + uint ea = EA_PCIX_32(); + + m68ki_push_32(ea); +} + + +void m68k_op_reset(void) +{ + if(FLAG_S) + { + m68ki_output_reset(); /* auto-disable (see m68kcpu.h) */ + USE_CYCLES(CYC_RESET); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_ror_8_s(void) +{ + uint* r_dst = &DY; + uint orig_shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint shift = orig_shift & 7; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROR_8(src, shift); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = src << (9-orig_shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = ROR_16(src, shift); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << (9-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_32_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint64 src = *r_dst; + uint res = ROR_32(src, shift); + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = src << (9-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_8_r(void) +{ + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + uint shift = orig_shift & 7; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROR_8(src, shift); + + if(orig_shift != 0) + { + USE_CYCLES(orig_shift<> ((shift - 1) & 15)) << 8; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_32_r(void) +{ + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + uint shift = orig_shift & 31; + uint64 src = *r_dst; + uint res = ROR_32(src, shift); + + if(orig_shift != 0) + { + USE_CYCLES(orig_shift<> ((shift - 1) & 31)) << 8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_32(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_ror_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_16(src, 1); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src << 8; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_8_s(void) +{ + uint* r_dst = &DY; + uint orig_shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint shift = orig_shift & 7; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROL_8(src, shift); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_C = src << orig_shift; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = ROL_16(src, shift); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> (8-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_32_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint64 src = *r_dst; + uint res = ROL_32(src, shift); + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_C = src >> (24-shift); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_8_r(void) +{ + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + uint shift = orig_shift & 7; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROL_8(src, shift); + + if(orig_shift != 0) + { + USE_CYCLES(orig_shift<> 8; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + FLAG_C = (src & 1)<<8; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_16(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_32_r(void) +{ + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + uint shift = orig_shift & 31; + uint64 src = *r_dst; + uint res = ROL_32(src, shift); + + if(orig_shift != 0) + { + USE_CYCLES(orig_shift<> (32 - shift)) << 8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = CFLAG_CLEAR; + FLAG_N = NFLAG_32(src); + FLAG_Z = src; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rol_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1)); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_C = src >> 7; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_8_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROR_9(src | (XFLAG_AS_1() << 8), shift); + + FLAG_C = FLAG_X = res; + res = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), shift); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_32_s(void) +{ +#if M68K_USE_64_BIT + + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint64 src = *r_dst; + uint64 res = src | (((uint64)XFLAG_AS_1()) << 32); + + res = ROR_33_64(res, shift); + + FLAG_C = FLAG_X = res >> 24; + res = MASK_OUT_ABOVE_32(res); + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + +#else + + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1() << (32 - shift))); + uint new_x_flag = src & (1 << (shift - 1)); + + *r_dst = res; + + FLAG_C = FLAG_X = (new_x_flag != 0)<<8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + +#endif +} + + +void m68k_op_roxr_8_r(void) +{ + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + + if(orig_shift != 0) + { + uint shift = orig_shift % 9; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROR_9(src | (XFLAG_AS_1() << 8), shift); + + USE_CYCLES(orig_shift<> 8; + res = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = FLAG_X; + FLAG_N = NFLAG_16(*r_dst); + FLAG_Z = MASK_OUT_ABOVE_16(*r_dst); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_32_r(void) +{ +#if M68K_USE_64_BIT + + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + + if(orig_shift != 0) + { + uint shift = orig_shift % 33; + uint64 src = *r_dst; + uint64 res = src | (((uint64)XFLAG_AS_1()) << 32); + + res = ROR_33_64(res, shift); + + USE_CYCLES(orig_shift<> 24; + res = MASK_OUT_ABOVE_32(res); + + *r_dst = res; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = FLAG_X; + FLAG_N = NFLAG_32(*r_dst); + FLAG_Z = *r_dst; + FLAG_V = VFLAG_CLEAR; + +#else + + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + uint shift = orig_shift % 33; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1() << (32 - shift))); + uint new_x_flag = src & (1 << (shift - 1)); + + if(orig_shift != 0) + USE_CYCLES(orig_shift<> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxr_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_8_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROL_9(src | (XFLAG_AS_1() << 8), shift); + + FLAG_C = FLAG_X = res; + res = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_s(void) +{ + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = MASK_OUT_ABOVE_16(*r_dst); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), shift); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_32_s(void) +{ +#if M68K_USE_64_BIT + + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint64 src = *r_dst; + uint64 res = src | (((uint64)XFLAG_AS_1()) << 32); + + res = ROL_33_64(res, shift); + + FLAG_C = FLAG_X = res >> 24; + res = MASK_OUT_ABOVE_32(res); + + *r_dst = res; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + +#else + + uint* r_dst = &DY; + uint shift = (((REG_IR >> 9) - 1) & 7) + 1; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1() << (shift - 1))); + uint new_x_flag = src & (1 << (32 - shift)); + + *r_dst = res; + + FLAG_C = FLAG_X = (new_x_flag != 0)<<8; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + +#endif +} + + +void m68k_op_roxl_8_r(void) +{ + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + + + if(orig_shift != 0) + { + uint shift = orig_shift % 9; + uint src = MASK_OUT_ABOVE_8(*r_dst); + uint res = ROL_9(src | (XFLAG_AS_1() << 8), shift); + + USE_CYCLES(orig_shift<> 8; + res = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = FLAG_X; + FLAG_N = NFLAG_16(*r_dst); + FLAG_Z = MASK_OUT_ABOVE_16(*r_dst); + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_32_r(void) +{ +#if M68K_USE_64_BIT + + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + + if(orig_shift != 0) + { + uint shift = orig_shift % 33; + uint64 src = *r_dst; + uint64 res = src | (((uint64)XFLAG_AS_1()) << 32); + + res = ROL_33_64(res, shift); + + USE_CYCLES(orig_shift<> 24; + res = MASK_OUT_ABOVE_32(res); + + *r_dst = res; + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + return; + } + + FLAG_C = FLAG_X; + FLAG_N = NFLAG_32(*r_dst); + FLAG_Z = *r_dst; + FLAG_V = VFLAG_CLEAR; + +#else + + uint* r_dst = &DY; + uint orig_shift = DX & 0x3f; + uint shift = orig_shift % 33; + uint src = *r_dst; + uint res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1() << (shift - 1))); + uint new_x_flag = src & (1 << (32 - shift)); + + if(orig_shift != 0) + USE_CYCLES(orig_shift<> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = m68ki_read_16(ea); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = m68ki_read_16(ea); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = m68ki_read_16(ea); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = m68ki_read_16(ea); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_aw(void) +{ + uint ea = EA_AW_16(); + uint src = m68ki_read_16(ea); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_roxl_16_al(void) +{ + uint ea = EA_AL_16(); + uint src = m68ki_read_16(ea); + uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + + FLAG_C = FLAG_X = res >> 8; + res = MASK_OUT_ABOVE_16(res); + + m68ki_write_16(ea, res); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_rtd_32(void) +{ + if(CPU_TYPE_IS_010_PLUS(CPU_TYPE)) + { + uint new_pc = m68ki_pull_32(); + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + REG_A[7] = MASK_OUT_ABOVE_32(REG_A[7] + MAKE_INT_16(OPER_I_16())); + m68ki_jump(new_pc); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_rte_32(void) +{ + if(FLAG_S) + { + uint new_sr; + uint new_pc; + uint format_word; + + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + + if(CPU_TYPE_IS_000(CPU_TYPE)) + { + new_sr = m68ki_pull_16(); + new_pc = m68ki_pull_32(); + m68ki_jump(new_pc); + m68ki_set_sr(new_sr); + return; + } + + if(CPU_TYPE_IS_010(CPU_TYPE)) + { + format_word = m68ki_read_16(REG_A[7]+6) >> 12; + if(format_word == 0) + { + new_sr = m68ki_pull_16(); + new_pc = m68ki_pull_32(); + m68ki_fake_pull_16(); /* format word */ + m68ki_jump(new_pc); + m68ki_set_sr(new_sr); + return; + } + /* Not handling bus fault (9) */ + m68ki_exception_format_error(); + return; + } + + /* Otherwise it's 020 */ +rte_loop: + format_word = m68ki_read_16(REG_A[7]+6) >> 12; + switch(format_word) + { + case 0: /* Normal */ + new_sr = m68ki_pull_16(); + new_pc = m68ki_pull_32(); + m68ki_fake_pull_16(); /* format word */ + m68ki_jump(new_pc); + m68ki_set_sr(new_sr); + return; + case 1: /* Throwaway */ + new_sr = m68ki_pull_16(); + m68ki_fake_pull_32(); /* program counter */ + m68ki_fake_pull_16(); /* format word */ + m68ki_set_sr_noint(new_sr); + goto rte_loop; + case 2: /* Trap */ + new_sr = m68ki_pull_16(); + new_pc = m68ki_pull_32(); + m68ki_fake_pull_16(); /* format word */ + m68ki_fake_pull_32(); /* address */ + m68ki_jump(new_pc); + m68ki_set_sr(new_sr); + return; + } + /* Not handling long or short bus fault */ + m68ki_exception_format_error(); + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_rtm_32(void) +{ + if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE)) + { + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", + m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR, + m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_rtr_32(void) +{ + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_set_ccr(m68ki_pull_16()); + m68ki_jump(m68ki_pull_32()); +} + + +void m68k_op_rts_32(void) +{ + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + m68ki_jump(m68ki_pull_32()); +} + + +void m68k_op_sbcd_8_rr(void) +{ + uint* r_dst = &DX; + uint src = DY; + uint dst = *r_dst; + uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + + if(res > 9) + res -= 6; + res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res += 0xa0; + + res = MASK_OUT_ABOVE_8(res); + + FLAG_N = NFLAG_8(res); /* officially undefined */ + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; +} + + +void m68k_op_sbcd_8_mm_ax7(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + + if(res > 9) + res -= 6; + res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res += 0xa0; + + res = MASK_OUT_ABOVE_8(res); + + FLAG_N = NFLAG_8(res); /* officially undefined */ + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_sbcd_8_mm_ay7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + + if(res > 9) + res -= 6; + res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res += 0xa0; + + res = MASK_OUT_ABOVE_8(res); + + FLAG_N = NFLAG_8(res); /* officially undefined */ + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_sbcd_8_mm_axy7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + + if(res > 9) + res -= 6; + res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res += 0xa0; + + res = MASK_OUT_ABOVE_8(res); + + FLAG_N = NFLAG_8(res); /* officially undefined */ + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_sbcd_8_mm(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + + if(res > 9) + res -= 6; + res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src); + FLAG_X = FLAG_C = (res > 0x99) << 8; + if(FLAG_C) + res += 0xa0; + + res = MASK_OUT_ABOVE_8(res); + + FLAG_N = NFLAG_8(res); /* officially undefined */ + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_st_8_d(void) +{ + DY |= 0xff; +} + + +void m68k_op_st_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), 0xff); +} + + +void m68k_op_st_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), 0xff); +} + + +void m68k_op_st_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), 0xff); +} + + +void m68k_op_st_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), 0xff); +} + + +void m68k_op_st_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), 0xff); +} + + +void m68k_op_st_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), 0xff); +} + + +void m68k_op_st_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), 0xff); +} + + +void m68k_op_st_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), 0xff); +} + + +void m68k_op_st_8_al(void) +{ + m68ki_write_8(EA_AL_8(), 0xff); +} + + +void m68k_op_sf_8_d(void) +{ + DY &= 0xffffff00; +} + + +void m68k_op_sf_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), 0); +} + + +void m68k_op_sf_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), 0); +} + + +void m68k_op_sf_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), 0); +} + + +void m68k_op_sf_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), 0); +} + + +void m68k_op_sf_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), 0); +} + + +void m68k_op_sf_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), 0); +} + + +void m68k_op_sf_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), 0); +} + + +void m68k_op_sf_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), 0); +} + + +void m68k_op_sf_8_al(void) +{ + m68ki_write_8(EA_AL_8(), 0); +} + + +void m68k_op_shi_8_d(void) +{ + if(COND_HI()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_sls_8_d(void) +{ + if(COND_LS()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_scc_8_d(void) +{ + if(COND_CC()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_scs_8_d(void) +{ + if(COND_CS()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_sne_8_d(void) +{ + if(COND_NE()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_seq_8_d(void) +{ + if(COND_EQ()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_svc_8_d(void) +{ + if(COND_VC()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_svs_8_d(void) +{ + if(COND_VS()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_spl_8_d(void) +{ + if(COND_PL()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_smi_8_d(void) +{ + if(COND_MI()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_sge_8_d(void) +{ + if(COND_GE()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_slt_8_d(void) +{ + if(COND_LT()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_sgt_8_d(void) +{ + if(COND_GT()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_sle_8_d(void) +{ + if(COND_LE()) + { + DY |= 0xff; + return; + } + DY &= 0xffffff00; +} + + +void m68k_op_shi_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_shi_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_HI() ? 0xff : 0); +} + + +void m68k_op_sls_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_sls_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_LS() ? 0xff : 0); +} + + +void m68k_op_scc_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scc_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_CC() ? 0xff : 0); +} + + +void m68k_op_scs_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_scs_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_CS() ? 0xff : 0); +} + + +void m68k_op_sne_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_sne_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_NE() ? 0xff : 0); +} + + +void m68k_op_seq_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_seq_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_EQ() ? 0xff : 0); +} + + +void m68k_op_svc_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svc_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_VC() ? 0xff : 0); +} + + +void m68k_op_svs_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_svs_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_VS() ? 0xff : 0); +} + + +void m68k_op_spl_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_spl_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_PL() ? 0xff : 0); +} + + +void m68k_op_smi_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_smi_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_MI() ? 0xff : 0); +} + + +void m68k_op_sge_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_sge_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_GE() ? 0xff : 0); +} + + +void m68k_op_slt_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_slt_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_LT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sgt_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_GT() ? 0xff : 0); +} + + +void m68k_op_sle_8_ai(void) +{ + m68ki_write_8(EA_AY_AI_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_pi(void) +{ + m68ki_write_8(EA_AY_PI_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_pi7(void) +{ + m68ki_write_8(EA_A7_PI_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_pd(void) +{ + m68ki_write_8(EA_AY_PD_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_pd7(void) +{ + m68ki_write_8(EA_A7_PD_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_di(void) +{ + m68ki_write_8(EA_AY_DI_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_ix(void) +{ + m68ki_write_8(EA_AY_IX_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_aw(void) +{ + m68ki_write_8(EA_AW_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_sle_8_al(void) +{ + m68ki_write_8(EA_AL_8(), COND_LE() ? 0xff : 0); +} + + +void m68k_op_stop(void) +{ + if(FLAG_S) + { + uint new_sr = OPER_I_16(); + m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ + CPU_STOPPED |= STOP_LEVEL_STOP; + m68ki_set_sr(new_sr); + m68ki_remaining_cycles = 0; + return; + } + m68ki_exception_privilege_violation(); +} + + +void m68k_op_sub_8_er_d(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_8(DY); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_pi7(void) +{ + uint* r_dst = &DX; + uint src = OPER_A7_PI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_pd7(void) +{ + uint* r_dst = &DX; + uint src = OPER_A7_PD_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_8_er_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_d(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(DY); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_a(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(AY); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_16_er_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_sub_32_er_d(void) +{ + uint* r_dst = &DX; + uint src = DY; + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_a(void) +{ + uint* r_dst = &DX; + uint src = AY; + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_ai(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_AI_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_pi(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PI_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_pd(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_PD_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_di(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_DI_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_ix(void) +{ + uint* r_dst = &DX; + uint src = OPER_AY_IX_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_aw(void) +{ + uint* r_dst = &DX; + uint src = OPER_AW_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_al(void) +{ + uint* r_dst = &DX; + uint src = OPER_AL_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_pcdi(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCDI_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_pcix(void) +{ + uint* r_dst = &DX; + uint src = OPER_PCIX_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_32_er_i(void) +{ + uint* r_dst = &DX; + uint src = OPER_I_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_sub_8_re_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_di(void) +{ + uint ea = EA_AY_DI_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_aw(void) +{ + uint ea = EA_AW_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_8_re_al(void) +{ + uint ea = EA_AL_8(); + uint src = MASK_OUT_ABOVE_8(DX); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_ai(void) +{ + uint ea = EA_AY_AI_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_pi(void) +{ + uint ea = EA_AY_PI_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_pd(void) +{ + uint ea = EA_AY_PD_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_di(void) +{ + uint ea = EA_AY_DI_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_ix(void) +{ + uint ea = EA_AY_IX_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_aw(void) +{ + uint ea = EA_AW_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_16_re_al(void) +{ + uint ea = EA_AL_16(); + uint src = MASK_OUT_ABOVE_16(DX); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_ai(void) +{ + uint ea = EA_AY_AI_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_pi(void) +{ + uint ea = EA_AY_PI_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_pd(void) +{ + uint ea = EA_AY_PD_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_di(void) +{ + uint ea = EA_AY_DI_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_ix(void) +{ + uint ea = EA_AY_IX_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_aw(void) +{ + uint ea = EA_AW_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_sub_32_re_al(void) +{ + uint ea = EA_AL_32(); + uint src = DX; + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_suba_16_d(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(DY)); +} + + +void m68k_op_suba_16_a(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(AY)); +} + + +void m68k_op_suba_16_ai(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_AI_16())); +} + + +void m68k_op_suba_16_pi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_PI_16())); +} + + +void m68k_op_suba_16_pd(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_PD_16())); +} + + +void m68k_op_suba_16_di(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_DI_16())); +} + + +void m68k_op_suba_16_ix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_IX_16())); +} + + +void m68k_op_suba_16_aw(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AW_16())); +} + + +void m68k_op_suba_16_al(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AL_16())); +} + + +void m68k_op_suba_16_pcdi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_PCDI_16())); +} + + +void m68k_op_suba_16_pcix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_PCIX_16())); +} + + +void m68k_op_suba_16_i(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_I_16())); +} + + +void m68k_op_suba_32_d(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - DY); +} + + +void m68k_op_suba_32_a(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - AY); +} + + +void m68k_op_suba_32_ai(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_AI_32()); +} + + +void m68k_op_suba_32_pi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_PI_32()); +} + + +void m68k_op_suba_32_pd(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_PD_32()); +} + + +void m68k_op_suba_32_di(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_DI_32()); +} + + +void m68k_op_suba_32_ix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_IX_32()); +} + + +void m68k_op_suba_32_aw(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AW_32()); +} + + +void m68k_op_suba_32_al(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AL_32()); +} + + +void m68k_op_suba_32_pcdi(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_PCDI_32()); +} + + +void m68k_op_suba_32_pcix(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_PCIX_32()); +} + + +void m68k_op_suba_32_i(void) +{ + uint* r_dst = &AX; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_I_32()); +} + + +void m68k_op_subi_8_d(void) +{ + uint* r_dst = &DY; + uint src = OPER_I_8(); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_subi_8_ai(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_AI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_pi(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_pi7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_pd(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_pd7(void) +{ + uint src = OPER_I_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_di(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_DI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_ix(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AY_IX_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_aw(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AW_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_8_al(void) +{ + uint src = OPER_I_8(); + uint ea = EA_AL_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subi_16_d(void) +{ + uint* r_dst = &DY; + uint src = OPER_I_16(); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_subi_16_ai(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_AI_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_16_pi(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PI_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_16_pd(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_PD_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_16_di(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_DI_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_16_ix(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AY_IX_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_16_aw(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AW_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_16_al(void) +{ + uint src = OPER_I_16(); + uint ea = EA_AL_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subi_32_d(void) +{ + uint* r_dst = &DY; + uint src = OPER_I_32(); + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_subi_32_ai(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_AI_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subi_32_pi(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PI_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subi_32_pd(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_PD_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subi_32_di(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_DI_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subi_32_ix(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AY_IX_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subi_32_aw(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AW_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subi_32_al(void) +{ + uint src = OPER_I_32(); + uint ea = EA_AL_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_8_d(void) +{ + uint* r_dst = &DY; + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; +} + + +void m68k_op_subq_8_ai(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_AI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_pi(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_pi7(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_A7_PI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_pd(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_pd7(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_di(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_DI_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_ix(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_IX_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_aw(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AW_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_8_al(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AL_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src; + + FLAG_N = NFLAG_8(res); + FLAG_Z = MASK_OUT_ABOVE_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + m68ki_write_8(ea, FLAG_Z); +} + + +void m68k_op_subq_16_d(void) +{ + uint* r_dst = &DY; + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; +} + + +void m68k_op_subq_16_a(void) +{ + uint* r_dst = &AY; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((REG_IR >> 9) - 1) & 7) + 1)); +} + + +void m68k_op_subq_16_ai(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_AI_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_16_pi(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PI_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_16_pd(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PD_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_16_di(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_DI_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_16_ix(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_IX_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_16_aw(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AW_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_16_al(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AL_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src; + + FLAG_N = NFLAG_16(res); + FLAG_Z = MASK_OUT_ABOVE_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + m68ki_write_16(ea, FLAG_Z); +} + + +void m68k_op_subq_32_d(void) +{ + uint* r_dst = &DY; + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint dst = *r_dst; + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + *r_dst = FLAG_Z; +} + + +void m68k_op_subq_32_a(void) +{ + uint* r_dst = &AY; + + *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((REG_IR >> 9) - 1) & 7) + 1)); +} + + +void m68k_op_subq_32_ai(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_AI_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_32_pi(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PI_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_32_pd(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_PD_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_32_di(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_DI_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_32_ix(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AY_IX_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_32_aw(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AW_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subq_32_al(void) +{ + uint src = (((REG_IR >> 9) - 1) & 7) + 1; + uint ea = EA_AL_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src; + + FLAG_N = NFLAG_32(res); + FLAG_Z = MASK_OUT_ABOVE_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + m68ki_write_32(ea, FLAG_Z); +} + + +void m68k_op_subx_8_rr(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_8(DY); + uint dst = MASK_OUT_ABOVE_8(*r_dst); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; +} + + +void m68k_op_subx_16_rr(void) +{ + uint* r_dst = &DX; + uint src = MASK_OUT_ABOVE_16(DY); + uint dst = MASK_OUT_ABOVE_16(*r_dst); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; +} + + +void m68k_op_subx_32_rr(void) +{ + uint* r_dst = &DX; + uint src = DY; + uint dst = *r_dst; + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + *r_dst = res; +} + + +void m68k_op_subx_8_mm_ax7(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_subx_8_mm_ay7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_subx_8_mm_axy7(void) +{ + uint src = OPER_A7_PD_8(); + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_subx_8_mm(void) +{ + uint src = OPER_AY_PD_8(); + uint ea = EA_AX_PD_8(); + uint dst = m68ki_read_8(ea); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_8(res); + FLAG_X = FLAG_C = CFLAG_8(res); + FLAG_V = VFLAG_SUB_8(src, dst, res); + + res = MASK_OUT_ABOVE_8(res); + FLAG_Z |= res; + + m68ki_write_8(ea, res); +} + + +void m68k_op_subx_16_mm(void) +{ + uint src = OPER_AY_PD_16(); + uint ea = EA_AX_PD_16(); + uint dst = m68ki_read_16(ea); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_16(res); + FLAG_X = FLAG_C = CFLAG_16(res); + FLAG_V = VFLAG_SUB_16(src, dst, res); + + res = MASK_OUT_ABOVE_16(res); + FLAG_Z |= res; + + m68ki_write_16(ea, res); +} + + +void m68k_op_subx_32_mm(void) +{ + uint src = OPER_AY_PD_32(); + uint ea = EA_AX_PD_32(); + uint dst = m68ki_read_32(ea); + uint res = dst - src - XFLAG_AS_1(); + + FLAG_N = NFLAG_32(res); + FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); + FLAG_V = VFLAG_SUB_32(src, dst, res); + + res = MASK_OUT_ABOVE_32(res); + FLAG_Z |= res; + + m68ki_write_32(ea, res); +} + + +void m68k_op_swap_32(void) +{ + uint* r_dst = &DY; + + FLAG_Z = MASK_OUT_ABOVE_32(*r_dst<<16); + *r_dst = (*r_dst>>16) | FLAG_Z; + + FLAG_Z = *r_dst; + FLAG_N = NFLAG_32(*r_dst); + FLAG_C = CFLAG_CLEAR; + FLAG_V = VFLAG_CLEAR; +} + + +void m68k_op_tas_8_d(void) +{ + uint* r_dst = &DY; + + FLAG_Z = MASK_OUT_ABOVE_8(*r_dst); + FLAG_N = NFLAG_8(*r_dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + *r_dst |= 0x80; +} + + +void m68k_op_tas_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_aw(void) +{ + uint ea = EA_AW_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_tas_8_al(void) +{ + uint ea = EA_AL_8(); + uint dst = m68ki_read_8(ea); + + FLAG_Z = dst; + FLAG_N = NFLAG_8(dst); + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + m68ki_write_8(ea, dst | 0x80); +} + + +void m68k_op_trap(void) +{ + /* Trap#n stacks exception frame type 0 */ + m68ki_exception_trapN(EXCEPTION_TRAP_BASE + (REG_IR & 0xf)); /* HJB 990403 */ +} + + +void m68k_op_trapt(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapt_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapt_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapf(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapf_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapf_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traphi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_HI()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapls(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LS()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapcc(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CC()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapcs(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CS()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapne(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_NE()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapeq(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_EQ()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapvc(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VC()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapvs(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VS()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trappl(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_PL()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapmi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_MI()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapge(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GE()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traplt(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LT()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapgt(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GT()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traple(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LE()) + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traphi_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_HI()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapls_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LS()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapcc_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CC()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapcs_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CS()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapne_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_NE()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapeq_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_EQ()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapvc_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VC()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapvs_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VS()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trappl_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_PL()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapmi_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_MI()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapge_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GE()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traplt_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LT()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapgt_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GT()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traple_16(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LE()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 2; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traphi_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_HI()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapls_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LS()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapcc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CC()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapcs_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_CS()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapne_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_NE()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapeq_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_EQ()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapvc_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VC()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapvs_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_VS()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trappl_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_PL()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapmi_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_MI()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapge_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GE()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traplt_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LT()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapgt_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_GT()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_traple_32(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + if(COND_LE()) + { + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ + return; + } + REG_PC += 4; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_trapv(void) +{ + if(COND_VC()) + { + return; + } + m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */ +} + + +void m68k_op_tst_8_d(void) +{ + uint res = MASK_OUT_ABOVE_8(DY); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_ai(void) +{ + uint ea = EA_AY_AI_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_pi(void) +{ + uint ea = EA_AY_PI_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_pi7(void) +{ + uint ea = EA_A7_PI_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_pd(void) +{ + uint ea = EA_AY_PD_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_pd7(void) +{ + uint ea = EA_A7_PD_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_di(void) +{ + uint ea = EA_AY_DI_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_ix(void) +{ + uint ea = EA_AY_IX_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_aw(void) +{ + uint ea = EA_AW_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_al(void) +{ + uint ea = EA_AL_8(); + uint res = m68ki_read_8(ea); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_8_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_PCDI_8(); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_8_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_PCIX_8(); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_8_i(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_I_8(); + + FLAG_N = NFLAG_8(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_16_d(void) +{ + uint res = MASK_OUT_ABOVE_16(DY); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_a(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = MAKE_INT_16(AY); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_16_ai(void) +{ + uint res = OPER_AY_AI_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_pi(void) +{ + uint res = OPER_AY_PI_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_pd(void) +{ + uint res = OPER_AY_PD_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_di(void) +{ + uint res = OPER_AY_DI_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_ix(void) +{ + uint res = OPER_AY_IX_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_aw(void) +{ + uint res = OPER_AW_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_al(void) +{ + uint res = OPER_AL_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_16_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_PCDI_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_16_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_PCIX_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_16_i(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_I_16(); + + FLAG_N = NFLAG_16(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_32_d(void) +{ + uint res = DY; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_a(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = AY; + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_32_ai(void) +{ + uint res = OPER_AY_AI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_pi(void) +{ + uint res = OPER_AY_PI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_pd(void) +{ + uint res = OPER_AY_PD_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_di(void) +{ + uint res = OPER_AY_DI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_ix(void) +{ + uint res = OPER_AY_IX_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_aw(void) +{ + uint res = OPER_AW_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_al(void) +{ + uint res = OPER_AL_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; +} + + +void m68k_op_tst_32_pcdi(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_PCDI_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_32_pcix(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_PCIX_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_tst_32_i(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint res = OPER_I_32(); + + FLAG_N = NFLAG_32(res); + FLAG_Z = res; + FLAG_V = VFLAG_CLEAR; + FLAG_C = CFLAG_CLEAR; + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_unlk_32_a7(void) +{ + REG_A[7] = m68ki_read_32(REG_A[7]); +} + + +void m68k_op_unlk_32(void) +{ + uint* r_dst = &AY; + + REG_A[7] = *r_dst; + *r_dst = m68ki_pull_32(); +} + + +void m68k_op_unpk_16_rr(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: DX and DY are reversed in Motorola's docs */ + uint src = DY; + uint* r_dst = &DX; + + *r_dst = MASK_OUT_BELOW_16(*r_dst) | (((((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16()) & 0xffff); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_unpk_16_mm_ax7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: AX and AY are reversed in Motorola's docs */ + uint src = OPER_AY_PD_8(); + uint ea_dst; + + src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(); + ea_dst = EA_A7_PD_8(); + m68ki_write_8(ea_dst, (src >> 8) & 0xff); + ea_dst = EA_A7_PD_8(); + m68ki_write_8(ea_dst, src & 0xff); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_unpk_16_mm_ay7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: AX and AY are reversed in Motorola's docs */ + uint src = OPER_A7_PD_8(); + uint ea_dst; + + src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(); + ea_dst = EA_AX_PD_8(); + m68ki_write_8(ea_dst, (src >> 8) & 0xff); + ea_dst = EA_AX_PD_8(); + m68ki_write_8(ea_dst, src & 0xff); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_unpk_16_mm_axy7(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + uint src = OPER_A7_PD_8(); + uint ea_dst; + + src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(); + ea_dst = EA_A7_PD_8(); + m68ki_write_8(ea_dst, (src >> 8) & 0xff); + ea_dst = EA_A7_PD_8(); + m68ki_write_8(ea_dst, src & 0xff); + return; + } + m68ki_exception_illegal(); +} + + +void m68k_op_unpk_16_mm(void) +{ + if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE)) + { + /* Note: AX and AY are reversed in Motorola's docs */ + uint src = OPER_AY_PD_8(); + uint ea_dst; + + src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(); + ea_dst = EA_AX_PD_8(); + m68ki_write_8(ea_dst, (src >> 8) & 0xff); + ea_dst = EA_AX_PD_8(); + m68ki_write_8(ea_dst, src & 0xff); + return; + } + m68ki_exception_illegal(); +} + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + + diff --git a/AltairZ80/m68kops.c b/AltairZ80/m68kops.c new file mode 100644 index 00000000..15e0e811 --- /dev/null +++ b/AltairZ80/m68kops.c @@ -0,0 +1,2093 @@ +/* ======================================================================== */ +/* ========================= OPCODE TABLE BUILDER ========================= */ +/* ======================================================================== */ + +#include "m68kops.h" + +#define NUM_CPU_TYPES 3 + +void (*m68ki_instruction_jump_table[0x10000])(void); /* opcode handler jump table */ +unsigned char m68ki_cycles[NUM_CPU_TYPES][0x10000]; /* Cycles used by CPU type */ + +/* This is used to generate the opcode handler jump table */ +typedef struct +{ + void (*opcode_handler)(void); /* handler function */ + unsigned int mask; /* mask on opcode */ + unsigned int match; /* what to match after masking */ + unsigned char cycles[NUM_CPU_TYPES]; /* cycles each cpu type takes */ +} opcode_handler_struct; + + +/* Opcode handler table */ +static opcode_handler_struct m68k_opcode_handler_table[] = +{ +/* function mask match 000 010 020 */ + {m68k_op_1010 , 0xf000, 0xa000, { 4, 4, 4}}, + {m68k_op_1111 , 0xf000, 0xf000, { 4, 4, 4}}, + {m68k_op_moveq_32 , 0xf100, 0x7000, { 4, 4, 2}}, + {m68k_op_cpbcc_32 , 0xf180, 0xf080, { 0, 0, 4}}, + {m68k_op_cpgen_32 , 0xf1c0, 0xf000, { 0, 0, 4}}, + {m68k_op_cpscc_32 , 0xf1c0, 0xf040, { 0, 0, 4}}, + {m68k_op_bra_8 , 0xff00, 0x6000, { 10, 10, 10}}, + {m68k_op_bsr_8 , 0xff00, 0x6100, { 18, 18, 7}}, + {m68k_op_bhi_8 , 0xff00, 0x6200, { 8, 8, 6}}, + {m68k_op_bls_8 , 0xff00, 0x6300, { 8, 8, 6}}, + {m68k_op_bcc_8 , 0xff00, 0x6400, { 8, 8, 6}}, + {m68k_op_bcs_8 , 0xff00, 0x6500, { 8, 8, 6}}, + {m68k_op_bne_8 , 0xff00, 0x6600, { 8, 8, 6}}, + {m68k_op_beq_8 , 0xff00, 0x6700, { 8, 8, 6}}, + {m68k_op_bvc_8 , 0xff00, 0x6800, { 8, 8, 6}}, + {m68k_op_bvs_8 , 0xff00, 0x6900, { 8, 8, 6}}, + {m68k_op_bpl_8 , 0xff00, 0x6a00, { 8, 8, 6}}, + {m68k_op_bmi_8 , 0xff00, 0x6b00, { 8, 8, 6}}, + {m68k_op_bge_8 , 0xff00, 0x6c00, { 8, 8, 6}}, + {m68k_op_blt_8 , 0xff00, 0x6d00, { 8, 8, 6}}, + {m68k_op_bgt_8 , 0xff00, 0x6e00, { 8, 8, 6}}, + {m68k_op_ble_8 , 0xff00, 0x6f00, { 8, 8, 6}}, + {m68k_op_btst_32_r_d , 0xf1f8, 0x0100, { 6, 6, 4}}, + {m68k_op_movep_16_er , 0xf1f8, 0x0108, { 16, 16, 12}}, + {m68k_op_btst_8_r_ai , 0xf1f8, 0x0110, { 8, 8, 8}}, + {m68k_op_btst_8_r_pi , 0xf1f8, 0x0118, { 8, 8, 8}}, + {m68k_op_btst_8_r_pd , 0xf1f8, 0x0120, { 10, 10, 9}}, + {m68k_op_btst_8_r_di , 0xf1f8, 0x0128, { 12, 12, 9}}, + {m68k_op_btst_8_r_ix , 0xf1f8, 0x0130, { 14, 14, 11}}, + {m68k_op_bchg_32_r_d , 0xf1f8, 0x0140, { 8, 8, 4}}, + {m68k_op_movep_32_er , 0xf1f8, 0x0148, { 24, 24, 18}}, + {m68k_op_bchg_8_r_ai , 0xf1f8, 0x0150, { 12, 12, 8}}, + {m68k_op_bchg_8_r_pi , 0xf1f8, 0x0158, { 12, 12, 8}}, + {m68k_op_bchg_8_r_pd , 0xf1f8, 0x0160, { 14, 14, 9}}, + {m68k_op_bchg_8_r_di , 0xf1f8, 0x0168, { 16, 16, 9}}, + {m68k_op_bchg_8_r_ix , 0xf1f8, 0x0170, { 18, 18, 11}}, + {m68k_op_bclr_32_r_d , 0xf1f8, 0x0180, { 10, 10, 4}}, + {m68k_op_movep_16_re , 0xf1f8, 0x0188, { 16, 16, 11}}, + {m68k_op_bclr_8_r_ai , 0xf1f8, 0x0190, { 12, 14, 8}}, + {m68k_op_bclr_8_r_pi , 0xf1f8, 0x0198, { 12, 14, 8}}, + {m68k_op_bclr_8_r_pd , 0xf1f8, 0x01a0, { 14, 16, 9}}, + {m68k_op_bclr_8_r_di , 0xf1f8, 0x01a8, { 16, 18, 9}}, + {m68k_op_bclr_8_r_ix , 0xf1f8, 0x01b0, { 18, 20, 11}}, + {m68k_op_bset_32_r_d , 0xf1f8, 0x01c0, { 8, 8, 4}}, + {m68k_op_movep_32_re , 0xf1f8, 0x01c8, { 24, 24, 17}}, + {m68k_op_bset_8_r_ai , 0xf1f8, 0x01d0, { 12, 12, 8}}, + {m68k_op_bset_8_r_pi , 0xf1f8, 0x01d8, { 12, 12, 8}}, + {m68k_op_bset_8_r_pd , 0xf1f8, 0x01e0, { 14, 14, 9}}, + {m68k_op_bset_8_r_di , 0xf1f8, 0x01e8, { 16, 16, 9}}, + {m68k_op_bset_8_r_ix , 0xf1f8, 0x01f0, { 18, 18, 11}}, + {m68k_op_move_8_d_d , 0xf1f8, 0x1000, { 4, 4, 2}}, + {m68k_op_move_8_d_ai , 0xf1f8, 0x1010, { 8, 8, 6}}, + {m68k_op_move_8_d_pi , 0xf1f8, 0x1018, { 8, 8, 6}}, + {m68k_op_move_8_d_pd , 0xf1f8, 0x1020, { 10, 10, 7}}, + {m68k_op_move_8_d_di , 0xf1f8, 0x1028, { 12, 12, 7}}, + {m68k_op_move_8_d_ix , 0xf1f8, 0x1030, { 14, 14, 9}}, + {m68k_op_move_8_ai_d , 0xf1f8, 0x1080, { 8, 8, 4}}, + {m68k_op_move_8_ai_ai , 0xf1f8, 0x1090, { 12, 12, 8}}, + {m68k_op_move_8_ai_pi , 0xf1f8, 0x1098, { 12, 12, 8}}, + {m68k_op_move_8_ai_pd , 0xf1f8, 0x10a0, { 14, 14, 9}}, + {m68k_op_move_8_ai_di , 0xf1f8, 0x10a8, { 16, 16, 9}}, + {m68k_op_move_8_ai_ix , 0xf1f8, 0x10b0, { 18, 18, 11}}, + {m68k_op_move_8_pi_d , 0xf1f8, 0x10c0, { 8, 8, 4}}, + {m68k_op_move_8_pi_ai , 0xf1f8, 0x10d0, { 12, 12, 8}}, + {m68k_op_move_8_pi_pi , 0xf1f8, 0x10d8, { 12, 12, 8}}, + {m68k_op_move_8_pi_pd , 0xf1f8, 0x10e0, { 14, 14, 9}}, + {m68k_op_move_8_pi_di , 0xf1f8, 0x10e8, { 16, 16, 9}}, + {m68k_op_move_8_pi_ix , 0xf1f8, 0x10f0, { 18, 18, 11}}, + {m68k_op_move_8_pd_d , 0xf1f8, 0x1100, { 8, 8, 5}}, + {m68k_op_move_8_pd_ai , 0xf1f8, 0x1110, { 12, 12, 9}}, + {m68k_op_move_8_pd_pi , 0xf1f8, 0x1118, { 12, 12, 9}}, + {m68k_op_move_8_pd_pd , 0xf1f8, 0x1120, { 14, 14, 10}}, + {m68k_op_move_8_pd_di , 0xf1f8, 0x1128, { 16, 16, 10}}, + {m68k_op_move_8_pd_ix , 0xf1f8, 0x1130, { 18, 18, 12}}, + {m68k_op_move_8_di_d , 0xf1f8, 0x1140, { 12, 12, 5}}, + {m68k_op_move_8_di_ai , 0xf1f8, 0x1150, { 16, 16, 9}}, + {m68k_op_move_8_di_pi , 0xf1f8, 0x1158, { 16, 16, 9}}, + {m68k_op_move_8_di_pd , 0xf1f8, 0x1160, { 18, 18, 10}}, + {m68k_op_move_8_di_di , 0xf1f8, 0x1168, { 20, 20, 10}}, + {m68k_op_move_8_di_ix , 0xf1f8, 0x1170, { 22, 22, 12}}, + {m68k_op_move_8_ix_d , 0xf1f8, 0x1180, { 14, 14, 7}}, + {m68k_op_move_8_ix_ai , 0xf1f8, 0x1190, { 18, 18, 11}}, + {m68k_op_move_8_ix_pi , 0xf1f8, 0x1198, { 18, 18, 11}}, + {m68k_op_move_8_ix_pd , 0xf1f8, 0x11a0, { 20, 20, 12}}, + {m68k_op_move_8_ix_di , 0xf1f8, 0x11a8, { 22, 22, 12}}, + {m68k_op_move_8_ix_ix , 0xf1f8, 0x11b0, { 24, 24, 14}}, + {m68k_op_move_32_d_d , 0xf1f8, 0x2000, { 4, 4, 2}}, + {m68k_op_move_32_d_a , 0xf1f8, 0x2008, { 4, 4, 2}}, + {m68k_op_move_32_d_ai , 0xf1f8, 0x2010, { 12, 12, 6}}, + {m68k_op_move_32_d_pi , 0xf1f8, 0x2018, { 12, 12, 6}}, + {m68k_op_move_32_d_pd , 0xf1f8, 0x2020, { 14, 14, 7}}, + {m68k_op_move_32_d_di , 0xf1f8, 0x2028, { 16, 16, 7}}, + {m68k_op_move_32_d_ix , 0xf1f8, 0x2030, { 18, 18, 9}}, + {m68k_op_movea_32_d , 0xf1f8, 0x2040, { 4, 4, 2}}, + {m68k_op_movea_32_a , 0xf1f8, 0x2048, { 4, 4, 2}}, + {m68k_op_movea_32_ai , 0xf1f8, 0x2050, { 12, 12, 6}}, + {m68k_op_movea_32_pi , 0xf1f8, 0x2058, { 12, 12, 6}}, + {m68k_op_movea_32_pd , 0xf1f8, 0x2060, { 14, 14, 7}}, + {m68k_op_movea_32_di , 0xf1f8, 0x2068, { 16, 16, 7}}, + {m68k_op_movea_32_ix , 0xf1f8, 0x2070, { 18, 18, 9}}, + {m68k_op_move_32_ai_d , 0xf1f8, 0x2080, { 12, 12, 4}}, + {m68k_op_move_32_ai_a , 0xf1f8, 0x2088, { 12, 12, 4}}, + {m68k_op_move_32_ai_ai , 0xf1f8, 0x2090, { 20, 20, 8}}, + {m68k_op_move_32_ai_pi , 0xf1f8, 0x2098, { 20, 20, 8}}, + {m68k_op_move_32_ai_pd , 0xf1f8, 0x20a0, { 22, 22, 9}}, + {m68k_op_move_32_ai_di , 0xf1f8, 0x20a8, { 24, 24, 9}}, + {m68k_op_move_32_ai_ix , 0xf1f8, 0x20b0, { 26, 26, 11}}, + {m68k_op_move_32_pi_d , 0xf1f8, 0x20c0, { 12, 12, 4}}, + {m68k_op_move_32_pi_a , 0xf1f8, 0x20c8, { 12, 12, 4}}, + {m68k_op_move_32_pi_ai , 0xf1f8, 0x20d0, { 20, 20, 8}}, + {m68k_op_move_32_pi_pi , 0xf1f8, 0x20d8, { 20, 20, 8}}, + {m68k_op_move_32_pi_pd , 0xf1f8, 0x20e0, { 22, 22, 9}}, + {m68k_op_move_32_pi_di , 0xf1f8, 0x20e8, { 24, 24, 9}}, + {m68k_op_move_32_pi_ix , 0xf1f8, 0x20f0, { 26, 26, 11}}, + {m68k_op_move_32_pd_d , 0xf1f8, 0x2100, { 12, 14, 5}}, + {m68k_op_move_32_pd_a , 0xf1f8, 0x2108, { 12, 14, 5}}, + {m68k_op_move_32_pd_ai , 0xf1f8, 0x2110, { 20, 22, 9}}, + {m68k_op_move_32_pd_pi , 0xf1f8, 0x2118, { 20, 22, 9}}, + {m68k_op_move_32_pd_pd , 0xf1f8, 0x2120, { 22, 24, 10}}, + {m68k_op_move_32_pd_di , 0xf1f8, 0x2128, { 24, 26, 10}}, + {m68k_op_move_32_pd_ix , 0xf1f8, 0x2130, { 26, 28, 12}}, + {m68k_op_move_32_di_d , 0xf1f8, 0x2140, { 16, 16, 5}}, + {m68k_op_move_32_di_a , 0xf1f8, 0x2148, { 16, 16, 5}}, + {m68k_op_move_32_di_ai , 0xf1f8, 0x2150, { 24, 24, 9}}, + {m68k_op_move_32_di_pi , 0xf1f8, 0x2158, { 24, 24, 9}}, + {m68k_op_move_32_di_pd , 0xf1f8, 0x2160, { 26, 26, 10}}, + {m68k_op_move_32_di_di , 0xf1f8, 0x2168, { 28, 28, 10}}, + {m68k_op_move_32_di_ix , 0xf1f8, 0x2170, { 30, 30, 12}}, + {m68k_op_move_32_ix_d , 0xf1f8, 0x2180, { 18, 18, 7}}, + {m68k_op_move_32_ix_a , 0xf1f8, 0x2188, { 18, 18, 7}}, + {m68k_op_move_32_ix_ai , 0xf1f8, 0x2190, { 26, 26, 11}}, + {m68k_op_move_32_ix_pi , 0xf1f8, 0x2198, { 26, 26, 11}}, + {m68k_op_move_32_ix_pd , 0xf1f8, 0x21a0, { 28, 28, 12}}, + {m68k_op_move_32_ix_di , 0xf1f8, 0x21a8, { 30, 30, 12}}, + {m68k_op_move_32_ix_ix , 0xf1f8, 0x21b0, { 32, 32, 14}}, + {m68k_op_move_16_d_d , 0xf1f8, 0x3000, { 4, 4, 2}}, + {m68k_op_move_16_d_a , 0xf1f8, 0x3008, { 4, 4, 2}}, + {m68k_op_move_16_d_ai , 0xf1f8, 0x3010, { 8, 8, 6}}, + {m68k_op_move_16_d_pi , 0xf1f8, 0x3018, { 8, 8, 6}}, + {m68k_op_move_16_d_pd , 0xf1f8, 0x3020, { 10, 10, 7}}, + {m68k_op_move_16_d_di , 0xf1f8, 0x3028, { 12, 12, 7}}, + {m68k_op_move_16_d_ix , 0xf1f8, 0x3030, { 14, 14, 9}}, + {m68k_op_movea_16_d , 0xf1f8, 0x3040, { 4, 4, 2}}, + {m68k_op_movea_16_a , 0xf1f8, 0x3048, { 4, 4, 2}}, + {m68k_op_movea_16_ai , 0xf1f8, 0x3050, { 8, 8, 6}}, + {m68k_op_movea_16_pi , 0xf1f8, 0x3058, { 8, 8, 6}}, + {m68k_op_movea_16_pd , 0xf1f8, 0x3060, { 10, 10, 7}}, + {m68k_op_movea_16_di , 0xf1f8, 0x3068, { 12, 12, 7}}, + {m68k_op_movea_16_ix , 0xf1f8, 0x3070, { 14, 14, 9}}, + {m68k_op_move_16_ai_d , 0xf1f8, 0x3080, { 8, 8, 4}}, + {m68k_op_move_16_ai_a , 0xf1f8, 0x3088, { 8, 8, 4}}, + {m68k_op_move_16_ai_ai , 0xf1f8, 0x3090, { 12, 12, 8}}, + {m68k_op_move_16_ai_pi , 0xf1f8, 0x3098, { 12, 12, 8}}, + {m68k_op_move_16_ai_pd , 0xf1f8, 0x30a0, { 14, 14, 9}}, + {m68k_op_move_16_ai_di , 0xf1f8, 0x30a8, { 16, 16, 9}}, + {m68k_op_move_16_ai_ix , 0xf1f8, 0x30b0, { 18, 18, 11}}, + {m68k_op_move_16_pi_d , 0xf1f8, 0x30c0, { 8, 8, 4}}, + {m68k_op_move_16_pi_a , 0xf1f8, 0x30c8, { 8, 8, 4}}, + {m68k_op_move_16_pi_ai , 0xf1f8, 0x30d0, { 12, 12, 8}}, + {m68k_op_move_16_pi_pi , 0xf1f8, 0x30d8, { 12, 12, 8}}, + {m68k_op_move_16_pi_pd , 0xf1f8, 0x30e0, { 14, 14, 9}}, + {m68k_op_move_16_pi_di , 0xf1f8, 0x30e8, { 16, 16, 9}}, + {m68k_op_move_16_pi_ix , 0xf1f8, 0x30f0, { 18, 18, 11}}, + {m68k_op_move_16_pd_d , 0xf1f8, 0x3100, { 8, 8, 5}}, + {m68k_op_move_16_pd_a , 0xf1f8, 0x3108, { 8, 8, 5}}, + {m68k_op_move_16_pd_ai , 0xf1f8, 0x3110, { 12, 12, 9}}, + {m68k_op_move_16_pd_pi , 0xf1f8, 0x3118, { 12, 12, 9}}, + {m68k_op_move_16_pd_pd , 0xf1f8, 0x3120, { 14, 14, 10}}, + {m68k_op_move_16_pd_di , 0xf1f8, 0x3128, { 16, 16, 10}}, + {m68k_op_move_16_pd_ix , 0xf1f8, 0x3130, { 18, 18, 12}}, + {m68k_op_move_16_di_d , 0xf1f8, 0x3140, { 12, 12, 5}}, + {m68k_op_move_16_di_a , 0xf1f8, 0x3148, { 12, 12, 5}}, + {m68k_op_move_16_di_ai , 0xf1f8, 0x3150, { 16, 16, 9}}, + {m68k_op_move_16_di_pi , 0xf1f8, 0x3158, { 16, 16, 9}}, + {m68k_op_move_16_di_pd , 0xf1f8, 0x3160, { 18, 18, 10}}, + {m68k_op_move_16_di_di , 0xf1f8, 0x3168, { 20, 20, 10}}, + {m68k_op_move_16_di_ix , 0xf1f8, 0x3170, { 22, 22, 12}}, + {m68k_op_move_16_ix_d , 0xf1f8, 0x3180, { 14, 14, 7}}, + {m68k_op_move_16_ix_a , 0xf1f8, 0x3188, { 14, 14, 7}}, + {m68k_op_move_16_ix_ai , 0xf1f8, 0x3190, { 18, 18, 11}}, + {m68k_op_move_16_ix_pi , 0xf1f8, 0x3198, { 18, 18, 11}}, + {m68k_op_move_16_ix_pd , 0xf1f8, 0x31a0, { 20, 20, 12}}, + {m68k_op_move_16_ix_di , 0xf1f8, 0x31a8, { 22, 22, 12}}, + {m68k_op_move_16_ix_ix , 0xf1f8, 0x31b0, { 24, 24, 14}}, + {m68k_op_chk_32_d , 0xf1f8, 0x4100, { 0, 0, 8}}, + {m68k_op_chk_32_ai , 0xf1f8, 0x4110, { 0, 0, 12}}, + {m68k_op_chk_32_pi , 0xf1f8, 0x4118, { 0, 0, 12}}, + {m68k_op_chk_32_pd , 0xf1f8, 0x4120, { 0, 0, 13}}, + {m68k_op_chk_32_di , 0xf1f8, 0x4128, { 0, 0, 13}}, + {m68k_op_chk_32_ix , 0xf1f8, 0x4130, { 0, 0, 15}}, + {m68k_op_chk_16_d , 0xf1f8, 0x4180, { 10, 8, 8}}, + {m68k_op_chk_16_ai , 0xf1f8, 0x4190, { 14, 12, 12}}, + {m68k_op_chk_16_pi , 0xf1f8, 0x4198, { 14, 12, 12}}, + {m68k_op_chk_16_pd , 0xf1f8, 0x41a0, { 16, 14, 13}}, + {m68k_op_chk_16_di , 0xf1f8, 0x41a8, { 18, 16, 13}}, + {m68k_op_chk_16_ix , 0xf1f8, 0x41b0, { 20, 18, 15}}, + {m68k_op_lea_32_ai , 0xf1f8, 0x41d0, { 4, 4, 6}}, + {m68k_op_lea_32_di , 0xf1f8, 0x41e8, { 8, 8, 7}}, + {m68k_op_lea_32_ix , 0xf1f8, 0x41f0, { 12, 12, 9}}, + {m68k_op_addq_8_d , 0xf1f8, 0x5000, { 4, 4, 2}}, + {m68k_op_addq_8_ai , 0xf1f8, 0x5010, { 12, 12, 8}}, + {m68k_op_addq_8_pi , 0xf1f8, 0x5018, { 12, 12, 8}}, + {m68k_op_addq_8_pd , 0xf1f8, 0x5020, { 14, 14, 9}}, + {m68k_op_addq_8_di , 0xf1f8, 0x5028, { 16, 16, 9}}, + {m68k_op_addq_8_ix , 0xf1f8, 0x5030, { 18, 18, 11}}, + {m68k_op_addq_16_d , 0xf1f8, 0x5040, { 4, 4, 2}}, + {m68k_op_addq_16_a , 0xf1f8, 0x5048, { 4, 4, 2}}, + {m68k_op_addq_16_ai , 0xf1f8, 0x5050, { 12, 12, 8}}, + {m68k_op_addq_16_pi , 0xf1f8, 0x5058, { 12, 12, 8}}, + {m68k_op_addq_16_pd , 0xf1f8, 0x5060, { 14, 14, 9}}, + {m68k_op_addq_16_di , 0xf1f8, 0x5068, { 16, 16, 9}}, + {m68k_op_addq_16_ix , 0xf1f8, 0x5070, { 18, 18, 11}}, + {m68k_op_addq_32_d , 0xf1f8, 0x5080, { 8, 8, 2}}, + {m68k_op_addq_32_a , 0xf1f8, 0x5088, { 8, 8, 2}}, + {m68k_op_addq_32_ai , 0xf1f8, 0x5090, { 20, 20, 8}}, + {m68k_op_addq_32_pi , 0xf1f8, 0x5098, { 20, 20, 8}}, + {m68k_op_addq_32_pd , 0xf1f8, 0x50a0, { 22, 22, 9}}, + {m68k_op_addq_32_di , 0xf1f8, 0x50a8, { 24, 24, 9}}, + {m68k_op_addq_32_ix , 0xf1f8, 0x50b0, { 26, 26, 11}}, + {m68k_op_subq_8_d , 0xf1f8, 0x5100, { 4, 4, 2}}, + {m68k_op_subq_8_ai , 0xf1f8, 0x5110, { 12, 12, 8}}, + {m68k_op_subq_8_pi , 0xf1f8, 0x5118, { 12, 12, 8}}, + {m68k_op_subq_8_pd , 0xf1f8, 0x5120, { 14, 14, 9}}, + {m68k_op_subq_8_di , 0xf1f8, 0x5128, { 16, 16, 9}}, + {m68k_op_subq_8_ix , 0xf1f8, 0x5130, { 18, 18, 11}}, + {m68k_op_subq_16_d , 0xf1f8, 0x5140, { 4, 4, 2}}, + {m68k_op_subq_16_a , 0xf1f8, 0x5148, { 8, 4, 2}}, + {m68k_op_subq_16_ai , 0xf1f8, 0x5150, { 12, 12, 8}}, + {m68k_op_subq_16_pi , 0xf1f8, 0x5158, { 12, 12, 8}}, + {m68k_op_subq_16_pd , 0xf1f8, 0x5160, { 14, 14, 9}}, + {m68k_op_subq_16_di , 0xf1f8, 0x5168, { 16, 16, 9}}, + {m68k_op_subq_16_ix , 0xf1f8, 0x5170, { 18, 18, 11}}, + {m68k_op_subq_32_d , 0xf1f8, 0x5180, { 8, 8, 2}}, + {m68k_op_subq_32_a , 0xf1f8, 0x5188, { 8, 8, 2}}, + {m68k_op_subq_32_ai , 0xf1f8, 0x5190, { 20, 20, 8}}, + {m68k_op_subq_32_pi , 0xf1f8, 0x5198, { 20, 20, 8}}, + {m68k_op_subq_32_pd , 0xf1f8, 0x51a0, { 22, 22, 9}}, + {m68k_op_subq_32_di , 0xf1f8, 0x51a8, { 24, 24, 9}}, + {m68k_op_subq_32_ix , 0xf1f8, 0x51b0, { 26, 26, 11}}, + {m68k_op_or_8_er_d , 0xf1f8, 0x8000, { 4, 4, 2}}, + {m68k_op_or_8_er_ai , 0xf1f8, 0x8010, { 8, 8, 6}}, + {m68k_op_or_8_er_pi , 0xf1f8, 0x8018, { 8, 8, 6}}, + {m68k_op_or_8_er_pd , 0xf1f8, 0x8020, { 10, 10, 7}}, + {m68k_op_or_8_er_di , 0xf1f8, 0x8028, { 12, 12, 7}}, + {m68k_op_or_8_er_ix , 0xf1f8, 0x8030, { 14, 14, 9}}, + {m68k_op_or_16_er_d , 0xf1f8, 0x8040, { 4, 4, 2}}, + {m68k_op_or_16_er_ai , 0xf1f8, 0x8050, { 8, 8, 6}}, + {m68k_op_or_16_er_pi , 0xf1f8, 0x8058, { 8, 8, 6}}, + {m68k_op_or_16_er_pd , 0xf1f8, 0x8060, { 10, 10, 7}}, + {m68k_op_or_16_er_di , 0xf1f8, 0x8068, { 12, 12, 7}}, + {m68k_op_or_16_er_ix , 0xf1f8, 0x8070, { 14, 14, 9}}, + {m68k_op_or_32_er_d , 0xf1f8, 0x8080, { 6, 6, 2}}, + {m68k_op_or_32_er_ai , 0xf1f8, 0x8090, { 14, 14, 6}}, + {m68k_op_or_32_er_pi , 0xf1f8, 0x8098, { 14, 14, 6}}, + {m68k_op_or_32_er_pd , 0xf1f8, 0x80a0, { 16, 16, 7}}, + {m68k_op_or_32_er_di , 0xf1f8, 0x80a8, { 18, 18, 7}}, + {m68k_op_or_32_er_ix , 0xf1f8, 0x80b0, { 20, 20, 9}}, + {m68k_op_divu_16_d , 0xf1f8, 0x80c0, {140, 108, 44}}, + {m68k_op_divu_16_ai , 0xf1f8, 0x80d0, {144, 112, 48}}, + {m68k_op_divu_16_pi , 0xf1f8, 0x80d8, {144, 112, 48}}, + {m68k_op_divu_16_pd , 0xf1f8, 0x80e0, {146, 114, 49}}, + {m68k_op_divu_16_di , 0xf1f8, 0x80e8, {148, 116, 49}}, + {m68k_op_divu_16_ix , 0xf1f8, 0x80f0, {150, 118, 51}}, + {m68k_op_sbcd_8_rr , 0xf1f8, 0x8100, { 6, 6, 4}}, + {m68k_op_sbcd_8_mm , 0xf1f8, 0x8108, { 18, 18, 16}}, + {m68k_op_or_8_re_ai , 0xf1f8, 0x8110, { 12, 12, 8}}, + {m68k_op_or_8_re_pi , 0xf1f8, 0x8118, { 12, 12, 8}}, + {m68k_op_or_8_re_pd , 0xf1f8, 0x8120, { 14, 14, 9}}, + {m68k_op_or_8_re_di , 0xf1f8, 0x8128, { 16, 16, 9}}, + {m68k_op_or_8_re_ix , 0xf1f8, 0x8130, { 18, 18, 11}}, + {m68k_op_pack_16_rr , 0xf1f8, 0x8140, { 0, 0, 6}}, + {m68k_op_pack_16_mm , 0xf1f8, 0x8148, { 0, 0, 13}}, + {m68k_op_or_16_re_ai , 0xf1f8, 0x8150, { 12, 12, 8}}, + {m68k_op_or_16_re_pi , 0xf1f8, 0x8158, { 12, 12, 8}}, + {m68k_op_or_16_re_pd , 0xf1f8, 0x8160, { 14, 14, 9}}, + {m68k_op_or_16_re_di , 0xf1f8, 0x8168, { 16, 16, 9}}, + {m68k_op_or_16_re_ix , 0xf1f8, 0x8170, { 18, 18, 11}}, + {m68k_op_unpk_16_rr , 0xf1f8, 0x8180, { 0, 0, 8}}, + {m68k_op_unpk_16_mm , 0xf1f8, 0x8188, { 0, 0, 13}}, + {m68k_op_or_32_re_ai , 0xf1f8, 0x8190, { 20, 20, 8}}, + {m68k_op_or_32_re_pi , 0xf1f8, 0x8198, { 20, 20, 8}}, + {m68k_op_or_32_re_pd , 0xf1f8, 0x81a0, { 22, 22, 9}}, + {m68k_op_or_32_re_di , 0xf1f8, 0x81a8, { 24, 24, 9}}, + {m68k_op_or_32_re_ix , 0xf1f8, 0x81b0, { 26, 26, 11}}, + {m68k_op_divs_16_d , 0xf1f8, 0x81c0, {158, 122, 56}}, + {m68k_op_divs_16_ai , 0xf1f8, 0x81d0, {162, 126, 60}}, + {m68k_op_divs_16_pi , 0xf1f8, 0x81d8, {162, 126, 60}}, + {m68k_op_divs_16_pd , 0xf1f8, 0x81e0, {164, 128, 61}}, + {m68k_op_divs_16_di , 0xf1f8, 0x81e8, {166, 130, 61}}, + {m68k_op_divs_16_ix , 0xf1f8, 0x81f0, {168, 132, 63}}, + {m68k_op_sub_8_er_d , 0xf1f8, 0x9000, { 4, 4, 2}}, + {m68k_op_sub_8_er_ai , 0xf1f8, 0x9010, { 8, 8, 6}}, + {m68k_op_sub_8_er_pi , 0xf1f8, 0x9018, { 8, 8, 6}}, + {m68k_op_sub_8_er_pd , 0xf1f8, 0x9020, { 10, 10, 7}}, + {m68k_op_sub_8_er_di , 0xf1f8, 0x9028, { 12, 12, 7}}, + {m68k_op_sub_8_er_ix , 0xf1f8, 0x9030, { 14, 14, 9}}, + {m68k_op_sub_16_er_d , 0xf1f8, 0x9040, { 4, 4, 2}}, + {m68k_op_sub_16_er_a , 0xf1f8, 0x9048, { 4, 4, 2}}, + {m68k_op_sub_16_er_ai , 0xf1f8, 0x9050, { 8, 8, 6}}, + {m68k_op_sub_16_er_pi , 0xf1f8, 0x9058, { 8, 8, 6}}, + {m68k_op_sub_16_er_pd , 0xf1f8, 0x9060, { 10, 10, 7}}, + {m68k_op_sub_16_er_di , 0xf1f8, 0x9068, { 12, 12, 7}}, + {m68k_op_sub_16_er_ix , 0xf1f8, 0x9070, { 14, 14, 9}}, + {m68k_op_sub_32_er_d , 0xf1f8, 0x9080, { 6, 6, 2}}, + {m68k_op_sub_32_er_a , 0xf1f8, 0x9088, { 6, 6, 2}}, + {m68k_op_sub_32_er_ai , 0xf1f8, 0x9090, { 14, 14, 6}}, + {m68k_op_sub_32_er_pi , 0xf1f8, 0x9098, { 14, 14, 6}}, + {m68k_op_sub_32_er_pd , 0xf1f8, 0x90a0, { 16, 16, 7}}, + {m68k_op_sub_32_er_di , 0xf1f8, 0x90a8, { 18, 18, 7}}, + {m68k_op_sub_32_er_ix , 0xf1f8, 0x90b0, { 20, 20, 9}}, + {m68k_op_suba_16_d , 0xf1f8, 0x90c0, { 8, 8, 2}}, + {m68k_op_suba_16_a , 0xf1f8, 0x90c8, { 8, 8, 2}}, + {m68k_op_suba_16_ai , 0xf1f8, 0x90d0, { 12, 12, 6}}, + {m68k_op_suba_16_pi , 0xf1f8, 0x90d8, { 12, 12, 6}}, + {m68k_op_suba_16_pd , 0xf1f8, 0x90e0, { 14, 14, 7}}, + {m68k_op_suba_16_di , 0xf1f8, 0x90e8, { 16, 16, 7}}, + {m68k_op_suba_16_ix , 0xf1f8, 0x90f0, { 18, 18, 9}}, + {m68k_op_subx_8_rr , 0xf1f8, 0x9100, { 4, 4, 2}}, + {m68k_op_subx_8_mm , 0xf1f8, 0x9108, { 18, 18, 12}}, + {m68k_op_sub_8_re_ai , 0xf1f8, 0x9110, { 12, 12, 8}}, + {m68k_op_sub_8_re_pi , 0xf1f8, 0x9118, { 12, 12, 8}}, + {m68k_op_sub_8_re_pd , 0xf1f8, 0x9120, { 14, 14, 9}}, + {m68k_op_sub_8_re_di , 0xf1f8, 0x9128, { 16, 16, 9}}, + {m68k_op_sub_8_re_ix , 0xf1f8, 0x9130, { 18, 18, 11}}, + {m68k_op_subx_16_rr , 0xf1f8, 0x9140, { 4, 4, 2}}, + {m68k_op_subx_16_mm , 0xf1f8, 0x9148, { 18, 18, 12}}, + {m68k_op_sub_16_re_ai , 0xf1f8, 0x9150, { 12, 12, 8}}, + {m68k_op_sub_16_re_pi , 0xf1f8, 0x9158, { 12, 12, 8}}, + {m68k_op_sub_16_re_pd , 0xf1f8, 0x9160, { 14, 14, 9}}, + {m68k_op_sub_16_re_di , 0xf1f8, 0x9168, { 16, 16, 9}}, + {m68k_op_sub_16_re_ix , 0xf1f8, 0x9170, { 18, 18, 11}}, + {m68k_op_subx_32_rr , 0xf1f8, 0x9180, { 8, 6, 2}}, + {m68k_op_subx_32_mm , 0xf1f8, 0x9188, { 30, 30, 12}}, + {m68k_op_sub_32_re_ai , 0xf1f8, 0x9190, { 20, 20, 8}}, + {m68k_op_sub_32_re_pi , 0xf1f8, 0x9198, { 20, 20, 8}}, + {m68k_op_sub_32_re_pd , 0xf1f8, 0x91a0, { 22, 22, 9}}, + {m68k_op_sub_32_re_di , 0xf1f8, 0x91a8, { 24, 24, 9}}, + {m68k_op_sub_32_re_ix , 0xf1f8, 0x91b0, { 26, 26, 11}}, + {m68k_op_suba_32_d , 0xf1f8, 0x91c0, { 6, 6, 2}}, + {m68k_op_suba_32_a , 0xf1f8, 0x91c8, { 6, 6, 2}}, + {m68k_op_suba_32_ai , 0xf1f8, 0x91d0, { 14, 14, 6}}, + {m68k_op_suba_32_pi , 0xf1f8, 0x91d8, { 14, 14, 6}}, + {m68k_op_suba_32_pd , 0xf1f8, 0x91e0, { 16, 16, 7}}, + {m68k_op_suba_32_di , 0xf1f8, 0x91e8, { 18, 18, 7}}, + {m68k_op_suba_32_ix , 0xf1f8, 0x91f0, { 20, 20, 9}}, + {m68k_op_cmp_8_d , 0xf1f8, 0xb000, { 4, 4, 2}}, + {m68k_op_cmp_8_ai , 0xf1f8, 0xb010, { 8, 8, 6}}, + {m68k_op_cmp_8_pi , 0xf1f8, 0xb018, { 8, 8, 6}}, + {m68k_op_cmp_8_pd , 0xf1f8, 0xb020, { 10, 10, 7}}, + {m68k_op_cmp_8_di , 0xf1f8, 0xb028, { 12, 12, 7}}, + {m68k_op_cmp_8_ix , 0xf1f8, 0xb030, { 14, 14, 9}}, + {m68k_op_cmp_16_d , 0xf1f8, 0xb040, { 4, 4, 2}}, + {m68k_op_cmp_16_a , 0xf1f8, 0xb048, { 4, 4, 2}}, + {m68k_op_cmp_16_ai , 0xf1f8, 0xb050, { 8, 8, 6}}, + {m68k_op_cmp_16_pi , 0xf1f8, 0xb058, { 8, 8, 6}}, + {m68k_op_cmp_16_pd , 0xf1f8, 0xb060, { 10, 10, 7}}, + {m68k_op_cmp_16_di , 0xf1f8, 0xb068, { 12, 12, 7}}, + {m68k_op_cmp_16_ix , 0xf1f8, 0xb070, { 14, 14, 9}}, + {m68k_op_cmp_32_d , 0xf1f8, 0xb080, { 6, 6, 2}}, + {m68k_op_cmp_32_a , 0xf1f8, 0xb088, { 6, 6, 2}}, + {m68k_op_cmp_32_ai , 0xf1f8, 0xb090, { 14, 14, 6}}, + {m68k_op_cmp_32_pi , 0xf1f8, 0xb098, { 14, 14, 6}}, + {m68k_op_cmp_32_pd , 0xf1f8, 0xb0a0, { 16, 16, 7}}, + {m68k_op_cmp_32_di , 0xf1f8, 0xb0a8, { 18, 18, 7}}, + {m68k_op_cmp_32_ix , 0xf1f8, 0xb0b0, { 20, 20, 9}}, + {m68k_op_cmpa_16_d , 0xf1f8, 0xb0c0, { 6, 6, 4}}, + {m68k_op_cmpa_16_a , 0xf1f8, 0xb0c8, { 6, 6, 4}}, + {m68k_op_cmpa_16_ai , 0xf1f8, 0xb0d0, { 10, 10, 8}}, + {m68k_op_cmpa_16_pi , 0xf1f8, 0xb0d8, { 10, 10, 8}}, + {m68k_op_cmpa_16_pd , 0xf1f8, 0xb0e0, { 12, 12, 9}}, + {m68k_op_cmpa_16_di , 0xf1f8, 0xb0e8, { 14, 14, 9}}, + {m68k_op_cmpa_16_ix , 0xf1f8, 0xb0f0, { 16, 16, 11}}, + {m68k_op_eor_8_d , 0xf1f8, 0xb100, { 4, 4, 2}}, + {m68k_op_cmpm_8 , 0xf1f8, 0xb108, { 12, 12, 9}}, + {m68k_op_eor_8_ai , 0xf1f8, 0xb110, { 12, 12, 8}}, + {m68k_op_eor_8_pi , 0xf1f8, 0xb118, { 12, 12, 8}}, + {m68k_op_eor_8_pd , 0xf1f8, 0xb120, { 14, 14, 9}}, + {m68k_op_eor_8_di , 0xf1f8, 0xb128, { 16, 16, 9}}, + {m68k_op_eor_8_ix , 0xf1f8, 0xb130, { 18, 18, 11}}, + {m68k_op_eor_16_d , 0xf1f8, 0xb140, { 4, 4, 2}}, + {m68k_op_cmpm_16 , 0xf1f8, 0xb148, { 12, 12, 9}}, + {m68k_op_eor_16_ai , 0xf1f8, 0xb150, { 12, 12, 8}}, + {m68k_op_eor_16_pi , 0xf1f8, 0xb158, { 12, 12, 8}}, + {m68k_op_eor_16_pd , 0xf1f8, 0xb160, { 14, 14, 9}}, + {m68k_op_eor_16_di , 0xf1f8, 0xb168, { 16, 16, 9}}, + {m68k_op_eor_16_ix , 0xf1f8, 0xb170, { 18, 18, 11}}, + {m68k_op_eor_32_d , 0xf1f8, 0xb180, { 8, 6, 2}}, + {m68k_op_cmpm_32 , 0xf1f8, 0xb188, { 20, 20, 9}}, + {m68k_op_eor_32_ai , 0xf1f8, 0xb190, { 20, 20, 8}}, + {m68k_op_eor_32_pi , 0xf1f8, 0xb198, { 20, 20, 8}}, + {m68k_op_eor_32_pd , 0xf1f8, 0xb1a0, { 22, 22, 9}}, + {m68k_op_eor_32_di , 0xf1f8, 0xb1a8, { 24, 24, 9}}, + {m68k_op_eor_32_ix , 0xf1f8, 0xb1b0, { 26, 26, 11}}, + {m68k_op_cmpa_32_d , 0xf1f8, 0xb1c0, { 6, 6, 4}}, + {m68k_op_cmpa_32_a , 0xf1f8, 0xb1c8, { 6, 6, 4}}, + {m68k_op_cmpa_32_ai , 0xf1f8, 0xb1d0, { 14, 14, 8}}, + {m68k_op_cmpa_32_pi , 0xf1f8, 0xb1d8, { 14, 14, 8}}, + {m68k_op_cmpa_32_pd , 0xf1f8, 0xb1e0, { 16, 16, 9}}, + {m68k_op_cmpa_32_di , 0xf1f8, 0xb1e8, { 18, 18, 9}}, + {m68k_op_cmpa_32_ix , 0xf1f8, 0xb1f0, { 20, 20, 11}}, + {m68k_op_and_8_er_d , 0xf1f8, 0xc000, { 4, 4, 2}}, + {m68k_op_and_8_er_ai , 0xf1f8, 0xc010, { 8, 8, 6}}, + {m68k_op_and_8_er_pi , 0xf1f8, 0xc018, { 8, 8, 6}}, + {m68k_op_and_8_er_pd , 0xf1f8, 0xc020, { 10, 10, 7}}, + {m68k_op_and_8_er_di , 0xf1f8, 0xc028, { 12, 12, 7}}, + {m68k_op_and_8_er_ix , 0xf1f8, 0xc030, { 14, 14, 9}}, + {m68k_op_and_16_er_d , 0xf1f8, 0xc040, { 4, 4, 2}}, + {m68k_op_and_16_er_ai , 0xf1f8, 0xc050, { 8, 8, 6}}, + {m68k_op_and_16_er_pi , 0xf1f8, 0xc058, { 8, 8, 6}}, + {m68k_op_and_16_er_pd , 0xf1f8, 0xc060, { 10, 10, 7}}, + {m68k_op_and_16_er_di , 0xf1f8, 0xc068, { 12, 12, 7}}, + {m68k_op_and_16_er_ix , 0xf1f8, 0xc070, { 14, 14, 9}}, + {m68k_op_and_32_er_d , 0xf1f8, 0xc080, { 6, 6, 2}}, + {m68k_op_and_32_er_ai , 0xf1f8, 0xc090, { 14, 14, 6}}, + {m68k_op_and_32_er_pi , 0xf1f8, 0xc098, { 14, 14, 6}}, + {m68k_op_and_32_er_pd , 0xf1f8, 0xc0a0, { 16, 16, 7}}, + {m68k_op_and_32_er_di , 0xf1f8, 0xc0a8, { 18, 18, 7}}, + {m68k_op_and_32_er_ix , 0xf1f8, 0xc0b0, { 20, 20, 9}}, + {m68k_op_mulu_16_d , 0xf1f8, 0xc0c0, { 54, 30, 27}}, + {m68k_op_mulu_16_ai , 0xf1f8, 0xc0d0, { 58, 34, 31}}, + {m68k_op_mulu_16_pi , 0xf1f8, 0xc0d8, { 58, 34, 31}}, + {m68k_op_mulu_16_pd , 0xf1f8, 0xc0e0, { 60, 36, 32}}, + {m68k_op_mulu_16_di , 0xf1f8, 0xc0e8, { 62, 38, 32}}, + {m68k_op_mulu_16_ix , 0xf1f8, 0xc0f0, { 64, 40, 34}}, + {m68k_op_abcd_8_rr , 0xf1f8, 0xc100, { 6, 6, 4}}, + {m68k_op_abcd_8_mm , 0xf1f8, 0xc108, { 18, 18, 16}}, + {m68k_op_and_8_re_ai , 0xf1f8, 0xc110, { 12, 12, 8}}, + {m68k_op_and_8_re_pi , 0xf1f8, 0xc118, { 12, 12, 8}}, + {m68k_op_and_8_re_pd , 0xf1f8, 0xc120, { 14, 14, 9}}, + {m68k_op_and_8_re_di , 0xf1f8, 0xc128, { 16, 16, 9}}, + {m68k_op_and_8_re_ix , 0xf1f8, 0xc130, { 18, 18, 11}}, + {m68k_op_exg_32_dd , 0xf1f8, 0xc140, { 6, 6, 2}}, + {m68k_op_exg_32_aa , 0xf1f8, 0xc148, { 6, 6, 2}}, + {m68k_op_and_16_re_ai , 0xf1f8, 0xc150, { 12, 12, 8}}, + {m68k_op_and_16_re_pi , 0xf1f8, 0xc158, { 12, 12, 8}}, + {m68k_op_and_16_re_pd , 0xf1f8, 0xc160, { 14, 14, 9}}, + {m68k_op_and_16_re_di , 0xf1f8, 0xc168, { 16, 16, 9}}, + {m68k_op_and_16_re_ix , 0xf1f8, 0xc170, { 18, 18, 11}}, + {m68k_op_exg_32_da , 0xf1f8, 0xc188, { 6, 6, 2}}, + {m68k_op_and_32_re_ai , 0xf1f8, 0xc190, { 20, 20, 8}}, + {m68k_op_and_32_re_pi , 0xf1f8, 0xc198, { 20, 20, 8}}, + {m68k_op_and_32_re_pd , 0xf1f8, 0xc1a0, { 22, 22, 9}}, + {m68k_op_and_32_re_di , 0xf1f8, 0xc1a8, { 24, 24, 9}}, + {m68k_op_and_32_re_ix , 0xf1f8, 0xc1b0, { 26, 26, 11}}, + {m68k_op_muls_16_d , 0xf1f8, 0xc1c0, { 54, 32, 27}}, + {m68k_op_muls_16_ai , 0xf1f8, 0xc1d0, { 58, 36, 31}}, + {m68k_op_muls_16_pi , 0xf1f8, 0xc1d8, { 58, 36, 31}}, + {m68k_op_muls_16_pd , 0xf1f8, 0xc1e0, { 60, 38, 32}}, + {m68k_op_muls_16_di , 0xf1f8, 0xc1e8, { 62, 40, 32}}, + {m68k_op_muls_16_ix , 0xf1f8, 0xc1f0, { 64, 42, 34}}, + {m68k_op_add_8_er_d , 0xf1f8, 0xd000, { 4, 4, 2}}, + {m68k_op_add_8_er_ai , 0xf1f8, 0xd010, { 8, 8, 6}}, + {m68k_op_add_8_er_pi , 0xf1f8, 0xd018, { 8, 8, 6}}, + {m68k_op_add_8_er_pd , 0xf1f8, 0xd020, { 10, 10, 7}}, + {m68k_op_add_8_er_di , 0xf1f8, 0xd028, { 12, 12, 7}}, + {m68k_op_add_8_er_ix , 0xf1f8, 0xd030, { 14, 14, 9}}, + {m68k_op_add_16_er_d , 0xf1f8, 0xd040, { 4, 4, 2}}, + {m68k_op_add_16_er_a , 0xf1f8, 0xd048, { 4, 4, 2}}, + {m68k_op_add_16_er_ai , 0xf1f8, 0xd050, { 8, 8, 6}}, + {m68k_op_add_16_er_pi , 0xf1f8, 0xd058, { 8, 8, 6}}, + {m68k_op_add_16_er_pd , 0xf1f8, 0xd060, { 10, 10, 7}}, + {m68k_op_add_16_er_di , 0xf1f8, 0xd068, { 12, 12, 7}}, + {m68k_op_add_16_er_ix , 0xf1f8, 0xd070, { 14, 14, 9}}, + {m68k_op_add_32_er_d , 0xf1f8, 0xd080, { 6, 6, 2}}, + {m68k_op_add_32_er_a , 0xf1f8, 0xd088, { 6, 6, 2}}, + {m68k_op_add_32_er_ai , 0xf1f8, 0xd090, { 14, 14, 6}}, + {m68k_op_add_32_er_pi , 0xf1f8, 0xd098, { 14, 14, 6}}, + {m68k_op_add_32_er_pd , 0xf1f8, 0xd0a0, { 16, 16, 7}}, + {m68k_op_add_32_er_di , 0xf1f8, 0xd0a8, { 18, 18, 7}}, + {m68k_op_add_32_er_ix , 0xf1f8, 0xd0b0, { 20, 20, 9}}, + {m68k_op_adda_16_d , 0xf1f8, 0xd0c0, { 8, 8, 2}}, + {m68k_op_adda_16_a , 0xf1f8, 0xd0c8, { 8, 8, 2}}, + {m68k_op_adda_16_ai , 0xf1f8, 0xd0d0, { 12, 12, 6}}, + {m68k_op_adda_16_pi , 0xf1f8, 0xd0d8, { 12, 12, 6}}, + {m68k_op_adda_16_pd , 0xf1f8, 0xd0e0, { 14, 14, 7}}, + {m68k_op_adda_16_di , 0xf1f8, 0xd0e8, { 16, 16, 7}}, + {m68k_op_adda_16_ix , 0xf1f8, 0xd0f0, { 18, 18, 9}}, + {m68k_op_addx_8_rr , 0xf1f8, 0xd100, { 4, 4, 2}}, + {m68k_op_addx_8_mm , 0xf1f8, 0xd108, { 18, 18, 12}}, + {m68k_op_add_8_re_ai , 0xf1f8, 0xd110, { 12, 12, 8}}, + {m68k_op_add_8_re_pi , 0xf1f8, 0xd118, { 12, 12, 8}}, + {m68k_op_add_8_re_pd , 0xf1f8, 0xd120, { 14, 14, 9}}, + {m68k_op_add_8_re_di , 0xf1f8, 0xd128, { 16, 16, 9}}, + {m68k_op_add_8_re_ix , 0xf1f8, 0xd130, { 18, 18, 11}}, + {m68k_op_addx_16_rr , 0xf1f8, 0xd140, { 4, 4, 2}}, + {m68k_op_addx_16_mm , 0xf1f8, 0xd148, { 18, 18, 12}}, + {m68k_op_add_16_re_ai , 0xf1f8, 0xd150, { 12, 12, 8}}, + {m68k_op_add_16_re_pi , 0xf1f8, 0xd158, { 12, 12, 8}}, + {m68k_op_add_16_re_pd , 0xf1f8, 0xd160, { 14, 14, 9}}, + {m68k_op_add_16_re_di , 0xf1f8, 0xd168, { 16, 16, 9}}, + {m68k_op_add_16_re_ix , 0xf1f8, 0xd170, { 18, 18, 11}}, + {m68k_op_addx_32_rr , 0xf1f8, 0xd180, { 8, 6, 2}}, + {m68k_op_addx_32_mm , 0xf1f8, 0xd188, { 30, 30, 12}}, + {m68k_op_add_32_re_ai , 0xf1f8, 0xd190, { 20, 20, 8}}, + {m68k_op_add_32_re_pi , 0xf1f8, 0xd198, { 20, 20, 8}}, + {m68k_op_add_32_re_pd , 0xf1f8, 0xd1a0, { 22, 22, 9}}, + {m68k_op_add_32_re_di , 0xf1f8, 0xd1a8, { 24, 24, 9}}, + {m68k_op_add_32_re_ix , 0xf1f8, 0xd1b0, { 26, 26, 11}}, + {m68k_op_adda_32_d , 0xf1f8, 0xd1c0, { 6, 6, 2}}, + {m68k_op_adda_32_a , 0xf1f8, 0xd1c8, { 6, 6, 2}}, + {m68k_op_adda_32_ai , 0xf1f8, 0xd1d0, { 14, 14, 6}}, + {m68k_op_adda_32_pi , 0xf1f8, 0xd1d8, { 14, 14, 6}}, + {m68k_op_adda_32_pd , 0xf1f8, 0xd1e0, { 16, 16, 7}}, + {m68k_op_adda_32_di , 0xf1f8, 0xd1e8, { 18, 18, 7}}, + {m68k_op_adda_32_ix , 0xf1f8, 0xd1f0, { 20, 20, 9}}, + {m68k_op_asr_8_s , 0xf1f8, 0xe000, { 6, 6, 6}}, + {m68k_op_lsr_8_s , 0xf1f8, 0xe008, { 6, 6, 4}}, + {m68k_op_roxr_8_s , 0xf1f8, 0xe010, { 6, 6, 12}}, + {m68k_op_ror_8_s , 0xf1f8, 0xe018, { 6, 6, 8}}, + {m68k_op_asr_8_r , 0xf1f8, 0xe020, { 6, 6, 6}}, + {m68k_op_lsr_8_r , 0xf1f8, 0xe028, { 6, 6, 6}}, + {m68k_op_roxr_8_r , 0xf1f8, 0xe030, { 6, 6, 12}}, + {m68k_op_ror_8_r , 0xf1f8, 0xe038, { 6, 6, 8}}, + {m68k_op_asr_16_s , 0xf1f8, 0xe040, { 6, 6, 6}}, + {m68k_op_lsr_16_s , 0xf1f8, 0xe048, { 6, 6, 4}}, + {m68k_op_roxr_16_s , 0xf1f8, 0xe050, { 6, 6, 12}}, + {m68k_op_ror_16_s , 0xf1f8, 0xe058, { 6, 6, 8}}, + {m68k_op_asr_16_r , 0xf1f8, 0xe060, { 6, 6, 6}}, + {m68k_op_lsr_16_r , 0xf1f8, 0xe068, { 6, 6, 6}}, + {m68k_op_roxr_16_r , 0xf1f8, 0xe070, { 6, 6, 12}}, + {m68k_op_ror_16_r , 0xf1f8, 0xe078, { 6, 6, 8}}, + {m68k_op_asr_32_s , 0xf1f8, 0xe080, { 8, 8, 6}}, + {m68k_op_lsr_32_s , 0xf1f8, 0xe088, { 8, 8, 4}}, + {m68k_op_roxr_32_s , 0xf1f8, 0xe090, { 8, 8, 12}}, + {m68k_op_ror_32_s , 0xf1f8, 0xe098, { 8, 8, 8}}, + {m68k_op_asr_32_r , 0xf1f8, 0xe0a0, { 8, 8, 6}}, + {m68k_op_lsr_32_r , 0xf1f8, 0xe0a8, { 8, 8, 6}}, + {m68k_op_roxr_32_r , 0xf1f8, 0xe0b0, { 8, 8, 12}}, + {m68k_op_ror_32_r , 0xf1f8, 0xe0b8, { 8, 8, 8}}, + {m68k_op_asl_8_s , 0xf1f8, 0xe100, { 6, 6, 8}}, + {m68k_op_lsl_8_s , 0xf1f8, 0xe108, { 6, 6, 4}}, + {m68k_op_roxl_8_s , 0xf1f8, 0xe110, { 6, 6, 12}}, + {m68k_op_rol_8_s , 0xf1f8, 0xe118, { 6, 6, 8}}, + {m68k_op_asl_8_r , 0xf1f8, 0xe120, { 6, 6, 8}}, + {m68k_op_lsl_8_r , 0xf1f8, 0xe128, { 6, 6, 6}}, + {m68k_op_roxl_8_r , 0xf1f8, 0xe130, { 6, 6, 12}}, + {m68k_op_rol_8_r , 0xf1f8, 0xe138, { 6, 6, 8}}, + {m68k_op_asl_16_s , 0xf1f8, 0xe140, { 6, 6, 8}}, + {m68k_op_lsl_16_s , 0xf1f8, 0xe148, { 6, 6, 4}}, + {m68k_op_roxl_16_s , 0xf1f8, 0xe150, { 6, 6, 12}}, + {m68k_op_rol_16_s , 0xf1f8, 0xe158, { 6, 6, 8}}, + {m68k_op_asl_16_r , 0xf1f8, 0xe160, { 6, 6, 8}}, + {m68k_op_lsl_16_r , 0xf1f8, 0xe168, { 6, 6, 6}}, + {m68k_op_roxl_16_r , 0xf1f8, 0xe170, { 6, 6, 12}}, + {m68k_op_rol_16_r , 0xf1f8, 0xe178, { 6, 6, 8}}, + {m68k_op_asl_32_s , 0xf1f8, 0xe180, { 8, 8, 8}}, + {m68k_op_lsl_32_s , 0xf1f8, 0xe188, { 8, 8, 4}}, + {m68k_op_roxl_32_s , 0xf1f8, 0xe190, { 8, 8, 12}}, + {m68k_op_rol_32_s , 0xf1f8, 0xe198, { 8, 8, 8}}, + {m68k_op_asl_32_r , 0xf1f8, 0xe1a0, { 8, 8, 8}}, + {m68k_op_lsl_32_r , 0xf1f8, 0xe1a8, { 8, 8, 6}}, + {m68k_op_roxl_32_r , 0xf1f8, 0xe1b0, { 8, 8, 12}}, + {m68k_op_rol_32_r , 0xf1f8, 0xe1b8, { 8, 8, 8}}, + {m68k_op_cpdbcc_32 , 0xf1f8, 0xf048, { 0, 0, 4}}, + {m68k_op_cptrapcc_32 , 0xf1f8, 0xf078, { 0, 0, 4}}, + {m68k_op_rtm_32 , 0xfff0, 0x06c0, { 0, 0, 19}}, + {m68k_op_trap , 0xfff0, 0x4e40, { 4, 4, 4}}, + {m68k_op_btst_8_r_pi7 , 0xf1ff, 0x011f, { 8, 8, 8}}, + {m68k_op_btst_8_r_pd7 , 0xf1ff, 0x0127, { 10, 10, 9}}, + {m68k_op_btst_8_r_aw , 0xf1ff, 0x0138, { 12, 12, 8}}, + {m68k_op_btst_8_r_al , 0xf1ff, 0x0139, { 16, 16, 8}}, + {m68k_op_btst_8_r_pcdi , 0xf1ff, 0x013a, { 12, 12, 9}}, + {m68k_op_btst_8_r_pcix , 0xf1ff, 0x013b, { 14, 14, 11}}, + {m68k_op_btst_8_r_i , 0xf1ff, 0x013c, { 8, 8, 6}}, + {m68k_op_bchg_8_r_pi7 , 0xf1ff, 0x015f, { 12, 12, 8}}, + {m68k_op_bchg_8_r_pd7 , 0xf1ff, 0x0167, { 14, 14, 9}}, + {m68k_op_bchg_8_r_aw , 0xf1ff, 0x0178, { 16, 16, 8}}, + {m68k_op_bchg_8_r_al , 0xf1ff, 0x0179, { 20, 20, 8}}, + {m68k_op_bclr_8_r_pi7 , 0xf1ff, 0x019f, { 12, 14, 8}}, + {m68k_op_bclr_8_r_pd7 , 0xf1ff, 0x01a7, { 14, 16, 9}}, + {m68k_op_bclr_8_r_aw , 0xf1ff, 0x01b8, { 16, 18, 8}}, + {m68k_op_bclr_8_r_al , 0xf1ff, 0x01b9, { 20, 22, 8}}, + {m68k_op_bset_8_r_pi7 , 0xf1ff, 0x01df, { 12, 12, 8}}, + {m68k_op_bset_8_r_pd7 , 0xf1ff, 0x01e7, { 14, 14, 9}}, + {m68k_op_bset_8_r_aw , 0xf1ff, 0x01f8, { 16, 16, 8}}, + {m68k_op_bset_8_r_al , 0xf1ff, 0x01f9, { 20, 20, 8}}, + {m68k_op_move_8_d_pi7 , 0xf1ff, 0x101f, { 8, 8, 6}}, + {m68k_op_move_8_d_pd7 , 0xf1ff, 0x1027, { 10, 10, 7}}, + {m68k_op_move_8_d_aw , 0xf1ff, 0x1038, { 12, 12, 6}}, + {m68k_op_move_8_d_al , 0xf1ff, 0x1039, { 16, 16, 6}}, + {m68k_op_move_8_d_pcdi , 0xf1ff, 0x103a, { 12, 12, 7}}, + {m68k_op_move_8_d_pcix , 0xf1ff, 0x103b, { 14, 14, 9}}, + {m68k_op_move_8_d_i , 0xf1ff, 0x103c, { 8, 8, 4}}, + {m68k_op_move_8_ai_pi7 , 0xf1ff, 0x109f, { 12, 12, 8}}, + {m68k_op_move_8_ai_pd7 , 0xf1ff, 0x10a7, { 14, 14, 9}}, + {m68k_op_move_8_ai_aw , 0xf1ff, 0x10b8, { 16, 16, 8}}, + {m68k_op_move_8_ai_al , 0xf1ff, 0x10b9, { 20, 20, 8}}, + {m68k_op_move_8_ai_pcdi , 0xf1ff, 0x10ba, { 16, 16, 9}}, + {m68k_op_move_8_ai_pcix , 0xf1ff, 0x10bb, { 18, 18, 11}}, + {m68k_op_move_8_ai_i , 0xf1ff, 0x10bc, { 12, 12, 6}}, + {m68k_op_move_8_pi_pi7 , 0xf1ff, 0x10df, { 12, 12, 8}}, + {m68k_op_move_8_pi_pd7 , 0xf1ff, 0x10e7, { 14, 14, 9}}, + {m68k_op_move_8_pi_aw , 0xf1ff, 0x10f8, { 16, 16, 8}}, + {m68k_op_move_8_pi_al , 0xf1ff, 0x10f9, { 20, 20, 8}}, + {m68k_op_move_8_pi_pcdi , 0xf1ff, 0x10fa, { 16, 16, 9}}, + {m68k_op_move_8_pi_pcix , 0xf1ff, 0x10fb, { 18, 18, 11}}, + {m68k_op_move_8_pi_i , 0xf1ff, 0x10fc, { 12, 12, 6}}, + {m68k_op_move_8_pd_pi7 , 0xf1ff, 0x111f, { 12, 12, 9}}, + {m68k_op_move_8_pd_pd7 , 0xf1ff, 0x1127, { 14, 14, 10}}, + {m68k_op_move_8_pd_aw , 0xf1ff, 0x1138, { 16, 16, 9}}, + {m68k_op_move_8_pd_al , 0xf1ff, 0x1139, { 20, 20, 9}}, + {m68k_op_move_8_pd_pcdi , 0xf1ff, 0x113a, { 16, 16, 10}}, + {m68k_op_move_8_pd_pcix , 0xf1ff, 0x113b, { 18, 18, 12}}, + {m68k_op_move_8_pd_i , 0xf1ff, 0x113c, { 12, 12, 7}}, + {m68k_op_move_8_di_pi7 , 0xf1ff, 0x115f, { 16, 16, 9}}, + {m68k_op_move_8_di_pd7 , 0xf1ff, 0x1167, { 18, 18, 10}}, + {m68k_op_move_8_di_aw , 0xf1ff, 0x1178, { 20, 20, 9}}, + {m68k_op_move_8_di_al , 0xf1ff, 0x1179, { 24, 24, 9}}, + {m68k_op_move_8_di_pcdi , 0xf1ff, 0x117a, { 20, 20, 10}}, + {m68k_op_move_8_di_pcix , 0xf1ff, 0x117b, { 22, 22, 12}}, + {m68k_op_move_8_di_i , 0xf1ff, 0x117c, { 16, 16, 7}}, + {m68k_op_move_8_ix_pi7 , 0xf1ff, 0x119f, { 18, 18, 11}}, + {m68k_op_move_8_ix_pd7 , 0xf1ff, 0x11a7, { 20, 20, 12}}, + {m68k_op_move_8_ix_aw , 0xf1ff, 0x11b8, { 22, 22, 11}}, + {m68k_op_move_8_ix_al , 0xf1ff, 0x11b9, { 26, 26, 11}}, + {m68k_op_move_8_ix_pcdi , 0xf1ff, 0x11ba, { 22, 22, 12}}, + {m68k_op_move_8_ix_pcix , 0xf1ff, 0x11bb, { 24, 24, 14}}, + {m68k_op_move_8_ix_i , 0xf1ff, 0x11bc, { 18, 18, 9}}, + {m68k_op_move_32_d_aw , 0xf1ff, 0x2038, { 16, 16, 6}}, + {m68k_op_move_32_d_al , 0xf1ff, 0x2039, { 20, 20, 6}}, + {m68k_op_move_32_d_pcdi , 0xf1ff, 0x203a, { 16, 16, 7}}, + {m68k_op_move_32_d_pcix , 0xf1ff, 0x203b, { 18, 18, 9}}, + {m68k_op_move_32_d_i , 0xf1ff, 0x203c, { 12, 12, 6}}, + {m68k_op_movea_32_aw , 0xf1ff, 0x2078, { 16, 16, 6}}, + {m68k_op_movea_32_al , 0xf1ff, 0x2079, { 20, 20, 6}}, + {m68k_op_movea_32_pcdi , 0xf1ff, 0x207a, { 16, 16, 7}}, + {m68k_op_movea_32_pcix , 0xf1ff, 0x207b, { 18, 18, 9}}, + {m68k_op_movea_32_i , 0xf1ff, 0x207c, { 12, 12, 6}}, + {m68k_op_move_32_ai_aw , 0xf1ff, 0x20b8, { 24, 24, 8}}, + {m68k_op_move_32_ai_al , 0xf1ff, 0x20b9, { 28, 28, 8}}, + {m68k_op_move_32_ai_pcdi , 0xf1ff, 0x20ba, { 24, 24, 9}}, + {m68k_op_move_32_ai_pcix , 0xf1ff, 0x20bb, { 26, 26, 11}}, + {m68k_op_move_32_ai_i , 0xf1ff, 0x20bc, { 20, 20, 8}}, + {m68k_op_move_32_pi_aw , 0xf1ff, 0x20f8, { 24, 24, 8}}, + {m68k_op_move_32_pi_al , 0xf1ff, 0x20f9, { 28, 28, 8}}, + {m68k_op_move_32_pi_pcdi , 0xf1ff, 0x20fa, { 24, 24, 9}}, + {m68k_op_move_32_pi_pcix , 0xf1ff, 0x20fb, { 26, 26, 11}}, + {m68k_op_move_32_pi_i , 0xf1ff, 0x20fc, { 20, 20, 8}}, + {m68k_op_move_32_pd_aw , 0xf1ff, 0x2138, { 24, 26, 9}}, + {m68k_op_move_32_pd_al , 0xf1ff, 0x2139, { 28, 30, 9}}, + {m68k_op_move_32_pd_pcdi , 0xf1ff, 0x213a, { 24, 26, 10}}, + {m68k_op_move_32_pd_pcix , 0xf1ff, 0x213b, { 26, 28, 12}}, + {m68k_op_move_32_pd_i , 0xf1ff, 0x213c, { 20, 22, 9}}, + {m68k_op_move_32_di_aw , 0xf1ff, 0x2178, { 28, 28, 9}}, + {m68k_op_move_32_di_al , 0xf1ff, 0x2179, { 32, 32, 9}}, + {m68k_op_move_32_di_pcdi , 0xf1ff, 0x217a, { 28, 28, 10}}, + {m68k_op_move_32_di_pcix , 0xf1ff, 0x217b, { 30, 30, 12}}, + {m68k_op_move_32_di_i , 0xf1ff, 0x217c, { 24, 24, 9}}, + {m68k_op_move_32_ix_aw , 0xf1ff, 0x21b8, { 30, 30, 11}}, + {m68k_op_move_32_ix_al , 0xf1ff, 0x21b9, { 34, 34, 11}}, + {m68k_op_move_32_ix_pcdi , 0xf1ff, 0x21ba, { 30, 30, 12}}, + {m68k_op_move_32_ix_pcix , 0xf1ff, 0x21bb, { 32, 32, 14}}, + {m68k_op_move_32_ix_i , 0xf1ff, 0x21bc, { 26, 26, 11}}, + {m68k_op_move_16_d_aw , 0xf1ff, 0x3038, { 12, 12, 6}}, + {m68k_op_move_16_d_al , 0xf1ff, 0x3039, { 16, 16, 6}}, + {m68k_op_move_16_d_pcdi , 0xf1ff, 0x303a, { 12, 12, 7}}, + {m68k_op_move_16_d_pcix , 0xf1ff, 0x303b, { 14, 14, 9}}, + {m68k_op_move_16_d_i , 0xf1ff, 0x303c, { 8, 8, 4}}, + {m68k_op_movea_16_aw , 0xf1ff, 0x3078, { 12, 12, 6}}, + {m68k_op_movea_16_al , 0xf1ff, 0x3079, { 16, 16, 6}}, + {m68k_op_movea_16_pcdi , 0xf1ff, 0x307a, { 12, 12, 7}}, + {m68k_op_movea_16_pcix , 0xf1ff, 0x307b, { 14, 14, 9}}, + {m68k_op_movea_16_i , 0xf1ff, 0x307c, { 8, 8, 4}}, + {m68k_op_move_16_ai_aw , 0xf1ff, 0x30b8, { 16, 16, 8}}, + {m68k_op_move_16_ai_al , 0xf1ff, 0x30b9, { 20, 20, 8}}, + {m68k_op_move_16_ai_pcdi , 0xf1ff, 0x30ba, { 16, 16, 9}}, + {m68k_op_move_16_ai_pcix , 0xf1ff, 0x30bb, { 18, 18, 11}}, + {m68k_op_move_16_ai_i , 0xf1ff, 0x30bc, { 12, 12, 6}}, + {m68k_op_move_16_pi_aw , 0xf1ff, 0x30f8, { 16, 16, 8}}, + {m68k_op_move_16_pi_al , 0xf1ff, 0x30f9, { 20, 20, 8}}, + {m68k_op_move_16_pi_pcdi , 0xf1ff, 0x30fa, { 16, 16, 9}}, + {m68k_op_move_16_pi_pcix , 0xf1ff, 0x30fb, { 18, 18, 11}}, + {m68k_op_move_16_pi_i , 0xf1ff, 0x30fc, { 12, 12, 6}}, + {m68k_op_move_16_pd_aw , 0xf1ff, 0x3138, { 16, 16, 9}}, + {m68k_op_move_16_pd_al , 0xf1ff, 0x3139, { 20, 20, 9}}, + {m68k_op_move_16_pd_pcdi , 0xf1ff, 0x313a, { 16, 16, 10}}, + {m68k_op_move_16_pd_pcix , 0xf1ff, 0x313b, { 18, 18, 12}}, + {m68k_op_move_16_pd_i , 0xf1ff, 0x313c, { 12, 12, 7}}, + {m68k_op_move_16_di_aw , 0xf1ff, 0x3178, { 20, 20, 9}}, + {m68k_op_move_16_di_al , 0xf1ff, 0x3179, { 24, 24, 9}}, + {m68k_op_move_16_di_pcdi , 0xf1ff, 0x317a, { 20, 20, 10}}, + {m68k_op_move_16_di_pcix , 0xf1ff, 0x317b, { 22, 22, 12}}, + {m68k_op_move_16_di_i , 0xf1ff, 0x317c, { 16, 16, 7}}, + {m68k_op_move_16_ix_aw , 0xf1ff, 0x31b8, { 22, 22, 11}}, + {m68k_op_move_16_ix_al , 0xf1ff, 0x31b9, { 26, 26, 11}}, + {m68k_op_move_16_ix_pcdi , 0xf1ff, 0x31ba, { 22, 22, 12}}, + {m68k_op_move_16_ix_pcix , 0xf1ff, 0x31bb, { 24, 24, 14}}, + {m68k_op_move_16_ix_i , 0xf1ff, 0x31bc, { 18, 18, 9}}, + {m68k_op_chk_32_aw , 0xf1ff, 0x4138, { 0, 0, 12}}, + {m68k_op_chk_32_al , 0xf1ff, 0x4139, { 0, 0, 12}}, + {m68k_op_chk_32_pcdi , 0xf1ff, 0x413a, { 0, 0, 13}}, + {m68k_op_chk_32_pcix , 0xf1ff, 0x413b, { 0, 0, 15}}, + {m68k_op_chk_32_i , 0xf1ff, 0x413c, { 0, 0, 12}}, + {m68k_op_chk_16_aw , 0xf1ff, 0x41b8, { 18, 16, 12}}, + {m68k_op_chk_16_al , 0xf1ff, 0x41b9, { 22, 20, 12}}, + {m68k_op_chk_16_pcdi , 0xf1ff, 0x41ba, { 18, 16, 13}}, + {m68k_op_chk_16_pcix , 0xf1ff, 0x41bb, { 20, 18, 15}}, + {m68k_op_chk_16_i , 0xf1ff, 0x41bc, { 14, 12, 10}}, + {m68k_op_lea_32_aw , 0xf1ff, 0x41f8, { 8, 8, 6}}, + {m68k_op_lea_32_al , 0xf1ff, 0x41f9, { 12, 12, 6}}, + {m68k_op_lea_32_pcdi , 0xf1ff, 0x41fa, { 8, 8, 7}}, + {m68k_op_lea_32_pcix , 0xf1ff, 0x41fb, { 12, 12, 9}}, + {m68k_op_addq_8_pi7 , 0xf1ff, 0x501f, { 12, 12, 8}}, + {m68k_op_addq_8_pd7 , 0xf1ff, 0x5027, { 14, 14, 9}}, + {m68k_op_addq_8_aw , 0xf1ff, 0x5038, { 16, 16, 8}}, + {m68k_op_addq_8_al , 0xf1ff, 0x5039, { 20, 20, 8}}, + {m68k_op_addq_16_aw , 0xf1ff, 0x5078, { 16, 16, 8}}, + {m68k_op_addq_16_al , 0xf1ff, 0x5079, { 20, 20, 8}}, + {m68k_op_addq_32_aw , 0xf1ff, 0x50b8, { 24, 24, 8}}, + {m68k_op_addq_32_al , 0xf1ff, 0x50b9, { 28, 28, 8}}, + {m68k_op_subq_8_pi7 , 0xf1ff, 0x511f, { 12, 12, 8}}, + {m68k_op_subq_8_pd7 , 0xf1ff, 0x5127, { 14, 14, 9}}, + {m68k_op_subq_8_aw , 0xf1ff, 0x5138, { 16, 16, 8}}, + {m68k_op_subq_8_al , 0xf1ff, 0x5139, { 20, 20, 8}}, + {m68k_op_subq_16_aw , 0xf1ff, 0x5178, { 16, 16, 8}}, + {m68k_op_subq_16_al , 0xf1ff, 0x5179, { 20, 20, 8}}, + {m68k_op_subq_32_aw , 0xf1ff, 0x51b8, { 24, 24, 8}}, + {m68k_op_subq_32_al , 0xf1ff, 0x51b9, { 28, 28, 8}}, + {m68k_op_or_8_er_pi7 , 0xf1ff, 0x801f, { 8, 8, 6}}, + {m68k_op_or_8_er_pd7 , 0xf1ff, 0x8027, { 10, 10, 7}}, + {m68k_op_or_8_er_aw , 0xf1ff, 0x8038, { 12, 12, 6}}, + {m68k_op_or_8_er_al , 0xf1ff, 0x8039, { 16, 16, 6}}, + {m68k_op_or_8_er_pcdi , 0xf1ff, 0x803a, { 12, 12, 7}}, + {m68k_op_or_8_er_pcix , 0xf1ff, 0x803b, { 14, 14, 9}}, + {m68k_op_or_8_er_i , 0xf1ff, 0x803c, { 10, 8, 4}}, + {m68k_op_or_16_er_aw , 0xf1ff, 0x8078, { 12, 12, 6}}, + {m68k_op_or_16_er_al , 0xf1ff, 0x8079, { 16, 16, 6}}, + {m68k_op_or_16_er_pcdi , 0xf1ff, 0x807a, { 12, 12, 7}}, + {m68k_op_or_16_er_pcix , 0xf1ff, 0x807b, { 14, 14, 9}}, + {m68k_op_or_16_er_i , 0xf1ff, 0x807c, { 10, 8, 4}}, + {m68k_op_or_32_er_aw , 0xf1ff, 0x80b8, { 18, 18, 6}}, + {m68k_op_or_32_er_al , 0xf1ff, 0x80b9, { 22, 22, 6}}, + {m68k_op_or_32_er_pcdi , 0xf1ff, 0x80ba, { 18, 18, 7}}, + {m68k_op_or_32_er_pcix , 0xf1ff, 0x80bb, { 20, 20, 9}}, + {m68k_op_or_32_er_i , 0xf1ff, 0x80bc, { 16, 14, 6}}, + {m68k_op_divu_16_aw , 0xf1ff, 0x80f8, {148, 116, 48}}, + {m68k_op_divu_16_al , 0xf1ff, 0x80f9, {152, 120, 48}}, + {m68k_op_divu_16_pcdi , 0xf1ff, 0x80fa, {148, 116, 49}}, + {m68k_op_divu_16_pcix , 0xf1ff, 0x80fb, {150, 118, 51}}, + {m68k_op_divu_16_i , 0xf1ff, 0x80fc, {144, 112, 46}}, + {m68k_op_sbcd_8_mm_ay7 , 0xf1ff, 0x810f, { 18, 18, 16}}, + {m68k_op_or_8_re_pi7 , 0xf1ff, 0x811f, { 12, 12, 8}}, + {m68k_op_or_8_re_pd7 , 0xf1ff, 0x8127, { 14, 14, 9}}, + {m68k_op_or_8_re_aw , 0xf1ff, 0x8138, { 16, 16, 8}}, + {m68k_op_or_8_re_al , 0xf1ff, 0x8139, { 20, 20, 8}}, + {m68k_op_pack_16_mm_ay7 , 0xf1ff, 0x814f, { 0, 0, 13}}, + {m68k_op_or_16_re_aw , 0xf1ff, 0x8178, { 16, 16, 8}}, + {m68k_op_or_16_re_al , 0xf1ff, 0x8179, { 20, 20, 8}}, + {m68k_op_unpk_16_mm_ay7 , 0xf1ff, 0x818f, { 0, 0, 13}}, + {m68k_op_or_32_re_aw , 0xf1ff, 0x81b8, { 24, 24, 8}}, + {m68k_op_or_32_re_al , 0xf1ff, 0x81b9, { 28, 28, 8}}, + {m68k_op_divs_16_aw , 0xf1ff, 0x81f8, {166, 130, 60}}, + {m68k_op_divs_16_al , 0xf1ff, 0x81f9, {170, 134, 60}}, + {m68k_op_divs_16_pcdi , 0xf1ff, 0x81fa, {166, 130, 61}}, + {m68k_op_divs_16_pcix , 0xf1ff, 0x81fb, {168, 132, 63}}, + {m68k_op_divs_16_i , 0xf1ff, 0x81fc, {162, 126, 58}}, + {m68k_op_sub_8_er_pi7 , 0xf1ff, 0x901f, { 8, 8, 6}}, + {m68k_op_sub_8_er_pd7 , 0xf1ff, 0x9027, { 10, 10, 7}}, + {m68k_op_sub_8_er_aw , 0xf1ff, 0x9038, { 12, 12, 6}}, + {m68k_op_sub_8_er_al , 0xf1ff, 0x9039, { 16, 16, 6}}, + {m68k_op_sub_8_er_pcdi , 0xf1ff, 0x903a, { 12, 12, 7}}, + {m68k_op_sub_8_er_pcix , 0xf1ff, 0x903b, { 14, 14, 9}}, + {m68k_op_sub_8_er_i , 0xf1ff, 0x903c, { 10, 8, 4}}, + {m68k_op_sub_16_er_aw , 0xf1ff, 0x9078, { 12, 12, 6}}, + {m68k_op_sub_16_er_al , 0xf1ff, 0x9079, { 16, 16, 6}}, + {m68k_op_sub_16_er_pcdi , 0xf1ff, 0x907a, { 12, 12, 7}}, + {m68k_op_sub_16_er_pcix , 0xf1ff, 0x907b, { 14, 14, 9}}, + {m68k_op_sub_16_er_i , 0xf1ff, 0x907c, { 10, 8, 4}}, + {m68k_op_sub_32_er_aw , 0xf1ff, 0x90b8, { 18, 18, 6}}, + {m68k_op_sub_32_er_al , 0xf1ff, 0x90b9, { 22, 22, 6}}, + {m68k_op_sub_32_er_pcdi , 0xf1ff, 0x90ba, { 18, 18, 7}}, + {m68k_op_sub_32_er_pcix , 0xf1ff, 0x90bb, { 20, 20, 9}}, + {m68k_op_sub_32_er_i , 0xf1ff, 0x90bc, { 16, 14, 6}}, + {m68k_op_suba_16_aw , 0xf1ff, 0x90f8, { 16, 16, 6}}, + {m68k_op_suba_16_al , 0xf1ff, 0x90f9, { 20, 20, 6}}, + {m68k_op_suba_16_pcdi , 0xf1ff, 0x90fa, { 16, 16, 7}}, + {m68k_op_suba_16_pcix , 0xf1ff, 0x90fb, { 18, 18, 9}}, + {m68k_op_suba_16_i , 0xf1ff, 0x90fc, { 14, 12, 4}}, + {m68k_op_subx_8_mm_ay7 , 0xf1ff, 0x910f, { 18, 18, 12}}, + {m68k_op_sub_8_re_pi7 , 0xf1ff, 0x911f, { 12, 12, 8}}, + {m68k_op_sub_8_re_pd7 , 0xf1ff, 0x9127, { 14, 14, 9}}, + {m68k_op_sub_8_re_aw , 0xf1ff, 0x9138, { 16, 16, 8}}, + {m68k_op_sub_8_re_al , 0xf1ff, 0x9139, { 20, 20, 8}}, + {m68k_op_sub_16_re_aw , 0xf1ff, 0x9178, { 16, 16, 8}}, + {m68k_op_sub_16_re_al , 0xf1ff, 0x9179, { 20, 20, 8}}, + {m68k_op_sub_32_re_aw , 0xf1ff, 0x91b8, { 24, 24, 8}}, + {m68k_op_sub_32_re_al , 0xf1ff, 0x91b9, { 28, 28, 8}}, + {m68k_op_suba_32_aw , 0xf1ff, 0x91f8, { 18, 18, 6}}, + {m68k_op_suba_32_al , 0xf1ff, 0x91f9, { 22, 22, 6}}, + {m68k_op_suba_32_pcdi , 0xf1ff, 0x91fa, { 18, 18, 7}}, + {m68k_op_suba_32_pcix , 0xf1ff, 0x91fb, { 20, 20, 9}}, + {m68k_op_suba_32_i , 0xf1ff, 0x91fc, { 16, 14, 6}}, + {m68k_op_cmp_8_pi7 , 0xf1ff, 0xb01f, { 8, 8, 6}}, + {m68k_op_cmp_8_pd7 , 0xf1ff, 0xb027, { 10, 10, 7}}, + {m68k_op_cmp_8_aw , 0xf1ff, 0xb038, { 12, 12, 6}}, + {m68k_op_cmp_8_al , 0xf1ff, 0xb039, { 16, 16, 6}}, + {m68k_op_cmp_8_pcdi , 0xf1ff, 0xb03a, { 12, 12, 7}}, + {m68k_op_cmp_8_pcix , 0xf1ff, 0xb03b, { 14, 14, 9}}, + {m68k_op_cmp_8_i , 0xf1ff, 0xb03c, { 8, 8, 4}}, + {m68k_op_cmp_16_aw , 0xf1ff, 0xb078, { 12, 12, 6}}, + {m68k_op_cmp_16_al , 0xf1ff, 0xb079, { 16, 16, 6}}, + {m68k_op_cmp_16_pcdi , 0xf1ff, 0xb07a, { 12, 12, 7}}, + {m68k_op_cmp_16_pcix , 0xf1ff, 0xb07b, { 14, 14, 9}}, + {m68k_op_cmp_16_i , 0xf1ff, 0xb07c, { 8, 8, 4}}, + {m68k_op_cmp_32_aw , 0xf1ff, 0xb0b8, { 18, 18, 6}}, + {m68k_op_cmp_32_al , 0xf1ff, 0xb0b9, { 22, 22, 6}}, + {m68k_op_cmp_32_pcdi , 0xf1ff, 0xb0ba, { 18, 18, 7}}, + {m68k_op_cmp_32_pcix , 0xf1ff, 0xb0bb, { 20, 20, 9}}, + {m68k_op_cmp_32_i , 0xf1ff, 0xb0bc, { 14, 14, 6}}, + {m68k_op_cmpa_16_aw , 0xf1ff, 0xb0f8, { 14, 14, 8}}, + {m68k_op_cmpa_16_al , 0xf1ff, 0xb0f9, { 18, 18, 8}}, + {m68k_op_cmpa_16_pcdi , 0xf1ff, 0xb0fa, { 14, 14, 9}}, + {m68k_op_cmpa_16_pcix , 0xf1ff, 0xb0fb, { 16, 16, 11}}, + {m68k_op_cmpa_16_i , 0xf1ff, 0xb0fc, { 10, 10, 6}}, + {m68k_op_cmpm_8_ay7 , 0xf1ff, 0xb10f, { 12, 12, 9}}, + {m68k_op_eor_8_pi7 , 0xf1ff, 0xb11f, { 12, 12, 8}}, + {m68k_op_eor_8_pd7 , 0xf1ff, 0xb127, { 14, 14, 9}}, + {m68k_op_eor_8_aw , 0xf1ff, 0xb138, { 16, 16, 8}}, + {m68k_op_eor_8_al , 0xf1ff, 0xb139, { 20, 20, 8}}, + {m68k_op_eor_16_aw , 0xf1ff, 0xb178, { 16, 16, 8}}, + {m68k_op_eor_16_al , 0xf1ff, 0xb179, { 20, 20, 8}}, + {m68k_op_eor_32_aw , 0xf1ff, 0xb1b8, { 24, 24, 8}}, + {m68k_op_eor_32_al , 0xf1ff, 0xb1b9, { 28, 28, 8}}, + {m68k_op_cmpa_32_aw , 0xf1ff, 0xb1f8, { 18, 18, 8}}, + {m68k_op_cmpa_32_al , 0xf1ff, 0xb1f9, { 22, 22, 8}}, + {m68k_op_cmpa_32_pcdi , 0xf1ff, 0xb1fa, { 18, 18, 9}}, + {m68k_op_cmpa_32_pcix , 0xf1ff, 0xb1fb, { 20, 20, 11}}, + {m68k_op_cmpa_32_i , 0xf1ff, 0xb1fc, { 14, 14, 8}}, + {m68k_op_and_8_er_pi7 , 0xf1ff, 0xc01f, { 8, 8, 6}}, + {m68k_op_and_8_er_pd7 , 0xf1ff, 0xc027, { 10, 10, 7}}, + {m68k_op_and_8_er_aw , 0xf1ff, 0xc038, { 12, 12, 6}}, + {m68k_op_and_8_er_al , 0xf1ff, 0xc039, { 16, 16, 6}}, + {m68k_op_and_8_er_pcdi , 0xf1ff, 0xc03a, { 12, 12, 7}}, + {m68k_op_and_8_er_pcix , 0xf1ff, 0xc03b, { 14, 14, 9}}, + {m68k_op_and_8_er_i , 0xf1ff, 0xc03c, { 10, 8, 4}}, + {m68k_op_and_16_er_aw , 0xf1ff, 0xc078, { 12, 12, 6}}, + {m68k_op_and_16_er_al , 0xf1ff, 0xc079, { 16, 16, 6}}, + {m68k_op_and_16_er_pcdi , 0xf1ff, 0xc07a, { 12, 12, 7}}, + {m68k_op_and_16_er_pcix , 0xf1ff, 0xc07b, { 14, 14, 9}}, + {m68k_op_and_16_er_i , 0xf1ff, 0xc07c, { 10, 8, 4}}, + {m68k_op_and_32_er_aw , 0xf1ff, 0xc0b8, { 18, 18, 6}}, + {m68k_op_and_32_er_al , 0xf1ff, 0xc0b9, { 22, 22, 6}}, + {m68k_op_and_32_er_pcdi , 0xf1ff, 0xc0ba, { 18, 18, 7}}, + {m68k_op_and_32_er_pcix , 0xf1ff, 0xc0bb, { 20, 20, 9}}, + {m68k_op_and_32_er_i , 0xf1ff, 0xc0bc, { 16, 14, 6}}, + {m68k_op_mulu_16_aw , 0xf1ff, 0xc0f8, { 62, 38, 31}}, + {m68k_op_mulu_16_al , 0xf1ff, 0xc0f9, { 66, 42, 31}}, + {m68k_op_mulu_16_pcdi , 0xf1ff, 0xc0fa, { 62, 38, 32}}, + {m68k_op_mulu_16_pcix , 0xf1ff, 0xc0fb, { 64, 40, 34}}, + {m68k_op_mulu_16_i , 0xf1ff, 0xc0fc, { 58, 34, 29}}, + {m68k_op_abcd_8_mm_ay7 , 0xf1ff, 0xc10f, { 18, 18, 16}}, + {m68k_op_and_8_re_pi7 , 0xf1ff, 0xc11f, { 12, 12, 8}}, + {m68k_op_and_8_re_pd7 , 0xf1ff, 0xc127, { 14, 14, 9}}, + {m68k_op_and_8_re_aw , 0xf1ff, 0xc138, { 16, 16, 8}}, + {m68k_op_and_8_re_al , 0xf1ff, 0xc139, { 20, 20, 8}}, + {m68k_op_and_16_re_aw , 0xf1ff, 0xc178, { 16, 16, 8}}, + {m68k_op_and_16_re_al , 0xf1ff, 0xc179, { 20, 20, 8}}, + {m68k_op_and_32_re_aw , 0xf1ff, 0xc1b8, { 24, 24, 8}}, + {m68k_op_and_32_re_al , 0xf1ff, 0xc1b9, { 28, 28, 8}}, + {m68k_op_muls_16_aw , 0xf1ff, 0xc1f8, { 62, 40, 31}}, + {m68k_op_muls_16_al , 0xf1ff, 0xc1f9, { 66, 44, 31}}, + {m68k_op_muls_16_pcdi , 0xf1ff, 0xc1fa, { 62, 40, 32}}, + {m68k_op_muls_16_pcix , 0xf1ff, 0xc1fb, { 64, 42, 34}}, + {m68k_op_muls_16_i , 0xf1ff, 0xc1fc, { 58, 36, 29}}, + {m68k_op_add_8_er_pi7 , 0xf1ff, 0xd01f, { 8, 8, 6}}, + {m68k_op_add_8_er_pd7 , 0xf1ff, 0xd027, { 10, 10, 7}}, + {m68k_op_add_8_er_aw , 0xf1ff, 0xd038, { 12, 12, 6}}, + {m68k_op_add_8_er_al , 0xf1ff, 0xd039, { 16, 16, 6}}, + {m68k_op_add_8_er_pcdi , 0xf1ff, 0xd03a, { 12, 12, 7}}, + {m68k_op_add_8_er_pcix , 0xf1ff, 0xd03b, { 14, 14, 9}}, + {m68k_op_add_8_er_i , 0xf1ff, 0xd03c, { 10, 8, 4}}, + {m68k_op_add_16_er_aw , 0xf1ff, 0xd078, { 12, 12, 6}}, + {m68k_op_add_16_er_al , 0xf1ff, 0xd079, { 16, 16, 6}}, + {m68k_op_add_16_er_pcdi , 0xf1ff, 0xd07a, { 12, 12, 7}}, + {m68k_op_add_16_er_pcix , 0xf1ff, 0xd07b, { 14, 14, 9}}, + {m68k_op_add_16_er_i , 0xf1ff, 0xd07c, { 10, 8, 4}}, + {m68k_op_add_32_er_aw , 0xf1ff, 0xd0b8, { 18, 18, 6}}, + {m68k_op_add_32_er_al , 0xf1ff, 0xd0b9, { 22, 22, 6}}, + {m68k_op_add_32_er_pcdi , 0xf1ff, 0xd0ba, { 18, 18, 7}}, + {m68k_op_add_32_er_pcix , 0xf1ff, 0xd0bb, { 20, 20, 9}}, + {m68k_op_add_32_er_i , 0xf1ff, 0xd0bc, { 16, 14, 6}}, + {m68k_op_adda_16_aw , 0xf1ff, 0xd0f8, { 16, 16, 6}}, + {m68k_op_adda_16_al , 0xf1ff, 0xd0f9, { 20, 20, 6}}, + {m68k_op_adda_16_pcdi , 0xf1ff, 0xd0fa, { 16, 16, 7}}, + {m68k_op_adda_16_pcix , 0xf1ff, 0xd0fb, { 18, 18, 9}}, + {m68k_op_adda_16_i , 0xf1ff, 0xd0fc, { 14, 12, 4}}, + {m68k_op_addx_8_mm_ay7 , 0xf1ff, 0xd10f, { 18, 18, 12}}, + {m68k_op_add_8_re_pi7 , 0xf1ff, 0xd11f, { 12, 12, 8}}, + {m68k_op_add_8_re_pd7 , 0xf1ff, 0xd127, { 14, 14, 9}}, + {m68k_op_add_8_re_aw , 0xf1ff, 0xd138, { 16, 16, 8}}, + {m68k_op_add_8_re_al , 0xf1ff, 0xd139, { 20, 20, 8}}, + {m68k_op_add_16_re_aw , 0xf1ff, 0xd178, { 16, 16, 8}}, + {m68k_op_add_16_re_al , 0xf1ff, 0xd179, { 20, 20, 8}}, + {m68k_op_add_32_re_aw , 0xf1ff, 0xd1b8, { 24, 24, 8}}, + {m68k_op_add_32_re_al , 0xf1ff, 0xd1b9, { 28, 28, 8}}, + {m68k_op_adda_32_aw , 0xf1ff, 0xd1f8, { 18, 18, 6}}, + {m68k_op_adda_32_al , 0xf1ff, 0xd1f9, { 22, 22, 6}}, + {m68k_op_adda_32_pcdi , 0xf1ff, 0xd1fa, { 18, 18, 7}}, + {m68k_op_adda_32_pcix , 0xf1ff, 0xd1fb, { 20, 20, 9}}, + {m68k_op_adda_32_i , 0xf1ff, 0xd1fc, { 16, 14, 6}}, + {m68k_op_ori_8_d , 0xfff8, 0x0000, { 8, 8, 2}}, + {m68k_op_ori_8_ai , 0xfff8, 0x0010, { 16, 16, 8}}, + {m68k_op_ori_8_pi , 0xfff8, 0x0018, { 16, 16, 8}}, + {m68k_op_ori_8_pd , 0xfff8, 0x0020, { 18, 18, 9}}, + {m68k_op_ori_8_di , 0xfff8, 0x0028, { 20, 20, 9}}, + {m68k_op_ori_8_ix , 0xfff8, 0x0030, { 22, 22, 11}}, + {m68k_op_ori_16_d , 0xfff8, 0x0040, { 8, 8, 2}}, + {m68k_op_ori_16_ai , 0xfff8, 0x0050, { 16, 16, 8}}, + {m68k_op_ori_16_pi , 0xfff8, 0x0058, { 16, 16, 8}}, + {m68k_op_ori_16_pd , 0xfff8, 0x0060, { 18, 18, 9}}, + {m68k_op_ori_16_di , 0xfff8, 0x0068, { 20, 20, 9}}, + {m68k_op_ori_16_ix , 0xfff8, 0x0070, { 22, 22, 11}}, + {m68k_op_ori_32_d , 0xfff8, 0x0080, { 16, 14, 2}}, + {m68k_op_ori_32_ai , 0xfff8, 0x0090, { 28, 28, 8}}, + {m68k_op_ori_32_pi , 0xfff8, 0x0098, { 28, 28, 8}}, + {m68k_op_ori_32_pd , 0xfff8, 0x00a0, { 30, 30, 9}}, + {m68k_op_ori_32_di , 0xfff8, 0x00a8, { 32, 32, 9}}, + {m68k_op_ori_32_ix , 0xfff8, 0x00b0, { 34, 34, 11}}, + {m68k_op_chk2cmp2_8_ai , 0xfff8, 0x00d0, { 0, 0, 22}}, + {m68k_op_chk2cmp2_8_di , 0xfff8, 0x00e8, { 0, 0, 23}}, + {m68k_op_chk2cmp2_8_ix , 0xfff8, 0x00f0, { 0, 0, 25}}, + {m68k_op_andi_8_d , 0xfff8, 0x0200, { 8, 8, 2}}, + {m68k_op_andi_8_ai , 0xfff8, 0x0210, { 16, 16, 8}}, + {m68k_op_andi_8_pi , 0xfff8, 0x0218, { 16, 16, 8}}, + {m68k_op_andi_8_pd , 0xfff8, 0x0220, { 18, 18, 9}}, + {m68k_op_andi_8_di , 0xfff8, 0x0228, { 20, 20, 9}}, + {m68k_op_andi_8_ix , 0xfff8, 0x0230, { 22, 22, 11}}, + {m68k_op_andi_16_d , 0xfff8, 0x0240, { 8, 8, 2}}, + {m68k_op_andi_16_ai , 0xfff8, 0x0250, { 16, 16, 8}}, + {m68k_op_andi_16_pi , 0xfff8, 0x0258, { 16, 16, 8}}, + {m68k_op_andi_16_pd , 0xfff8, 0x0260, { 18, 18, 9}}, + {m68k_op_andi_16_di , 0xfff8, 0x0268, { 20, 20, 9}}, + {m68k_op_andi_16_ix , 0xfff8, 0x0270, { 22, 22, 11}}, + {m68k_op_andi_32_d , 0xfff8, 0x0280, { 14, 14, 2}}, + {m68k_op_andi_32_ai , 0xfff8, 0x0290, { 28, 28, 8}}, + {m68k_op_andi_32_pi , 0xfff8, 0x0298, { 28, 28, 8}}, + {m68k_op_andi_32_pd , 0xfff8, 0x02a0, { 30, 30, 9}}, + {m68k_op_andi_32_di , 0xfff8, 0x02a8, { 32, 32, 9}}, + {m68k_op_andi_32_ix , 0xfff8, 0x02b0, { 34, 34, 11}}, + {m68k_op_chk2cmp2_16_ai , 0xfff8, 0x02d0, { 0, 0, 22}}, + {m68k_op_chk2cmp2_16_di , 0xfff8, 0x02e8, { 0, 0, 23}}, + {m68k_op_chk2cmp2_16_ix , 0xfff8, 0x02f0, { 0, 0, 25}}, + {m68k_op_subi_8_d , 0xfff8, 0x0400, { 8, 8, 2}}, + {m68k_op_subi_8_ai , 0xfff8, 0x0410, { 16, 16, 8}}, + {m68k_op_subi_8_pi , 0xfff8, 0x0418, { 16, 16, 8}}, + {m68k_op_subi_8_pd , 0xfff8, 0x0420, { 18, 18, 9}}, + {m68k_op_subi_8_di , 0xfff8, 0x0428, { 20, 20, 9}}, + {m68k_op_subi_8_ix , 0xfff8, 0x0430, { 22, 22, 11}}, + {m68k_op_subi_16_d , 0xfff8, 0x0440, { 8, 8, 2}}, + {m68k_op_subi_16_ai , 0xfff8, 0x0450, { 16, 16, 8}}, + {m68k_op_subi_16_pi , 0xfff8, 0x0458, { 16, 16, 8}}, + {m68k_op_subi_16_pd , 0xfff8, 0x0460, { 18, 18, 9}}, + {m68k_op_subi_16_di , 0xfff8, 0x0468, { 20, 20, 9}}, + {m68k_op_subi_16_ix , 0xfff8, 0x0470, { 22, 22, 11}}, + {m68k_op_subi_32_d , 0xfff8, 0x0480, { 16, 14, 2}}, + {m68k_op_subi_32_ai , 0xfff8, 0x0490, { 28, 28, 8}}, + {m68k_op_subi_32_pi , 0xfff8, 0x0498, { 28, 28, 8}}, + {m68k_op_subi_32_pd , 0xfff8, 0x04a0, { 30, 30, 9}}, + {m68k_op_subi_32_di , 0xfff8, 0x04a8, { 32, 32, 9}}, + {m68k_op_subi_32_ix , 0xfff8, 0x04b0, { 34, 34, 11}}, + {m68k_op_chk2cmp2_32_ai , 0xfff8, 0x04d0, { 0, 0, 22}}, + {m68k_op_chk2cmp2_32_di , 0xfff8, 0x04e8, { 0, 0, 23}}, + {m68k_op_chk2cmp2_32_ix , 0xfff8, 0x04f0, { 0, 0, 25}}, + {m68k_op_addi_8_d , 0xfff8, 0x0600, { 8, 8, 2}}, + {m68k_op_addi_8_ai , 0xfff8, 0x0610, { 16, 16, 8}}, + {m68k_op_addi_8_pi , 0xfff8, 0x0618, { 16, 16, 8}}, + {m68k_op_addi_8_pd , 0xfff8, 0x0620, { 18, 18, 9}}, + {m68k_op_addi_8_di , 0xfff8, 0x0628, { 20, 20, 9}}, + {m68k_op_addi_8_ix , 0xfff8, 0x0630, { 22, 22, 11}}, + {m68k_op_addi_16_d , 0xfff8, 0x0640, { 8, 8, 2}}, + {m68k_op_addi_16_ai , 0xfff8, 0x0650, { 16, 16, 8}}, + {m68k_op_addi_16_pi , 0xfff8, 0x0658, { 16, 16, 8}}, + {m68k_op_addi_16_pd , 0xfff8, 0x0660, { 18, 18, 9}}, + {m68k_op_addi_16_di , 0xfff8, 0x0668, { 20, 20, 9}}, + {m68k_op_addi_16_ix , 0xfff8, 0x0670, { 22, 22, 11}}, + {m68k_op_addi_32_d , 0xfff8, 0x0680, { 16, 14, 2}}, + {m68k_op_addi_32_ai , 0xfff8, 0x0690, { 28, 28, 8}}, + {m68k_op_addi_32_pi , 0xfff8, 0x0698, { 28, 28, 8}}, + {m68k_op_addi_32_pd , 0xfff8, 0x06a0, { 30, 30, 9}}, + {m68k_op_addi_32_di , 0xfff8, 0x06a8, { 32, 32, 9}}, + {m68k_op_addi_32_ix , 0xfff8, 0x06b0, { 34, 34, 11}}, + {m68k_op_callm_32_ai , 0xfff8, 0x06d0, { 0, 0, 64}}, + {m68k_op_callm_32_di , 0xfff8, 0x06e8, { 0, 0, 65}}, + {m68k_op_callm_32_ix , 0xfff8, 0x06f0, { 0, 0, 67}}, + {m68k_op_btst_32_s_d , 0xfff8, 0x0800, { 10, 10, 4}}, + {m68k_op_btst_8_s_ai , 0xfff8, 0x0810, { 12, 12, 8}}, + {m68k_op_btst_8_s_pi , 0xfff8, 0x0818, { 12, 12, 8}}, + {m68k_op_btst_8_s_pd , 0xfff8, 0x0820, { 14, 14, 9}}, + {m68k_op_btst_8_s_di , 0xfff8, 0x0828, { 16, 16, 9}}, + {m68k_op_btst_8_s_ix , 0xfff8, 0x0830, { 18, 18, 11}}, + {m68k_op_bchg_32_s_d , 0xfff8, 0x0840, { 12, 12, 4}}, + {m68k_op_bchg_8_s_ai , 0xfff8, 0x0850, { 16, 16, 8}}, + {m68k_op_bchg_8_s_pi , 0xfff8, 0x0858, { 16, 16, 8}}, + {m68k_op_bchg_8_s_pd , 0xfff8, 0x0860, { 18, 18, 9}}, + {m68k_op_bchg_8_s_di , 0xfff8, 0x0868, { 20, 20, 9}}, + {m68k_op_bchg_8_s_ix , 0xfff8, 0x0870, { 22, 22, 11}}, + {m68k_op_bclr_32_s_d , 0xfff8, 0x0880, { 14, 14, 4}}, + {m68k_op_bclr_8_s_ai , 0xfff8, 0x0890, { 16, 16, 8}}, + {m68k_op_bclr_8_s_pi , 0xfff8, 0x0898, { 16, 16, 8}}, + {m68k_op_bclr_8_s_pd , 0xfff8, 0x08a0, { 18, 18, 9}}, + {m68k_op_bclr_8_s_di , 0xfff8, 0x08a8, { 20, 20, 9}}, + {m68k_op_bclr_8_s_ix , 0xfff8, 0x08b0, { 22, 22, 11}}, + {m68k_op_bset_32_s_d , 0xfff8, 0x08c0, { 12, 12, 4}}, + {m68k_op_bset_8_s_ai , 0xfff8, 0x08d0, { 16, 16, 8}}, + {m68k_op_bset_8_s_pi , 0xfff8, 0x08d8, { 16, 16, 8}}, + {m68k_op_bset_8_s_pd , 0xfff8, 0x08e0, { 18, 18, 9}}, + {m68k_op_bset_8_s_di , 0xfff8, 0x08e8, { 20, 20, 9}}, + {m68k_op_bset_8_s_ix , 0xfff8, 0x08f0, { 22, 22, 11}}, + {m68k_op_eori_8_d , 0xfff8, 0x0a00, { 8, 8, 2}}, + {m68k_op_eori_8_ai , 0xfff8, 0x0a10, { 16, 16, 8}}, + {m68k_op_eori_8_pi , 0xfff8, 0x0a18, { 16, 16, 8}}, + {m68k_op_eori_8_pd , 0xfff8, 0x0a20, { 18, 18, 9}}, + {m68k_op_eori_8_di , 0xfff8, 0x0a28, { 20, 20, 9}}, + {m68k_op_eori_8_ix , 0xfff8, 0x0a30, { 22, 22, 11}}, + {m68k_op_eori_16_d , 0xfff8, 0x0a40, { 8, 8, 2}}, + {m68k_op_eori_16_ai , 0xfff8, 0x0a50, { 16, 16, 8}}, + {m68k_op_eori_16_pi , 0xfff8, 0x0a58, { 16, 16, 8}}, + {m68k_op_eori_16_pd , 0xfff8, 0x0a60, { 18, 18, 9}}, + {m68k_op_eori_16_di , 0xfff8, 0x0a68, { 20, 20, 9}}, + {m68k_op_eori_16_ix , 0xfff8, 0x0a70, { 22, 22, 11}}, + {m68k_op_eori_32_d , 0xfff8, 0x0a80, { 16, 14, 2}}, + {m68k_op_eori_32_ai , 0xfff8, 0x0a90, { 28, 28, 8}}, + {m68k_op_eori_32_pi , 0xfff8, 0x0a98, { 28, 28, 8}}, + {m68k_op_eori_32_pd , 0xfff8, 0x0aa0, { 30, 30, 9}}, + {m68k_op_eori_32_di , 0xfff8, 0x0aa8, { 32, 32, 9}}, + {m68k_op_eori_32_ix , 0xfff8, 0x0ab0, { 34, 34, 11}}, + {m68k_op_cas_8_ai , 0xfff8, 0x0ad0, { 0, 0, 16}}, + {m68k_op_cas_8_pi , 0xfff8, 0x0ad8, { 0, 0, 16}}, + {m68k_op_cas_8_pd , 0xfff8, 0x0ae0, { 0, 0, 17}}, + {m68k_op_cas_8_di , 0xfff8, 0x0ae8, { 0, 0, 17}}, + {m68k_op_cas_8_ix , 0xfff8, 0x0af0, { 0, 0, 19}}, + {m68k_op_cmpi_8_d , 0xfff8, 0x0c00, { 8, 8, 2}}, + {m68k_op_cmpi_8_ai , 0xfff8, 0x0c10, { 12, 12, 6}}, + {m68k_op_cmpi_8_pi , 0xfff8, 0x0c18, { 12, 12, 6}}, + {m68k_op_cmpi_8_pd , 0xfff8, 0x0c20, { 14, 14, 7}}, + {m68k_op_cmpi_8_di , 0xfff8, 0x0c28, { 16, 16, 7}}, + {m68k_op_cmpi_8_ix , 0xfff8, 0x0c30, { 18, 18, 9}}, + {m68k_op_cmpi_16_d , 0xfff8, 0x0c40, { 8, 8, 2}}, + {m68k_op_cmpi_16_ai , 0xfff8, 0x0c50, { 12, 12, 6}}, + {m68k_op_cmpi_16_pi , 0xfff8, 0x0c58, { 12, 12, 6}}, + {m68k_op_cmpi_16_pd , 0xfff8, 0x0c60, { 14, 14, 7}}, + {m68k_op_cmpi_16_di , 0xfff8, 0x0c68, { 16, 16, 7}}, + {m68k_op_cmpi_16_ix , 0xfff8, 0x0c70, { 18, 18, 9}}, + {m68k_op_cmpi_32_d , 0xfff8, 0x0c80, { 14, 12, 2}}, + {m68k_op_cmpi_32_ai , 0xfff8, 0x0c90, { 20, 20, 6}}, + {m68k_op_cmpi_32_pi , 0xfff8, 0x0c98, { 20, 20, 6}}, + {m68k_op_cmpi_32_pd , 0xfff8, 0x0ca0, { 22, 22, 7}}, + {m68k_op_cmpi_32_di , 0xfff8, 0x0ca8, { 24, 24, 7}}, + {m68k_op_cmpi_32_ix , 0xfff8, 0x0cb0, { 26, 26, 9}}, + {m68k_op_cas_16_ai , 0xfff8, 0x0cd0, { 0, 0, 16}}, + {m68k_op_cas_16_pi , 0xfff8, 0x0cd8, { 0, 0, 16}}, + {m68k_op_cas_16_pd , 0xfff8, 0x0ce0, { 0, 0, 17}}, + {m68k_op_cas_16_di , 0xfff8, 0x0ce8, { 0, 0, 17}}, + {m68k_op_cas_16_ix , 0xfff8, 0x0cf0, { 0, 0, 19}}, + {m68k_op_moves_8_ai , 0xfff8, 0x0e10, { 0, 18, 9}}, + {m68k_op_moves_8_pi , 0xfff8, 0x0e18, { 0, 18, 9}}, + {m68k_op_moves_8_pd , 0xfff8, 0x0e20, { 0, 20, 10}}, + {m68k_op_moves_8_di , 0xfff8, 0x0e28, { 0, 26, 10}}, + {m68k_op_moves_8_ix , 0xfff8, 0x0e30, { 0, 30, 12}}, + {m68k_op_moves_16_ai , 0xfff8, 0x0e50, { 0, 18, 9}}, + {m68k_op_moves_16_pi , 0xfff8, 0x0e58, { 0, 18, 9}}, + {m68k_op_moves_16_pd , 0xfff8, 0x0e60, { 0, 20, 10}}, + {m68k_op_moves_16_di , 0xfff8, 0x0e68, { 0, 26, 10}}, + {m68k_op_moves_16_ix , 0xfff8, 0x0e70, { 0, 30, 12}}, + {m68k_op_moves_32_ai , 0xfff8, 0x0e90, { 0, 22, 9}}, + {m68k_op_moves_32_pi , 0xfff8, 0x0e98, { 0, 22, 9}}, + {m68k_op_moves_32_pd , 0xfff8, 0x0ea0, { 0, 28, 10}}, + {m68k_op_moves_32_di , 0xfff8, 0x0ea8, { 0, 32, 10}}, + {m68k_op_moves_32_ix , 0xfff8, 0x0eb0, { 0, 36, 12}}, + {m68k_op_cas_32_ai , 0xfff8, 0x0ed0, { 0, 0, 16}}, + {m68k_op_cas_32_pi , 0xfff8, 0x0ed8, { 0, 0, 16}}, + {m68k_op_cas_32_pd , 0xfff8, 0x0ee0, { 0, 0, 17}}, + {m68k_op_cas_32_di , 0xfff8, 0x0ee8, { 0, 0, 17}}, + {m68k_op_cas_32_ix , 0xfff8, 0x0ef0, { 0, 0, 19}}, + {m68k_op_move_8_aw_d , 0xfff8, 0x11c0, { 12, 12, 4}}, + {m68k_op_move_8_aw_ai , 0xfff8, 0x11d0, { 16, 16, 8}}, + {m68k_op_move_8_aw_pi , 0xfff8, 0x11d8, { 16, 16, 8}}, + {m68k_op_move_8_aw_pd , 0xfff8, 0x11e0, { 18, 18, 9}}, + {m68k_op_move_8_aw_di , 0xfff8, 0x11e8, { 20, 20, 9}}, + {m68k_op_move_8_aw_ix , 0xfff8, 0x11f0, { 22, 22, 11}}, + {m68k_op_move_8_al_d , 0xfff8, 0x13c0, { 16, 16, 6}}, + {m68k_op_move_8_al_ai , 0xfff8, 0x13d0, { 20, 20, 10}}, + {m68k_op_move_8_al_pi , 0xfff8, 0x13d8, { 20, 20, 10}}, + {m68k_op_move_8_al_pd , 0xfff8, 0x13e0, { 22, 22, 11}}, + {m68k_op_move_8_al_di , 0xfff8, 0x13e8, { 24, 24, 11}}, + {m68k_op_move_8_al_ix , 0xfff8, 0x13f0, { 26, 26, 13}}, + {m68k_op_move_8_pi7_d , 0xfff8, 0x1ec0, { 8, 8, 4}}, + {m68k_op_move_8_pi7_ai , 0xfff8, 0x1ed0, { 12, 12, 8}}, + {m68k_op_move_8_pi7_pi , 0xfff8, 0x1ed8, { 12, 12, 8}}, + {m68k_op_move_8_pi7_pd , 0xfff8, 0x1ee0, { 14, 14, 9}}, + {m68k_op_move_8_pi7_di , 0xfff8, 0x1ee8, { 16, 16, 9}}, + {m68k_op_move_8_pi7_ix , 0xfff8, 0x1ef0, { 18, 18, 11}}, + {m68k_op_move_8_pd7_d , 0xfff8, 0x1f00, { 8, 8, 5}}, + {m68k_op_move_8_pd7_ai , 0xfff8, 0x1f10, { 12, 12, 9}}, + {m68k_op_move_8_pd7_pi , 0xfff8, 0x1f18, { 12, 12, 9}}, + {m68k_op_move_8_pd7_pd , 0xfff8, 0x1f20, { 14, 14, 10}}, + {m68k_op_move_8_pd7_di , 0xfff8, 0x1f28, { 16, 16, 10}}, + {m68k_op_move_8_pd7_ix , 0xfff8, 0x1f30, { 18, 18, 12}}, + {m68k_op_move_32_aw_d , 0xfff8, 0x21c0, { 16, 16, 4}}, + {m68k_op_move_32_aw_a , 0xfff8, 0x21c8, { 16, 16, 4}}, + {m68k_op_move_32_aw_ai , 0xfff8, 0x21d0, { 24, 24, 8}}, + {m68k_op_move_32_aw_pi , 0xfff8, 0x21d8, { 24, 24, 8}}, + {m68k_op_move_32_aw_pd , 0xfff8, 0x21e0, { 26, 26, 9}}, + {m68k_op_move_32_aw_di , 0xfff8, 0x21e8, { 28, 28, 9}}, + {m68k_op_move_32_aw_ix , 0xfff8, 0x21f0, { 30, 30, 11}}, + {m68k_op_move_32_al_d , 0xfff8, 0x23c0, { 20, 20, 6}}, + {m68k_op_move_32_al_a , 0xfff8, 0x23c8, { 20, 20, 6}}, + {m68k_op_move_32_al_ai , 0xfff8, 0x23d0, { 28, 28, 10}}, + {m68k_op_move_32_al_pi , 0xfff8, 0x23d8, { 28, 28, 10}}, + {m68k_op_move_32_al_pd , 0xfff8, 0x23e0, { 30, 30, 11}}, + {m68k_op_move_32_al_di , 0xfff8, 0x23e8, { 32, 32, 11}}, + {m68k_op_move_32_al_ix , 0xfff8, 0x23f0, { 34, 34, 13}}, + {m68k_op_move_16_aw_d , 0xfff8, 0x31c0, { 12, 12, 4}}, + {m68k_op_move_16_aw_a , 0xfff8, 0x31c8, { 12, 12, 4}}, + {m68k_op_move_16_aw_ai , 0xfff8, 0x31d0, { 16, 16, 8}}, + {m68k_op_move_16_aw_pi , 0xfff8, 0x31d8, { 16, 16, 8}}, + {m68k_op_move_16_aw_pd , 0xfff8, 0x31e0, { 18, 18, 9}}, + {m68k_op_move_16_aw_di , 0xfff8, 0x31e8, { 20, 20, 9}}, + {m68k_op_move_16_aw_ix , 0xfff8, 0x31f0, { 22, 22, 11}}, + {m68k_op_move_16_al_d , 0xfff8, 0x33c0, { 16, 16, 6}}, + {m68k_op_move_16_al_a , 0xfff8, 0x33c8, { 16, 16, 6}}, + {m68k_op_move_16_al_ai , 0xfff8, 0x33d0, { 20, 20, 10}}, + {m68k_op_move_16_al_pi , 0xfff8, 0x33d8, { 20, 20, 10}}, + {m68k_op_move_16_al_pd , 0xfff8, 0x33e0, { 22, 22, 11}}, + {m68k_op_move_16_al_di , 0xfff8, 0x33e8, { 24, 24, 11}}, + {m68k_op_move_16_al_ix , 0xfff8, 0x33f0, { 26, 26, 13}}, + {m68k_op_negx_8_d , 0xfff8, 0x4000, { 4, 4, 2}}, + {m68k_op_negx_8_ai , 0xfff8, 0x4010, { 12, 12, 8}}, + {m68k_op_negx_8_pi , 0xfff8, 0x4018, { 12, 12, 8}}, + {m68k_op_negx_8_pd , 0xfff8, 0x4020, { 14, 14, 9}}, + {m68k_op_negx_8_di , 0xfff8, 0x4028, { 16, 16, 9}}, + {m68k_op_negx_8_ix , 0xfff8, 0x4030, { 18, 18, 11}}, + {m68k_op_negx_16_d , 0xfff8, 0x4040, { 4, 4, 2}}, + {m68k_op_negx_16_ai , 0xfff8, 0x4050, { 12, 12, 8}}, + {m68k_op_negx_16_pi , 0xfff8, 0x4058, { 12, 12, 8}}, + {m68k_op_negx_16_pd , 0xfff8, 0x4060, { 14, 14, 9}}, + {m68k_op_negx_16_di , 0xfff8, 0x4068, { 16, 16, 9}}, + {m68k_op_negx_16_ix , 0xfff8, 0x4070, { 18, 18, 11}}, + {m68k_op_negx_32_d , 0xfff8, 0x4080, { 6, 6, 2}}, + {m68k_op_negx_32_ai , 0xfff8, 0x4090, { 20, 20, 8}}, + {m68k_op_negx_32_pi , 0xfff8, 0x4098, { 20, 20, 8}}, + {m68k_op_negx_32_pd , 0xfff8, 0x40a0, { 22, 22, 9}}, + {m68k_op_negx_32_di , 0xfff8, 0x40a8, { 24, 24, 9}}, + {m68k_op_negx_32_ix , 0xfff8, 0x40b0, { 26, 26, 11}}, + {m68k_op_move_16_frs_d , 0xfff8, 0x40c0, { 6, 4, 8}}, + {m68k_op_move_16_frs_ai , 0xfff8, 0x40d0, { 12, 12, 12}}, + {m68k_op_move_16_frs_pi , 0xfff8, 0x40d8, { 12, 12, 12}}, + {m68k_op_move_16_frs_pd , 0xfff8, 0x40e0, { 14, 14, 13}}, + {m68k_op_move_16_frs_di , 0xfff8, 0x40e8, { 16, 16, 13}}, + {m68k_op_move_16_frs_ix , 0xfff8, 0x40f0, { 18, 18, 15}}, + {m68k_op_clr_8_d , 0xfff8, 0x4200, { 4, 4, 2}}, + {m68k_op_clr_8_ai , 0xfff8, 0x4210, { 12, 8, 8}}, + {m68k_op_clr_8_pi , 0xfff8, 0x4218, { 12, 8, 8}}, + {m68k_op_clr_8_pd , 0xfff8, 0x4220, { 14, 10, 9}}, + {m68k_op_clr_8_di , 0xfff8, 0x4228, { 16, 12, 9}}, + {m68k_op_clr_8_ix , 0xfff8, 0x4230, { 18, 14, 11}}, + {m68k_op_clr_16_d , 0xfff8, 0x4240, { 4, 4, 2}}, + {m68k_op_clr_16_ai , 0xfff8, 0x4250, { 12, 8, 8}}, + {m68k_op_clr_16_pi , 0xfff8, 0x4258, { 12, 8, 8}}, + {m68k_op_clr_16_pd , 0xfff8, 0x4260, { 14, 10, 9}}, + {m68k_op_clr_16_di , 0xfff8, 0x4268, { 16, 12, 9}}, + {m68k_op_clr_16_ix , 0xfff8, 0x4270, { 18, 14, 11}}, + {m68k_op_clr_32_d , 0xfff8, 0x4280, { 6, 6, 2}}, + {m68k_op_clr_32_ai , 0xfff8, 0x4290, { 20, 12, 8}}, + {m68k_op_clr_32_pi , 0xfff8, 0x4298, { 20, 12, 8}}, + {m68k_op_clr_32_pd , 0xfff8, 0x42a0, { 22, 14, 9}}, + {m68k_op_clr_32_di , 0xfff8, 0x42a8, { 24, 16, 9}}, + {m68k_op_clr_32_ix , 0xfff8, 0x42b0, { 26, 20, 11}}, + {m68k_op_move_16_frc_d , 0xfff8, 0x42c0, { 0, 4, 4}}, + {m68k_op_move_16_frc_ai , 0xfff8, 0x42d0, { 0, 12, 8}}, + {m68k_op_move_16_frc_pi , 0xfff8, 0x42d8, { 0, 12, 8}}, + {m68k_op_move_16_frc_pd , 0xfff8, 0x42e0, { 0, 14, 9}}, + {m68k_op_move_16_frc_di , 0xfff8, 0x42e8, { 0, 16, 9}}, + {m68k_op_move_16_frc_ix , 0xfff8, 0x42f0, { 0, 18, 11}}, + {m68k_op_neg_8_d , 0xfff8, 0x4400, { 4, 4, 2}}, + {m68k_op_neg_8_ai , 0xfff8, 0x4410, { 12, 12, 8}}, + {m68k_op_neg_8_pi , 0xfff8, 0x4418, { 12, 12, 8}}, + {m68k_op_neg_8_pd , 0xfff8, 0x4420, { 14, 14, 9}}, + {m68k_op_neg_8_di , 0xfff8, 0x4428, { 16, 16, 9}}, + {m68k_op_neg_8_ix , 0xfff8, 0x4430, { 18, 18, 11}}, + {m68k_op_neg_16_d , 0xfff8, 0x4440, { 4, 4, 2}}, + {m68k_op_neg_16_ai , 0xfff8, 0x4450, { 12, 12, 8}}, + {m68k_op_neg_16_pi , 0xfff8, 0x4458, { 12, 12, 8}}, + {m68k_op_neg_16_pd , 0xfff8, 0x4460, { 14, 14, 9}}, + {m68k_op_neg_16_di , 0xfff8, 0x4468, { 16, 16, 9}}, + {m68k_op_neg_16_ix , 0xfff8, 0x4470, { 18, 18, 11}}, + {m68k_op_neg_32_d , 0xfff8, 0x4480, { 6, 6, 2}}, + {m68k_op_neg_32_ai , 0xfff8, 0x4490, { 20, 20, 8}}, + {m68k_op_neg_32_pi , 0xfff8, 0x4498, { 20, 20, 8}}, + {m68k_op_neg_32_pd , 0xfff8, 0x44a0, { 22, 22, 9}}, + {m68k_op_neg_32_di , 0xfff8, 0x44a8, { 24, 24, 9}}, + {m68k_op_neg_32_ix , 0xfff8, 0x44b0, { 26, 26, 11}}, + {m68k_op_move_16_toc_d , 0xfff8, 0x44c0, { 12, 12, 4}}, + {m68k_op_move_16_toc_ai , 0xfff8, 0x44d0, { 16, 16, 8}}, + {m68k_op_move_16_toc_pi , 0xfff8, 0x44d8, { 16, 16, 8}}, + {m68k_op_move_16_toc_pd , 0xfff8, 0x44e0, { 18, 18, 9}}, + {m68k_op_move_16_toc_di , 0xfff8, 0x44e8, { 20, 20, 9}}, + {m68k_op_move_16_toc_ix , 0xfff8, 0x44f0, { 22, 22, 11}}, + {m68k_op_not_8_d , 0xfff8, 0x4600, { 4, 4, 2}}, + {m68k_op_not_8_ai , 0xfff8, 0x4610, { 12, 12, 8}}, + {m68k_op_not_8_pi , 0xfff8, 0x4618, { 12, 12, 8}}, + {m68k_op_not_8_pd , 0xfff8, 0x4620, { 14, 14, 9}}, + {m68k_op_not_8_di , 0xfff8, 0x4628, { 16, 16, 9}}, + {m68k_op_not_8_ix , 0xfff8, 0x4630, { 18, 18, 11}}, + {m68k_op_not_16_d , 0xfff8, 0x4640, { 4, 4, 2}}, + {m68k_op_not_16_ai , 0xfff8, 0x4650, { 12, 12, 8}}, + {m68k_op_not_16_pi , 0xfff8, 0x4658, { 12, 12, 8}}, + {m68k_op_not_16_pd , 0xfff8, 0x4660, { 14, 14, 9}}, + {m68k_op_not_16_di , 0xfff8, 0x4668, { 16, 16, 9}}, + {m68k_op_not_16_ix , 0xfff8, 0x4670, { 18, 18, 11}}, + {m68k_op_not_32_d , 0xfff8, 0x4680, { 6, 6, 2}}, + {m68k_op_not_32_ai , 0xfff8, 0x4690, { 20, 20, 8}}, + {m68k_op_not_32_pi , 0xfff8, 0x4698, { 20, 20, 8}}, + {m68k_op_not_32_pd , 0xfff8, 0x46a0, { 22, 22, 9}}, + {m68k_op_not_32_di , 0xfff8, 0x46a8, { 24, 24, 9}}, + {m68k_op_not_32_ix , 0xfff8, 0x46b0, { 26, 26, 11}}, + {m68k_op_move_16_tos_d , 0xfff8, 0x46c0, { 12, 12, 8}}, + {m68k_op_move_16_tos_ai , 0xfff8, 0x46d0, { 16, 16, 12}}, + {m68k_op_move_16_tos_pi , 0xfff8, 0x46d8, { 16, 16, 12}}, + {m68k_op_move_16_tos_pd , 0xfff8, 0x46e0, { 18, 18, 13}}, + {m68k_op_move_16_tos_di , 0xfff8, 0x46e8, { 20, 20, 13}}, + {m68k_op_move_16_tos_ix , 0xfff8, 0x46f0, { 22, 22, 15}}, + {m68k_op_nbcd_8_d , 0xfff8, 0x4800, { 6, 6, 6}}, + {m68k_op_link_32 , 0xfff8, 0x4808, { 0, 0, 6}}, + {m68k_op_nbcd_8_ai , 0xfff8, 0x4810, { 12, 12, 10}}, + {m68k_op_nbcd_8_pi , 0xfff8, 0x4818, { 12, 12, 10}}, + {m68k_op_nbcd_8_pd , 0xfff8, 0x4820, { 14, 14, 11}}, + {m68k_op_nbcd_8_di , 0xfff8, 0x4828, { 16, 16, 11}}, + {m68k_op_nbcd_8_ix , 0xfff8, 0x4830, { 18, 18, 13}}, + {m68k_op_swap_32 , 0xfff8, 0x4840, { 4, 4, 4}}, + {m68k_op_bkpt , 0xfff8, 0x4848, { 0, 10, 10}}, + {m68k_op_pea_32_ai , 0xfff8, 0x4850, { 10, 10, 9}}, + {m68k_op_pea_32_di , 0xfff8, 0x4868, { 16, 16, 10}}, + {m68k_op_pea_32_ix , 0xfff8, 0x4870, { 20, 20, 12}}, + {m68k_op_ext_16 , 0xfff8, 0x4880, { 4, 4, 4}}, + {m68k_op_movem_16_re_ai , 0xfff8, 0x4890, { 12, 12, 8}}, + {m68k_op_movem_16_re_pd , 0xfff8, 0x48a0, { 8, 8, 4}}, + {m68k_op_movem_16_re_di , 0xfff8, 0x48a8, { 16, 16, 9}}, + {m68k_op_movem_16_re_ix , 0xfff8, 0x48b0, { 18, 18, 11}}, + {m68k_op_ext_32 , 0xfff8, 0x48c0, { 4, 4, 4}}, + {m68k_op_movem_32_re_ai , 0xfff8, 0x48d0, { 16, 16, 8}}, + {m68k_op_movem_32_re_pd , 0xfff8, 0x48e0, { 8, 8, 4}}, + {m68k_op_movem_32_re_di , 0xfff8, 0x48e8, { 20, 20, 9}}, + {m68k_op_movem_32_re_ix , 0xfff8, 0x48f0, { 22, 22, 11}}, + {m68k_op_extb_32 , 0xfff8, 0x49c0, { 0, 0, 4}}, + {m68k_op_tst_8_d , 0xfff8, 0x4a00, { 4, 4, 2}}, + {m68k_op_tst_8_ai , 0xfff8, 0x4a10, { 8, 8, 6}}, + {m68k_op_tst_8_pi , 0xfff8, 0x4a18, { 8, 8, 6}}, + {m68k_op_tst_8_pd , 0xfff8, 0x4a20, { 10, 10, 7}}, + {m68k_op_tst_8_di , 0xfff8, 0x4a28, { 12, 12, 7}}, + {m68k_op_tst_8_ix , 0xfff8, 0x4a30, { 14, 14, 9}}, + {m68k_op_tst_16_d , 0xfff8, 0x4a40, { 4, 4, 2}}, + {m68k_op_tst_16_a , 0xfff8, 0x4a48, { 0, 0, 2}}, + {m68k_op_tst_16_ai , 0xfff8, 0x4a50, { 8, 8, 6}}, + {m68k_op_tst_16_pi , 0xfff8, 0x4a58, { 8, 8, 6}}, + {m68k_op_tst_16_pd , 0xfff8, 0x4a60, { 10, 10, 7}}, + {m68k_op_tst_16_di , 0xfff8, 0x4a68, { 12, 12, 7}}, + {m68k_op_tst_16_ix , 0xfff8, 0x4a70, { 14, 14, 9}}, + {m68k_op_tst_32_d , 0xfff8, 0x4a80, { 4, 4, 2}}, + {m68k_op_tst_32_a , 0xfff8, 0x4a88, { 0, 0, 2}}, + {m68k_op_tst_32_ai , 0xfff8, 0x4a90, { 12, 12, 6}}, + {m68k_op_tst_32_pi , 0xfff8, 0x4a98, { 12, 12, 6}}, + {m68k_op_tst_32_pd , 0xfff8, 0x4aa0, { 14, 14, 7}}, + {m68k_op_tst_32_di , 0xfff8, 0x4aa8, { 16, 16, 7}}, + {m68k_op_tst_32_ix , 0xfff8, 0x4ab0, { 18, 18, 9}}, + {m68k_op_tas_8_d , 0xfff8, 0x4ac0, { 4, 4, 4}}, + {m68k_op_tas_8_ai , 0xfff8, 0x4ad0, { 18, 18, 16}}, + {m68k_op_tas_8_pi , 0xfff8, 0x4ad8, { 18, 18, 16}}, + {m68k_op_tas_8_pd , 0xfff8, 0x4ae0, { 20, 20, 17}}, + {m68k_op_tas_8_di , 0xfff8, 0x4ae8, { 22, 22, 17}}, + {m68k_op_tas_8_ix , 0xfff8, 0x4af0, { 24, 24, 19}}, + {m68k_op_mull_32_d , 0xfff8, 0x4c00, { 0, 0, 43}}, + {m68k_op_mull_32_ai , 0xfff8, 0x4c10, { 0, 0, 47}}, + {m68k_op_mull_32_pi , 0xfff8, 0x4c18, { 0, 0, 47}}, + {m68k_op_mull_32_pd , 0xfff8, 0x4c20, { 0, 0, 48}}, + {m68k_op_mull_32_di , 0xfff8, 0x4c28, { 0, 0, 48}}, + {m68k_op_mull_32_ix , 0xfff8, 0x4c30, { 0, 0, 50}}, + {m68k_op_divl_32_d , 0xfff8, 0x4c40, { 0, 0, 84}}, + {m68k_op_divl_32_ai , 0xfff8, 0x4c50, { 0, 0, 88}}, + {m68k_op_divl_32_pi , 0xfff8, 0x4c58, { 0, 0, 88}}, + {m68k_op_divl_32_pd , 0xfff8, 0x4c60, { 0, 0, 89}}, + {m68k_op_divl_32_di , 0xfff8, 0x4c68, { 0, 0, 89}}, + {m68k_op_divl_32_ix , 0xfff8, 0x4c70, { 0, 0, 91}}, + {m68k_op_movem_16_er_ai , 0xfff8, 0x4c90, { 16, 16, 12}}, + {m68k_op_movem_16_er_pi , 0xfff8, 0x4c98, { 12, 12, 8}}, + {m68k_op_movem_16_er_di , 0xfff8, 0x4ca8, { 20, 20, 13}}, + {m68k_op_movem_16_er_ix , 0xfff8, 0x4cb0, { 22, 22, 15}}, + {m68k_op_movem_32_er_ai , 0xfff8, 0x4cd0, { 20, 20, 12}}, + {m68k_op_movem_32_er_pi , 0xfff8, 0x4cd8, { 12, 12, 8}}, + {m68k_op_movem_32_er_di , 0xfff8, 0x4ce8, { 24, 24, 13}}, + {m68k_op_movem_32_er_ix , 0xfff8, 0x4cf0, { 26, 26, 15}}, + {m68k_op_link_16 , 0xfff8, 0x4e50, { 16, 16, 5}}, + {m68k_op_unlk_32 , 0xfff8, 0x4e58, { 12, 12, 6}}, + {m68k_op_move_32_tou , 0xfff8, 0x4e60, { 4, 6, 2}}, + {m68k_op_move_32_fru , 0xfff8, 0x4e68, { 4, 6, 2}}, + {m68k_op_jsr_32_ai , 0xfff8, 0x4e90, { 16, 16, 4}}, + {m68k_op_jsr_32_di , 0xfff8, 0x4ea8, { 18, 18, 5}}, + {m68k_op_jsr_32_ix , 0xfff8, 0x4eb0, { 22, 22, 7}}, + {m68k_op_jmp_32_ai , 0xfff8, 0x4ed0, { 8, 8, 4}}, + {m68k_op_jmp_32_di , 0xfff8, 0x4ee8, { 10, 10, 5}}, + {m68k_op_jmp_32_ix , 0xfff8, 0x4ef0, { 12, 12, 7}}, + {m68k_op_st_8_d , 0xfff8, 0x50c0, { 6, 4, 4}}, + {m68k_op_dbt_16 , 0xfff8, 0x50c8, { 12, 12, 6}}, + {m68k_op_st_8_ai , 0xfff8, 0x50d0, { 12, 12, 10}}, + {m68k_op_st_8_pi , 0xfff8, 0x50d8, { 12, 12, 10}}, + {m68k_op_st_8_pd , 0xfff8, 0x50e0, { 14, 14, 11}}, + {m68k_op_st_8_di , 0xfff8, 0x50e8, { 16, 16, 11}}, + {m68k_op_st_8_ix , 0xfff8, 0x50f0, { 18, 18, 13}}, + {m68k_op_sf_8_d , 0xfff8, 0x51c0, { 4, 4, 4}}, + {m68k_op_dbf_16 , 0xfff8, 0x51c8, { 14, 14, 6}}, + {m68k_op_sf_8_ai , 0xfff8, 0x51d0, { 12, 12, 10}}, + {m68k_op_sf_8_pi , 0xfff8, 0x51d8, { 12, 12, 10}}, + {m68k_op_sf_8_pd , 0xfff8, 0x51e0, { 14, 14, 11}}, + {m68k_op_sf_8_di , 0xfff8, 0x51e8, { 16, 16, 11}}, + {m68k_op_sf_8_ix , 0xfff8, 0x51f0, { 18, 18, 13}}, + {m68k_op_shi_8_d , 0xfff8, 0x52c0, { 4, 4, 4}}, + {m68k_op_dbhi_16 , 0xfff8, 0x52c8, { 12, 12, 6}}, + {m68k_op_shi_8_ai , 0xfff8, 0x52d0, { 12, 12, 10}}, + {m68k_op_shi_8_pi , 0xfff8, 0x52d8, { 12, 12, 10}}, + {m68k_op_shi_8_pd , 0xfff8, 0x52e0, { 14, 14, 11}}, + {m68k_op_shi_8_di , 0xfff8, 0x52e8, { 16, 16, 11}}, + {m68k_op_shi_8_ix , 0xfff8, 0x52f0, { 18, 18, 13}}, + {m68k_op_sls_8_d , 0xfff8, 0x53c0, { 4, 4, 4}}, + {m68k_op_dbls_16 , 0xfff8, 0x53c8, { 12, 12, 6}}, + {m68k_op_sls_8_ai , 0xfff8, 0x53d0, { 12, 12, 10}}, + {m68k_op_sls_8_pi , 0xfff8, 0x53d8, { 12, 12, 10}}, + {m68k_op_sls_8_pd , 0xfff8, 0x53e0, { 14, 14, 11}}, + {m68k_op_sls_8_di , 0xfff8, 0x53e8, { 16, 16, 11}}, + {m68k_op_sls_8_ix , 0xfff8, 0x53f0, { 18, 18, 13}}, + {m68k_op_scc_8_d , 0xfff8, 0x54c0, { 4, 4, 4}}, + {m68k_op_dbcc_16 , 0xfff8, 0x54c8, { 12, 12, 6}}, + {m68k_op_scc_8_ai , 0xfff8, 0x54d0, { 12, 12, 10}}, + {m68k_op_scc_8_pi , 0xfff8, 0x54d8, { 12, 12, 10}}, + {m68k_op_scc_8_pd , 0xfff8, 0x54e0, { 14, 14, 11}}, + {m68k_op_scc_8_di , 0xfff8, 0x54e8, { 16, 16, 11}}, + {m68k_op_scc_8_ix , 0xfff8, 0x54f0, { 18, 18, 13}}, + {m68k_op_scs_8_d , 0xfff8, 0x55c0, { 4, 4, 4}}, + {m68k_op_dbcs_16 , 0xfff8, 0x55c8, { 12, 12, 6}}, + {m68k_op_scs_8_ai , 0xfff8, 0x55d0, { 12, 12, 10}}, + {m68k_op_scs_8_pi , 0xfff8, 0x55d8, { 12, 12, 10}}, + {m68k_op_scs_8_pd , 0xfff8, 0x55e0, { 14, 14, 11}}, + {m68k_op_scs_8_di , 0xfff8, 0x55e8, { 16, 16, 11}}, + {m68k_op_scs_8_ix , 0xfff8, 0x55f0, { 18, 18, 13}}, + {m68k_op_sne_8_d , 0xfff8, 0x56c0, { 4, 4, 4}}, + {m68k_op_dbne_16 , 0xfff8, 0x56c8, { 12, 12, 6}}, + {m68k_op_sne_8_ai , 0xfff8, 0x56d0, { 12, 12, 10}}, + {m68k_op_sne_8_pi , 0xfff8, 0x56d8, { 12, 12, 10}}, + {m68k_op_sne_8_pd , 0xfff8, 0x56e0, { 14, 14, 11}}, + {m68k_op_sne_8_di , 0xfff8, 0x56e8, { 16, 16, 11}}, + {m68k_op_sne_8_ix , 0xfff8, 0x56f0, { 18, 18, 13}}, + {m68k_op_seq_8_d , 0xfff8, 0x57c0, { 4, 4, 4}}, + {m68k_op_dbeq_16 , 0xfff8, 0x57c8, { 12, 12, 6}}, + {m68k_op_seq_8_ai , 0xfff8, 0x57d0, { 12, 12, 10}}, + {m68k_op_seq_8_pi , 0xfff8, 0x57d8, { 12, 12, 10}}, + {m68k_op_seq_8_pd , 0xfff8, 0x57e0, { 14, 14, 11}}, + {m68k_op_seq_8_di , 0xfff8, 0x57e8, { 16, 16, 11}}, + {m68k_op_seq_8_ix , 0xfff8, 0x57f0, { 18, 18, 13}}, + {m68k_op_svc_8_d , 0xfff8, 0x58c0, { 4, 4, 4}}, + {m68k_op_dbvc_16 , 0xfff8, 0x58c8, { 12, 12, 6}}, + {m68k_op_svc_8_ai , 0xfff8, 0x58d0, { 12, 12, 10}}, + {m68k_op_svc_8_pi , 0xfff8, 0x58d8, { 12, 12, 10}}, + {m68k_op_svc_8_pd , 0xfff8, 0x58e0, { 14, 14, 11}}, + {m68k_op_svc_8_di , 0xfff8, 0x58e8, { 16, 16, 11}}, + {m68k_op_svc_8_ix , 0xfff8, 0x58f0, { 18, 18, 13}}, + {m68k_op_svs_8_d , 0xfff8, 0x59c0, { 4, 4, 4}}, + {m68k_op_dbvs_16 , 0xfff8, 0x59c8, { 12, 12, 6}}, + {m68k_op_svs_8_ai , 0xfff8, 0x59d0, { 12, 12, 10}}, + {m68k_op_svs_8_pi , 0xfff8, 0x59d8, { 12, 12, 10}}, + {m68k_op_svs_8_pd , 0xfff8, 0x59e0, { 14, 14, 11}}, + {m68k_op_svs_8_di , 0xfff8, 0x59e8, { 16, 16, 11}}, + {m68k_op_svs_8_ix , 0xfff8, 0x59f0, { 18, 18, 13}}, + {m68k_op_spl_8_d , 0xfff8, 0x5ac0, { 4, 4, 4}}, + {m68k_op_dbpl_16 , 0xfff8, 0x5ac8, { 12, 12, 6}}, + {m68k_op_spl_8_ai , 0xfff8, 0x5ad0, { 12, 12, 10}}, + {m68k_op_spl_8_pi , 0xfff8, 0x5ad8, { 12, 12, 10}}, + {m68k_op_spl_8_pd , 0xfff8, 0x5ae0, { 14, 14, 11}}, + {m68k_op_spl_8_di , 0xfff8, 0x5ae8, { 16, 16, 11}}, + {m68k_op_spl_8_ix , 0xfff8, 0x5af0, { 18, 18, 13}}, + {m68k_op_smi_8_d , 0xfff8, 0x5bc0, { 4, 4, 4}}, + {m68k_op_dbmi_16 , 0xfff8, 0x5bc8, { 12, 12, 6}}, + {m68k_op_smi_8_ai , 0xfff8, 0x5bd0, { 12, 12, 10}}, + {m68k_op_smi_8_pi , 0xfff8, 0x5bd8, { 12, 12, 10}}, + {m68k_op_smi_8_pd , 0xfff8, 0x5be0, { 14, 14, 11}}, + {m68k_op_smi_8_di , 0xfff8, 0x5be8, { 16, 16, 11}}, + {m68k_op_smi_8_ix , 0xfff8, 0x5bf0, { 18, 18, 13}}, + {m68k_op_sge_8_d , 0xfff8, 0x5cc0, { 4, 4, 4}}, + {m68k_op_dbge_16 , 0xfff8, 0x5cc8, { 12, 12, 6}}, + {m68k_op_sge_8_ai , 0xfff8, 0x5cd0, { 12, 12, 10}}, + {m68k_op_sge_8_pi , 0xfff8, 0x5cd8, { 12, 12, 10}}, + {m68k_op_sge_8_pd , 0xfff8, 0x5ce0, { 14, 14, 11}}, + {m68k_op_sge_8_di , 0xfff8, 0x5ce8, { 16, 16, 11}}, + {m68k_op_sge_8_ix , 0xfff8, 0x5cf0, { 18, 18, 13}}, + {m68k_op_slt_8_d , 0xfff8, 0x5dc0, { 4, 4, 4}}, + {m68k_op_dblt_16 , 0xfff8, 0x5dc8, { 12, 12, 6}}, + {m68k_op_slt_8_ai , 0xfff8, 0x5dd0, { 12, 12, 10}}, + {m68k_op_slt_8_pi , 0xfff8, 0x5dd8, { 12, 12, 10}}, + {m68k_op_slt_8_pd , 0xfff8, 0x5de0, { 14, 14, 11}}, + {m68k_op_slt_8_di , 0xfff8, 0x5de8, { 16, 16, 11}}, + {m68k_op_slt_8_ix , 0xfff8, 0x5df0, { 18, 18, 13}}, + {m68k_op_sgt_8_d , 0xfff8, 0x5ec0, { 4, 4, 4}}, + {m68k_op_dbgt_16 , 0xfff8, 0x5ec8, { 12, 12, 6}}, + {m68k_op_sgt_8_ai , 0xfff8, 0x5ed0, { 12, 12, 10}}, + {m68k_op_sgt_8_pi , 0xfff8, 0x5ed8, { 12, 12, 10}}, + {m68k_op_sgt_8_pd , 0xfff8, 0x5ee0, { 14, 14, 11}}, + {m68k_op_sgt_8_di , 0xfff8, 0x5ee8, { 16, 16, 11}}, + {m68k_op_sgt_8_ix , 0xfff8, 0x5ef0, { 18, 18, 13}}, + {m68k_op_sle_8_d , 0xfff8, 0x5fc0, { 4, 4, 4}}, + {m68k_op_dble_16 , 0xfff8, 0x5fc8, { 12, 12, 6}}, + {m68k_op_sle_8_ai , 0xfff8, 0x5fd0, { 12, 12, 10}}, + {m68k_op_sle_8_pi , 0xfff8, 0x5fd8, { 12, 12, 10}}, + {m68k_op_sle_8_pd , 0xfff8, 0x5fe0, { 14, 14, 11}}, + {m68k_op_sle_8_di , 0xfff8, 0x5fe8, { 16, 16, 11}}, + {m68k_op_sle_8_ix , 0xfff8, 0x5ff0, { 18, 18, 13}}, + {m68k_op_sbcd_8_mm_ax7 , 0xfff8, 0x8f08, { 18, 18, 16}}, + {m68k_op_pack_16_mm_ax7 , 0xfff8, 0x8f48, { 0, 0, 13}}, + {m68k_op_unpk_16_mm_ax7 , 0xfff8, 0x8f88, { 0, 0, 13}}, + {m68k_op_subx_8_mm_ax7 , 0xfff8, 0x9f08, { 18, 18, 12}}, + {m68k_op_cmpm_8_ax7 , 0xfff8, 0xbf08, { 12, 12, 9}}, + {m68k_op_abcd_8_mm_ax7 , 0xfff8, 0xcf08, { 18, 18, 16}}, + {m68k_op_addx_8_mm_ax7 , 0xfff8, 0xdf08, { 18, 18, 12}}, + {m68k_op_asr_16_ai , 0xfff8, 0xe0d0, { 12, 12, 9}}, + {m68k_op_asr_16_pi , 0xfff8, 0xe0d8, { 12, 12, 9}}, + {m68k_op_asr_16_pd , 0xfff8, 0xe0e0, { 14, 14, 10}}, + {m68k_op_asr_16_di , 0xfff8, 0xe0e8, { 16, 16, 10}}, + {m68k_op_asr_16_ix , 0xfff8, 0xe0f0, { 18, 18, 12}}, + {m68k_op_asl_16_ai , 0xfff8, 0xe1d0, { 12, 12, 10}}, + {m68k_op_asl_16_pi , 0xfff8, 0xe1d8, { 12, 12, 10}}, + {m68k_op_asl_16_pd , 0xfff8, 0xe1e0, { 14, 14, 11}}, + {m68k_op_asl_16_di , 0xfff8, 0xe1e8, { 16, 16, 11}}, + {m68k_op_asl_16_ix , 0xfff8, 0xe1f0, { 18, 18, 13}}, + {m68k_op_lsr_16_ai , 0xfff8, 0xe2d0, { 12, 12, 9}}, + {m68k_op_lsr_16_pi , 0xfff8, 0xe2d8, { 12, 12, 9}}, + {m68k_op_lsr_16_pd , 0xfff8, 0xe2e0, { 14, 14, 10}}, + {m68k_op_lsr_16_di , 0xfff8, 0xe2e8, { 16, 16, 10}}, + {m68k_op_lsr_16_ix , 0xfff8, 0xe2f0, { 18, 18, 12}}, + {m68k_op_lsl_16_ai , 0xfff8, 0xe3d0, { 12, 12, 9}}, + {m68k_op_lsl_16_pi , 0xfff8, 0xe3d8, { 12, 12, 9}}, + {m68k_op_lsl_16_pd , 0xfff8, 0xe3e0, { 14, 14, 10}}, + {m68k_op_lsl_16_di , 0xfff8, 0xe3e8, { 16, 16, 10}}, + {m68k_op_lsl_16_ix , 0xfff8, 0xe3f0, { 18, 18, 12}}, + {m68k_op_roxr_16_ai , 0xfff8, 0xe4d0, { 12, 12, 9}}, + {m68k_op_roxr_16_pi , 0xfff8, 0xe4d8, { 12, 12, 9}}, + {m68k_op_roxr_16_pd , 0xfff8, 0xe4e0, { 14, 14, 10}}, + {m68k_op_roxr_16_di , 0xfff8, 0xe4e8, { 16, 16, 10}}, + {m68k_op_roxr_16_ix , 0xfff8, 0xe4f0, { 18, 18, 12}}, + {m68k_op_roxl_16_ai , 0xfff8, 0xe5d0, { 12, 12, 9}}, + {m68k_op_roxl_16_pi , 0xfff8, 0xe5d8, { 12, 12, 9}}, + {m68k_op_roxl_16_pd , 0xfff8, 0xe5e0, { 14, 14, 10}}, + {m68k_op_roxl_16_di , 0xfff8, 0xe5e8, { 16, 16, 10}}, + {m68k_op_roxl_16_ix , 0xfff8, 0xe5f0, { 18, 18, 12}}, + {m68k_op_ror_16_ai , 0xfff8, 0xe6d0, { 12, 12, 11}}, + {m68k_op_ror_16_pi , 0xfff8, 0xe6d8, { 12, 12, 11}}, + {m68k_op_ror_16_pd , 0xfff8, 0xe6e0, { 14, 14, 12}}, + {m68k_op_ror_16_di , 0xfff8, 0xe6e8, { 16, 16, 12}}, + {m68k_op_ror_16_ix , 0xfff8, 0xe6f0, { 18, 18, 14}}, + {m68k_op_rol_16_ai , 0xfff8, 0xe7d0, { 12, 12, 11}}, + {m68k_op_rol_16_pi , 0xfff8, 0xe7d8, { 12, 12, 11}}, + {m68k_op_rol_16_pd , 0xfff8, 0xe7e0, { 14, 14, 12}}, + {m68k_op_rol_16_di , 0xfff8, 0xe7e8, { 16, 16, 12}}, + {m68k_op_rol_16_ix , 0xfff8, 0xe7f0, { 18, 18, 14}}, + {m68k_op_bftst_32_d , 0xfff8, 0xe8c0, { 0, 0, 6}}, + {m68k_op_bftst_32_ai , 0xfff8, 0xe8d0, { 0, 0, 17}}, + {m68k_op_bftst_32_di , 0xfff8, 0xe8e8, { 0, 0, 18}}, + {m68k_op_bftst_32_ix , 0xfff8, 0xe8f0, { 0, 0, 20}}, + {m68k_op_bfextu_32_d , 0xfff8, 0xe9c0, { 0, 0, 8}}, + {m68k_op_bfextu_32_ai , 0xfff8, 0xe9d0, { 0, 0, 19}}, + {m68k_op_bfextu_32_di , 0xfff8, 0xe9e8, { 0, 0, 20}}, + {m68k_op_bfextu_32_ix , 0xfff8, 0xe9f0, { 0, 0, 22}}, + {m68k_op_bfchg_32_d , 0xfff8, 0xeac0, { 0, 0, 12}}, + {m68k_op_bfchg_32_ai , 0xfff8, 0xead0, { 0, 0, 24}}, + {m68k_op_bfchg_32_di , 0xfff8, 0xeae8, { 0, 0, 25}}, + {m68k_op_bfchg_32_ix , 0xfff8, 0xeaf0, { 0, 0, 27}}, + {m68k_op_bfexts_32_d , 0xfff8, 0xebc0, { 0, 0, 8}}, + {m68k_op_bfexts_32_ai , 0xfff8, 0xebd0, { 0, 0, 19}}, + {m68k_op_bfexts_32_di , 0xfff8, 0xebe8, { 0, 0, 20}}, + {m68k_op_bfexts_32_ix , 0xfff8, 0xebf0, { 0, 0, 22}}, + {m68k_op_bfclr_32_d , 0xfff8, 0xecc0, { 0, 0, 12}}, + {m68k_op_bfclr_32_ai , 0xfff8, 0xecd0, { 0, 0, 24}}, + {m68k_op_bfclr_32_di , 0xfff8, 0xece8, { 0, 0, 25}}, + {m68k_op_bfclr_32_ix , 0xfff8, 0xecf0, { 0, 0, 27}}, + {m68k_op_bfffo_32_d , 0xfff8, 0xedc0, { 0, 0, 18}}, + {m68k_op_bfffo_32_ai , 0xfff8, 0xedd0, { 0, 0, 32}}, + {m68k_op_bfffo_32_di , 0xfff8, 0xede8, { 0, 0, 33}}, + {m68k_op_bfffo_32_ix , 0xfff8, 0xedf0, { 0, 0, 35}}, + {m68k_op_bfset_32_d , 0xfff8, 0xeec0, { 0, 0, 12}}, + {m68k_op_bfset_32_ai , 0xfff8, 0xeed0, { 0, 0, 24}}, + {m68k_op_bfset_32_di , 0xfff8, 0xeee8, { 0, 0, 25}}, + {m68k_op_bfset_32_ix , 0xfff8, 0xeef0, { 0, 0, 27}}, + {m68k_op_bfins_32_d , 0xfff8, 0xefc0, { 0, 0, 10}}, + {m68k_op_bfins_32_ai , 0xfff8, 0xefd0, { 0, 0, 21}}, + {m68k_op_bfins_32_di , 0xfff8, 0xefe8, { 0, 0, 22}}, + {m68k_op_bfins_32_ix , 0xfff8, 0xeff0, { 0, 0, 24}}, + {m68k_op_ori_8_pi7 , 0xffff, 0x001f, { 16, 16, 8}}, + {m68k_op_ori_8_pd7 , 0xffff, 0x0027, { 18, 18, 9}}, + {m68k_op_ori_8_aw , 0xffff, 0x0038, { 20, 20, 8}}, + {m68k_op_ori_8_al , 0xffff, 0x0039, { 24, 24, 8}}, + {m68k_op_ori_16_toc , 0xffff, 0x003c, { 20, 16, 12}}, + {m68k_op_ori_16_aw , 0xffff, 0x0078, { 20, 20, 8}}, + {m68k_op_ori_16_al , 0xffff, 0x0079, { 24, 24, 8}}, + {m68k_op_ori_16_tos , 0xffff, 0x007c, { 20, 16, 12}}, + {m68k_op_ori_32_aw , 0xffff, 0x00b8, { 32, 32, 8}}, + {m68k_op_ori_32_al , 0xffff, 0x00b9, { 36, 36, 8}}, + {m68k_op_chk2cmp2_8_aw , 0xffff, 0x00f8, { 0, 0, 22}}, + {m68k_op_chk2cmp2_8_al , 0xffff, 0x00f9, { 0, 0, 22}}, + {m68k_op_chk2cmp2_8_pcdi , 0xffff, 0x00fa, { 0, 0, 23}}, + {m68k_op_chk2cmp2_8_pcix , 0xffff, 0x00fb, { 0, 0, 25}}, + {m68k_op_andi_8_pi7 , 0xffff, 0x021f, { 16, 16, 8}}, + {m68k_op_andi_8_pd7 , 0xffff, 0x0227, { 18, 18, 9}}, + {m68k_op_andi_8_aw , 0xffff, 0x0238, { 20, 20, 8}}, + {m68k_op_andi_8_al , 0xffff, 0x0239, { 24, 24, 8}}, + {m68k_op_andi_16_toc , 0xffff, 0x023c, { 20, 16, 12}}, + {m68k_op_andi_16_aw , 0xffff, 0x0278, { 20, 20, 8}}, + {m68k_op_andi_16_al , 0xffff, 0x0279, { 24, 24, 8}}, + {m68k_op_andi_16_tos , 0xffff, 0x027c, { 20, 16, 12}}, + {m68k_op_andi_32_aw , 0xffff, 0x02b8, { 32, 32, 8}}, + {m68k_op_andi_32_al , 0xffff, 0x02b9, { 36, 36, 8}}, + {m68k_op_chk2cmp2_16_aw , 0xffff, 0x02f8, { 0, 0, 22}}, + {m68k_op_chk2cmp2_16_al , 0xffff, 0x02f9, { 0, 0, 22}}, + {m68k_op_chk2cmp2_16_pcdi , 0xffff, 0x02fa, { 0, 0, 23}}, + {m68k_op_chk2cmp2_16_pcix , 0xffff, 0x02fb, { 0, 0, 25}}, + {m68k_op_subi_8_pi7 , 0xffff, 0x041f, { 16, 16, 8}}, + {m68k_op_subi_8_pd7 , 0xffff, 0x0427, { 18, 18, 9}}, + {m68k_op_subi_8_aw , 0xffff, 0x0438, { 20, 20, 8}}, + {m68k_op_subi_8_al , 0xffff, 0x0439, { 24, 24, 8}}, + {m68k_op_subi_16_aw , 0xffff, 0x0478, { 20, 20, 8}}, + {m68k_op_subi_16_al , 0xffff, 0x0479, { 24, 24, 8}}, + {m68k_op_subi_32_aw , 0xffff, 0x04b8, { 32, 32, 8}}, + {m68k_op_subi_32_al , 0xffff, 0x04b9, { 36, 36, 8}}, + {m68k_op_chk2cmp2_32_aw , 0xffff, 0x04f8, { 0, 0, 22}}, + {m68k_op_chk2cmp2_32_al , 0xffff, 0x04f9, { 0, 0, 22}}, + {m68k_op_chk2cmp2_32_pcdi , 0xffff, 0x04fa, { 0, 0, 23}}, + {m68k_op_chk2cmp2_32_pcix , 0xffff, 0x04fb, { 0, 0, 25}}, + {m68k_op_addi_8_pi7 , 0xffff, 0x061f, { 16, 16, 8}}, + {m68k_op_addi_8_pd7 , 0xffff, 0x0627, { 18, 18, 9}}, + {m68k_op_addi_8_aw , 0xffff, 0x0638, { 20, 20, 8}}, + {m68k_op_addi_8_al , 0xffff, 0x0639, { 24, 24, 8}}, + {m68k_op_addi_16_aw , 0xffff, 0x0678, { 20, 20, 8}}, + {m68k_op_addi_16_al , 0xffff, 0x0679, { 24, 24, 8}}, + {m68k_op_addi_32_aw , 0xffff, 0x06b8, { 32, 32, 8}}, + {m68k_op_addi_32_al , 0xffff, 0x06b9, { 36, 36, 8}}, + {m68k_op_callm_32_aw , 0xffff, 0x06f8, { 0, 0, 64}}, + {m68k_op_callm_32_al , 0xffff, 0x06f9, { 0, 0, 64}}, + {m68k_op_callm_32_pcdi , 0xffff, 0x06fa, { 0, 0, 65}}, + {m68k_op_callm_32_pcix , 0xffff, 0x06fb, { 0, 0, 67}}, + {m68k_op_btst_8_s_pi7 , 0xffff, 0x081f, { 12, 12, 8}}, + {m68k_op_btst_8_s_pd7 , 0xffff, 0x0827, { 14, 14, 9}}, + {m68k_op_btst_8_s_aw , 0xffff, 0x0838, { 16, 16, 8}}, + {m68k_op_btst_8_s_al , 0xffff, 0x0839, { 20, 20, 8}}, + {m68k_op_btst_8_s_pcdi , 0xffff, 0x083a, { 16, 16, 9}}, + {m68k_op_btst_8_s_pcix , 0xffff, 0x083b, { 18, 18, 11}}, + {m68k_op_bchg_8_s_pi7 , 0xffff, 0x085f, { 16, 16, 8}}, + {m68k_op_bchg_8_s_pd7 , 0xffff, 0x0867, { 18, 18, 9}}, + {m68k_op_bchg_8_s_aw , 0xffff, 0x0878, { 20, 20, 8}}, + {m68k_op_bchg_8_s_al , 0xffff, 0x0879, { 24, 24, 8}}, + {m68k_op_bclr_8_s_pi7 , 0xffff, 0x089f, { 16, 16, 8}}, + {m68k_op_bclr_8_s_pd7 , 0xffff, 0x08a7, { 18, 18, 9}}, + {m68k_op_bclr_8_s_aw , 0xffff, 0x08b8, { 20, 20, 8}}, + {m68k_op_bclr_8_s_al , 0xffff, 0x08b9, { 24, 24, 8}}, + {m68k_op_bset_8_s_pi7 , 0xffff, 0x08df, { 16, 16, 8}}, + {m68k_op_bset_8_s_pd7 , 0xffff, 0x08e7, { 18, 18, 9}}, + {m68k_op_bset_8_s_aw , 0xffff, 0x08f8, { 20, 20, 8}}, + {m68k_op_bset_8_s_al , 0xffff, 0x08f9, { 24, 24, 8}}, + {m68k_op_eori_8_pi7 , 0xffff, 0x0a1f, { 16, 16, 8}}, + {m68k_op_eori_8_pd7 , 0xffff, 0x0a27, { 18, 18, 9}}, + {m68k_op_eori_8_aw , 0xffff, 0x0a38, { 20, 20, 8}}, + {m68k_op_eori_8_al , 0xffff, 0x0a39, { 24, 24, 8}}, + {m68k_op_eori_16_toc , 0xffff, 0x0a3c, { 20, 16, 12}}, + {m68k_op_eori_16_aw , 0xffff, 0x0a78, { 20, 20, 8}}, + {m68k_op_eori_16_al , 0xffff, 0x0a79, { 24, 24, 8}}, + {m68k_op_eori_16_tos , 0xffff, 0x0a7c, { 20, 16, 12}}, + {m68k_op_eori_32_aw , 0xffff, 0x0ab8, { 32, 32, 8}}, + {m68k_op_eori_32_al , 0xffff, 0x0ab9, { 36, 36, 8}}, + {m68k_op_cas_8_pi7 , 0xffff, 0x0adf, { 0, 0, 16}}, + {m68k_op_cas_8_pd7 , 0xffff, 0x0ae7, { 0, 0, 17}}, + {m68k_op_cas_8_aw , 0xffff, 0x0af8, { 0, 0, 16}}, + {m68k_op_cas_8_al , 0xffff, 0x0af9, { 0, 0, 16}}, + {m68k_op_cmpi_8_pi7 , 0xffff, 0x0c1f, { 12, 12, 6}}, + {m68k_op_cmpi_8_pd7 , 0xffff, 0x0c27, { 14, 14, 7}}, + {m68k_op_cmpi_8_aw , 0xffff, 0x0c38, { 16, 16, 6}}, + {m68k_op_cmpi_8_al , 0xffff, 0x0c39, { 20, 20, 6}}, + {m68k_op_cmpi_8_pcdi , 0xffff, 0x0c3a, { 0, 0, 7}}, + {m68k_op_cmpi_8_pcix , 0xffff, 0x0c3b, { 0, 0, 9}}, + {m68k_op_cmpi_16_aw , 0xffff, 0x0c78, { 16, 16, 6}}, + {m68k_op_cmpi_16_al , 0xffff, 0x0c79, { 20, 20, 6}}, + {m68k_op_cmpi_16_pcdi , 0xffff, 0x0c7a, { 0, 0, 7}}, + {m68k_op_cmpi_16_pcix , 0xffff, 0x0c7b, { 0, 0, 9}}, + {m68k_op_cmpi_32_aw , 0xffff, 0x0cb8, { 24, 24, 6}}, + {m68k_op_cmpi_32_al , 0xffff, 0x0cb9, { 28, 28, 6}}, + {m68k_op_cmpi_32_pcdi , 0xffff, 0x0cba, { 0, 0, 7}}, + {m68k_op_cmpi_32_pcix , 0xffff, 0x0cbb, { 0, 0, 9}}, + {m68k_op_cas_16_aw , 0xffff, 0x0cf8, { 0, 0, 16}}, + {m68k_op_cas_16_al , 0xffff, 0x0cf9, { 0, 0, 16}}, + {m68k_op_cas2_16 , 0xffff, 0x0cfc, { 0, 0, 12}}, + {m68k_op_moves_8_pi7 , 0xffff, 0x0e1f, { 0, 18, 9}}, + {m68k_op_moves_8_pd7 , 0xffff, 0x0e27, { 0, 20, 10}}, + {m68k_op_moves_8_aw , 0xffff, 0x0e38, { 0, 26, 9}}, + {m68k_op_moves_8_al , 0xffff, 0x0e39, { 0, 30, 9}}, + {m68k_op_moves_16_aw , 0xffff, 0x0e78, { 0, 26, 9}}, + {m68k_op_moves_16_al , 0xffff, 0x0e79, { 0, 30, 9}}, + {m68k_op_moves_32_aw , 0xffff, 0x0eb8, { 0, 32, 9}}, + {m68k_op_moves_32_al , 0xffff, 0x0eb9, { 0, 36, 9}}, + {m68k_op_cas_32_aw , 0xffff, 0x0ef8, { 0, 0, 16}}, + {m68k_op_cas_32_al , 0xffff, 0x0ef9, { 0, 0, 16}}, + {m68k_op_cas2_32 , 0xffff, 0x0efc, { 0, 0, 12}}, + {m68k_op_move_8_aw_pi7 , 0xffff, 0x11df, { 16, 16, 8}}, + {m68k_op_move_8_aw_pd7 , 0xffff, 0x11e7, { 18, 18, 9}}, + {m68k_op_move_8_aw_aw , 0xffff, 0x11f8, { 20, 20, 8}}, + {m68k_op_move_8_aw_al , 0xffff, 0x11f9, { 24, 24, 8}}, + {m68k_op_move_8_aw_pcdi , 0xffff, 0x11fa, { 20, 20, 9}}, + {m68k_op_move_8_aw_pcix , 0xffff, 0x11fb, { 22, 22, 11}}, + {m68k_op_move_8_aw_i , 0xffff, 0x11fc, { 16, 16, 6}}, + {m68k_op_move_8_al_pi7 , 0xffff, 0x13df, { 20, 20, 10}}, + {m68k_op_move_8_al_pd7 , 0xffff, 0x13e7, { 22, 22, 11}}, + {m68k_op_move_8_al_aw , 0xffff, 0x13f8, { 24, 24, 10}}, + {m68k_op_move_8_al_al , 0xffff, 0x13f9, { 28, 28, 10}}, + {m68k_op_move_8_al_pcdi , 0xffff, 0x13fa, { 24, 24, 11}}, + {m68k_op_move_8_al_pcix , 0xffff, 0x13fb, { 26, 26, 13}}, + {m68k_op_move_8_al_i , 0xffff, 0x13fc, { 20, 20, 8}}, + {m68k_op_move_8_pi7_pi7 , 0xffff, 0x1edf, { 12, 12, 8}}, + {m68k_op_move_8_pi7_pd7 , 0xffff, 0x1ee7, { 14, 14, 9}}, + {m68k_op_move_8_pi7_aw , 0xffff, 0x1ef8, { 16, 16, 8}}, + {m68k_op_move_8_pi7_al , 0xffff, 0x1ef9, { 20, 20, 8}}, + {m68k_op_move_8_pi7_pcdi , 0xffff, 0x1efa, { 16, 16, 9}}, + {m68k_op_move_8_pi7_pcix , 0xffff, 0x1efb, { 18, 18, 11}}, + {m68k_op_move_8_pi7_i , 0xffff, 0x1efc, { 12, 12, 6}}, + {m68k_op_move_8_pd7_pi7 , 0xffff, 0x1f1f, { 12, 12, 9}}, + {m68k_op_move_8_pd7_pd7 , 0xffff, 0x1f27, { 14, 14, 10}}, + {m68k_op_move_8_pd7_aw , 0xffff, 0x1f38, { 16, 16, 9}}, + {m68k_op_move_8_pd7_al , 0xffff, 0x1f39, { 20, 20, 9}}, + {m68k_op_move_8_pd7_pcdi , 0xffff, 0x1f3a, { 16, 16, 10}}, + {m68k_op_move_8_pd7_pcix , 0xffff, 0x1f3b, { 18, 18, 12}}, + {m68k_op_move_8_pd7_i , 0xffff, 0x1f3c, { 12, 12, 7}}, + {m68k_op_move_32_aw_aw , 0xffff, 0x21f8, { 28, 28, 8}}, + {m68k_op_move_32_aw_al , 0xffff, 0x21f9, { 32, 32, 8}}, + {m68k_op_move_32_aw_pcdi , 0xffff, 0x21fa, { 28, 28, 9}}, + {m68k_op_move_32_aw_pcix , 0xffff, 0x21fb, { 30, 30, 11}}, + {m68k_op_move_32_aw_i , 0xffff, 0x21fc, { 24, 24, 8}}, + {m68k_op_move_32_al_aw , 0xffff, 0x23f8, { 32, 32, 10}}, + {m68k_op_move_32_al_al , 0xffff, 0x23f9, { 36, 36, 10}}, + {m68k_op_move_32_al_pcdi , 0xffff, 0x23fa, { 32, 32, 11}}, + {m68k_op_move_32_al_pcix , 0xffff, 0x23fb, { 34, 34, 13}}, + {m68k_op_move_32_al_i , 0xffff, 0x23fc, { 28, 28, 10}}, + {m68k_op_move_16_aw_aw , 0xffff, 0x31f8, { 20, 20, 8}}, + {m68k_op_move_16_aw_al , 0xffff, 0x31f9, { 24, 24, 8}}, + {m68k_op_move_16_aw_pcdi , 0xffff, 0x31fa, { 20, 20, 9}}, + {m68k_op_move_16_aw_pcix , 0xffff, 0x31fb, { 22, 22, 11}}, + {m68k_op_move_16_aw_i , 0xffff, 0x31fc, { 16, 16, 6}}, + {m68k_op_move_16_al_aw , 0xffff, 0x33f8, { 24, 24, 10}}, + {m68k_op_move_16_al_al , 0xffff, 0x33f9, { 28, 28, 10}}, + {m68k_op_move_16_al_pcdi , 0xffff, 0x33fa, { 24, 24, 11}}, + {m68k_op_move_16_al_pcix , 0xffff, 0x33fb, { 26, 26, 13}}, + {m68k_op_move_16_al_i , 0xffff, 0x33fc, { 20, 20, 8}}, + {m68k_op_negx_8_pi7 , 0xffff, 0x401f, { 12, 12, 8}}, + {m68k_op_negx_8_pd7 , 0xffff, 0x4027, { 14, 14, 9}}, + {m68k_op_negx_8_aw , 0xffff, 0x4038, { 16, 16, 8}}, + {m68k_op_negx_8_al , 0xffff, 0x4039, { 20, 20, 8}}, + {m68k_op_negx_16_aw , 0xffff, 0x4078, { 16, 16, 8}}, + {m68k_op_negx_16_al , 0xffff, 0x4079, { 20, 20, 8}}, + {m68k_op_negx_32_aw , 0xffff, 0x40b8, { 24, 24, 8}}, + {m68k_op_negx_32_al , 0xffff, 0x40b9, { 28, 28, 8}}, + {m68k_op_move_16_frs_aw , 0xffff, 0x40f8, { 16, 16, 12}}, + {m68k_op_move_16_frs_al , 0xffff, 0x40f9, { 20, 20, 12}}, + {m68k_op_clr_8_pi7 , 0xffff, 0x421f, { 12, 8, 8}}, + {m68k_op_clr_8_pd7 , 0xffff, 0x4227, { 14, 10, 9}}, + {m68k_op_clr_8_aw , 0xffff, 0x4238, { 16, 12, 8}}, + {m68k_op_clr_8_al , 0xffff, 0x4239, { 20, 14, 8}}, + {m68k_op_clr_16_aw , 0xffff, 0x4278, { 16, 12, 8}}, + {m68k_op_clr_16_al , 0xffff, 0x4279, { 20, 14, 8}}, + {m68k_op_clr_32_aw , 0xffff, 0x42b8, { 24, 16, 8}}, + {m68k_op_clr_32_al , 0xffff, 0x42b9, { 28, 20, 8}}, + {m68k_op_move_16_frc_aw , 0xffff, 0x42f8, { 0, 16, 8}}, + {m68k_op_move_16_frc_al , 0xffff, 0x42f9, { 0, 20, 8}}, + {m68k_op_neg_8_pi7 , 0xffff, 0x441f, { 12, 12, 8}}, + {m68k_op_neg_8_pd7 , 0xffff, 0x4427, { 14, 14, 9}}, + {m68k_op_neg_8_aw , 0xffff, 0x4438, { 16, 16, 8}}, + {m68k_op_neg_8_al , 0xffff, 0x4439, { 20, 20, 8}}, + {m68k_op_neg_16_aw , 0xffff, 0x4478, { 16, 16, 8}}, + {m68k_op_neg_16_al , 0xffff, 0x4479, { 20, 20, 8}}, + {m68k_op_neg_32_aw , 0xffff, 0x44b8, { 24, 24, 8}}, + {m68k_op_neg_32_al , 0xffff, 0x44b9, { 28, 28, 8}}, + {m68k_op_move_16_toc_aw , 0xffff, 0x44f8, { 20, 20, 8}}, + {m68k_op_move_16_toc_al , 0xffff, 0x44f9, { 24, 24, 8}}, + {m68k_op_move_16_toc_pcdi , 0xffff, 0x44fa, { 20, 20, 9}}, + {m68k_op_move_16_toc_pcix , 0xffff, 0x44fb, { 22, 22, 11}}, + {m68k_op_move_16_toc_i , 0xffff, 0x44fc, { 16, 16, 6}}, + {m68k_op_not_8_pi7 , 0xffff, 0x461f, { 12, 12, 8}}, + {m68k_op_not_8_pd7 , 0xffff, 0x4627, { 14, 14, 9}}, + {m68k_op_not_8_aw , 0xffff, 0x4638, { 16, 16, 8}}, + {m68k_op_not_8_al , 0xffff, 0x4639, { 20, 20, 8}}, + {m68k_op_not_16_aw , 0xffff, 0x4678, { 16, 16, 8}}, + {m68k_op_not_16_al , 0xffff, 0x4679, { 20, 20, 8}}, + {m68k_op_not_32_aw , 0xffff, 0x46b8, { 24, 24, 8}}, + {m68k_op_not_32_al , 0xffff, 0x46b9, { 28, 28, 8}}, + {m68k_op_move_16_tos_aw , 0xffff, 0x46f8, { 20, 20, 12}}, + {m68k_op_move_16_tos_al , 0xffff, 0x46f9, { 24, 24, 12}}, + {m68k_op_move_16_tos_pcdi , 0xffff, 0x46fa, { 20, 20, 13}}, + {m68k_op_move_16_tos_pcix , 0xffff, 0x46fb, { 22, 22, 15}}, + {m68k_op_move_16_tos_i , 0xffff, 0x46fc, { 16, 16, 10}}, + {m68k_op_link_32_a7 , 0xffff, 0x480f, { 0, 0, 6}}, + {m68k_op_nbcd_8_pi7 , 0xffff, 0x481f, { 12, 12, 10}}, + {m68k_op_nbcd_8_pd7 , 0xffff, 0x4827, { 14, 14, 11}}, + {m68k_op_nbcd_8_aw , 0xffff, 0x4838, { 16, 16, 10}}, + {m68k_op_nbcd_8_al , 0xffff, 0x4839, { 20, 20, 10}}, + {m68k_op_pea_32_aw , 0xffff, 0x4878, { 16, 16, 9}}, + {m68k_op_pea_32_al , 0xffff, 0x4879, { 20, 20, 9}}, + {m68k_op_pea_32_pcdi , 0xffff, 0x487a, { 16, 16, 10}}, + {m68k_op_pea_32_pcix , 0xffff, 0x487b, { 20, 20, 12}}, + {m68k_op_movem_16_re_aw , 0xffff, 0x48b8, { 16, 16, 8}}, + {m68k_op_movem_16_re_al , 0xffff, 0x48b9, { 20, 20, 8}}, + {m68k_op_movem_32_re_aw , 0xffff, 0x48f8, { 20, 20, 8}}, + {m68k_op_movem_32_re_al , 0xffff, 0x48f9, { 24, 24, 8}}, + {m68k_op_tst_8_pi7 , 0xffff, 0x4a1f, { 8, 8, 6}}, + {m68k_op_tst_8_pd7 , 0xffff, 0x4a27, { 10, 10, 7}}, + {m68k_op_tst_8_aw , 0xffff, 0x4a38, { 12, 12, 6}}, + {m68k_op_tst_8_al , 0xffff, 0x4a39, { 16, 16, 6}}, + {m68k_op_tst_8_pcdi , 0xffff, 0x4a3a, { 0, 0, 7}}, + {m68k_op_tst_8_pcix , 0xffff, 0x4a3b, { 0, 0, 9}}, + {m68k_op_tst_8_i , 0xffff, 0x4a3c, { 0, 0, 6}}, + {m68k_op_tst_16_aw , 0xffff, 0x4a78, { 12, 12, 6}}, + {m68k_op_tst_16_al , 0xffff, 0x4a79, { 16, 16, 6}}, + {m68k_op_tst_16_pcdi , 0xffff, 0x4a7a, { 0, 0, 7}}, + {m68k_op_tst_16_pcix , 0xffff, 0x4a7b, { 0, 0, 9}}, + {m68k_op_tst_16_i , 0xffff, 0x4a7c, { 0, 0, 6}}, + {m68k_op_tst_32_aw , 0xffff, 0x4ab8, { 16, 16, 6}}, + {m68k_op_tst_32_al , 0xffff, 0x4ab9, { 20, 20, 6}}, + {m68k_op_tst_32_pcdi , 0xffff, 0x4aba, { 0, 0, 7}}, + {m68k_op_tst_32_pcix , 0xffff, 0x4abb, { 0, 0, 9}}, + {m68k_op_tst_32_i , 0xffff, 0x4abc, { 0, 0, 6}}, + {m68k_op_tas_8_pi7 , 0xffff, 0x4adf, { 18, 18, 16}}, + {m68k_op_tas_8_pd7 , 0xffff, 0x4ae7, { 20, 20, 17}}, + {m68k_op_tas_8_aw , 0xffff, 0x4af8, { 22, 22, 16}}, + {m68k_op_tas_8_al , 0xffff, 0x4af9, { 26, 26, 16}}, + {m68k_op_illegal , 0xffff, 0x4afc, { 4, 4, 4}}, + {m68k_op_mull_32_aw , 0xffff, 0x4c38, { 0, 0, 47}}, + {m68k_op_mull_32_al , 0xffff, 0x4c39, { 0, 0, 47}}, + {m68k_op_mull_32_pcdi , 0xffff, 0x4c3a, { 0, 0, 48}}, + {m68k_op_mull_32_pcix , 0xffff, 0x4c3b, { 0, 0, 50}}, + {m68k_op_mull_32_i , 0xffff, 0x4c3c, { 0, 0, 47}}, + {m68k_op_divl_32_aw , 0xffff, 0x4c78, { 0, 0, 88}}, + {m68k_op_divl_32_al , 0xffff, 0x4c79, { 0, 0, 88}}, + {m68k_op_divl_32_pcdi , 0xffff, 0x4c7a, { 0, 0, 89}}, + {m68k_op_divl_32_pcix , 0xffff, 0x4c7b, { 0, 0, 91}}, + {m68k_op_divl_32_i , 0xffff, 0x4c7c, { 0, 0, 88}}, + {m68k_op_movem_16_er_aw , 0xffff, 0x4cb8, { 20, 20, 12}}, + {m68k_op_movem_16_er_al , 0xffff, 0x4cb9, { 24, 24, 12}}, + {m68k_op_movem_16_er_pcdi , 0xffff, 0x4cba, { 20, 20, 13}}, + {m68k_op_movem_16_er_pcix , 0xffff, 0x4cbb, { 22, 22, 15}}, + {m68k_op_movem_32_er_aw , 0xffff, 0x4cf8, { 24, 24, 12}}, + {m68k_op_movem_32_er_al , 0xffff, 0x4cf9, { 28, 28, 12}}, + {m68k_op_movem_32_er_pcdi , 0xffff, 0x4cfa, { 24, 24, 13}}, + {m68k_op_movem_32_er_pcix , 0xffff, 0x4cfb, { 26, 26, 15}}, + {m68k_op_link_16_a7 , 0xffff, 0x4e57, { 16, 16, 5}}, + {m68k_op_unlk_32_a7 , 0xffff, 0x4e5f, { 12, 12, 6}}, + {m68k_op_reset , 0xffff, 0x4e70, { 0, 0, 0}}, + {m68k_op_nop , 0xffff, 0x4e71, { 4, 4, 2}}, + {m68k_op_stop , 0xffff, 0x4e72, { 4, 4, 8}}, + {m68k_op_rte_32 , 0xffff, 0x4e73, { 20, 24, 20}}, + {m68k_op_rtd_32 , 0xffff, 0x4e74, { 0, 16, 10}}, + {m68k_op_rts_32 , 0xffff, 0x4e75, { 16, 16, 10}}, + {m68k_op_trapv , 0xffff, 0x4e76, { 4, 4, 4}}, + {m68k_op_rtr_32 , 0xffff, 0x4e77, { 20, 20, 14}}, + {m68k_op_movec_32_cr , 0xffff, 0x4e7a, { 0, 12, 6}}, + {m68k_op_movec_32_rc , 0xffff, 0x4e7b, { 0, 10, 12}}, + {m68k_op_jsr_32_aw , 0xffff, 0x4eb8, { 18, 18, 4}}, + {m68k_op_jsr_32_al , 0xffff, 0x4eb9, { 20, 20, 4}}, + {m68k_op_jsr_32_pcdi , 0xffff, 0x4eba, { 18, 18, 5}}, + {m68k_op_jsr_32_pcix , 0xffff, 0x4ebb, { 22, 22, 7}}, + {m68k_op_jmp_32_aw , 0xffff, 0x4ef8, { 10, 10, 4}}, + {m68k_op_jmp_32_al , 0xffff, 0x4ef9, { 12, 12, 4}}, + {m68k_op_jmp_32_pcdi , 0xffff, 0x4efa, { 10, 10, 5}}, + {m68k_op_jmp_32_pcix , 0xffff, 0x4efb, { 14, 14, 7}}, + {m68k_op_st_8_pi7 , 0xffff, 0x50df, { 12, 12, 10}}, + {m68k_op_st_8_pd7 , 0xffff, 0x50e7, { 14, 14, 11}}, + {m68k_op_st_8_aw , 0xffff, 0x50f8, { 16, 16, 10}}, + {m68k_op_st_8_al , 0xffff, 0x50f9, { 20, 20, 10}}, + {m68k_op_trapt_16 , 0xffff, 0x50fa, { 0, 0, 6}}, + {m68k_op_trapt_32 , 0xffff, 0x50fb, { 0, 0, 8}}, + {m68k_op_trapt , 0xffff, 0x50fc, { 0, 0, 4}}, + {m68k_op_sf_8_pi7 , 0xffff, 0x51df, { 12, 12, 10}}, + {m68k_op_sf_8_pd7 , 0xffff, 0x51e7, { 14, 14, 11}}, + {m68k_op_sf_8_aw , 0xffff, 0x51f8, { 16, 16, 10}}, + {m68k_op_sf_8_al , 0xffff, 0x51f9, { 20, 20, 10}}, + {m68k_op_trapf_16 , 0xffff, 0x51fa, { 0, 0, 6}}, + {m68k_op_trapf_32 , 0xffff, 0x51fb, { 0, 0, 8}}, + {m68k_op_trapf , 0xffff, 0x51fc, { 0, 0, 4}}, + {m68k_op_shi_8_pi7 , 0xffff, 0x52df, { 12, 12, 10}}, + {m68k_op_shi_8_pd7 , 0xffff, 0x52e7, { 14, 14, 11}}, + {m68k_op_shi_8_aw , 0xffff, 0x52f8, { 16, 16, 10}}, + {m68k_op_shi_8_al , 0xffff, 0x52f9, { 20, 20, 10}}, + {m68k_op_traphi_16 , 0xffff, 0x52fa, { 0, 0, 6}}, + {m68k_op_traphi_32 , 0xffff, 0x52fb, { 0, 0, 8}}, + {m68k_op_traphi , 0xffff, 0x52fc, { 0, 0, 4}}, + {m68k_op_sls_8_pi7 , 0xffff, 0x53df, { 12, 12, 10}}, + {m68k_op_sls_8_pd7 , 0xffff, 0x53e7, { 14, 14, 11}}, + {m68k_op_sls_8_aw , 0xffff, 0x53f8, { 16, 16, 10}}, + {m68k_op_sls_8_al , 0xffff, 0x53f9, { 20, 20, 10}}, + {m68k_op_trapls_16 , 0xffff, 0x53fa, { 0, 0, 6}}, + {m68k_op_trapls_32 , 0xffff, 0x53fb, { 0, 0, 8}}, + {m68k_op_trapls , 0xffff, 0x53fc, { 0, 0, 4}}, + {m68k_op_scc_8_pi7 , 0xffff, 0x54df, { 12, 12, 10}}, + {m68k_op_scc_8_pd7 , 0xffff, 0x54e7, { 14, 14, 11}}, + {m68k_op_scc_8_aw , 0xffff, 0x54f8, { 16, 16, 10}}, + {m68k_op_scc_8_al , 0xffff, 0x54f9, { 20, 20, 10}}, + {m68k_op_trapcc_16 , 0xffff, 0x54fa, { 0, 0, 6}}, + {m68k_op_trapcc_32 , 0xffff, 0x54fb, { 0, 0, 8}}, + {m68k_op_trapcc , 0xffff, 0x54fc, { 0, 0, 4}}, + {m68k_op_scs_8_pi7 , 0xffff, 0x55df, { 12, 12, 10}}, + {m68k_op_scs_8_pd7 , 0xffff, 0x55e7, { 14, 14, 11}}, + {m68k_op_scs_8_aw , 0xffff, 0x55f8, { 16, 16, 10}}, + {m68k_op_scs_8_al , 0xffff, 0x55f9, { 20, 20, 10}}, + {m68k_op_trapcs_16 , 0xffff, 0x55fa, { 0, 0, 6}}, + {m68k_op_trapcs_32 , 0xffff, 0x55fb, { 0, 0, 8}}, + {m68k_op_trapcs , 0xffff, 0x55fc, { 0, 0, 4}}, + {m68k_op_sne_8_pi7 , 0xffff, 0x56df, { 12, 12, 10}}, + {m68k_op_sne_8_pd7 , 0xffff, 0x56e7, { 14, 14, 11}}, + {m68k_op_sne_8_aw , 0xffff, 0x56f8, { 16, 16, 10}}, + {m68k_op_sne_8_al , 0xffff, 0x56f9, { 20, 20, 10}}, + {m68k_op_trapne_16 , 0xffff, 0x56fa, { 0, 0, 6}}, + {m68k_op_trapne_32 , 0xffff, 0x56fb, { 0, 0, 8}}, + {m68k_op_trapne , 0xffff, 0x56fc, { 0, 0, 4}}, + {m68k_op_seq_8_pi7 , 0xffff, 0x57df, { 12, 12, 10}}, + {m68k_op_seq_8_pd7 , 0xffff, 0x57e7, { 14, 14, 11}}, + {m68k_op_seq_8_aw , 0xffff, 0x57f8, { 16, 16, 10}}, + {m68k_op_seq_8_al , 0xffff, 0x57f9, { 20, 20, 10}}, + {m68k_op_trapeq_16 , 0xffff, 0x57fa, { 0, 0, 6}}, + {m68k_op_trapeq_32 , 0xffff, 0x57fb, { 0, 0, 8}}, + {m68k_op_trapeq , 0xffff, 0x57fc, { 0, 0, 4}}, + {m68k_op_svc_8_pi7 , 0xffff, 0x58df, { 12, 12, 10}}, + {m68k_op_svc_8_pd7 , 0xffff, 0x58e7, { 14, 14, 11}}, + {m68k_op_svc_8_aw , 0xffff, 0x58f8, { 16, 16, 10}}, + {m68k_op_svc_8_al , 0xffff, 0x58f9, { 20, 20, 10}}, + {m68k_op_trapvc_16 , 0xffff, 0x58fa, { 0, 0, 6}}, + {m68k_op_trapvc_32 , 0xffff, 0x58fb, { 0, 0, 8}}, + {m68k_op_trapvc , 0xffff, 0x58fc, { 0, 0, 4}}, + {m68k_op_svs_8_pi7 , 0xffff, 0x59df, { 12, 12, 10}}, + {m68k_op_svs_8_pd7 , 0xffff, 0x59e7, { 14, 14, 11}}, + {m68k_op_svs_8_aw , 0xffff, 0x59f8, { 16, 16, 10}}, + {m68k_op_svs_8_al , 0xffff, 0x59f9, { 20, 20, 10}}, + {m68k_op_trapvs_16 , 0xffff, 0x59fa, { 0, 0, 6}}, + {m68k_op_trapvs_32 , 0xffff, 0x59fb, { 0, 0, 8}}, + {m68k_op_trapvs , 0xffff, 0x59fc, { 0, 0, 4}}, + {m68k_op_spl_8_pi7 , 0xffff, 0x5adf, { 12, 12, 10}}, + {m68k_op_spl_8_pd7 , 0xffff, 0x5ae7, { 14, 14, 11}}, + {m68k_op_spl_8_aw , 0xffff, 0x5af8, { 16, 16, 10}}, + {m68k_op_spl_8_al , 0xffff, 0x5af9, { 20, 20, 10}}, + {m68k_op_trappl_16 , 0xffff, 0x5afa, { 0, 0, 6}}, + {m68k_op_trappl_32 , 0xffff, 0x5afb, { 0, 0, 8}}, + {m68k_op_trappl , 0xffff, 0x5afc, { 0, 0, 4}}, + {m68k_op_smi_8_pi7 , 0xffff, 0x5bdf, { 12, 12, 10}}, + {m68k_op_smi_8_pd7 , 0xffff, 0x5be7, { 14, 14, 11}}, + {m68k_op_smi_8_aw , 0xffff, 0x5bf8, { 16, 16, 10}}, + {m68k_op_smi_8_al , 0xffff, 0x5bf9, { 20, 20, 10}}, + {m68k_op_trapmi_16 , 0xffff, 0x5bfa, { 0, 0, 6}}, + {m68k_op_trapmi_32 , 0xffff, 0x5bfb, { 0, 0, 8}}, + {m68k_op_trapmi , 0xffff, 0x5bfc, { 0, 0, 4}}, + {m68k_op_sge_8_pi7 , 0xffff, 0x5cdf, { 12, 12, 10}}, + {m68k_op_sge_8_pd7 , 0xffff, 0x5ce7, { 14, 14, 11}}, + {m68k_op_sge_8_aw , 0xffff, 0x5cf8, { 16, 16, 10}}, + {m68k_op_sge_8_al , 0xffff, 0x5cf9, { 20, 20, 10}}, + {m68k_op_trapge_16 , 0xffff, 0x5cfa, { 0, 0, 6}}, + {m68k_op_trapge_32 , 0xffff, 0x5cfb, { 0, 0, 8}}, + {m68k_op_trapge , 0xffff, 0x5cfc, { 0, 0, 4}}, + {m68k_op_slt_8_pi7 , 0xffff, 0x5ddf, { 12, 12, 10}}, + {m68k_op_slt_8_pd7 , 0xffff, 0x5de7, { 14, 14, 11}}, + {m68k_op_slt_8_aw , 0xffff, 0x5df8, { 16, 16, 10}}, + {m68k_op_slt_8_al , 0xffff, 0x5df9, { 20, 20, 10}}, + {m68k_op_traplt_16 , 0xffff, 0x5dfa, { 0, 0, 6}}, + {m68k_op_traplt_32 , 0xffff, 0x5dfb, { 0, 0, 8}}, + {m68k_op_traplt , 0xffff, 0x5dfc, { 0, 0, 4}}, + {m68k_op_sgt_8_pi7 , 0xffff, 0x5edf, { 12, 12, 10}}, + {m68k_op_sgt_8_pd7 , 0xffff, 0x5ee7, { 14, 14, 11}}, + {m68k_op_sgt_8_aw , 0xffff, 0x5ef8, { 16, 16, 10}}, + {m68k_op_sgt_8_al , 0xffff, 0x5ef9, { 20, 20, 10}}, + {m68k_op_trapgt_16 , 0xffff, 0x5efa, { 0, 0, 6}}, + {m68k_op_trapgt_32 , 0xffff, 0x5efb, { 0, 0, 8}}, + {m68k_op_trapgt , 0xffff, 0x5efc, { 0, 0, 4}}, + {m68k_op_sle_8_pi7 , 0xffff, 0x5fdf, { 12, 12, 10}}, + {m68k_op_sle_8_pd7 , 0xffff, 0x5fe7, { 14, 14, 11}}, + {m68k_op_sle_8_aw , 0xffff, 0x5ff8, { 16, 16, 10}}, + {m68k_op_sle_8_al , 0xffff, 0x5ff9, { 20, 20, 10}}, + {m68k_op_traple_16 , 0xffff, 0x5ffa, { 0, 0, 6}}, + {m68k_op_traple_32 , 0xffff, 0x5ffb, { 0, 0, 8}}, + {m68k_op_traple , 0xffff, 0x5ffc, { 0, 0, 4}}, + {m68k_op_bra_16 , 0xffff, 0x6000, { 10, 10, 10}}, + {m68k_op_bra_32 , 0xffff, 0x60ff, { 0, 0, 10}}, + {m68k_op_bsr_16 , 0xffff, 0x6100, { 18, 18, 7}}, + {m68k_op_bsr_32 , 0xffff, 0x61ff, { 0, 0, 7}}, + {m68k_op_bhi_16 , 0xffff, 0x6200, { 10, 10, 6}}, + {m68k_op_bhi_32 , 0xffff, 0x62ff, { 0, 0, 6}}, + {m68k_op_bls_16 , 0xffff, 0x6300, { 10, 10, 6}}, + {m68k_op_bls_32 , 0xffff, 0x63ff, { 0, 0, 6}}, + {m68k_op_bcc_16 , 0xffff, 0x6400, { 10, 10, 6}}, + {m68k_op_bcc_32 , 0xffff, 0x64ff, { 0, 0, 6}}, + {m68k_op_bcs_16 , 0xffff, 0x6500, { 10, 10, 6}}, + {m68k_op_bcs_32 , 0xffff, 0x65ff, { 0, 0, 6}}, + {m68k_op_bne_16 , 0xffff, 0x6600, { 10, 10, 6}}, + {m68k_op_bne_32 , 0xffff, 0x66ff, { 0, 0, 6}}, + {m68k_op_beq_16 , 0xffff, 0x6700, { 10, 10, 6}}, + {m68k_op_beq_32 , 0xffff, 0x67ff, { 0, 0, 6}}, + {m68k_op_bvc_16 , 0xffff, 0x6800, { 10, 10, 6}}, + {m68k_op_bvc_32 , 0xffff, 0x68ff, { 0, 0, 6}}, + {m68k_op_bvs_16 , 0xffff, 0x6900, { 10, 10, 6}}, + {m68k_op_bvs_32 , 0xffff, 0x69ff, { 0, 0, 6}}, + {m68k_op_bpl_16 , 0xffff, 0x6a00, { 10, 10, 6}}, + {m68k_op_bpl_32 , 0xffff, 0x6aff, { 0, 0, 6}}, + {m68k_op_bmi_16 , 0xffff, 0x6b00, { 10, 10, 6}}, + {m68k_op_bmi_32 , 0xffff, 0x6bff, { 0, 0, 6}}, + {m68k_op_bge_16 , 0xffff, 0x6c00, { 10, 10, 6}}, + {m68k_op_bge_32 , 0xffff, 0x6cff, { 0, 0, 6}}, + {m68k_op_blt_16 , 0xffff, 0x6d00, { 10, 10, 6}}, + {m68k_op_blt_32 , 0xffff, 0x6dff, { 0, 0, 6}}, + {m68k_op_bgt_16 , 0xffff, 0x6e00, { 10, 10, 6}}, + {m68k_op_bgt_32 , 0xffff, 0x6eff, { 0, 0, 6}}, + {m68k_op_ble_16 , 0xffff, 0x6f00, { 10, 10, 6}}, + {m68k_op_ble_32 , 0xffff, 0x6fff, { 0, 0, 6}}, + {m68k_op_sbcd_8_mm_axy7 , 0xffff, 0x8f0f, { 18, 18, 16}}, + {m68k_op_pack_16_mm_axy7 , 0xffff, 0x8f4f, { 0, 0, 13}}, + {m68k_op_unpk_16_mm_axy7 , 0xffff, 0x8f8f, { 0, 0, 13}}, + {m68k_op_subx_8_mm_axy7 , 0xffff, 0x9f0f, { 18, 18, 12}}, + {m68k_op_cmpm_8_axy7 , 0xffff, 0xbf0f, { 12, 12, 9}}, + {m68k_op_abcd_8_mm_axy7 , 0xffff, 0xcf0f, { 18, 18, 16}}, + {m68k_op_addx_8_mm_axy7 , 0xffff, 0xdf0f, { 18, 18, 12}}, + {m68k_op_asr_16_aw , 0xffff, 0xe0f8, { 16, 16, 9}}, + {m68k_op_asr_16_al , 0xffff, 0xe0f9, { 20, 20, 9}}, + {m68k_op_asl_16_aw , 0xffff, 0xe1f8, { 16, 16, 10}}, + {m68k_op_asl_16_al , 0xffff, 0xe1f9, { 20, 20, 10}}, + {m68k_op_lsr_16_aw , 0xffff, 0xe2f8, { 16, 16, 9}}, + {m68k_op_lsr_16_al , 0xffff, 0xe2f9, { 20, 20, 9}}, + {m68k_op_lsl_16_aw , 0xffff, 0xe3f8, { 16, 16, 9}}, + {m68k_op_lsl_16_al , 0xffff, 0xe3f9, { 20, 20, 9}}, + {m68k_op_roxr_16_aw , 0xffff, 0xe4f8, { 16, 16, 9}}, + {m68k_op_roxr_16_al , 0xffff, 0xe4f9, { 20, 20, 9}}, + {m68k_op_roxl_16_aw , 0xffff, 0xe5f8, { 16, 16, 9}}, + {m68k_op_roxl_16_al , 0xffff, 0xe5f9, { 20, 20, 9}}, + {m68k_op_ror_16_aw , 0xffff, 0xe6f8, { 16, 16, 11}}, + {m68k_op_ror_16_al , 0xffff, 0xe6f9, { 20, 20, 11}}, + {m68k_op_rol_16_aw , 0xffff, 0xe7f8, { 16, 16, 11}}, + {m68k_op_rol_16_al , 0xffff, 0xe7f9, { 20, 20, 11}}, + {m68k_op_bftst_32_aw , 0xffff, 0xe8f8, { 0, 0, 17}}, + {m68k_op_bftst_32_al , 0xffff, 0xe8f9, { 0, 0, 17}}, + {m68k_op_bftst_32_pcdi , 0xffff, 0xe8fa, { 0, 0, 18}}, + {m68k_op_bftst_32_pcix , 0xffff, 0xe8fb, { 0, 0, 20}}, + {m68k_op_bfextu_32_aw , 0xffff, 0xe9f8, { 0, 0, 19}}, + {m68k_op_bfextu_32_al , 0xffff, 0xe9f9, { 0, 0, 19}}, + {m68k_op_bfextu_32_pcdi , 0xffff, 0xe9fa, { 0, 0, 20}}, + {m68k_op_bfextu_32_pcix , 0xffff, 0xe9fb, { 0, 0, 22}}, + {m68k_op_bfchg_32_aw , 0xffff, 0xeaf8, { 0, 0, 24}}, + {m68k_op_bfchg_32_al , 0xffff, 0xeaf9, { 0, 0, 24}}, + {m68k_op_bfexts_32_aw , 0xffff, 0xebf8, { 0, 0, 19}}, + {m68k_op_bfexts_32_al , 0xffff, 0xebf9, { 0, 0, 19}}, + {m68k_op_bfexts_32_pcdi , 0xffff, 0xebfa, { 0, 0, 20}}, + {m68k_op_bfexts_32_pcix , 0xffff, 0xebfb, { 0, 0, 22}}, + {m68k_op_bfclr_32_aw , 0xffff, 0xecf8, { 0, 0, 24}}, + {m68k_op_bfclr_32_al , 0xffff, 0xecf9, { 0, 0, 24}}, + {m68k_op_bfffo_32_aw , 0xffff, 0xedf8, { 0, 0, 32}}, + {m68k_op_bfffo_32_al , 0xffff, 0xedf9, { 0, 0, 32}}, + {m68k_op_bfffo_32_pcdi , 0xffff, 0xedfa, { 0, 0, 33}}, + {m68k_op_bfffo_32_pcix , 0xffff, 0xedfb, { 0, 0, 35}}, + {m68k_op_bfset_32_aw , 0xffff, 0xeef8, { 0, 0, 24}}, + {m68k_op_bfset_32_al , 0xffff, 0xeef9, { 0, 0, 24}}, + {m68k_op_bfins_32_aw , 0xffff, 0xeff8, { 0, 0, 21}}, + {m68k_op_bfins_32_al , 0xffff, 0xeff9, { 0, 0, 21}}, + {0, 0, 0, {0, 0, 0}} +}; + + +/* Build the opcode handler jump table */ +void m68ki_build_opcode_table(void) +{ + opcode_handler_struct *ostruct; + int instr; + int i; + int j; + int k; + + for(i = 0; i < 0x10000; i++) + { + /* default to illegal */ + m68ki_instruction_jump_table[i] = m68k_op_illegal; + for(k=0;kmask != 0xff00) + { + for(i = 0;i < 0x10000;i++) + { + if((i & ostruct->mask) == ostruct->match) + { + m68ki_instruction_jump_table[i] = ostruct->opcode_handler; + for(k=0;kcycles[k]; + } + } + ostruct++; + } + while(ostruct->mask == 0xff00) + { + for(i = 0;i <= 0xff;i++) + { + m68ki_instruction_jump_table[ostruct->match | i] = ostruct->opcode_handler; + for(k=0;kmatch | i] = ostruct->cycles[k]; + } + ostruct++; + } + while(ostruct->mask == 0xf1f8) + { + for(i = 0;i < 8;i++) + { + for(j = 0;j < 8;j++) + { + instr = ostruct->match | (i << 9) | j; + m68ki_instruction_jump_table[instr] = ostruct->opcode_handler; + for(k=0;kcycles[k]; + if((instr & 0xf000) == 0xe000 && (!(instr & 0x20))) + m68ki_cycles[0][instr] = m68ki_cycles[1][instr] = ostruct->cycles[k] + ((((j-1)&7)+1)<<1); + } + } + ostruct++; + } + while(ostruct->mask == 0xfff0) + { + for(i = 0;i <= 0x0f;i++) + { + m68ki_instruction_jump_table[ostruct->match | i] = ostruct->opcode_handler; + for(k=0;kmatch | i] = ostruct->cycles[k]; + } + ostruct++; + } + while(ostruct->mask == 0xf1ff) + { + for(i = 0;i <= 0x07;i++) + { + m68ki_instruction_jump_table[ostruct->match | (i << 9)] = ostruct->opcode_handler; + for(k=0;kmatch | (i << 9)] = ostruct->cycles[k]; + } + ostruct++; + } + while(ostruct->mask == 0xfff8) + { + for(i = 0;i <= 0x07;i++) + { + m68ki_instruction_jump_table[ostruct->match | i] = ostruct->opcode_handler; + for(k=0;kmatch | i] = ostruct->cycles[k]; + } + ostruct++; + } + while(ostruct->mask == 0xffff) + { + m68ki_instruction_jump_table[ostruct->match] = ostruct->opcode_handler; + for(k=0;kmatch] = ostruct->cycles[k]; + ostruct++; + } +} + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + + diff --git a/AltairZ80/m68kops.h b/AltairZ80/m68kops.h new file mode 100644 index 00000000..1f7b3abf --- /dev/null +++ b/AltairZ80/m68kops.h @@ -0,0 +1,1984 @@ +#ifndef M68KOPS__HEADER +#define M68KOPS__HEADER + +/* ======================================================================== */ +/* ============================ OPCODE HANDLERS =========================== */ +/* ======================================================================== */ + + +void m68k_op_1010(void); +void m68k_op_1111(void); +void m68k_op_abcd_8_rr(void); +void m68k_op_abcd_8_mm_ax7(void); +void m68k_op_abcd_8_mm_ay7(void); +void m68k_op_abcd_8_mm_axy7(void); +void m68k_op_abcd_8_mm(void); +void m68k_op_add_8_er_d(void); +void m68k_op_add_8_er_ai(void); +void m68k_op_add_8_er_pi(void); +void m68k_op_add_8_er_pi7(void); +void m68k_op_add_8_er_pd(void); +void m68k_op_add_8_er_pd7(void); +void m68k_op_add_8_er_di(void); +void m68k_op_add_8_er_ix(void); +void m68k_op_add_8_er_aw(void); +void m68k_op_add_8_er_al(void); +void m68k_op_add_8_er_pcdi(void); +void m68k_op_add_8_er_pcix(void); +void m68k_op_add_8_er_i(void); +void m68k_op_add_16_er_d(void); +void m68k_op_add_16_er_a(void); +void m68k_op_add_16_er_ai(void); +void m68k_op_add_16_er_pi(void); +void m68k_op_add_16_er_pd(void); +void m68k_op_add_16_er_di(void); +void m68k_op_add_16_er_ix(void); +void m68k_op_add_16_er_aw(void); +void m68k_op_add_16_er_al(void); +void m68k_op_add_16_er_pcdi(void); +void m68k_op_add_16_er_pcix(void); +void m68k_op_add_16_er_i(void); +void m68k_op_add_32_er_d(void); +void m68k_op_add_32_er_a(void); +void m68k_op_add_32_er_ai(void); +void m68k_op_add_32_er_pi(void); +void m68k_op_add_32_er_pd(void); +void m68k_op_add_32_er_di(void); +void m68k_op_add_32_er_ix(void); +void m68k_op_add_32_er_aw(void); +void m68k_op_add_32_er_al(void); +void m68k_op_add_32_er_pcdi(void); +void m68k_op_add_32_er_pcix(void); +void m68k_op_add_32_er_i(void); +void m68k_op_add_8_re_ai(void); +void m68k_op_add_8_re_pi(void); +void m68k_op_add_8_re_pi7(void); +void m68k_op_add_8_re_pd(void); +void m68k_op_add_8_re_pd7(void); +void m68k_op_add_8_re_di(void); +void m68k_op_add_8_re_ix(void); +void m68k_op_add_8_re_aw(void); +void m68k_op_add_8_re_al(void); +void m68k_op_add_16_re_ai(void); +void m68k_op_add_16_re_pi(void); +void m68k_op_add_16_re_pd(void); +void m68k_op_add_16_re_di(void); +void m68k_op_add_16_re_ix(void); +void m68k_op_add_16_re_aw(void); +void m68k_op_add_16_re_al(void); +void m68k_op_add_32_re_ai(void); +void m68k_op_add_32_re_pi(void); +void m68k_op_add_32_re_pd(void); +void m68k_op_add_32_re_di(void); +void m68k_op_add_32_re_ix(void); +void m68k_op_add_32_re_aw(void); +void m68k_op_add_32_re_al(void); +void m68k_op_adda_16_d(void); +void m68k_op_adda_16_a(void); +void m68k_op_adda_16_ai(void); +void m68k_op_adda_16_pi(void); +void m68k_op_adda_16_pd(void); +void m68k_op_adda_16_di(void); +void m68k_op_adda_16_ix(void); +void m68k_op_adda_16_aw(void); +void m68k_op_adda_16_al(void); +void m68k_op_adda_16_pcdi(void); +void m68k_op_adda_16_pcix(void); +void m68k_op_adda_16_i(void); +void m68k_op_adda_32_d(void); +void m68k_op_adda_32_a(void); +void m68k_op_adda_32_ai(void); +void m68k_op_adda_32_pi(void); +void m68k_op_adda_32_pd(void); +void m68k_op_adda_32_di(void); +void m68k_op_adda_32_ix(void); +void m68k_op_adda_32_aw(void); +void m68k_op_adda_32_al(void); +void m68k_op_adda_32_pcdi(void); +void m68k_op_adda_32_pcix(void); +void m68k_op_adda_32_i(void); +void m68k_op_addi_8_d(void); +void m68k_op_addi_8_ai(void); +void m68k_op_addi_8_pi(void); +void m68k_op_addi_8_pi7(void); +void m68k_op_addi_8_pd(void); +void m68k_op_addi_8_pd7(void); +void m68k_op_addi_8_di(void); +void m68k_op_addi_8_ix(void); +void m68k_op_addi_8_aw(void); +void m68k_op_addi_8_al(void); +void m68k_op_addi_16_d(void); +void m68k_op_addi_16_ai(void); +void m68k_op_addi_16_pi(void); +void m68k_op_addi_16_pd(void); +void m68k_op_addi_16_di(void); +void m68k_op_addi_16_ix(void); +void m68k_op_addi_16_aw(void); +void m68k_op_addi_16_al(void); +void m68k_op_addi_32_d(void); +void m68k_op_addi_32_ai(void); +void m68k_op_addi_32_pi(void); +void m68k_op_addi_32_pd(void); +void m68k_op_addi_32_di(void); +void m68k_op_addi_32_ix(void); +void m68k_op_addi_32_aw(void); +void m68k_op_addi_32_al(void); +void m68k_op_addq_8_d(void); +void m68k_op_addq_8_ai(void); +void m68k_op_addq_8_pi(void); +void m68k_op_addq_8_pi7(void); +void m68k_op_addq_8_pd(void); +void m68k_op_addq_8_pd7(void); +void m68k_op_addq_8_di(void); +void m68k_op_addq_8_ix(void); +void m68k_op_addq_8_aw(void); +void m68k_op_addq_8_al(void); +void m68k_op_addq_16_d(void); +void m68k_op_addq_16_a(void); +void m68k_op_addq_16_ai(void); +void m68k_op_addq_16_pi(void); +void m68k_op_addq_16_pd(void); +void m68k_op_addq_16_di(void); +void m68k_op_addq_16_ix(void); +void m68k_op_addq_16_aw(void); +void m68k_op_addq_16_al(void); +void m68k_op_addq_32_d(void); +void m68k_op_addq_32_a(void); +void m68k_op_addq_32_ai(void); +void m68k_op_addq_32_pi(void); +void m68k_op_addq_32_pd(void); +void m68k_op_addq_32_di(void); +void m68k_op_addq_32_ix(void); +void m68k_op_addq_32_aw(void); +void m68k_op_addq_32_al(void); +void m68k_op_addx_8_rr(void); +void m68k_op_addx_16_rr(void); +void m68k_op_addx_32_rr(void); +void m68k_op_addx_8_mm_ax7(void); +void m68k_op_addx_8_mm_ay7(void); +void m68k_op_addx_8_mm_axy7(void); +void m68k_op_addx_8_mm(void); +void m68k_op_addx_16_mm(void); +void m68k_op_addx_32_mm(void); +void m68k_op_and_8_er_d(void); +void m68k_op_and_8_er_ai(void); +void m68k_op_and_8_er_pi(void); +void m68k_op_and_8_er_pi7(void); +void m68k_op_and_8_er_pd(void); +void m68k_op_and_8_er_pd7(void); +void m68k_op_and_8_er_di(void); +void m68k_op_and_8_er_ix(void); +void m68k_op_and_8_er_aw(void); +void m68k_op_and_8_er_al(void); +void m68k_op_and_8_er_pcdi(void); +void m68k_op_and_8_er_pcix(void); +void m68k_op_and_8_er_i(void); +void m68k_op_and_16_er_d(void); +void m68k_op_and_16_er_ai(void); +void m68k_op_and_16_er_pi(void); +void m68k_op_and_16_er_pd(void); +void m68k_op_and_16_er_di(void); +void m68k_op_and_16_er_ix(void); +void m68k_op_and_16_er_aw(void); +void m68k_op_and_16_er_al(void); +void m68k_op_and_16_er_pcdi(void); +void m68k_op_and_16_er_pcix(void); +void m68k_op_and_16_er_i(void); +void m68k_op_and_32_er_d(void); +void m68k_op_and_32_er_ai(void); +void m68k_op_and_32_er_pi(void); +void m68k_op_and_32_er_pd(void); +void m68k_op_and_32_er_di(void); +void m68k_op_and_32_er_ix(void); +void m68k_op_and_32_er_aw(void); +void m68k_op_and_32_er_al(void); +void m68k_op_and_32_er_pcdi(void); +void m68k_op_and_32_er_pcix(void); +void m68k_op_and_32_er_i(void); +void m68k_op_and_8_re_ai(void); +void m68k_op_and_8_re_pi(void); +void m68k_op_and_8_re_pi7(void); +void m68k_op_and_8_re_pd(void); +void m68k_op_and_8_re_pd7(void); +void m68k_op_and_8_re_di(void); +void m68k_op_and_8_re_ix(void); +void m68k_op_and_8_re_aw(void); +void m68k_op_and_8_re_al(void); +void m68k_op_and_16_re_ai(void); +void m68k_op_and_16_re_pi(void); +void m68k_op_and_16_re_pd(void); +void m68k_op_and_16_re_di(void); +void m68k_op_and_16_re_ix(void); +void m68k_op_and_16_re_aw(void); +void m68k_op_and_16_re_al(void); +void m68k_op_and_32_re_ai(void); +void m68k_op_and_32_re_pi(void); +void m68k_op_and_32_re_pd(void); +void m68k_op_and_32_re_di(void); +void m68k_op_and_32_re_ix(void); +void m68k_op_and_32_re_aw(void); +void m68k_op_and_32_re_al(void); +void m68k_op_andi_8_d(void); +void m68k_op_andi_8_ai(void); +void m68k_op_andi_8_pi(void); +void m68k_op_andi_8_pi7(void); +void m68k_op_andi_8_pd(void); +void m68k_op_andi_8_pd7(void); +void m68k_op_andi_8_di(void); +void m68k_op_andi_8_ix(void); +void m68k_op_andi_8_aw(void); +void m68k_op_andi_8_al(void); +void m68k_op_andi_16_d(void); +void m68k_op_andi_16_ai(void); +void m68k_op_andi_16_pi(void); +void m68k_op_andi_16_pd(void); +void m68k_op_andi_16_di(void); +void m68k_op_andi_16_ix(void); +void m68k_op_andi_16_aw(void); +void m68k_op_andi_16_al(void); +void m68k_op_andi_32_d(void); +void m68k_op_andi_32_ai(void); +void m68k_op_andi_32_pi(void); +void m68k_op_andi_32_pd(void); +void m68k_op_andi_32_di(void); +void m68k_op_andi_32_ix(void); +void m68k_op_andi_32_aw(void); +void m68k_op_andi_32_al(void); +void m68k_op_andi_16_toc(void); +void m68k_op_andi_16_tos(void); +void m68k_op_asr_8_s(void); +void m68k_op_asr_16_s(void); +void m68k_op_asr_32_s(void); +void m68k_op_asr_8_r(void); +void m68k_op_asr_16_r(void); +void m68k_op_asr_32_r(void); +void m68k_op_asr_16_ai(void); +void m68k_op_asr_16_pi(void); +void m68k_op_asr_16_pd(void); +void m68k_op_asr_16_di(void); +void m68k_op_asr_16_ix(void); +void m68k_op_asr_16_aw(void); +void m68k_op_asr_16_al(void); +void m68k_op_asl_8_s(void); +void m68k_op_asl_16_s(void); +void m68k_op_asl_32_s(void); +void m68k_op_asl_8_r(void); +void m68k_op_asl_16_r(void); +void m68k_op_asl_32_r(void); +void m68k_op_asl_16_ai(void); +void m68k_op_asl_16_pi(void); +void m68k_op_asl_16_pd(void); +void m68k_op_asl_16_di(void); +void m68k_op_asl_16_ix(void); +void m68k_op_asl_16_aw(void); +void m68k_op_asl_16_al(void); +void m68k_op_bhi_8(void); +void m68k_op_bls_8(void); +void m68k_op_bcc_8(void); +void m68k_op_bcs_8(void); +void m68k_op_bne_8(void); +void m68k_op_beq_8(void); +void m68k_op_bvc_8(void); +void m68k_op_bvs_8(void); +void m68k_op_bpl_8(void); +void m68k_op_bmi_8(void); +void m68k_op_bge_8(void); +void m68k_op_blt_8(void); +void m68k_op_bgt_8(void); +void m68k_op_ble_8(void); +void m68k_op_bhi_16(void); +void m68k_op_bls_16(void); +void m68k_op_bcc_16(void); +void m68k_op_bcs_16(void); +void m68k_op_bne_16(void); +void m68k_op_beq_16(void); +void m68k_op_bvc_16(void); +void m68k_op_bvs_16(void); +void m68k_op_bpl_16(void); +void m68k_op_bmi_16(void); +void m68k_op_bge_16(void); +void m68k_op_blt_16(void); +void m68k_op_bgt_16(void); +void m68k_op_ble_16(void); +void m68k_op_bhi_32(void); +void m68k_op_bls_32(void); +void m68k_op_bcc_32(void); +void m68k_op_bcs_32(void); +void m68k_op_bne_32(void); +void m68k_op_beq_32(void); +void m68k_op_bvc_32(void); +void m68k_op_bvs_32(void); +void m68k_op_bpl_32(void); +void m68k_op_bmi_32(void); +void m68k_op_bge_32(void); +void m68k_op_blt_32(void); +void m68k_op_bgt_32(void); +void m68k_op_ble_32(void); +void m68k_op_bchg_32_r_d(void); +void m68k_op_bchg_8_r_ai(void); +void m68k_op_bchg_8_r_pi(void); +void m68k_op_bchg_8_r_pi7(void); +void m68k_op_bchg_8_r_pd(void); +void m68k_op_bchg_8_r_pd7(void); +void m68k_op_bchg_8_r_di(void); +void m68k_op_bchg_8_r_ix(void); +void m68k_op_bchg_8_r_aw(void); +void m68k_op_bchg_8_r_al(void); +void m68k_op_bchg_32_s_d(void); +void m68k_op_bchg_8_s_ai(void); +void m68k_op_bchg_8_s_pi(void); +void m68k_op_bchg_8_s_pi7(void); +void m68k_op_bchg_8_s_pd(void); +void m68k_op_bchg_8_s_pd7(void); +void m68k_op_bchg_8_s_di(void); +void m68k_op_bchg_8_s_ix(void); +void m68k_op_bchg_8_s_aw(void); +void m68k_op_bchg_8_s_al(void); +void m68k_op_bclr_32_r_d(void); +void m68k_op_bclr_8_r_ai(void); +void m68k_op_bclr_8_r_pi(void); +void m68k_op_bclr_8_r_pi7(void); +void m68k_op_bclr_8_r_pd(void); +void m68k_op_bclr_8_r_pd7(void); +void m68k_op_bclr_8_r_di(void); +void m68k_op_bclr_8_r_ix(void); +void m68k_op_bclr_8_r_aw(void); +void m68k_op_bclr_8_r_al(void); +void m68k_op_bclr_32_s_d(void); +void m68k_op_bclr_8_s_ai(void); +void m68k_op_bclr_8_s_pi(void); +void m68k_op_bclr_8_s_pi7(void); +void m68k_op_bclr_8_s_pd(void); +void m68k_op_bclr_8_s_pd7(void); +void m68k_op_bclr_8_s_di(void); +void m68k_op_bclr_8_s_ix(void); +void m68k_op_bclr_8_s_aw(void); +void m68k_op_bclr_8_s_al(void); +void m68k_op_bfchg_32_d(void); +void m68k_op_bfchg_32_ai(void); +void m68k_op_bfchg_32_di(void); +void m68k_op_bfchg_32_ix(void); +void m68k_op_bfchg_32_aw(void); +void m68k_op_bfchg_32_al(void); +void m68k_op_bfclr_32_d(void); +void m68k_op_bfclr_32_ai(void); +void m68k_op_bfclr_32_di(void); +void m68k_op_bfclr_32_ix(void); +void m68k_op_bfclr_32_aw(void); +void m68k_op_bfclr_32_al(void); +void m68k_op_bfexts_32_d(void); +void m68k_op_bfexts_32_ai(void); +void m68k_op_bfexts_32_di(void); +void m68k_op_bfexts_32_ix(void); +void m68k_op_bfexts_32_aw(void); +void m68k_op_bfexts_32_al(void); +void m68k_op_bfexts_32_pcdi(void); +void m68k_op_bfexts_32_pcix(void); +void m68k_op_bfextu_32_d(void); +void m68k_op_bfextu_32_ai(void); +void m68k_op_bfextu_32_di(void); +void m68k_op_bfextu_32_ix(void); +void m68k_op_bfextu_32_aw(void); +void m68k_op_bfextu_32_al(void); +void m68k_op_bfextu_32_pcdi(void); +void m68k_op_bfextu_32_pcix(void); +void m68k_op_bfffo_32_d(void); +void m68k_op_bfffo_32_ai(void); +void m68k_op_bfffo_32_di(void); +void m68k_op_bfffo_32_ix(void); +void m68k_op_bfffo_32_aw(void); +void m68k_op_bfffo_32_al(void); +void m68k_op_bfffo_32_pcdi(void); +void m68k_op_bfffo_32_pcix(void); +void m68k_op_bfins_32_d(void); +void m68k_op_bfins_32_ai(void); +void m68k_op_bfins_32_di(void); +void m68k_op_bfins_32_ix(void); +void m68k_op_bfins_32_aw(void); +void m68k_op_bfins_32_al(void); +void m68k_op_bfset_32_d(void); +void m68k_op_bfset_32_ai(void); +void m68k_op_bfset_32_di(void); +void m68k_op_bfset_32_ix(void); +void m68k_op_bfset_32_aw(void); +void m68k_op_bfset_32_al(void); +void m68k_op_bftst_32_d(void); +void m68k_op_bftst_32_ai(void); +void m68k_op_bftst_32_di(void); +void m68k_op_bftst_32_ix(void); +void m68k_op_bftst_32_aw(void); +void m68k_op_bftst_32_al(void); +void m68k_op_bftst_32_pcdi(void); +void m68k_op_bftst_32_pcix(void); +void m68k_op_bkpt(void); +void m68k_op_bra_8(void); +void m68k_op_bra_16(void); +void m68k_op_bra_32(void); +void m68k_op_bset_32_r_d(void); +void m68k_op_bset_8_r_ai(void); +void m68k_op_bset_8_r_pi(void); +void m68k_op_bset_8_r_pi7(void); +void m68k_op_bset_8_r_pd(void); +void m68k_op_bset_8_r_pd7(void); +void m68k_op_bset_8_r_di(void); +void m68k_op_bset_8_r_ix(void); +void m68k_op_bset_8_r_aw(void); +void m68k_op_bset_8_r_al(void); +void m68k_op_bset_32_s_d(void); +void m68k_op_bset_8_s_ai(void); +void m68k_op_bset_8_s_pi(void); +void m68k_op_bset_8_s_pi7(void); +void m68k_op_bset_8_s_pd(void); +void m68k_op_bset_8_s_pd7(void); +void m68k_op_bset_8_s_di(void); +void m68k_op_bset_8_s_ix(void); +void m68k_op_bset_8_s_aw(void); +void m68k_op_bset_8_s_al(void); +void m68k_op_bsr_8(void); +void m68k_op_bsr_16(void); +void m68k_op_bsr_32(void); +void m68k_op_btst_32_r_d(void); +void m68k_op_btst_8_r_ai(void); +void m68k_op_btst_8_r_pi(void); +void m68k_op_btst_8_r_pi7(void); +void m68k_op_btst_8_r_pd(void); +void m68k_op_btst_8_r_pd7(void); +void m68k_op_btst_8_r_di(void); +void m68k_op_btst_8_r_ix(void); +void m68k_op_btst_8_r_aw(void); +void m68k_op_btst_8_r_al(void); +void m68k_op_btst_8_r_pcdi(void); +void m68k_op_btst_8_r_pcix(void); +void m68k_op_btst_8_r_i(void); +void m68k_op_btst_32_s_d(void); +void m68k_op_btst_8_s_ai(void); +void m68k_op_btst_8_s_pi(void); +void m68k_op_btst_8_s_pi7(void); +void m68k_op_btst_8_s_pd(void); +void m68k_op_btst_8_s_pd7(void); +void m68k_op_btst_8_s_di(void); +void m68k_op_btst_8_s_ix(void); +void m68k_op_btst_8_s_aw(void); +void m68k_op_btst_8_s_al(void); +void m68k_op_btst_8_s_pcdi(void); +void m68k_op_btst_8_s_pcix(void); +void m68k_op_callm_32_ai(void); +void m68k_op_callm_32_di(void); +void m68k_op_callm_32_ix(void); +void m68k_op_callm_32_aw(void); +void m68k_op_callm_32_al(void); +void m68k_op_callm_32_pcdi(void); +void m68k_op_callm_32_pcix(void); +void m68k_op_cas_8_ai(void); +void m68k_op_cas_8_pi(void); +void m68k_op_cas_8_pi7(void); +void m68k_op_cas_8_pd(void); +void m68k_op_cas_8_pd7(void); +void m68k_op_cas_8_di(void); +void m68k_op_cas_8_ix(void); +void m68k_op_cas_8_aw(void); +void m68k_op_cas_8_al(void); +void m68k_op_cas_16_ai(void); +void m68k_op_cas_16_pi(void); +void m68k_op_cas_16_pd(void); +void m68k_op_cas_16_di(void); +void m68k_op_cas_16_ix(void); +void m68k_op_cas_16_aw(void); +void m68k_op_cas_16_al(void); +void m68k_op_cas_32_ai(void); +void m68k_op_cas_32_pi(void); +void m68k_op_cas_32_pd(void); +void m68k_op_cas_32_di(void); +void m68k_op_cas_32_ix(void); +void m68k_op_cas_32_aw(void); +void m68k_op_cas_32_al(void); +void m68k_op_cas2_16(void); +void m68k_op_cas2_32(void); +void m68k_op_chk_16_d(void); +void m68k_op_chk_16_ai(void); +void m68k_op_chk_16_pi(void); +void m68k_op_chk_16_pd(void); +void m68k_op_chk_16_di(void); +void m68k_op_chk_16_ix(void); +void m68k_op_chk_16_aw(void); +void m68k_op_chk_16_al(void); +void m68k_op_chk_16_pcdi(void); +void m68k_op_chk_16_pcix(void); +void m68k_op_chk_16_i(void); +void m68k_op_chk_32_d(void); +void m68k_op_chk_32_ai(void); +void m68k_op_chk_32_pi(void); +void m68k_op_chk_32_pd(void); +void m68k_op_chk_32_di(void); +void m68k_op_chk_32_ix(void); +void m68k_op_chk_32_aw(void); +void m68k_op_chk_32_al(void); +void m68k_op_chk_32_pcdi(void); +void m68k_op_chk_32_pcix(void); +void m68k_op_chk_32_i(void); +void m68k_op_chk2cmp2_8_ai(void); +void m68k_op_chk2cmp2_8_di(void); +void m68k_op_chk2cmp2_8_ix(void); +void m68k_op_chk2cmp2_8_aw(void); +void m68k_op_chk2cmp2_8_al(void); +void m68k_op_chk2cmp2_8_pcdi(void); +void m68k_op_chk2cmp2_8_pcix(void); +void m68k_op_chk2cmp2_16_ai(void); +void m68k_op_chk2cmp2_16_di(void); +void m68k_op_chk2cmp2_16_ix(void); +void m68k_op_chk2cmp2_16_aw(void); +void m68k_op_chk2cmp2_16_al(void); +void m68k_op_chk2cmp2_16_pcdi(void); +void m68k_op_chk2cmp2_16_pcix(void); +void m68k_op_chk2cmp2_32_ai(void); +void m68k_op_chk2cmp2_32_di(void); +void m68k_op_chk2cmp2_32_ix(void); +void m68k_op_chk2cmp2_32_aw(void); +void m68k_op_chk2cmp2_32_al(void); +void m68k_op_chk2cmp2_32_pcdi(void); +void m68k_op_chk2cmp2_32_pcix(void); +void m68k_op_clr_8_d(void); +void m68k_op_clr_8_ai(void); +void m68k_op_clr_8_pi(void); +void m68k_op_clr_8_pi7(void); +void m68k_op_clr_8_pd(void); +void m68k_op_clr_8_pd7(void); +void m68k_op_clr_8_di(void); +void m68k_op_clr_8_ix(void); +void m68k_op_clr_8_aw(void); +void m68k_op_clr_8_al(void); +void m68k_op_clr_16_d(void); +void m68k_op_clr_16_ai(void); +void m68k_op_clr_16_pi(void); +void m68k_op_clr_16_pd(void); +void m68k_op_clr_16_di(void); +void m68k_op_clr_16_ix(void); +void m68k_op_clr_16_aw(void); +void m68k_op_clr_16_al(void); +void m68k_op_clr_32_d(void); +void m68k_op_clr_32_ai(void); +void m68k_op_clr_32_pi(void); +void m68k_op_clr_32_pd(void); +void m68k_op_clr_32_di(void); +void m68k_op_clr_32_ix(void); +void m68k_op_clr_32_aw(void); +void m68k_op_clr_32_al(void); +void m68k_op_cmp_8_d(void); +void m68k_op_cmp_8_ai(void); +void m68k_op_cmp_8_pi(void); +void m68k_op_cmp_8_pi7(void); +void m68k_op_cmp_8_pd(void); +void m68k_op_cmp_8_pd7(void); +void m68k_op_cmp_8_di(void); +void m68k_op_cmp_8_ix(void); +void m68k_op_cmp_8_aw(void); +void m68k_op_cmp_8_al(void); +void m68k_op_cmp_8_pcdi(void); +void m68k_op_cmp_8_pcix(void); +void m68k_op_cmp_8_i(void); +void m68k_op_cmp_16_d(void); +void m68k_op_cmp_16_a(void); +void m68k_op_cmp_16_ai(void); +void m68k_op_cmp_16_pi(void); +void m68k_op_cmp_16_pd(void); +void m68k_op_cmp_16_di(void); +void m68k_op_cmp_16_ix(void); +void m68k_op_cmp_16_aw(void); +void m68k_op_cmp_16_al(void); +void m68k_op_cmp_16_pcdi(void); +void m68k_op_cmp_16_pcix(void); +void m68k_op_cmp_16_i(void); +void m68k_op_cmp_32_d(void); +void m68k_op_cmp_32_a(void); +void m68k_op_cmp_32_ai(void); +void m68k_op_cmp_32_pi(void); +void m68k_op_cmp_32_pd(void); +void m68k_op_cmp_32_di(void); +void m68k_op_cmp_32_ix(void); +void m68k_op_cmp_32_aw(void); +void m68k_op_cmp_32_al(void); +void m68k_op_cmp_32_pcdi(void); +void m68k_op_cmp_32_pcix(void); +void m68k_op_cmp_32_i(void); +void m68k_op_cmpa_16_d(void); +void m68k_op_cmpa_16_a(void); +void m68k_op_cmpa_16_ai(void); +void m68k_op_cmpa_16_pi(void); +void m68k_op_cmpa_16_pd(void); +void m68k_op_cmpa_16_di(void); +void m68k_op_cmpa_16_ix(void); +void m68k_op_cmpa_16_aw(void); +void m68k_op_cmpa_16_al(void); +void m68k_op_cmpa_16_pcdi(void); +void m68k_op_cmpa_16_pcix(void); +void m68k_op_cmpa_16_i(void); +void m68k_op_cmpa_32_d(void); +void m68k_op_cmpa_32_a(void); +void m68k_op_cmpa_32_ai(void); +void m68k_op_cmpa_32_pi(void); +void m68k_op_cmpa_32_pd(void); +void m68k_op_cmpa_32_di(void); +void m68k_op_cmpa_32_ix(void); +void m68k_op_cmpa_32_aw(void); +void m68k_op_cmpa_32_al(void); +void m68k_op_cmpa_32_pcdi(void); +void m68k_op_cmpa_32_pcix(void); +void m68k_op_cmpa_32_i(void); +void m68k_op_cmpi_8_d(void); +void m68k_op_cmpi_8_ai(void); +void m68k_op_cmpi_8_pi(void); +void m68k_op_cmpi_8_pi7(void); +void m68k_op_cmpi_8_pd(void); +void m68k_op_cmpi_8_pd7(void); +void m68k_op_cmpi_8_di(void); +void m68k_op_cmpi_8_ix(void); +void m68k_op_cmpi_8_aw(void); +void m68k_op_cmpi_8_al(void); +void m68k_op_cmpi_8_pcdi(void); +void m68k_op_cmpi_8_pcix(void); +void m68k_op_cmpi_16_d(void); +void m68k_op_cmpi_16_ai(void); +void m68k_op_cmpi_16_pi(void); +void m68k_op_cmpi_16_pd(void); +void m68k_op_cmpi_16_di(void); +void m68k_op_cmpi_16_ix(void); +void m68k_op_cmpi_16_aw(void); +void m68k_op_cmpi_16_al(void); +void m68k_op_cmpi_16_pcdi(void); +void m68k_op_cmpi_16_pcix(void); +void m68k_op_cmpi_32_d(void); +void m68k_op_cmpi_32_ai(void); +void m68k_op_cmpi_32_pi(void); +void m68k_op_cmpi_32_pd(void); +void m68k_op_cmpi_32_di(void); +void m68k_op_cmpi_32_ix(void); +void m68k_op_cmpi_32_aw(void); +void m68k_op_cmpi_32_al(void); +void m68k_op_cmpi_32_pcdi(void); +void m68k_op_cmpi_32_pcix(void); +void m68k_op_cmpm_8_ax7(void); +void m68k_op_cmpm_8_ay7(void); +void m68k_op_cmpm_8_axy7(void); +void m68k_op_cmpm_8(void); +void m68k_op_cmpm_16(void); +void m68k_op_cmpm_32(void); +void m68k_op_cpbcc_32(void); +void m68k_op_cpdbcc_32(void); +void m68k_op_cpgen_32(void); +void m68k_op_cpscc_32(void); +void m68k_op_cptrapcc_32(void); +void m68k_op_dbt_16(void); +void m68k_op_dbf_16(void); +void m68k_op_dbhi_16(void); +void m68k_op_dbls_16(void); +void m68k_op_dbcc_16(void); +void m68k_op_dbcs_16(void); +void m68k_op_dbne_16(void); +void m68k_op_dbeq_16(void); +void m68k_op_dbvc_16(void); +void m68k_op_dbvs_16(void); +void m68k_op_dbpl_16(void); +void m68k_op_dbmi_16(void); +void m68k_op_dbge_16(void); +void m68k_op_dblt_16(void); +void m68k_op_dbgt_16(void); +void m68k_op_dble_16(void); +void m68k_op_divs_16_d(void); +void m68k_op_divs_16_ai(void); +void m68k_op_divs_16_pi(void); +void m68k_op_divs_16_pd(void); +void m68k_op_divs_16_di(void); +void m68k_op_divs_16_ix(void); +void m68k_op_divs_16_aw(void); +void m68k_op_divs_16_al(void); +void m68k_op_divs_16_pcdi(void); +void m68k_op_divs_16_pcix(void); +void m68k_op_divs_16_i(void); +void m68k_op_divu_16_d(void); +void m68k_op_divu_16_ai(void); +void m68k_op_divu_16_pi(void); +void m68k_op_divu_16_pd(void); +void m68k_op_divu_16_di(void); +void m68k_op_divu_16_ix(void); +void m68k_op_divu_16_aw(void); +void m68k_op_divu_16_al(void); +void m68k_op_divu_16_pcdi(void); +void m68k_op_divu_16_pcix(void); +void m68k_op_divu_16_i(void); +void m68k_op_divl_32_d(void); +void m68k_op_divl_32_ai(void); +void m68k_op_divl_32_pi(void); +void m68k_op_divl_32_pd(void); +void m68k_op_divl_32_di(void); +void m68k_op_divl_32_ix(void); +void m68k_op_divl_32_aw(void); +void m68k_op_divl_32_al(void); +void m68k_op_divl_32_pcdi(void); +void m68k_op_divl_32_pcix(void); +void m68k_op_divl_32_i(void); +void m68k_op_eor_8_d(void); +void m68k_op_eor_8_ai(void); +void m68k_op_eor_8_pi(void); +void m68k_op_eor_8_pi7(void); +void m68k_op_eor_8_pd(void); +void m68k_op_eor_8_pd7(void); +void m68k_op_eor_8_di(void); +void m68k_op_eor_8_ix(void); +void m68k_op_eor_8_aw(void); +void m68k_op_eor_8_al(void); +void m68k_op_eor_16_d(void); +void m68k_op_eor_16_ai(void); +void m68k_op_eor_16_pi(void); +void m68k_op_eor_16_pd(void); +void m68k_op_eor_16_di(void); +void m68k_op_eor_16_ix(void); +void m68k_op_eor_16_aw(void); +void m68k_op_eor_16_al(void); +void m68k_op_eor_32_d(void); +void m68k_op_eor_32_ai(void); +void m68k_op_eor_32_pi(void); +void m68k_op_eor_32_pd(void); +void m68k_op_eor_32_di(void); +void m68k_op_eor_32_ix(void); +void m68k_op_eor_32_aw(void); +void m68k_op_eor_32_al(void); +void m68k_op_eori_8_d(void); +void m68k_op_eori_8_ai(void); +void m68k_op_eori_8_pi(void); +void m68k_op_eori_8_pi7(void); +void m68k_op_eori_8_pd(void); +void m68k_op_eori_8_pd7(void); +void m68k_op_eori_8_di(void); +void m68k_op_eori_8_ix(void); +void m68k_op_eori_8_aw(void); +void m68k_op_eori_8_al(void); +void m68k_op_eori_16_d(void); +void m68k_op_eori_16_ai(void); +void m68k_op_eori_16_pi(void); +void m68k_op_eori_16_pd(void); +void m68k_op_eori_16_di(void); +void m68k_op_eori_16_ix(void); +void m68k_op_eori_16_aw(void); +void m68k_op_eori_16_al(void); +void m68k_op_eori_32_d(void); +void m68k_op_eori_32_ai(void); +void m68k_op_eori_32_pi(void); +void m68k_op_eori_32_pd(void); +void m68k_op_eori_32_di(void); +void m68k_op_eori_32_ix(void); +void m68k_op_eori_32_aw(void); +void m68k_op_eori_32_al(void); +void m68k_op_eori_16_toc(void); +void m68k_op_eori_16_tos(void); +void m68k_op_exg_32_dd(void); +void m68k_op_exg_32_aa(void); +void m68k_op_exg_32_da(void); +void m68k_op_ext_16(void); +void m68k_op_ext_32(void); +void m68k_op_extb_32(void); +void m68k_op_illegal(void); +void m68k_op_jmp_32_ai(void); +void m68k_op_jmp_32_di(void); +void m68k_op_jmp_32_ix(void); +void m68k_op_jmp_32_aw(void); +void m68k_op_jmp_32_al(void); +void m68k_op_jmp_32_pcdi(void); +void m68k_op_jmp_32_pcix(void); +void m68k_op_jsr_32_ai(void); +void m68k_op_jsr_32_di(void); +void m68k_op_jsr_32_ix(void); +void m68k_op_jsr_32_aw(void); +void m68k_op_jsr_32_al(void); +void m68k_op_jsr_32_pcdi(void); +void m68k_op_jsr_32_pcix(void); +void m68k_op_lea_32_ai(void); +void m68k_op_lea_32_di(void); +void m68k_op_lea_32_ix(void); +void m68k_op_lea_32_aw(void); +void m68k_op_lea_32_al(void); +void m68k_op_lea_32_pcdi(void); +void m68k_op_lea_32_pcix(void); +void m68k_op_link_16_a7(void); +void m68k_op_link_16(void); +void m68k_op_link_32_a7(void); +void m68k_op_link_32(void); +void m68k_op_lsr_8_s(void); +void m68k_op_lsr_16_s(void); +void m68k_op_lsr_32_s(void); +void m68k_op_lsr_8_r(void); +void m68k_op_lsr_16_r(void); +void m68k_op_lsr_32_r(void); +void m68k_op_lsr_16_ai(void); +void m68k_op_lsr_16_pi(void); +void m68k_op_lsr_16_pd(void); +void m68k_op_lsr_16_di(void); +void m68k_op_lsr_16_ix(void); +void m68k_op_lsr_16_aw(void); +void m68k_op_lsr_16_al(void); +void m68k_op_lsl_8_s(void); +void m68k_op_lsl_16_s(void); +void m68k_op_lsl_32_s(void); +void m68k_op_lsl_8_r(void); +void m68k_op_lsl_16_r(void); +void m68k_op_lsl_32_r(void); +void m68k_op_lsl_16_ai(void); +void m68k_op_lsl_16_pi(void); +void m68k_op_lsl_16_pd(void); +void m68k_op_lsl_16_di(void); +void m68k_op_lsl_16_ix(void); +void m68k_op_lsl_16_aw(void); +void m68k_op_lsl_16_al(void); +void m68k_op_move_8_d_d(void); +void m68k_op_move_8_d_ai(void); +void m68k_op_move_8_d_pi(void); +void m68k_op_move_8_d_pi7(void); +void m68k_op_move_8_d_pd(void); +void m68k_op_move_8_d_pd7(void); +void m68k_op_move_8_d_di(void); +void m68k_op_move_8_d_ix(void); +void m68k_op_move_8_d_aw(void); +void m68k_op_move_8_d_al(void); +void m68k_op_move_8_d_pcdi(void); +void m68k_op_move_8_d_pcix(void); +void m68k_op_move_8_d_i(void); +void m68k_op_move_8_ai_d(void); +void m68k_op_move_8_ai_ai(void); +void m68k_op_move_8_ai_pi(void); +void m68k_op_move_8_ai_pi7(void); +void m68k_op_move_8_ai_pd(void); +void m68k_op_move_8_ai_pd7(void); +void m68k_op_move_8_ai_di(void); +void m68k_op_move_8_ai_ix(void); +void m68k_op_move_8_ai_aw(void); +void m68k_op_move_8_ai_al(void); +void m68k_op_move_8_ai_pcdi(void); +void m68k_op_move_8_ai_pcix(void); +void m68k_op_move_8_ai_i(void); +void m68k_op_move_8_pi7_d(void); +void m68k_op_move_8_pi_d(void); +void m68k_op_move_8_pi7_ai(void); +void m68k_op_move_8_pi7_pi(void); +void m68k_op_move_8_pi7_pi7(void); +void m68k_op_move_8_pi7_pd(void); +void m68k_op_move_8_pi7_pd7(void); +void m68k_op_move_8_pi7_di(void); +void m68k_op_move_8_pi7_ix(void); +void m68k_op_move_8_pi7_aw(void); +void m68k_op_move_8_pi7_al(void); +void m68k_op_move_8_pi7_pcdi(void); +void m68k_op_move_8_pi7_pcix(void); +void m68k_op_move_8_pi7_i(void); +void m68k_op_move_8_pi_ai(void); +void m68k_op_move_8_pi_pi(void); +void m68k_op_move_8_pi_pi7(void); +void m68k_op_move_8_pi_pd(void); +void m68k_op_move_8_pi_pd7(void); +void m68k_op_move_8_pi_di(void); +void m68k_op_move_8_pi_ix(void); +void m68k_op_move_8_pi_aw(void); +void m68k_op_move_8_pi_al(void); +void m68k_op_move_8_pi_pcdi(void); +void m68k_op_move_8_pi_pcix(void); +void m68k_op_move_8_pi_i(void); +void m68k_op_move_8_pd7_d(void); +void m68k_op_move_8_pd_d(void); +void m68k_op_move_8_pd7_ai(void); +void m68k_op_move_8_pd7_pi(void); +void m68k_op_move_8_pd7_pi7(void); +void m68k_op_move_8_pd7_pd(void); +void m68k_op_move_8_pd7_pd7(void); +void m68k_op_move_8_pd7_di(void); +void m68k_op_move_8_pd7_ix(void); +void m68k_op_move_8_pd7_aw(void); +void m68k_op_move_8_pd7_al(void); +void m68k_op_move_8_pd7_pcdi(void); +void m68k_op_move_8_pd7_pcix(void); +void m68k_op_move_8_pd7_i(void); +void m68k_op_move_8_pd_ai(void); +void m68k_op_move_8_pd_pi(void); +void m68k_op_move_8_pd_pi7(void); +void m68k_op_move_8_pd_pd(void); +void m68k_op_move_8_pd_pd7(void); +void m68k_op_move_8_pd_di(void); +void m68k_op_move_8_pd_ix(void); +void m68k_op_move_8_pd_aw(void); +void m68k_op_move_8_pd_al(void); +void m68k_op_move_8_pd_pcdi(void); +void m68k_op_move_8_pd_pcix(void); +void m68k_op_move_8_pd_i(void); +void m68k_op_move_8_di_d(void); +void m68k_op_move_8_di_ai(void); +void m68k_op_move_8_di_pi(void); +void m68k_op_move_8_di_pi7(void); +void m68k_op_move_8_di_pd(void); +void m68k_op_move_8_di_pd7(void); +void m68k_op_move_8_di_di(void); +void m68k_op_move_8_di_ix(void); +void m68k_op_move_8_di_aw(void); +void m68k_op_move_8_di_al(void); +void m68k_op_move_8_di_pcdi(void); +void m68k_op_move_8_di_pcix(void); +void m68k_op_move_8_di_i(void); +void m68k_op_move_8_ix_d(void); +void m68k_op_move_8_ix_ai(void); +void m68k_op_move_8_ix_pi(void); +void m68k_op_move_8_ix_pi7(void); +void m68k_op_move_8_ix_pd(void); +void m68k_op_move_8_ix_pd7(void); +void m68k_op_move_8_ix_di(void); +void m68k_op_move_8_ix_ix(void); +void m68k_op_move_8_ix_aw(void); +void m68k_op_move_8_ix_al(void); +void m68k_op_move_8_ix_pcdi(void); +void m68k_op_move_8_ix_pcix(void); +void m68k_op_move_8_ix_i(void); +void m68k_op_move_8_aw_d(void); +void m68k_op_move_8_aw_ai(void); +void m68k_op_move_8_aw_pi(void); +void m68k_op_move_8_aw_pi7(void); +void m68k_op_move_8_aw_pd(void); +void m68k_op_move_8_aw_pd7(void); +void m68k_op_move_8_aw_di(void); +void m68k_op_move_8_aw_ix(void); +void m68k_op_move_8_aw_aw(void); +void m68k_op_move_8_aw_al(void); +void m68k_op_move_8_aw_pcdi(void); +void m68k_op_move_8_aw_pcix(void); +void m68k_op_move_8_aw_i(void); +void m68k_op_move_8_al_d(void); +void m68k_op_move_8_al_ai(void); +void m68k_op_move_8_al_pi(void); +void m68k_op_move_8_al_pi7(void); +void m68k_op_move_8_al_pd(void); +void m68k_op_move_8_al_pd7(void); +void m68k_op_move_8_al_di(void); +void m68k_op_move_8_al_ix(void); +void m68k_op_move_8_al_aw(void); +void m68k_op_move_8_al_al(void); +void m68k_op_move_8_al_pcdi(void); +void m68k_op_move_8_al_pcix(void); +void m68k_op_move_8_al_i(void); +void m68k_op_move_16_d_d(void); +void m68k_op_move_16_d_a(void); +void m68k_op_move_16_d_ai(void); +void m68k_op_move_16_d_pi(void); +void m68k_op_move_16_d_pd(void); +void m68k_op_move_16_d_di(void); +void m68k_op_move_16_d_ix(void); +void m68k_op_move_16_d_aw(void); +void m68k_op_move_16_d_al(void); +void m68k_op_move_16_d_pcdi(void); +void m68k_op_move_16_d_pcix(void); +void m68k_op_move_16_d_i(void); +void m68k_op_move_16_ai_d(void); +void m68k_op_move_16_ai_a(void); +void m68k_op_move_16_ai_ai(void); +void m68k_op_move_16_ai_pi(void); +void m68k_op_move_16_ai_pd(void); +void m68k_op_move_16_ai_di(void); +void m68k_op_move_16_ai_ix(void); +void m68k_op_move_16_ai_aw(void); +void m68k_op_move_16_ai_al(void); +void m68k_op_move_16_ai_pcdi(void); +void m68k_op_move_16_ai_pcix(void); +void m68k_op_move_16_ai_i(void); +void m68k_op_move_16_pi_d(void); +void m68k_op_move_16_pi_a(void); +void m68k_op_move_16_pi_ai(void); +void m68k_op_move_16_pi_pi(void); +void m68k_op_move_16_pi_pd(void); +void m68k_op_move_16_pi_di(void); +void m68k_op_move_16_pi_ix(void); +void m68k_op_move_16_pi_aw(void); +void m68k_op_move_16_pi_al(void); +void m68k_op_move_16_pi_pcdi(void); +void m68k_op_move_16_pi_pcix(void); +void m68k_op_move_16_pi_i(void); +void m68k_op_move_16_pd_d(void); +void m68k_op_move_16_pd_a(void); +void m68k_op_move_16_pd_ai(void); +void m68k_op_move_16_pd_pi(void); +void m68k_op_move_16_pd_pd(void); +void m68k_op_move_16_pd_di(void); +void m68k_op_move_16_pd_ix(void); +void m68k_op_move_16_pd_aw(void); +void m68k_op_move_16_pd_al(void); +void m68k_op_move_16_pd_pcdi(void); +void m68k_op_move_16_pd_pcix(void); +void m68k_op_move_16_pd_i(void); +void m68k_op_move_16_di_d(void); +void m68k_op_move_16_di_a(void); +void m68k_op_move_16_di_ai(void); +void m68k_op_move_16_di_pi(void); +void m68k_op_move_16_di_pd(void); +void m68k_op_move_16_di_di(void); +void m68k_op_move_16_di_ix(void); +void m68k_op_move_16_di_aw(void); +void m68k_op_move_16_di_al(void); +void m68k_op_move_16_di_pcdi(void); +void m68k_op_move_16_di_pcix(void); +void m68k_op_move_16_di_i(void); +void m68k_op_move_16_ix_d(void); +void m68k_op_move_16_ix_a(void); +void m68k_op_move_16_ix_ai(void); +void m68k_op_move_16_ix_pi(void); +void m68k_op_move_16_ix_pd(void); +void m68k_op_move_16_ix_di(void); +void m68k_op_move_16_ix_ix(void); +void m68k_op_move_16_ix_aw(void); +void m68k_op_move_16_ix_al(void); +void m68k_op_move_16_ix_pcdi(void); +void m68k_op_move_16_ix_pcix(void); +void m68k_op_move_16_ix_i(void); +void m68k_op_move_16_aw_d(void); +void m68k_op_move_16_aw_a(void); +void m68k_op_move_16_aw_ai(void); +void m68k_op_move_16_aw_pi(void); +void m68k_op_move_16_aw_pd(void); +void m68k_op_move_16_aw_di(void); +void m68k_op_move_16_aw_ix(void); +void m68k_op_move_16_aw_aw(void); +void m68k_op_move_16_aw_al(void); +void m68k_op_move_16_aw_pcdi(void); +void m68k_op_move_16_aw_pcix(void); +void m68k_op_move_16_aw_i(void); +void m68k_op_move_16_al_d(void); +void m68k_op_move_16_al_a(void); +void m68k_op_move_16_al_ai(void); +void m68k_op_move_16_al_pi(void); +void m68k_op_move_16_al_pd(void); +void m68k_op_move_16_al_di(void); +void m68k_op_move_16_al_ix(void); +void m68k_op_move_16_al_aw(void); +void m68k_op_move_16_al_al(void); +void m68k_op_move_16_al_pcdi(void); +void m68k_op_move_16_al_pcix(void); +void m68k_op_move_16_al_i(void); +void m68k_op_move_32_d_d(void); +void m68k_op_move_32_d_a(void); +void m68k_op_move_32_d_ai(void); +void m68k_op_move_32_d_pi(void); +void m68k_op_move_32_d_pd(void); +void m68k_op_move_32_d_di(void); +void m68k_op_move_32_d_ix(void); +void m68k_op_move_32_d_aw(void); +void m68k_op_move_32_d_al(void); +void m68k_op_move_32_d_pcdi(void); +void m68k_op_move_32_d_pcix(void); +void m68k_op_move_32_d_i(void); +void m68k_op_move_32_ai_d(void); +void m68k_op_move_32_ai_a(void); +void m68k_op_move_32_ai_ai(void); +void m68k_op_move_32_ai_pi(void); +void m68k_op_move_32_ai_pd(void); +void m68k_op_move_32_ai_di(void); +void m68k_op_move_32_ai_ix(void); +void m68k_op_move_32_ai_aw(void); +void m68k_op_move_32_ai_al(void); +void m68k_op_move_32_ai_pcdi(void); +void m68k_op_move_32_ai_pcix(void); +void m68k_op_move_32_ai_i(void); +void m68k_op_move_32_pi_d(void); +void m68k_op_move_32_pi_a(void); +void m68k_op_move_32_pi_ai(void); +void m68k_op_move_32_pi_pi(void); +void m68k_op_move_32_pi_pd(void); +void m68k_op_move_32_pi_di(void); +void m68k_op_move_32_pi_ix(void); +void m68k_op_move_32_pi_aw(void); +void m68k_op_move_32_pi_al(void); +void m68k_op_move_32_pi_pcdi(void); +void m68k_op_move_32_pi_pcix(void); +void m68k_op_move_32_pi_i(void); +void m68k_op_move_32_pd_d(void); +void m68k_op_move_32_pd_a(void); +void m68k_op_move_32_pd_ai(void); +void m68k_op_move_32_pd_pi(void); +void m68k_op_move_32_pd_pd(void); +void m68k_op_move_32_pd_di(void); +void m68k_op_move_32_pd_ix(void); +void m68k_op_move_32_pd_aw(void); +void m68k_op_move_32_pd_al(void); +void m68k_op_move_32_pd_pcdi(void); +void m68k_op_move_32_pd_pcix(void); +void m68k_op_move_32_pd_i(void); +void m68k_op_move_32_di_d(void); +void m68k_op_move_32_di_a(void); +void m68k_op_move_32_di_ai(void); +void m68k_op_move_32_di_pi(void); +void m68k_op_move_32_di_pd(void); +void m68k_op_move_32_di_di(void); +void m68k_op_move_32_di_ix(void); +void m68k_op_move_32_di_aw(void); +void m68k_op_move_32_di_al(void); +void m68k_op_move_32_di_pcdi(void); +void m68k_op_move_32_di_pcix(void); +void m68k_op_move_32_di_i(void); +void m68k_op_move_32_ix_d(void); +void m68k_op_move_32_ix_a(void); +void m68k_op_move_32_ix_ai(void); +void m68k_op_move_32_ix_pi(void); +void m68k_op_move_32_ix_pd(void); +void m68k_op_move_32_ix_di(void); +void m68k_op_move_32_ix_ix(void); +void m68k_op_move_32_ix_aw(void); +void m68k_op_move_32_ix_al(void); +void m68k_op_move_32_ix_pcdi(void); +void m68k_op_move_32_ix_pcix(void); +void m68k_op_move_32_ix_i(void); +void m68k_op_move_32_aw_d(void); +void m68k_op_move_32_aw_a(void); +void m68k_op_move_32_aw_ai(void); +void m68k_op_move_32_aw_pi(void); +void m68k_op_move_32_aw_pd(void); +void m68k_op_move_32_aw_di(void); +void m68k_op_move_32_aw_ix(void); +void m68k_op_move_32_aw_aw(void); +void m68k_op_move_32_aw_al(void); +void m68k_op_move_32_aw_pcdi(void); +void m68k_op_move_32_aw_pcix(void); +void m68k_op_move_32_aw_i(void); +void m68k_op_move_32_al_d(void); +void m68k_op_move_32_al_a(void); +void m68k_op_move_32_al_ai(void); +void m68k_op_move_32_al_pi(void); +void m68k_op_move_32_al_pd(void); +void m68k_op_move_32_al_di(void); +void m68k_op_move_32_al_ix(void); +void m68k_op_move_32_al_aw(void); +void m68k_op_move_32_al_al(void); +void m68k_op_move_32_al_pcdi(void); +void m68k_op_move_32_al_pcix(void); +void m68k_op_move_32_al_i(void); +void m68k_op_movea_16_d(void); +void m68k_op_movea_16_a(void); +void m68k_op_movea_16_ai(void); +void m68k_op_movea_16_pi(void); +void m68k_op_movea_16_pd(void); +void m68k_op_movea_16_di(void); +void m68k_op_movea_16_ix(void); +void m68k_op_movea_16_aw(void); +void m68k_op_movea_16_al(void); +void m68k_op_movea_16_pcdi(void); +void m68k_op_movea_16_pcix(void); +void m68k_op_movea_16_i(void); +void m68k_op_movea_32_d(void); +void m68k_op_movea_32_a(void); +void m68k_op_movea_32_ai(void); +void m68k_op_movea_32_pi(void); +void m68k_op_movea_32_pd(void); +void m68k_op_movea_32_di(void); +void m68k_op_movea_32_ix(void); +void m68k_op_movea_32_aw(void); +void m68k_op_movea_32_al(void); +void m68k_op_movea_32_pcdi(void); +void m68k_op_movea_32_pcix(void); +void m68k_op_movea_32_i(void); +void m68k_op_move_16_frc_d(void); +void m68k_op_move_16_frc_ai(void); +void m68k_op_move_16_frc_pi(void); +void m68k_op_move_16_frc_pd(void); +void m68k_op_move_16_frc_di(void); +void m68k_op_move_16_frc_ix(void); +void m68k_op_move_16_frc_aw(void); +void m68k_op_move_16_frc_al(void); +void m68k_op_move_16_toc_d(void); +void m68k_op_move_16_toc_ai(void); +void m68k_op_move_16_toc_pi(void); +void m68k_op_move_16_toc_pd(void); +void m68k_op_move_16_toc_di(void); +void m68k_op_move_16_toc_ix(void); +void m68k_op_move_16_toc_aw(void); +void m68k_op_move_16_toc_al(void); +void m68k_op_move_16_toc_pcdi(void); +void m68k_op_move_16_toc_pcix(void); +void m68k_op_move_16_toc_i(void); +void m68k_op_move_16_frs_d(void); +void m68k_op_move_16_frs_ai(void); +void m68k_op_move_16_frs_pi(void); +void m68k_op_move_16_frs_pd(void); +void m68k_op_move_16_frs_di(void); +void m68k_op_move_16_frs_ix(void); +void m68k_op_move_16_frs_aw(void); +void m68k_op_move_16_frs_al(void); +void m68k_op_move_16_tos_d(void); +void m68k_op_move_16_tos_ai(void); +void m68k_op_move_16_tos_pi(void); +void m68k_op_move_16_tos_pd(void); +void m68k_op_move_16_tos_di(void); +void m68k_op_move_16_tos_ix(void); +void m68k_op_move_16_tos_aw(void); +void m68k_op_move_16_tos_al(void); +void m68k_op_move_16_tos_pcdi(void); +void m68k_op_move_16_tos_pcix(void); +void m68k_op_move_16_tos_i(void); +void m68k_op_move_32_fru(void); +void m68k_op_move_32_tou(void); +void m68k_op_movec_32_cr(void); +void m68k_op_movec_32_rc(void); +void m68k_op_movem_16_re_pd(void); +void m68k_op_movem_16_re_ai(void); +void m68k_op_movem_16_re_di(void); +void m68k_op_movem_16_re_ix(void); +void m68k_op_movem_16_re_aw(void); +void m68k_op_movem_16_re_al(void); +void m68k_op_movem_32_re_pd(void); +void m68k_op_movem_32_re_ai(void); +void m68k_op_movem_32_re_di(void); +void m68k_op_movem_32_re_ix(void); +void m68k_op_movem_32_re_aw(void); +void m68k_op_movem_32_re_al(void); +void m68k_op_movem_16_er_pi(void); +void m68k_op_movem_16_er_ai(void); +void m68k_op_movem_16_er_di(void); +void m68k_op_movem_16_er_ix(void); +void m68k_op_movem_16_er_aw(void); +void m68k_op_movem_16_er_al(void); +void m68k_op_movem_16_er_pcdi(void); +void m68k_op_movem_16_er_pcix(void); +void m68k_op_movem_32_er_pi(void); +void m68k_op_movem_32_er_ai(void); +void m68k_op_movem_32_er_di(void); +void m68k_op_movem_32_er_ix(void); +void m68k_op_movem_32_er_aw(void); +void m68k_op_movem_32_er_al(void); +void m68k_op_movem_32_er_pcdi(void); +void m68k_op_movem_32_er_pcix(void); +void m68k_op_movep_16_re(void); +void m68k_op_movep_32_re(void); +void m68k_op_movep_16_er(void); +void m68k_op_movep_32_er(void); +void m68k_op_moves_8_ai(void); +void m68k_op_moves_8_pi(void); +void m68k_op_moves_8_pi7(void); +void m68k_op_moves_8_pd(void); +void m68k_op_moves_8_pd7(void); +void m68k_op_moves_8_di(void); +void m68k_op_moves_8_ix(void); +void m68k_op_moves_8_aw(void); +void m68k_op_moves_8_al(void); +void m68k_op_moves_16_ai(void); +void m68k_op_moves_16_pi(void); +void m68k_op_moves_16_pd(void); +void m68k_op_moves_16_di(void); +void m68k_op_moves_16_ix(void); +void m68k_op_moves_16_aw(void); +void m68k_op_moves_16_al(void); +void m68k_op_moves_32_ai(void); +void m68k_op_moves_32_pi(void); +void m68k_op_moves_32_pd(void); +void m68k_op_moves_32_di(void); +void m68k_op_moves_32_ix(void); +void m68k_op_moves_32_aw(void); +void m68k_op_moves_32_al(void); +void m68k_op_moveq_32(void); +void m68k_op_muls_16_d(void); +void m68k_op_muls_16_ai(void); +void m68k_op_muls_16_pi(void); +void m68k_op_muls_16_pd(void); +void m68k_op_muls_16_di(void); +void m68k_op_muls_16_ix(void); +void m68k_op_muls_16_aw(void); +void m68k_op_muls_16_al(void); +void m68k_op_muls_16_pcdi(void); +void m68k_op_muls_16_pcix(void); +void m68k_op_muls_16_i(void); +void m68k_op_mulu_16_d(void); +void m68k_op_mulu_16_ai(void); +void m68k_op_mulu_16_pi(void); +void m68k_op_mulu_16_pd(void); +void m68k_op_mulu_16_di(void); +void m68k_op_mulu_16_ix(void); +void m68k_op_mulu_16_aw(void); +void m68k_op_mulu_16_al(void); +void m68k_op_mulu_16_pcdi(void); +void m68k_op_mulu_16_pcix(void); +void m68k_op_mulu_16_i(void); +void m68k_op_mull_32_d(void); +void m68k_op_mull_32_ai(void); +void m68k_op_mull_32_pi(void); +void m68k_op_mull_32_pd(void); +void m68k_op_mull_32_di(void); +void m68k_op_mull_32_ix(void); +void m68k_op_mull_32_aw(void); +void m68k_op_mull_32_al(void); +void m68k_op_mull_32_pcdi(void); +void m68k_op_mull_32_pcix(void); +void m68k_op_mull_32_i(void); +void m68k_op_nbcd_8_d(void); +void m68k_op_nbcd_8_ai(void); +void m68k_op_nbcd_8_pi(void); +void m68k_op_nbcd_8_pi7(void); +void m68k_op_nbcd_8_pd(void); +void m68k_op_nbcd_8_pd7(void); +void m68k_op_nbcd_8_di(void); +void m68k_op_nbcd_8_ix(void); +void m68k_op_nbcd_8_aw(void); +void m68k_op_nbcd_8_al(void); +void m68k_op_neg_8_d(void); +void m68k_op_neg_8_ai(void); +void m68k_op_neg_8_pi(void); +void m68k_op_neg_8_pi7(void); +void m68k_op_neg_8_pd(void); +void m68k_op_neg_8_pd7(void); +void m68k_op_neg_8_di(void); +void m68k_op_neg_8_ix(void); +void m68k_op_neg_8_aw(void); +void m68k_op_neg_8_al(void); +void m68k_op_neg_16_d(void); +void m68k_op_neg_16_ai(void); +void m68k_op_neg_16_pi(void); +void m68k_op_neg_16_pd(void); +void m68k_op_neg_16_di(void); +void m68k_op_neg_16_ix(void); +void m68k_op_neg_16_aw(void); +void m68k_op_neg_16_al(void); +void m68k_op_neg_32_d(void); +void m68k_op_neg_32_ai(void); +void m68k_op_neg_32_pi(void); +void m68k_op_neg_32_pd(void); +void m68k_op_neg_32_di(void); +void m68k_op_neg_32_ix(void); +void m68k_op_neg_32_aw(void); +void m68k_op_neg_32_al(void); +void m68k_op_negx_8_d(void); +void m68k_op_negx_8_ai(void); +void m68k_op_negx_8_pi(void); +void m68k_op_negx_8_pi7(void); +void m68k_op_negx_8_pd(void); +void m68k_op_negx_8_pd7(void); +void m68k_op_negx_8_di(void); +void m68k_op_negx_8_ix(void); +void m68k_op_negx_8_aw(void); +void m68k_op_negx_8_al(void); +void m68k_op_negx_16_d(void); +void m68k_op_negx_16_ai(void); +void m68k_op_negx_16_pi(void); +void m68k_op_negx_16_pd(void); +void m68k_op_negx_16_di(void); +void m68k_op_negx_16_ix(void); +void m68k_op_negx_16_aw(void); +void m68k_op_negx_16_al(void); +void m68k_op_negx_32_d(void); +void m68k_op_negx_32_ai(void); +void m68k_op_negx_32_pi(void); +void m68k_op_negx_32_pd(void); +void m68k_op_negx_32_di(void); +void m68k_op_negx_32_ix(void); +void m68k_op_negx_32_aw(void); +void m68k_op_negx_32_al(void); +void m68k_op_nop(void); +void m68k_op_not_8_d(void); +void m68k_op_not_8_ai(void); +void m68k_op_not_8_pi(void); +void m68k_op_not_8_pi7(void); +void m68k_op_not_8_pd(void); +void m68k_op_not_8_pd7(void); +void m68k_op_not_8_di(void); +void m68k_op_not_8_ix(void); +void m68k_op_not_8_aw(void); +void m68k_op_not_8_al(void); +void m68k_op_not_16_d(void); +void m68k_op_not_16_ai(void); +void m68k_op_not_16_pi(void); +void m68k_op_not_16_pd(void); +void m68k_op_not_16_di(void); +void m68k_op_not_16_ix(void); +void m68k_op_not_16_aw(void); +void m68k_op_not_16_al(void); +void m68k_op_not_32_d(void); +void m68k_op_not_32_ai(void); +void m68k_op_not_32_pi(void); +void m68k_op_not_32_pd(void); +void m68k_op_not_32_di(void); +void m68k_op_not_32_ix(void); +void m68k_op_not_32_aw(void); +void m68k_op_not_32_al(void); +void m68k_op_or_8_er_d(void); +void m68k_op_or_8_er_ai(void); +void m68k_op_or_8_er_pi(void); +void m68k_op_or_8_er_pi7(void); +void m68k_op_or_8_er_pd(void); +void m68k_op_or_8_er_pd7(void); +void m68k_op_or_8_er_di(void); +void m68k_op_or_8_er_ix(void); +void m68k_op_or_8_er_aw(void); +void m68k_op_or_8_er_al(void); +void m68k_op_or_8_er_pcdi(void); +void m68k_op_or_8_er_pcix(void); +void m68k_op_or_8_er_i(void); +void m68k_op_or_16_er_d(void); +void m68k_op_or_16_er_ai(void); +void m68k_op_or_16_er_pi(void); +void m68k_op_or_16_er_pd(void); +void m68k_op_or_16_er_di(void); +void m68k_op_or_16_er_ix(void); +void m68k_op_or_16_er_aw(void); +void m68k_op_or_16_er_al(void); +void m68k_op_or_16_er_pcdi(void); +void m68k_op_or_16_er_pcix(void); +void m68k_op_or_16_er_i(void); +void m68k_op_or_32_er_d(void); +void m68k_op_or_32_er_ai(void); +void m68k_op_or_32_er_pi(void); +void m68k_op_or_32_er_pd(void); +void m68k_op_or_32_er_di(void); +void m68k_op_or_32_er_ix(void); +void m68k_op_or_32_er_aw(void); +void m68k_op_or_32_er_al(void); +void m68k_op_or_32_er_pcdi(void); +void m68k_op_or_32_er_pcix(void); +void m68k_op_or_32_er_i(void); +void m68k_op_or_8_re_ai(void); +void m68k_op_or_8_re_pi(void); +void m68k_op_or_8_re_pi7(void); +void m68k_op_or_8_re_pd(void); +void m68k_op_or_8_re_pd7(void); +void m68k_op_or_8_re_di(void); +void m68k_op_or_8_re_ix(void); +void m68k_op_or_8_re_aw(void); +void m68k_op_or_8_re_al(void); +void m68k_op_or_16_re_ai(void); +void m68k_op_or_16_re_pi(void); +void m68k_op_or_16_re_pd(void); +void m68k_op_or_16_re_di(void); +void m68k_op_or_16_re_ix(void); +void m68k_op_or_16_re_aw(void); +void m68k_op_or_16_re_al(void); +void m68k_op_or_32_re_ai(void); +void m68k_op_or_32_re_pi(void); +void m68k_op_or_32_re_pd(void); +void m68k_op_or_32_re_di(void); +void m68k_op_or_32_re_ix(void); +void m68k_op_or_32_re_aw(void); +void m68k_op_or_32_re_al(void); +void m68k_op_ori_8_d(void); +void m68k_op_ori_8_ai(void); +void m68k_op_ori_8_pi(void); +void m68k_op_ori_8_pi7(void); +void m68k_op_ori_8_pd(void); +void m68k_op_ori_8_pd7(void); +void m68k_op_ori_8_di(void); +void m68k_op_ori_8_ix(void); +void m68k_op_ori_8_aw(void); +void m68k_op_ori_8_al(void); +void m68k_op_ori_16_d(void); +void m68k_op_ori_16_ai(void); +void m68k_op_ori_16_pi(void); +void m68k_op_ori_16_pd(void); +void m68k_op_ori_16_di(void); +void m68k_op_ori_16_ix(void); +void m68k_op_ori_16_aw(void); +void m68k_op_ori_16_al(void); +void m68k_op_ori_32_d(void); +void m68k_op_ori_32_ai(void); +void m68k_op_ori_32_pi(void); +void m68k_op_ori_32_pd(void); +void m68k_op_ori_32_di(void); +void m68k_op_ori_32_ix(void); +void m68k_op_ori_32_aw(void); +void m68k_op_ori_32_al(void); +void m68k_op_ori_16_toc(void); +void m68k_op_ori_16_tos(void); +void m68k_op_pack_16_rr(void); +void m68k_op_pack_16_mm_ax7(void); +void m68k_op_pack_16_mm_ay7(void); +void m68k_op_pack_16_mm_axy7(void); +void m68k_op_pack_16_mm(void); +void m68k_op_pea_32_ai(void); +void m68k_op_pea_32_di(void); +void m68k_op_pea_32_ix(void); +void m68k_op_pea_32_aw(void); +void m68k_op_pea_32_al(void); +void m68k_op_pea_32_pcdi(void); +void m68k_op_pea_32_pcix(void); +void m68k_op_reset(void); +void m68k_op_ror_8_s(void); +void m68k_op_ror_16_s(void); +void m68k_op_ror_32_s(void); +void m68k_op_ror_8_r(void); +void m68k_op_ror_16_r(void); +void m68k_op_ror_32_r(void); +void m68k_op_ror_16_ai(void); +void m68k_op_ror_16_pi(void); +void m68k_op_ror_16_pd(void); +void m68k_op_ror_16_di(void); +void m68k_op_ror_16_ix(void); +void m68k_op_ror_16_aw(void); +void m68k_op_ror_16_al(void); +void m68k_op_rol_8_s(void); +void m68k_op_rol_16_s(void); +void m68k_op_rol_32_s(void); +void m68k_op_rol_8_r(void); +void m68k_op_rol_16_r(void); +void m68k_op_rol_32_r(void); +void m68k_op_rol_16_ai(void); +void m68k_op_rol_16_pi(void); +void m68k_op_rol_16_pd(void); +void m68k_op_rol_16_di(void); +void m68k_op_rol_16_ix(void); +void m68k_op_rol_16_aw(void); +void m68k_op_rol_16_al(void); +void m68k_op_roxr_8_s(void); +void m68k_op_roxr_16_s(void); +void m68k_op_roxr_32_s(void); +void m68k_op_roxr_8_r(void); +void m68k_op_roxr_16_r(void); +void m68k_op_roxr_32_r(void); +void m68k_op_roxr_16_ai(void); +void m68k_op_roxr_16_pi(void); +void m68k_op_roxr_16_pd(void); +void m68k_op_roxr_16_di(void); +void m68k_op_roxr_16_ix(void); +void m68k_op_roxr_16_aw(void); +void m68k_op_roxr_16_al(void); +void m68k_op_roxl_8_s(void); +void m68k_op_roxl_16_s(void); +void m68k_op_roxl_32_s(void); +void m68k_op_roxl_8_r(void); +void m68k_op_roxl_16_r(void); +void m68k_op_roxl_32_r(void); +void m68k_op_roxl_16_ai(void); +void m68k_op_roxl_16_pi(void); +void m68k_op_roxl_16_pd(void); +void m68k_op_roxl_16_di(void); +void m68k_op_roxl_16_ix(void); +void m68k_op_roxl_16_aw(void); +void m68k_op_roxl_16_al(void); +void m68k_op_rtd_32(void); +void m68k_op_rte_32(void); +void m68k_op_rtm_32(void); +void m68k_op_rtr_32(void); +void m68k_op_rts_32(void); +void m68k_op_sbcd_8_rr(void); +void m68k_op_sbcd_8_mm_ax7(void); +void m68k_op_sbcd_8_mm_ay7(void); +void m68k_op_sbcd_8_mm_axy7(void); +void m68k_op_sbcd_8_mm(void); +void m68k_op_st_8_d(void); +void m68k_op_st_8_ai(void); +void m68k_op_st_8_pi(void); +void m68k_op_st_8_pi7(void); +void m68k_op_st_8_pd(void); +void m68k_op_st_8_pd7(void); +void m68k_op_st_8_di(void); +void m68k_op_st_8_ix(void); +void m68k_op_st_8_aw(void); +void m68k_op_st_8_al(void); +void m68k_op_sf_8_d(void); +void m68k_op_sf_8_ai(void); +void m68k_op_sf_8_pi(void); +void m68k_op_sf_8_pi7(void); +void m68k_op_sf_8_pd(void); +void m68k_op_sf_8_pd7(void); +void m68k_op_sf_8_di(void); +void m68k_op_sf_8_ix(void); +void m68k_op_sf_8_aw(void); +void m68k_op_sf_8_al(void); +void m68k_op_shi_8_d(void); +void m68k_op_sls_8_d(void); +void m68k_op_scc_8_d(void); +void m68k_op_scs_8_d(void); +void m68k_op_sne_8_d(void); +void m68k_op_seq_8_d(void); +void m68k_op_svc_8_d(void); +void m68k_op_svs_8_d(void); +void m68k_op_spl_8_d(void); +void m68k_op_smi_8_d(void); +void m68k_op_sge_8_d(void); +void m68k_op_slt_8_d(void); +void m68k_op_sgt_8_d(void); +void m68k_op_sle_8_d(void); +void m68k_op_shi_8_ai(void); +void m68k_op_shi_8_pi(void); +void m68k_op_shi_8_pi7(void); +void m68k_op_shi_8_pd(void); +void m68k_op_shi_8_pd7(void); +void m68k_op_shi_8_di(void); +void m68k_op_shi_8_ix(void); +void m68k_op_shi_8_aw(void); +void m68k_op_shi_8_al(void); +void m68k_op_sls_8_ai(void); +void m68k_op_sls_8_pi(void); +void m68k_op_sls_8_pi7(void); +void m68k_op_sls_8_pd(void); +void m68k_op_sls_8_pd7(void); +void m68k_op_sls_8_di(void); +void m68k_op_sls_8_ix(void); +void m68k_op_sls_8_aw(void); +void m68k_op_sls_8_al(void); +void m68k_op_scc_8_ai(void); +void m68k_op_scc_8_pi(void); +void m68k_op_scc_8_pi7(void); +void m68k_op_scc_8_pd(void); +void m68k_op_scc_8_pd7(void); +void m68k_op_scc_8_di(void); +void m68k_op_scc_8_ix(void); +void m68k_op_scc_8_aw(void); +void m68k_op_scc_8_al(void); +void m68k_op_scs_8_ai(void); +void m68k_op_scs_8_pi(void); +void m68k_op_scs_8_pi7(void); +void m68k_op_scs_8_pd(void); +void m68k_op_scs_8_pd7(void); +void m68k_op_scs_8_di(void); +void m68k_op_scs_8_ix(void); +void m68k_op_scs_8_aw(void); +void m68k_op_scs_8_al(void); +void m68k_op_sne_8_ai(void); +void m68k_op_sne_8_pi(void); +void m68k_op_sne_8_pi7(void); +void m68k_op_sne_8_pd(void); +void m68k_op_sne_8_pd7(void); +void m68k_op_sne_8_di(void); +void m68k_op_sne_8_ix(void); +void m68k_op_sne_8_aw(void); +void m68k_op_sne_8_al(void); +void m68k_op_seq_8_ai(void); +void m68k_op_seq_8_pi(void); +void m68k_op_seq_8_pi7(void); +void m68k_op_seq_8_pd(void); +void m68k_op_seq_8_pd7(void); +void m68k_op_seq_8_di(void); +void m68k_op_seq_8_ix(void); +void m68k_op_seq_8_aw(void); +void m68k_op_seq_8_al(void); +void m68k_op_svc_8_ai(void); +void m68k_op_svc_8_pi(void); +void m68k_op_svc_8_pi7(void); +void m68k_op_svc_8_pd(void); +void m68k_op_svc_8_pd7(void); +void m68k_op_svc_8_di(void); +void m68k_op_svc_8_ix(void); +void m68k_op_svc_8_aw(void); +void m68k_op_svc_8_al(void); +void m68k_op_svs_8_ai(void); +void m68k_op_svs_8_pi(void); +void m68k_op_svs_8_pi7(void); +void m68k_op_svs_8_pd(void); +void m68k_op_svs_8_pd7(void); +void m68k_op_svs_8_di(void); +void m68k_op_svs_8_ix(void); +void m68k_op_svs_8_aw(void); +void m68k_op_svs_8_al(void); +void m68k_op_spl_8_ai(void); +void m68k_op_spl_8_pi(void); +void m68k_op_spl_8_pi7(void); +void m68k_op_spl_8_pd(void); +void m68k_op_spl_8_pd7(void); +void m68k_op_spl_8_di(void); +void m68k_op_spl_8_ix(void); +void m68k_op_spl_8_aw(void); +void m68k_op_spl_8_al(void); +void m68k_op_smi_8_ai(void); +void m68k_op_smi_8_pi(void); +void m68k_op_smi_8_pi7(void); +void m68k_op_smi_8_pd(void); +void m68k_op_smi_8_pd7(void); +void m68k_op_smi_8_di(void); +void m68k_op_smi_8_ix(void); +void m68k_op_smi_8_aw(void); +void m68k_op_smi_8_al(void); +void m68k_op_sge_8_ai(void); +void m68k_op_sge_8_pi(void); +void m68k_op_sge_8_pi7(void); +void m68k_op_sge_8_pd(void); +void m68k_op_sge_8_pd7(void); +void m68k_op_sge_8_di(void); +void m68k_op_sge_8_ix(void); +void m68k_op_sge_8_aw(void); +void m68k_op_sge_8_al(void); +void m68k_op_slt_8_ai(void); +void m68k_op_slt_8_pi(void); +void m68k_op_slt_8_pi7(void); +void m68k_op_slt_8_pd(void); +void m68k_op_slt_8_pd7(void); +void m68k_op_slt_8_di(void); +void m68k_op_slt_8_ix(void); +void m68k_op_slt_8_aw(void); +void m68k_op_slt_8_al(void); +void m68k_op_sgt_8_ai(void); +void m68k_op_sgt_8_pi(void); +void m68k_op_sgt_8_pi7(void); +void m68k_op_sgt_8_pd(void); +void m68k_op_sgt_8_pd7(void); +void m68k_op_sgt_8_di(void); +void m68k_op_sgt_8_ix(void); +void m68k_op_sgt_8_aw(void); +void m68k_op_sgt_8_al(void); +void m68k_op_sle_8_ai(void); +void m68k_op_sle_8_pi(void); +void m68k_op_sle_8_pi7(void); +void m68k_op_sle_8_pd(void); +void m68k_op_sle_8_pd7(void); +void m68k_op_sle_8_di(void); +void m68k_op_sle_8_ix(void); +void m68k_op_sle_8_aw(void); +void m68k_op_sle_8_al(void); +void m68k_op_stop(void); +void m68k_op_sub_8_er_d(void); +void m68k_op_sub_8_er_ai(void); +void m68k_op_sub_8_er_pi(void); +void m68k_op_sub_8_er_pi7(void); +void m68k_op_sub_8_er_pd(void); +void m68k_op_sub_8_er_pd7(void); +void m68k_op_sub_8_er_di(void); +void m68k_op_sub_8_er_ix(void); +void m68k_op_sub_8_er_aw(void); +void m68k_op_sub_8_er_al(void); +void m68k_op_sub_8_er_pcdi(void); +void m68k_op_sub_8_er_pcix(void); +void m68k_op_sub_8_er_i(void); +void m68k_op_sub_16_er_d(void); +void m68k_op_sub_16_er_a(void); +void m68k_op_sub_16_er_ai(void); +void m68k_op_sub_16_er_pi(void); +void m68k_op_sub_16_er_pd(void); +void m68k_op_sub_16_er_di(void); +void m68k_op_sub_16_er_ix(void); +void m68k_op_sub_16_er_aw(void); +void m68k_op_sub_16_er_al(void); +void m68k_op_sub_16_er_pcdi(void); +void m68k_op_sub_16_er_pcix(void); +void m68k_op_sub_16_er_i(void); +void m68k_op_sub_32_er_d(void); +void m68k_op_sub_32_er_a(void); +void m68k_op_sub_32_er_ai(void); +void m68k_op_sub_32_er_pi(void); +void m68k_op_sub_32_er_pd(void); +void m68k_op_sub_32_er_di(void); +void m68k_op_sub_32_er_ix(void); +void m68k_op_sub_32_er_aw(void); +void m68k_op_sub_32_er_al(void); +void m68k_op_sub_32_er_pcdi(void); +void m68k_op_sub_32_er_pcix(void); +void m68k_op_sub_32_er_i(void); +void m68k_op_sub_8_re_ai(void); +void m68k_op_sub_8_re_pi(void); +void m68k_op_sub_8_re_pi7(void); +void m68k_op_sub_8_re_pd(void); +void m68k_op_sub_8_re_pd7(void); +void m68k_op_sub_8_re_di(void); +void m68k_op_sub_8_re_ix(void); +void m68k_op_sub_8_re_aw(void); +void m68k_op_sub_8_re_al(void); +void m68k_op_sub_16_re_ai(void); +void m68k_op_sub_16_re_pi(void); +void m68k_op_sub_16_re_pd(void); +void m68k_op_sub_16_re_di(void); +void m68k_op_sub_16_re_ix(void); +void m68k_op_sub_16_re_aw(void); +void m68k_op_sub_16_re_al(void); +void m68k_op_sub_32_re_ai(void); +void m68k_op_sub_32_re_pi(void); +void m68k_op_sub_32_re_pd(void); +void m68k_op_sub_32_re_di(void); +void m68k_op_sub_32_re_ix(void); +void m68k_op_sub_32_re_aw(void); +void m68k_op_sub_32_re_al(void); +void m68k_op_suba_16_d(void); +void m68k_op_suba_16_a(void); +void m68k_op_suba_16_ai(void); +void m68k_op_suba_16_pi(void); +void m68k_op_suba_16_pd(void); +void m68k_op_suba_16_di(void); +void m68k_op_suba_16_ix(void); +void m68k_op_suba_16_aw(void); +void m68k_op_suba_16_al(void); +void m68k_op_suba_16_pcdi(void); +void m68k_op_suba_16_pcix(void); +void m68k_op_suba_16_i(void); +void m68k_op_suba_32_d(void); +void m68k_op_suba_32_a(void); +void m68k_op_suba_32_ai(void); +void m68k_op_suba_32_pi(void); +void m68k_op_suba_32_pd(void); +void m68k_op_suba_32_di(void); +void m68k_op_suba_32_ix(void); +void m68k_op_suba_32_aw(void); +void m68k_op_suba_32_al(void); +void m68k_op_suba_32_pcdi(void); +void m68k_op_suba_32_pcix(void); +void m68k_op_suba_32_i(void); +void m68k_op_subi_8_d(void); +void m68k_op_subi_8_ai(void); +void m68k_op_subi_8_pi(void); +void m68k_op_subi_8_pi7(void); +void m68k_op_subi_8_pd(void); +void m68k_op_subi_8_pd7(void); +void m68k_op_subi_8_di(void); +void m68k_op_subi_8_ix(void); +void m68k_op_subi_8_aw(void); +void m68k_op_subi_8_al(void); +void m68k_op_subi_16_d(void); +void m68k_op_subi_16_ai(void); +void m68k_op_subi_16_pi(void); +void m68k_op_subi_16_pd(void); +void m68k_op_subi_16_di(void); +void m68k_op_subi_16_ix(void); +void m68k_op_subi_16_aw(void); +void m68k_op_subi_16_al(void); +void m68k_op_subi_32_d(void); +void m68k_op_subi_32_ai(void); +void m68k_op_subi_32_pi(void); +void m68k_op_subi_32_pd(void); +void m68k_op_subi_32_di(void); +void m68k_op_subi_32_ix(void); +void m68k_op_subi_32_aw(void); +void m68k_op_subi_32_al(void); +void m68k_op_subq_8_d(void); +void m68k_op_subq_8_ai(void); +void m68k_op_subq_8_pi(void); +void m68k_op_subq_8_pi7(void); +void m68k_op_subq_8_pd(void); +void m68k_op_subq_8_pd7(void); +void m68k_op_subq_8_di(void); +void m68k_op_subq_8_ix(void); +void m68k_op_subq_8_aw(void); +void m68k_op_subq_8_al(void); +void m68k_op_subq_16_d(void); +void m68k_op_subq_16_a(void); +void m68k_op_subq_16_ai(void); +void m68k_op_subq_16_pi(void); +void m68k_op_subq_16_pd(void); +void m68k_op_subq_16_di(void); +void m68k_op_subq_16_ix(void); +void m68k_op_subq_16_aw(void); +void m68k_op_subq_16_al(void); +void m68k_op_subq_32_d(void); +void m68k_op_subq_32_a(void); +void m68k_op_subq_32_ai(void); +void m68k_op_subq_32_pi(void); +void m68k_op_subq_32_pd(void); +void m68k_op_subq_32_di(void); +void m68k_op_subq_32_ix(void); +void m68k_op_subq_32_aw(void); +void m68k_op_subq_32_al(void); +void m68k_op_subx_8_rr(void); +void m68k_op_subx_16_rr(void); +void m68k_op_subx_32_rr(void); +void m68k_op_subx_8_mm_ax7(void); +void m68k_op_subx_8_mm_ay7(void); +void m68k_op_subx_8_mm_axy7(void); +void m68k_op_subx_8_mm(void); +void m68k_op_subx_16_mm(void); +void m68k_op_subx_32_mm(void); +void m68k_op_swap_32(void); +void m68k_op_tas_8_d(void); +void m68k_op_tas_8_ai(void); +void m68k_op_tas_8_pi(void); +void m68k_op_tas_8_pi7(void); +void m68k_op_tas_8_pd(void); +void m68k_op_tas_8_pd7(void); +void m68k_op_tas_8_di(void); +void m68k_op_tas_8_ix(void); +void m68k_op_tas_8_aw(void); +void m68k_op_tas_8_al(void); +void m68k_op_trap(void); +void m68k_op_trapt(void); +void m68k_op_trapt_16(void); +void m68k_op_trapt_32(void); +void m68k_op_trapf(void); +void m68k_op_trapf_16(void); +void m68k_op_trapf_32(void); +void m68k_op_traphi(void); +void m68k_op_trapls(void); +void m68k_op_trapcc(void); +void m68k_op_trapcs(void); +void m68k_op_trapne(void); +void m68k_op_trapeq(void); +void m68k_op_trapvc(void); +void m68k_op_trapvs(void); +void m68k_op_trappl(void); +void m68k_op_trapmi(void); +void m68k_op_trapge(void); +void m68k_op_traplt(void); +void m68k_op_trapgt(void); +void m68k_op_traple(void); +void m68k_op_traphi_16(void); +void m68k_op_trapls_16(void); +void m68k_op_trapcc_16(void); +void m68k_op_trapcs_16(void); +void m68k_op_trapne_16(void); +void m68k_op_trapeq_16(void); +void m68k_op_trapvc_16(void); +void m68k_op_trapvs_16(void); +void m68k_op_trappl_16(void); +void m68k_op_trapmi_16(void); +void m68k_op_trapge_16(void); +void m68k_op_traplt_16(void); +void m68k_op_trapgt_16(void); +void m68k_op_traple_16(void); +void m68k_op_traphi_32(void); +void m68k_op_trapls_32(void); +void m68k_op_trapcc_32(void); +void m68k_op_trapcs_32(void); +void m68k_op_trapne_32(void); +void m68k_op_trapeq_32(void); +void m68k_op_trapvc_32(void); +void m68k_op_trapvs_32(void); +void m68k_op_trappl_32(void); +void m68k_op_trapmi_32(void); +void m68k_op_trapge_32(void); +void m68k_op_traplt_32(void); +void m68k_op_trapgt_32(void); +void m68k_op_traple_32(void); +void m68k_op_trapv(void); +void m68k_op_tst_8_d(void); +void m68k_op_tst_8_ai(void); +void m68k_op_tst_8_pi(void); +void m68k_op_tst_8_pi7(void); +void m68k_op_tst_8_pd(void); +void m68k_op_tst_8_pd7(void); +void m68k_op_tst_8_di(void); +void m68k_op_tst_8_ix(void); +void m68k_op_tst_8_aw(void); +void m68k_op_tst_8_al(void); +void m68k_op_tst_8_pcdi(void); +void m68k_op_tst_8_pcix(void); +void m68k_op_tst_8_i(void); +void m68k_op_tst_16_d(void); +void m68k_op_tst_16_a(void); +void m68k_op_tst_16_ai(void); +void m68k_op_tst_16_pi(void); +void m68k_op_tst_16_pd(void); +void m68k_op_tst_16_di(void); +void m68k_op_tst_16_ix(void); +void m68k_op_tst_16_aw(void); +void m68k_op_tst_16_al(void); +void m68k_op_tst_16_pcdi(void); +void m68k_op_tst_16_pcix(void); +void m68k_op_tst_16_i(void); +void m68k_op_tst_32_d(void); +void m68k_op_tst_32_a(void); +void m68k_op_tst_32_ai(void); +void m68k_op_tst_32_pi(void); +void m68k_op_tst_32_pd(void); +void m68k_op_tst_32_di(void); +void m68k_op_tst_32_ix(void); +void m68k_op_tst_32_aw(void); +void m68k_op_tst_32_al(void); +void m68k_op_tst_32_pcdi(void); +void m68k_op_tst_32_pcix(void); +void m68k_op_tst_32_i(void); +void m68k_op_unlk_32_a7(void); +void m68k_op_unlk_32(void); +void m68k_op_unpk_16_rr(void); +void m68k_op_unpk_16_mm_ax7(void); +void m68k_op_unpk_16_mm_ay7(void); +void m68k_op_unpk_16_mm_axy7(void); +void m68k_op_unpk_16_mm(void); +/* Build the opcode handler table */ +void m68ki_build_opcode_table(void); + +extern void (*m68ki_instruction_jump_table[0x10000])(void); /* opcode handler jump table */ +extern unsigned char m68ki_cycles[][0x10000]; + + +/* ======================================================================== */ +/* ============================== END OF FILE ============================= */ +/* ======================================================================== */ + +#endif /* M68KOPS__HEADER */ + + diff --git a/AltairZ80/m68ksim.c b/AltairZ80/m68ksim.c new file mode 100644 index 00000000..f0686233 --- /dev/null +++ b/AltairZ80/m68ksim.c @@ -0,0 +1,543 @@ +/* m68kcpmsim.c: CP/M for Motorola 68000 definitions + + Copyright (c) 2014, Peter Schorn + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + PETER SCHORN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Peter Schorn shall not + be used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Peter Schorn. + + Based on work by David W. Schultz http://home.earthlink.net/~david.schultz (c) 2014 + + + MC68000 simulation tailored to support CP/M-68K. It includes: + + 16MB of memory. (Flat, function codes and address space types ignored.) + + Console I/O using a MC6850 like serial port with interrupts. + + Simulated disk system: + + Since the intent is to support CP/M-68K and it does disk I/O in 128 byte + chunks, so will this. Control is via several registers mapped into memory: + + Offset Function Description + 0 DMA address to read/write data to + 4 drive select disk drive + 8 read sector sector (128 byte) offset on disk + 12 write sector sector (128 byte) offset on disk + 16 status read status of operation + + Operation is simple: Set the drive and DMA address and then write the + sector number to the sector register. This write triggers the requested + operation. The status of the operation can be determined by reading the + status register. + A zero indicates that no error occured. + + Note that these operations invoke read() and write() system calls directly + so that they will alter the image on the hard disk. KEEP BACKUPS! + + In addition Linux will buffer the writes so they may note be really complete + for a while. The BIOS flush function invokes a fsync on all open files. + + There are two options for booting CPM: + + S-records: This loads CPM in two parts. The first is in cpm400.bin which + is created from the srecords in cpm400.sr. The second is in simbios.bin + which contains the BIOS. Both of these files must be binaries and not + srecords. + + If you want to alter the bios, rebuild simbios.bin using: + + asl simbios.s + p2bin simbios.p + + Use altairz80 cpm68k_s to boot. + + Boot track: A CPM loader is in the boot track of simulated drive C. 32K of + data is loaded from that file to memory starting at $400. + + Use altairz80 cpm68k to boot. + + */ + +#include "m68k.h" + +/* Read/write macros */ +#define READ_BYTE(BASE, ADDR) (BASE)[ADDR] +#define READ_WORD(BASE, ADDR) (((BASE)[ADDR] << 8) | \ + (BASE)[(ADDR) + 1]) +#define READ_LONG(BASE, ADDR) (((BASE)[ADDR] << 24) | \ + ((BASE)[(ADDR) + 1] << 16) | \ + ((BASE)[(ADDR) + 2] << 8) | \ + (BASE)[(ADDR) + 3]) + +#define WRITE_BYTE(BASE, ADDR, VAL) (BASE)[ADDR] = (VAL) & 0xff +#define WRITE_WORD(BASE, ADDR, VAL) (BASE)[ADDR] = ((VAL) >> 8) & 0xff; \ + (BASE)[(ADDR)+1] = (VAL)&0xff +#define WRITE_LONG(BASE, ADDR, VAL) (BASE)[ADDR] = ((VAL) >> 24) & 0xff; \ + (BASE)[(ADDR) + 1] = ((VAL) >> 16) & 0xff; \ + (BASE)[(ADDR) + 2] = ((VAL) >> 8) & 0xff; \ + (BASE)[(ADDR) + 3] = (VAL) & 0xff + +/* Memory-mapped IO ports */ + +/* 6850 serial port like thing. Implements a reduced set of functionallity. */ +#define MC6850_STAT 0xff1000L // command/status register +#define MC6850_DATA 0xff1002L // receive/transmit data register + +/* Memory mapped disk system */ +#define DISK_BASE 0xff0000L +#define DISK_SET_DMA (DISK_BASE) +#define DISK_SET_DRIVE (DISK_BASE + 4) +#define DISK_SET_SECTOR (DISK_BASE + 8) +#define DISK_READ (DISK_BASE + 12) +#define DISK_WRITE (DISK_BASE + 16) +#define DISK_STATUS (DISK_BASE + 20) +#define DISK_FLUSH (DISK_BASE + 24) + +/* Miscellaneous */ +#define M68K_GET_TIME (0xff7ff8) // read long to get time in seconds +#define M68K_STOP_CPU (0xff7ffc) // write long to stop CPU and return to SIMH prompt + +/* IRQ connections */ +#define IRQ_NMI_DEVICE 7 +#define IRQ_MC6850 5 + +extern uint32 PCX; + +/* Prototypes */ +static void MC6850_reset(void); +static void m68k_input_device_update(void); +static int nmi_device_ack(void); +static void int_controller_set(uint32 value); +static void int_controller_clear(uint32 value); + +/* Data */ +static int m68k_MC6850_control = 0; /* MC6850 control register */ +static int m68k_MC6850_status = 2; /* MC6850 status register */ +static t_stat keyboardCharacter; /* one character buffer */ +static t_bool characterAvailable = FALSE; /* buffer initially empty */ + +static uint32 m68k_int_controller_pending = 0; /* list of pending interrupts */ +static uint32 m68k_int_controller_highest_int = 0; /* Highest pending interrupt */ + +static uint8 m68k_ram[M68K_MAX_RAM + 1]; /* RAM */ + +/* Interface to HDSK device */ +extern void hdsk_prepareRead(void); +extern void hdsk_prepareWrite(void); +extern void hdsk_setSelectedDisk(const int32 disk); +extern void hdsk_setSelectedSector(const int32 sector); +extern void hdsk_setSelectedTrack(const int32 track); +extern void hdsk_setSelectedDMA(const int32 dma); +extern int32 hdsk_getStatus(void); +extern t_bool hdsk_checkParameters(void); +extern int32 hdsk_read(void); +extern int32 hdsk_write(void); +extern int32 hdsk_flush(void); + +static uint32 m68k_fc; /* Current function code from CPU */ + +extern uint32 m68k_registers[M68K_REG_CPU_TYPE + 1]; +extern UNIT cpu_unit; + +#define M68K_BOOT_LENGTH (32 * 1024) /* size of bootstrap */ +#define M68K_BOOT_PC 0x000400 /* initial PC for boot */ +#define M68K_BOOT_SP 0xfe0000 /* initial SP for boot */ + +t_stat m68k_hdsk_boot(const int32 unitno, DEVICE *dptr, + const uint32 verboseMessage, const uint32 hdskNumber) { + UNIT *uptr; + size_t i; + + if ((unitno < 0) || (unitno >= hdskNumber)) + return SCPE_ARG; + + uptr = (dptr -> units) + unitno; + if (((uptr -> flags) & UNIT_ATT) == 0) { + sim_debug(verboseMessage, dptr, "HDSK%d: Boot drive is not attached.\n", unitno); + return SCPE_ARG; + } + + if (sim_fseek(uptr -> fileref, 0, SEEK_SET) != 0) { + sim_debug(verboseMessage, dptr, "HDSK%d: Boot error seeking start.\n", unitno); + return SCPE_ARG; + } + + i = sim_fread(&m68k_ram[M68K_BOOT_PC], 1, M68K_BOOT_LENGTH, uptr -> fileref); + if (i != M68K_BOOT_LENGTH) { + sim_debug(verboseMessage, dptr, + "HDSK%d: Error: Failed to read %i bytes from boot drive.\n", + unitno, M68K_BOOT_LENGTH); + return SCPE_ARG; + } + + // Now put in values for the stack and PC vectors + WRITE_LONG(m68k_ram, 0, M68K_BOOT_SP); // SP + WRITE_LONG(m68k_ram, 4, M68K_BOOT_PC); // PC + m68k_pulse_reset(); // also calls MC6850_reset() + m68k_CPUToView(); + return SCPE_OK; +} + +void m68k_CPUToView(void) { + uint32 reg; + for (reg = M68K_REG_D0; reg <= M68K_REG_CPU_TYPE; reg++) + m68k_registers[reg] = m68k_get_reg(NULL, reg); +} + +void m68k_viewToCPU(void) { + uint32 reg; + for (reg = M68K_REG_D0; reg <= M68K_REG_CPU_TYPE; reg++) + m68k_set_reg(reg, m68k_registers[reg]); +} + +t_stat sim_instr_m68k(void) { + t_stat reason = SCPE_OK; + m68k_viewToCPU(); + while (TRUE) { + if (sim_interval <= 0) { /* check clock queue */ +#if !UNIX_PLATFORM + if ((reason = sim_poll_kbd()) == SCPE_STOP) /* poll on platforms without reliable + signalling */ + break; +#endif + if ((reason = sim_process_event())) + break; + m68k_input_device_update(); + } + if (sim_brk_summ && sim_brk_test(m68k_get_reg(NULL, M68K_REG_PC), SWMASK('E'))) { + /* breakpoint? */ + reason = STOP_IBKPT; /* stop simulation */ + break; + } + PCX = m68k_get_reg(NULL, M68K_REG_PC); + sim_interval--; + m68k_execute(1); + if (stop_cpu) { + reason = SCPE_STOP; + break; + } + } + m68k_CPUToView(); + return reason; +} + +void m68k_clear_memory(void ) { + uint32 i; + for (i = 0; i <= M68K_MAX_RAM; i++) + m68k_ram[i] = 0; +} + +void m68k_cpu_reset(void) { + WRITE_LONG(m68k_ram, 0, 0x00006000); // SP + WRITE_LONG(m68k_ram, 4, 0x00000200); // PC + m68k_pulse_reset(); // also calls MC6850_reset() + m68k_CPUToView(); +} + +/* Implementation for the MC6850 like device + + Only those bits of the control register that enable/disable receive and + transmit interrupts are implemented. + + In the status register, the Receive Data Register Full, Transmit Data + Register Empty, and IRQ flags are implemented. Although the transmit + data register is always empty. + */ + +static void MC6850_reset(void) { + m68k_MC6850_control = 0; + m68k_MC6850_status = 2; + characterAvailable = FALSE; + int_controller_clear(IRQ_MC6850); +} + +#define INITIAL_IDLE 100 +#define IDLE_SLEEP 20 +static uint32 idleCount = INITIAL_IDLE; + +static void m68k_input_device_update(void) { + if (characterAvailable) { + m68k_MC6850_status |= 1; + if ((m68k_MC6850_control & 0x80) && !(m68k_MC6850_status & 0x80)) { + int_controller_set(IRQ_MC6850); + m68k_MC6850_status |= 0x80; + } + } else if (--idleCount == 0) { + const t_stat ch = sim_poll_kbd(); + idleCount = INITIAL_IDLE; + if (IDLE_SLEEP) + sim_os_ms_sleep(IDLE_SLEEP); + if (ch) { + characterAvailable = TRUE; + keyboardCharacter = ch; + } + } +} + +/* wait until character becomes available */ +static uint32 MC6850_data_read(void) { + t_stat ch; + int_controller_clear(IRQ_MC6850); + m68k_MC6850_status &= ~0x81; // clear data ready and interrupt flag + if (characterAvailable) { + ch = keyboardCharacter; + characterAvailable = FALSE; + } else + ch = sim_poll_kbd(); + while ((ch <= 0) && (!stop_cpu)) { + if (IDLE_SLEEP) + sim_os_ms_sleep(IDLE_SLEEP); + ch = sim_poll_kbd(); + } + if (ch == SCPE_STOP) + stop_cpu = TRUE; + return (((ch > 0) && (!stop_cpu)) ? ch & 0xff : 0xff); +} + +static int MC6850_status_read() { + return m68k_MC6850_status; +} + +/* Implementation for the output device */ +static int MC6850_device_ack(void) { + return M68K_INT_ACK_AUTOVECTOR; +} + +static void MC6850_data_write(uint32 value) { + sim_putchar(value); + if ((m68k_MC6850_control & 0x60) == 0x20) { // transmit interupt enabled? + int_controller_clear(IRQ_MC6850); + int_controller_set(IRQ_MC6850); + } +} + +static void MC6850_control_write(uint32 val) { + m68k_MC6850_control = val; +} + +/* Read data from RAM */ +unsigned int m68k_cpu_read_byte_raw(unsigned int address) { + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to read byte from non existing memory 0x%08x." NLP, + PCX, address); + return 0xff; + } + return READ_BYTE(m68k_ram, address); +} + +unsigned int m68k_cpu_read_byte(unsigned int address) { + switch(address) { + case MC6850_DATA: + return MC6850_data_read(); + case MC6850_STAT: + return MC6850_status_read(); + default: + break; + } + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to read byte from non existing memory 0x%08x." NLP, + PCX, address); + return 0xff; + } + return READ_BYTE(m68k_ram, address); +} + +unsigned int m68k_cpu_read_word(unsigned int address) { + switch(address) { + case DISK_STATUS: + return hdsk_getStatus(); + default: + break; + } + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to read word from non existing memory 0x%08x." NLP, + PCX, address); + return 0xffff; + } + return READ_WORD(m68k_ram, address); +} + +unsigned int m68k_cpu_read_long(unsigned int address) { + switch(address) { + case DISK_STATUS: + return hdsk_getStatus(); + case M68K_GET_TIME: + return time(NULL); + default: + break; + } + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to read long from non existing memory 0x%08x." NLP, + PCX, address); + return 0xffffffff; + } + return READ_LONG(m68k_ram, address); +} + + +/* Write data to RAM or a device */ +void m68k_cpu_write_byte_raw(unsigned int address, unsigned int value) { + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to write byte 0x%02x to non existing memory 0x%08x." NLP, + PCX, value & 0xff, address); + return; + } + WRITE_BYTE(m68k_ram, address, value); +} + +void m68k_cpu_write_byte(unsigned int address, unsigned int value) { + switch(address) { + case MC6850_DATA: + MC6850_data_write(value & 0xff); + return; + case MC6850_STAT: + MC6850_control_write(value & 0xff); + return; + default: + break; + } + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to write byte 0x%02x to non existing memory 0x%08x." NLP, + PCX, value & 0xff, address); + return; + } + WRITE_BYTE(m68k_ram, address, value); +} + +void m68k_cpu_write_word(unsigned int address, unsigned int value) { + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to write word 0x%04x to non existing memory 0x%08x." NLP, + PCX, value & 0xffff, address); + return; + } + WRITE_WORD(m68k_ram, address, value); +} + +void m68k_cpu_write_long(unsigned int address, unsigned int value) { + switch(address) { + case DISK_SET_DRIVE: + hdsk_setSelectedDisk(value); + return; + + case DISK_SET_DMA: + hdsk_setSelectedDMA(value); + return; + + case DISK_SET_SECTOR: + hdsk_setSelectedSector(value); + return; + + case DISK_READ: + hdsk_setSelectedSector(value); + hdsk_setSelectedTrack(0); + hdsk_prepareRead(); + if (hdsk_checkParameters()) + hdsk_read(); + return; + + case DISK_WRITE: + hdsk_setSelectedSector(value); + hdsk_setSelectedTrack(0); + hdsk_prepareWrite(); + if (hdsk_checkParameters()) + hdsk_write(); + return; + + case DISK_FLUSH: + hdsk_flush(); + return; + + case M68K_STOP_CPU: + stop_cpu = TRUE; + return; + + default: + break; + } + if (address > M68K_MAX_RAM) { + if (cpu_unit.flags & UNIT_CPU_VERBOSE) + printf("M68K: 0x%08x Attempt to write long 0x%08x to non existing memory 0x%08x." NLP, + PCX, value, address); + return; + } + WRITE_LONG(m68k_ram, address, value); +} + +/* Called when the CPU pulses the RESET line */ +void m68k_cpu_pulse_reset(void) { + MC6850_reset(); +} + +/* Called when the CPU changes the function code pins */ +void m68k_cpu_set_fc(unsigned int fc) { + m68k_fc = fc; +} + +/* Called when the CPU acknowledges an interrupt */ +int m68k_cpu_irq_ack(int level) { + switch(level) { + case IRQ_NMI_DEVICE: + return nmi_device_ack(); + case IRQ_MC6850: + return MC6850_device_ack(); + } + return M68K_INT_ACK_SPURIOUS; +} + +/* Implementation for the NMI device */ +static int nmi_device_ack(void) { + int_controller_clear(IRQ_NMI_DEVICE); + return M68K_INT_ACK_AUTOVECTOR; +} + +/* Implementation for the interrupt controller */ +static void int_controller_set(uint32 value) { + const uint32 old_pending = m68k_int_controller_pending; + m68k_int_controller_pending |= (1< m68k_int_controller_highest_int) { + m68k_int_controller_highest_int = value; + m68k_set_irq(m68k_int_controller_highest_int); + } +} + +static void int_controller_clear(uint32 value) { + m68k_int_controller_pending &= ~(1< 0;m68k_int_controller_highest_int--) + if (m68k_int_controller_pending & (1< + + + + + + + + + + + + + + + + + + + + + diff --git a/descrip.mms b/descrip.mms index 6abd1298..06f2669f 100644 --- a/descrip.mms +++ b/descrip.mms @@ -330,7 +330,10 @@ ALTAIRZ80_SOURCE2 = $(ALTAIRZ80_DIR)S100_DISK1A.C,$(ALTAIRZ80_DIR)S100_DISK2.C,\ $(ALTAIRZ80_DIR)S100_SCP300F.C,$(ALTAIRZ80_DIR)SIM_IMD.C,\ $(ALTAIRZ80_DIR)WD179X.C,$(ALTAIRZ80_DIR)S100_DISK3.C,\ $(ALTAIRZ80_DIR)S100_ADCS6.C,$(ALTAIRZ80_DIR)S100_HDC1001.C,\ - $(ALTAIRZ80_DIR)S100_IF3.C,$(ALTAIRZ80_DIR)ALTAIRZ80_MHDSK.C + $(ALTAIRZ80_DIR)S100_IF3.C,$(ALTAIRZ80_DIR)ALTAIRZ80_MHDSK.C,\ + $(ALTAIRZ80_DIR)M68KCPU.C,$(ALTAIRZ80_DIR)M68KDASM.C,\ + $(ALTAIRZ80_DIR)M68KOPAC.C,$(ALTAIRZ80_DIR)M68KOPDM.C,\ + $(ALTAIRZ80_DIR)M68KOPNZ.C,$(ALTAIRZ80_DIR)M68KOPS.C,$(ALTAIRZ80_DIR)M68KSIM.C ALTAIRZ80_OPTIONS = /INCL=($(SIMH_DIR),$(ALTAIRZ80_DIR))/DEF=($(CC_DEFS)) # diff --git a/makefile b/makefile index d04097e1..db28ea01 100644 --- a/makefile +++ b/makefile @@ -1021,7 +1021,10 @@ ALTAIRZ80 = ${ALTAIRZ80D}/altairz80_cpu.c ${ALTAIRZ80D}/altairz80_cpu_nommu.c \ ${ALTAIRZ80D}/s100_ss1.c ${ALTAIRZ80D}/s100_64fdc.c \ ${ALTAIRZ80D}/s100_scp300f.c ${ALTAIRZ80D}/sim_imd.c \ ${ALTAIRZ80D}/wd179x.c ${ALTAIRZ80D}/s100_hdc1001.c \ - ${ALTAIRZ80D}/s100_if3.c ${ALTAIRZ80D}/s100_adcs6.c + ${ALTAIRZ80D}/s100_if3.c ${ALTAIRZ80D}/s100_adcs6.c \ + ${ALTAIRZ80D}/m68kcpu.c ${ALTAIRZ80D}/m68kdasm.c \ + ${ALTAIRZ80D}/m68kopac.c ${ALTAIRZ80D}/m68kopdm.c \ + ${ALTAIRZ80D}/m68kopnz.c ${ALTAIRZ80D}/m68kops.c ${ALTAIRZ80D}/m68ksim.c ALTAIRZ80_OPT = -I ${ALTAIRZ80D}