// license:BSD-3-Clause // copyright-holders:Farfetch'd, Richter Belmont #pragma once #ifndef __V60_H__ #define __V60_H__ enum { V60_R0 = 1, V60_R1, V60_R2, V60_R3, V60_R4, V60_R5, V60_R6, V60_R7, V60_R8, V60_R9, V60_R10, V60_R11, V60_R12, V60_R13, V60_R14, V60_R15, V60_R16, V60_R17, V60_R18, V60_R19, V60_R20, V60_R21, V60_R22, V60_R23, V60_R24, V60_R25, V60_R26, V60_R27, V60_R28, V60_AP, V60_FP, V60_SP, V60_PC, V60_PSW, V60_U1, V60_U2, V60_ISP, V60_L0SP, V60_L1SP, V60_L2SP, V60_L3SP, V60_SBR, V60_TR, V60_SYCW, V60_TKCW, V60_PIR, V60_Res1, V60_Res2, V60_Res3, V60_Res4, V60_Res5, V60_PSW2, V60_ATBR0, V60_ATLR0, V60_ATBR1, V60_ATLR1, V60_ATBR2, V60_ATLR2, V60_ATBR3, V60_ATLR3, V60_TRMODE, V60_ADTR0, V60_ADTR1, V60_ADTMR0, V60_ADTMR1, V60_Res6, V60_Res7, V60_Res8, V60_REGMAX }; class v60_device : public cpu_device { public: // construction/destruction v60_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); v60_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); void stall(); protected: // device-level overrides virtual void device_start(); virtual void device_reset(); // device_execute_interface overrides virtual UINT32 execute_min_cycles() const { return 1; } virtual UINT32 execute_max_cycles() const { return 1; } virtual UINT32 execute_input_lines() const { return 1; } virtual void execute_run(); virtual void execute_set_input(int inputnum, int state); // device_memory_interface overrides virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const { return (spacenum == AS_PROGRAM) ? &m_program_config : ( (spacenum == AS_IO) ? &m_io_config : NULL ); } // device_state_interface overrides virtual void state_import(const device_state_entry &entry); virtual void state_export(const device_state_entry &entry); // device_disasm_interface overrides virtual UINT32 disasm_min_opcode_bytes() const { return 1; } virtual UINT32 disasm_max_opcode_bytes() const { return 22; } virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options); private: typedef UINT32 (v60_device::*am_func)(); typedef UINT32 (v60_device::*op6_func)(int reg); static const am_func s_AMTable1_G7a[16]; static const am_func s_BAMTable1_G7a[16]; static const am_func s_AMTable1_G7[32]; static const am_func s_BAMTable1_G7[32]; static const am_func s_AMTable1_G6[8]; static const am_func s_BAMTable1_G6[8]; static const am_func s_AMTable1[2][8]; static const am_func s_BAMTable1[2][8]; static const am_func s_AMTable2_G7a[16]; static const am_func s_BAMTable2_G7a[16]; static const am_func s_AMTable2_G7[32]; static const am_func s_BAMTable2_G7[32]; static const am_func s_AMTable2_G6[8]; static const am_func s_BAMTable2_G6[8]; static const am_func s_AMTable2[2][8]; static const am_func s_BAMTable2[2][8]; static const am_func s_AMTable3_G7a[16]; static const am_func s_AMTable3_G7[32]; static const am_func s_AMTable3_G6[8]; static const am_func s_AMTable3[2][8]; static const am_func s_Op5FTable[32]; static const am_func s_Op5CTable[32]; static const op6_func s_OpC6Table[8]; static const op6_func s_OpC7Table[8]; static const am_func s_Op59Table[32]; static const am_func s_Op5BTable[32]; static const am_func s_Op5DTable[32]; static const am_func s_Op58Table[32]; static const am_func s_Op5ATable[32]; static const am_func s_OpCodeTable[256]; address_space_config m_program_config; address_space_config m_io_config; offs_t m_fetch_xor; offs_t m_start_pc; UINT32 m_reg[68]; struct { UINT8 CY; UINT8 OV; UINT8 S; UINT8 Z; } m_flags; UINT8 m_irq_line; UINT8 m_nmi_line; address_space *m_program; direct_read_data * m_direct; address_space *m_io; UINT32 m_PPC; int m_icount; int m_stall_io; UINT32 m_op1, m_op2; UINT8 m_flag1, m_flag2; UINT8 m_instflags; UINT32 m_lenop1, m_lenop2; UINT8 m_subop; UINT32 m_bamoffset1, m_bamoffset2; // Output variables for ReadAMAddress(cpustate) UINT8 m_amflag; UINT32 m_amout; UINT32 m_bamoffset; // Appo temp var UINT32 m_amlength1, m_amlength2; // Global vars used by AM functions UINT32 m_modadd; UINT8 m_modm; UINT8 m_modval; UINT8 m_modval2; UINT8 m_modwritevalb; UINT16 m_modwritevalh; UINT32 m_modwritevalw; UINT8 m_moddim; UINT32 m_debugger_temp; inline void v60SaveStack(); inline void v60ReloadStack(); inline UINT32 v60ReadPSW(); inline void v60WritePSW(UINT32 newval); inline UINT32 v60_update_psw_for_exception(int is_interrupt, int target_level); UINT32 am1Register(); UINT32 am1RegisterIndirect(); UINT32 bam1RegisterIndirect(); UINT32 am1RegisterIndirectIndexed(); UINT32 bam1RegisterIndirectIndexed(); UINT32 am1Autoincrement(); UINT32 bam1Autoincrement(); UINT32 am1Autodecrement(); UINT32 bam1Autodecrement(); UINT32 am1Displacement8(); UINT32 bam1Displacement8(); UINT32 am1Displacement16(); UINT32 bam1Displacement16(); UINT32 am1Displacement32(); UINT32 bam1Displacement32(); UINT32 am1DisplacementIndexed8(); UINT32 bam1DisplacementIndexed8(); UINT32 am1DisplacementIndexed16(); UINT32 bam1DisplacementIndexed16(); UINT32 am1DisplacementIndexed32(); UINT32 bam1DisplacementIndexed32(); UINT32 am1PCDisplacement8(); UINT32 bam1PCDisplacement8(); UINT32 am1PCDisplacement16(); UINT32 bam1PCDisplacement16(); UINT32 am1PCDisplacement32(); UINT32 bam1PCDisplacement32(); UINT32 am1PCDisplacementIndexed8(); UINT32 bam1PCDisplacementIndexed8(); UINT32 am1PCDisplacementIndexed16(); UINT32 bam1PCDisplacementIndexed16(); UINT32 am1PCDisplacementIndexed32(); UINT32 bam1PCDisplacementIndexed32(); UINT32 am1DisplacementIndirect8(); UINT32 bam1DisplacementIndirect8(); UINT32 am1DisplacementIndirect16(); UINT32 bam1DisplacementIndirect16(); UINT32 am1DisplacementIndirect32(); UINT32 bam1DisplacementIndirect32(); UINT32 am1DisplacementIndirectIndexed8(); UINT32 bam1DisplacementIndirectIndexed8(); UINT32 am1DisplacementIndirectIndexed16(); UINT32 bam1DisplacementIndirectIndexed16(); UINT32 am1DisplacementIndirectIndexed32(); UINT32 bam1DisplacementIndirectIndexed32(); UINT32 am1PCDisplacementIndirect8(); UINT32 bam1PCDisplacementIndirect8(); UINT32 am1PCDisplacementIndirect16(); UINT32 bam1PCDisplacementIndirect16(); UINT32 am1PCDisplacementIndirect32(); UINT32 bam1PCDisplacementIndirect32(); UINT32 am1PCDisplacementIndirectIndexed8(); UINT32 bam1PCDisplacementIndirectIndexed8(); UINT32 am1PCDisplacementIndirectIndexed16(); UINT32 bam1PCDisplacementIndirectIndexed16(); UINT32 am1PCDisplacementIndirectIndexed32(); UINT32 bam1PCDisplacementIndirectIndexed32(); UINT32 am1DoubleDisplacement8(); UINT32 bam1DoubleDisplacement8(); UINT32 am1DoubleDisplacement16(); UINT32 bam1DoubleDisplacement16(); UINT32 am1DoubleDisplacement32(); UINT32 bam1DoubleDisplacement32(); UINT32 am1PCDoubleDisplacement8(); UINT32 bam1PCDoubleDisplacement8(); UINT32 am1PCDoubleDisplacement16(); UINT32 bam1PCDoubleDisplacement16(); UINT32 am1PCDoubleDisplacement32(); UINT32 bam1PCDoubleDisplacement32(); UINT32 am1DirectAddress(); UINT32 bam1DirectAddress(); UINT32 am1DirectAddressIndexed(); UINT32 bam1DirectAddressIndexed(); UINT32 am1DirectAddressDeferred(); UINT32 bam1DirectAddressDeferred(); UINT32 am1DirectAddressDeferredIndexed(); UINT32 bam1DirectAddressDeferredIndexed(); UINT32 am1Immediate(); UINT32 am1ImmediateQuick(); UINT32 am1Error1(); UINT32 bam1Error1(); UINT32 am1Error2(); UINT32 bam1Error2(); UINT32 am1Error3(); UINT32 bam1Error3(); UINT32 am1Error4(); UINT32 bam1Error4(); UINT32 am1Error5(); UINT32 bam1Error5(); UINT32 bam1Error6(); UINT32 am1Group7a(); UINT32 bam1Group7a(); UINT32 am1Group6(); UINT32 bam1Group6(); UINT32 am1Group7(); UINT32 bam1Group7(); UINT32 am2Register(); UINT32 am2RegisterIndirect(); UINT32 bam2RegisterIndirect(); UINT32 am2RegisterIndirectIndexed(); UINT32 bam2RegisterIndirectIndexed(); UINT32 am2Autoincrement(); UINT32 bam2Autoincrement(); UINT32 am2Autodecrement(); UINT32 bam2Autodecrement(); UINT32 am2Displacement8(); UINT32 bam2Displacement8(); UINT32 am2Displacement16(); UINT32 bam2Displacement16(); UINT32 am2Displacement32(); UINT32 bam2Displacement32(); UINT32 am2DisplacementIndexed8(); UINT32 bam2DisplacementIndexed8(); UINT32 am2DisplacementIndexed16(); UINT32 bam2DisplacementIndexed16(); UINT32 am2DisplacementIndexed32(); UINT32 bam2DisplacementIndexed32(); UINT32 am2PCDisplacement8(); UINT32 bam2PCDisplacement8(); UINT32 am2PCDisplacement16(); UINT32 bam2PCDisplacement16(); UINT32 am2PCDisplacement32(); UINT32 bam2PCDisplacement32(); UINT32 am2PCDisplacementIndexed8(); UINT32 bam2PCDisplacementIndexed8(); UINT32 am2PCDisplacementIndexed16(); UINT32 bam2PCDisplacementIndexed16(); UINT32 am2PCDisplacementIndexed32(); UINT32 bam2PCDisplacementIndexed32(); UINT32 am2DisplacementIndirect8(); UINT32 bam2DisplacementIndirect8(); UINT32 am2DisplacementIndirect16(); UINT32 bam2DisplacementIndirect16(); UINT32 am2DisplacementIndirect32(); UINT32 bam2DisplacementIndirect32(); UINT32 am2DisplacementIndirectIndexed8(); UINT32 bam2DisplacementIndirectIndexed8(); UINT32 am2DisplacementIndirectIndexed16(); UINT32 bam2DisplacementIndirectIndexed16(); UINT32 am2DisplacementIndirectIndexed32(); UINT32 bam2DisplacementIndirectIndexed32(); UINT32 am2PCDisplacementIndirect8(); UINT32 bam2PCDisplacementIndirect8(); UINT32 am2PCDisplacementIndirect16(); UINT32 bam2PCDisplacementIndirect16(); UINT32 am2PCDisplacementIndirect32(); UINT32 bam2PCDisplacementIndirect32(); UINT32 am2PCDisplacementIndirectIndexed8(); UINT32 bam2PCDisplacementIndirectIndexed8(); UINT32 am2PCDisplacementIndirectIndexed16(); UINT32 bam2PCDisplacementIndirectIndexed16(); UINT32 am2PCDisplacementIndirectIndexed32(); UINT32 bam2PCDisplacementIndirectIndexed32(); UINT32 am2DoubleDisplacement8(); UINT32 bam2DoubleDisplacement8(); UINT32 am2DoubleDisplacement16(); UINT32 bam2DoubleDisplacement16(); UINT32 am2DoubleDisplacement32(); UINT32 bam2DoubleDisplacement32(); UINT32 am2PCDoubleDisplacement8(); UINT32 bam2PCDoubleDisplacement8(); UINT32 am2PCDoubleDisplacement16(); UINT32 bam2PCDoubleDisplacement16(); UINT32 am2PCDoubleDisplacement32(); UINT32 bam2PCDoubleDisplacement32(); UINT32 am2DirectAddress(); UINT32 bam2DirectAddress(); UINT32 am2DirectAddressIndexed(); UINT32 bam2DirectAddressIndexed(); UINT32 am2DirectAddressDeferred(); UINT32 bam2DirectAddressDeferred(); UINT32 am2DirectAddressDeferredIndexed(); UINT32 bam2DirectAddressDeferredIndexed(); UINT32 am2Immediate(); UINT32 am2ImmediateQuick(); UINT32 am2Error1(); UINT32 am2Error2(); UINT32 am2Error3(); UINT32 am2Error4(); UINT32 am2Error5(); UINT32 bam2Error1(); UINT32 bam2Error2(); UINT32 bam2Error3(); UINT32 bam2Error4(); UINT32 bam2Error5(); UINT32 bam2Error6(); UINT32 am2Group7a(); UINT32 bam2Group7a(); UINT32 am2Group6(); UINT32 bam2Group6(); UINT32 am2Group7(); UINT32 bam2Group7(); UINT32 am3Register(); UINT32 am3RegisterIndirect(); UINT32 am3RegisterIndirectIndexed(); UINT32 am3Autoincrement(); UINT32 am3Autodecrement(); UINT32 am3Displacement8(); UINT32 am3Displacement16(); UINT32 am3Displacement32(); UINT32 am3DisplacementIndexed8(); UINT32 am3DisplacementIndexed16(); UINT32 am3DisplacementIndexed32(); UINT32 am3PCDisplacement8(); UINT32 am3PCDisplacement16(); UINT32 am3PCDisplacement32(); UINT32 am3PCDisplacementIndexed8(); UINT32 am3PCDisplacementIndexed16(); UINT32 am3PCDisplacementIndexed32(); UINT32 am3DisplacementIndirect8(); UINT32 am3DisplacementIndirect16(); UINT32 am3DisplacementIndirect32(); UINT32 am3DisplacementIndirectIndexed8(); UINT32 am3DisplacementIndirectIndexed16(); UINT32 am3DisplacementIndirectIndexed32(); UINT32 am3PCDisplacementIndirect8(); UINT32 am3PCDisplacementIndirect16(); UINT32 am3PCDisplacementIndirect32(); UINT32 am3PCDisplacementIndirectIndexed8(); UINT32 am3PCDisplacementIndirectIndexed16(); UINT32 am3PCDisplacementIndirectIndexed32(); UINT32 am3DoubleDisplacement8(); UINT32 am3DoubleDisplacement16(); UINT32 am3DoubleDisplacement32(); UINT32 am3PCDoubleDisplacement8(); UINT32 am3PCDoubleDisplacement16(); UINT32 am3PCDoubleDisplacement32(); UINT32 am3DirectAddress(); UINT32 am3DirectAddressIndexed(); UINT32 am3DirectAddressDeferred(); UINT32 am3DirectAddressDeferredIndexed(); UINT32 am3Immediate(); UINT32 am3ImmediateQuick(); UINT32 am3Error1(); UINT32 am3Error2(); UINT32 am3Error3(); UINT32 am3Error4(); UINT32 am3Error5(); UINT32 am3Group7a(); UINT32 am3Group6(); UINT32 am3Group7(); UINT32 ReadAM(); UINT32 BitReadAM(); UINT32 ReadAMAddress(); UINT32 BitReadAMAddress(); UINT32 WriteAM(); void F12DecodeFirstOperand(am_func DecodeOp1, UINT8 dim1); void F12WriteSecondOperand(UINT8 dim2); void F12DecodeOperands(am_func DecodeOp1, UINT8 dim1, am_func DecodeOp2, UINT8 dim2); UINT32 opADDB(); UINT32 opADDH(); UINT32 opADDW(); UINT32 opADDCB(); UINT32 opADDCH(); UINT32 opADDCW(); UINT32 opANDB(); UINT32 opANDH(); UINT32 opANDW(); UINT32 opCALL(); UINT32 opCHKAR(); UINT32 opCHKAW(); UINT32 opCHKAE(); UINT32 opCHLVL(); UINT32 opCLR1(); UINT32 opCMPB(); UINT32 opCMPH(); UINT32 opCMPW(); UINT32 opDIVB(); UINT32 opDIVH(); UINT32 opDIVW(); UINT32 opDIVX(); UINT32 opDIVUX(); UINT32 opDIVUB(); UINT32 opDIVUH(); UINT32 opDIVUW(); UINT32 opINB(); UINT32 opINH(); UINT32 opINW(); UINT32 opLDPR(); UINT32 opLDTASK(); UINT32 opMOVD(); UINT32 opMOVB(); UINT32 opMOVH(); UINT32 opMOVW(); UINT32 opMOVEAB(); UINT32 opMOVEAH(); UINT32 opMOVEAW(); UINT32 opMOVSBH(); UINT32 opMOVSBW(); UINT32 opMOVSHW(); UINT32 opMOVTHB(); UINT32 opMOVTWB(); UINT32 opMOVTWH(); UINT32 opMOVZBH(); UINT32 opMOVZBW(); UINT32 opMOVZHW(); UINT32 opMULB(); UINT32 opMULH(); UINT32 opMULW(); UINT32 opMULUB(); UINT32 opMULUH(); UINT32 opMULUW(); UINT32 opNEGB(); UINT32 opNEGH(); UINT32 opNEGW(); UINT32 opNOTB(); UINT32 opNOTH(); UINT32 opNOTW(); UINT32 opNOT1(); UINT32 opORB(); UINT32 opORH(); UINT32 opORW(); UINT32 opOUTB(); UINT32 opOUTH(); UINT32 opOUTW(); UINT32 opREMB(); UINT32 opREMH(); UINT32 opREMW(); UINT32 opREMUB(); UINT32 opREMUH(); UINT32 opREMUW(); UINT32 opROTB(); UINT32 opROTH(); UINT32 opROTW(); UINT32 opROTCB(); UINT32 opROTCH(); UINT32 opROTCW(); UINT32 opRVBIT(); UINT32 opRVBYT(); UINT32 opSET1(); UINT32 opSETF(); UINT32 opSHAB(); UINT32 opSHAH(); UINT32 opSHAW(); UINT32 opSHLB(); UINT32 opSHLH(); UINT32 opSHLW(); UINT32 opSTPR(); UINT32 opSUBB(); UINT32 opSUBH(); UINT32 opSUBW(); UINT32 opSUBCB(); UINT32 opSUBCH(); UINT32 opSUBCW(); UINT32 opTEST1(); UINT32 opUPDPSWW(); UINT32 opUPDPSWH(); UINT32 opXCHB(); UINT32 opXCHH(); UINT32 opXCHW(); UINT32 opXORB(); UINT32 opXORH(); UINT32 opXORW(); UINT32 opMULX(); UINT32 opMULUX(); void F2DecodeFirstOperand(am_func DecodeOp1, UINT8 dim1); void F2DecodeSecondOperand(am_func DecodeOp2, UINT8 dim2); void F2WriteSecondOperand(UINT8 dim2); UINT32 opCVTWS(); UINT32 opCVTSW(); UINT32 opMOVFS(); UINT32 opNEGFS(); UINT32 opABSFS(); UINT32 opADDFS(); UINT32 opSUBFS(); UINT32 opMULFS(); UINT32 opDIVFS(); UINT32 opSCLFS(); UINT32 opCMPF(); UINT32 op5FUNHANDLED(); UINT32 op5CUNHANDLED(); UINT32 op5F(); UINT32 op5C(); UINT32 opINCB(); UINT32 opINCH(); UINT32 opINCW(); UINT32 opDECB(); UINT32 opDECH(); UINT32 opDECW(); UINT32 opJMP(); UINT32 opJSR(); UINT32 opPREPARE(); UINT32 opRET(); UINT32 opTRAP(); UINT32 opRETIU(); UINT32 opRETIS(); UINT32 opSTTASK(); UINT32 opGETPSW(); UINT32 opTASI(); UINT32 opCLRTLB(); UINT32 opPOPM(); UINT32 opPUSHM(); UINT32 opTESTB(); UINT32 opTESTH(); UINT32 opTESTW(); UINT32 opPUSH(); UINT32 opPOP(); UINT32 opINCB_0(); UINT32 opINCB_1(); UINT32 opINCH_0(); UINT32 opINCH_1(); UINT32 opINCW_0(); UINT32 opINCW_1(); UINT32 opDECB_0(); UINT32 opDECB_1(); UINT32 opDECH_0(); UINT32 opDECH_1(); UINT32 opDECW_0(); UINT32 opDECW_1(); UINT32 opJMP_0(); UINT32 opJMP_1(); UINT32 opJSR_0(); UINT32 opJSR_1(); UINT32 opPREPARE_0(); UINT32 opPREPARE_1(); UINT32 opRET_0(); UINT32 opRET_1(); UINT32 opTRAP_0(); UINT32 opTRAP_1(); UINT32 opRETIU_0(); UINT32 opRETIU_1(); UINT32 opRETIS_0(); UINT32 opRETIS_1(); UINT32 opGETPSW_0(); UINT32 opGETPSW_1(); UINT32 opTASI_0(); UINT32 opTASI_1(); UINT32 opCLRTLB_0(); UINT32 opCLRTLB_1(); UINT32 opPOPM_0(); UINT32 opPOPM_1(); UINT32 opPUSHM_0(); UINT32 opPUSHM_1(); UINT32 opTESTB_0(); UINT32 opTESTB_1(); UINT32 opTESTH_0(); UINT32 opTESTH_1(); UINT32 opTESTW_0(); UINT32 opTESTW_1(); UINT32 opPUSH_0(); UINT32 opPUSH_1(); UINT32 opPOP_0(); UINT32 opPOP_1(); UINT32 opSTTASK_0(); UINT32 opSTTASK_1(); UINT32 opBGT8(); UINT32 opBGT16(); UINT32 opBGE8(); UINT32 opBGE16(); UINT32 opBLT8(); UINT32 opBLT16(); UINT32 opBLE8(); UINT32 opBLE16(); UINT32 opBH8(); UINT32 opBH16(); UINT32 opBNH8(); UINT32 opBNH16(); UINT32 opBNL8(); UINT32 opBNL16(); UINT32 opBL8(); UINT32 opBL16(); UINT32 opBNE8(); UINT32 opBNE16(); UINT32 opBE8(); UINT32 opBE16(); UINT32 opBNV8(); UINT32 opBNV16(); UINT32 opBV8(); UINT32 opBV16(); UINT32 opBP8(); UINT32 opBP16(); UINT32 opBN8(); UINT32 opBN16(); UINT32 opBR8(); UINT32 opBR16(); UINT32 opBSR(); UINT32 opBRK(); UINT32 opBRKV(); UINT32 opCLRTLBA(); UINT32 opDISPOSE(); UINT32 opHALT(); UINT32 opNOP(); UINT32 opRSR(); UINT32 opTRAPFL(); UINT32 opTB(int reg); UINT32 opDBGT(int reg); UINT32 opDBLE(int reg); UINT32 opDBGE(int reg); UINT32 opDBLT(int reg); UINT32 opDBH(int reg); UINT32 opDBNH(int reg); UINT32 opDBL(int reg); UINT32 opDBNL(int reg); UINT32 opDBE(int reg); UINT32 opDBNE(int reg); UINT32 opDBV(int reg); UINT32 opDBNV(int reg); UINT32 opDBN(int reg); UINT32 opDBP(int reg); UINT32 opDBR(int reg); UINT32 opC6(); UINT32 opC7(); void F7aDecodeOperands(am_func DecodeOp1, UINT8 dim1, am_func DecodeOp2, UINT8 dim2); void F7bDecodeFirstOperand(am_func DecodeOp1, UINT8 dim1); void F7bWriteSecondOperand(UINT8 dim2); void F7bDecodeOperands(am_func DecodeOp1, UINT8 dim1, am_func DecodeOp2, UINT8 dim2); void F7cDecodeOperands(am_func DecodeOp1, UINT8 dim1, am_func DecodeOp2, UINT8 dim2); UINT32 opCMPSTRB(UINT8 bFill, UINT8 bStop); UINT32 opCMPSTRH(UINT8 bFill, UINT8 bStop); UINT32 opMOVSTRUB(UINT8 bFill, UINT8 bStop); UINT32 opMOVSTRDB(UINT8 bFill, UINT8 bStop); UINT32 opMOVSTRUH(UINT8 bFill, UINT8 bStop); UINT32 opMOVSTRDH(UINT8 bFill, UINT8 bStop); UINT32 opSEARCHUB(UINT8 bSearch); UINT32 opSEARCHUH(UINT8 bSearch); UINT32 opSEARCHDB(UINT8 bSearch); UINT32 opSEARCHDH(UINT8 bSearch); UINT32 opSCHCUB(); UINT32 opSCHCUH(); UINT32 opSCHCDB(); UINT32 opSCHCDH(); UINT32 opSKPCUB(); UINT32 opSKPCUH(); UINT32 opSKPCDB(); UINT32 opSKPCDH(); UINT32 opCMPCB(); UINT32 opCMPCH(); UINT32 opCMPCFB(); UINT32 opCMPCFH(); UINT32 opCMPCSB(); UINT32 opCMPCSH(); UINT32 opMOVCUB(); UINT32 opMOVCUH(); UINT32 opMOVCFUB(); UINT32 opMOVCFUH(); UINT32 opMOVCSUB(); UINT32 opMOVCSUH(); UINT32 opMOVCDB(); UINT32 opMOVCDH(); UINT32 opMOVCFDB(); UINT32 opMOVCFDH(); UINT32 opEXTBFZ(); UINT32 opEXTBFS(); UINT32 opEXTBFL(); UINT32 opSCHBS(UINT32 bSearch1); UINT32 opSCH0BSU(); UINT32 opSCH1BSU(); UINT32 opINSBFR(); UINT32 opINSBFL(); UINT32 opMOVBSD(); UINT32 opMOVBSU(); UINT32 opADDDC(); UINT32 opSUBDC(); UINT32 opSUBRDC(); UINT32 opCVTDPZ(); UINT32 opCVTDZP(); UINT32 op58UNHANDLED(); UINT32 op5AUNHANDLED(); UINT32 op5BUNHANDLED(); UINT32 op5DUNHANDLED(); UINT32 op59UNHANDLED(); UINT32 op58(); UINT32 op5A(); UINT32 op5B(); UINT32 op5D(); UINT32 op59(); UINT32 opUNHANDLED(); void v60_do_irq(int vector); void v60_try_irq(); }; class v70_device : public v60_device { public: // construction/destruction v70_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); protected: virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options); }; extern const device_type V60; extern const device_type V70; #endif /* __V60_H__ */