// $bb - $mask & [X + $disp8] INLINE void btst_ix( void ) { UINT8 val; UINT8 mask = M_RDOP_ARG(PCD); {EA=X+(M_RDOP_ARG(PCD+1));PC+=2;} val = RM(EAD) & mask; CLR_NZVC; SET_NZ8(val); }
/* Get next opcode argument and increment program counter */ unsigned alpha8201_cpu_device::M_RDMEM_OPCODE() { unsigned retval; retval=M_RDOP_ARG(m_pc.w.l); m_pc.b.l++; return retval; }
static void banz(void) { if ((R.AR[ARP] & 0x01ff) == 0) R.PC++ ; else R.PC = M_RDOP_ARG(R.PC); R.ALU = R.AR[ARP]; R.ALU-- ; R.AR[ARP] = (R.AR[ARP] & 0xfe00) | (R.ALU & 0x01ff); }
static void blz(void) { if ( (INT32)(R.ACC.d) < 0 ) R.PC = M_RDOP_ARG(R.PC); else R.PC++ ; }
/* Get next opcode argument and increment program counter */ INLINE unsigned M_RDMEM_OPCODE (void) { unsigned retval; retval=M_RDOP_ARG(PC); PCL++; return retval; }
/* Get next opcode argument and increment program counter */ INLINE unsigned M_RDMEM_OPCODE (void) { unsigned retval; retval=M_RDOP_ARG(R.PC.w.l); R.PC.w.l++; return retval; }
static void bioz(void) { if (BIO_IN != CLEAR_LINE) R.PC = M_RDOP_ARG(R.PC); else R.PC++ ; }
static void bz(void) { if (R.ACC.d == 0) R.PC = M_RDOP_ARG(R.PC); else R.PC++ ; }
static void bv(void) { if (OV) { R.PC = M_RDOP_ARG(R.PC); CLR(OV_FLAG); } else R.PC++ ; }
void tms32010_device::blez() { if ( (int32_t)(m_ACC.d) <= 0 ) { m_PC = M_RDOP_ARG(m_PC); m_icount -= add_branch_cycle(); } else m_PC++ ; }
static void bz(tms32010_state *cpustate) { if (cpustate->ACC.d == 0) { cpustate->PC = M_RDOP_ARG(cpustate->PC); cpustate->icount -= add_branch_cycle(cpustate); } else cpustate->PC++ ; }
static void bioz(tms32010_state *cpustate) { if (BIO_IN != CLEAR_LINE) { cpustate->PC = M_RDOP_ARG(cpustate->PC); cpustate->icount -= add_branch_cycle(cpustate); } else cpustate->PC++ ; }
void tms32010_device::bioz() { if (m_bio_in() != CLEAR_LINE) { m_PC = M_RDOP_ARG(m_PC); m_icount -= add_branch_cycle(); } else m_PC++ ; }
void tms32010_device::blz() { if ( (INT32)(m_ACC.d) < 0 ) { m_PC = M_RDOP_ARG(m_PC); m_icount -= add_branch_cycle(); } else m_PC++ ; }
static void call(void) { R.PC++ ; R.STACK[0] = R.STACK[1]; R.STACK[1] = R.STACK[2]; R.STACK[2] = R.STACK[3]; R.STACK[3] = R.PC & ADDR_MASK; R.PC = M_RDOP_ARG((R.PC-1)) & ADDR_MASK; }
void tms32010_device::bz() { if (m_ACC.d == 0) { m_PC = M_RDOP_ARG(m_PC); m_icount -= add_branch_cycle(); } else m_PC++ ; }
void tms32010_device::bv() { if (OV) { CLR(OV_FLAG); m_PC = M_RDOP_ARG(m_PC); m_icount -= add_branch_cycle(); } else m_PC++ ; }
static void bv(tms32010_state *cpustate) { if (OV) { CLR(cpustate, OV_FLAG); cpustate->PC = M_RDOP_ARG(cpustate->PC); cpustate->icount -= add_branch_cycle(cpustate); } else cpustate->PC++ ; }
static void banz(void) { if (R.AR[ARP] & 0x01ff) R.PC = M_RDOP_ARG(R.PC); else R.PC++ ; R.ALU.w.l = R.AR[ARP]; R.ALU.w.l-- ; R.AR[ARP] = (R.AR[ARP] & 0xfe00) | (R.ALU.w.l & 0x01ff); }
static void banz(tms32010_state *cpustate) { if (cpustate->AR[ARP] & 0x01ff) { cpustate->PC = M_RDOP_ARG(cpustate->PC); cpustate->icount -= add_branch_cycle(cpustate); } else cpustate->PC++ ; cpustate->ALU.w.l = cpustate->AR[ARP]; cpustate->ALU.w.l-- ; cpustate->AR[ARP] = (cpustate->AR[ARP] & 0xfe00) | (cpustate->ALU.w.l & 0x01ff); }
void tms32010_device::banz() { if (m_AR[ARP] & 0x01ff) { m_PC = M_RDOP_ARG(m_PC); m_icount -= add_branch_cycle(); } else m_PC++ ; m_ALU.w.l = m_AR[ARP]; m_ALU.w.l-- ; m_AR[ARP] = (m_AR[ARP] & 0xfe00) | (m_ALU.w.l & 0x01ff); }
//INLINE void trap( void ) static void trap( void ) { if(errorlog)fprintf(errorlog, "M6808: illegal opcode: address %04X, op %02X\n",PC,(int) M_RDOP_ARG(PC)&0xFF); TAKE_TRAP; }
static void call(void) { R.PC++ ; PUSH_STACK(R.PC); R.PC = M_RDOP_ARG((R.PC - 1)) & addr_mask; }
static void call(tms32010_state *cpustate) { cpustate->PC++ ; PUSH_STACK(cpustate, cpustate->PC); cpustate->PC = M_RDOP_ARG((cpustate->PC - 1)); }
static void br(void) { R.PC = M_RDOP_ARG(R.PC); }
void tms32010_device::br() { m_PC = M_RDOP_ARG(m_PC); }
//INLINE void illegal( void ) static void illegal( void ) { logerror("M6808: illegal opcode: address %04X, op %02X\n",PC,(int) M_RDOP_ARG(PC)&0xFF); }
void tms32010_device::call() { m_PC++ ; PUSH_STACK(m_PC); m_PC = M_RDOP_ARG((m_PC - 1)); }
static void br(tms32010_state *cpustate) { cpustate->PC = M_RDOP_ARG(cpustate->PC); }
static void bnz(void) { if (R.ACC != 0) R.PC = M_RDOP_ARG(R.PC); else R.PC++ ; }