diff options
author | Wilbert Pol <wilbert@jdg.info> | 2009-04-21 17:55:35 +0000 |
---|---|---|
committer | Wilbert Pol <wilbert@jdg.info> | 2009-04-21 17:55:35 +0000 |
commit | f99e4666b9e32188b14b36973f7b2f8d9282a1b2 (patch) | |
tree | 607ea30d7e079dc3d68de3d35c7e168260a0e696 | |
parent | 4c639587b96e10c5d8d0336d2cb2addac961f8ed (diff) |
Fixed operation of TLCS-900/H CPD and CPI instructions.
-rw-r--r-- | src/emu/cpu/tlcs900/900tbl.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/emu/cpu/tlcs900/900tbl.c b/src/emu/cpu/tlcs900/900tbl.c index 280c3f761aa..71550665fc7 100644 --- a/src/emu/cpu/tlcs900/900tbl.c +++ b/src/emu/cpu/tlcs900/900tbl.c @@ -1724,10 +1724,10 @@ static void _CPLRR(tlcs900_state *cpustate) static void _CPD(tlcs900_state *cpustate) { - UINT8 result = *get_reg8_current( cpustate, 1 ) - RDMEM( *cpustate->p1_reg32 ); + UINT8 result = *get_reg8_current( cpustate, 1 ) - RDMEM( *cpustate->p2_reg32 ); UINT16 *bc = get_reg16_current( cpustate, 1 ); - *cpustate->p1_reg32 -= 1; + *cpustate->p2_reg32 -= 1; *bc -= 1; cpustate->sr.b.l &= ~ ( FLAG_SF | FLAG_ZF | FLAG_HF | FLAG_VF ); cpustate->sr.b.l |= ( result & FLAG_SF ) | ( result ? FLAG_NF : FLAG_NF | FLAG_ZF ) | @@ -1749,10 +1749,10 @@ static void _CPDR(tlcs900_state *cpustate) static void _CPDW(tlcs900_state *cpustate) { - UINT16 result = *get_reg16_current( cpustate, 0 ) - RDMEMW( *cpustate->p1_reg32 ); + UINT16 result = *get_reg16_current( cpustate, 0 ) - RDMEMW( *cpustate->p2_reg32 ); UINT16 *bc = get_reg16_current( cpustate, 1 ); - *cpustate->p1_reg32 -= 2; + *cpustate->p2_reg32 -= 2; *bc -= 1; cpustate->sr.b.l &= ~ ( FLAG_SF | FLAG_ZF | FLAG_HF | FLAG_VF ); cpustate->sr.b.l |= ( ( result >> 8 ) & FLAG_SF ) | ( result ? FLAG_NF : FLAG_NF | FLAG_ZF ) | @@ -1774,10 +1774,10 @@ static void _CPDRW(tlcs900_state *cpustate) static void _CPI(tlcs900_state *cpustate) { - UINT8 result = *get_reg8_current( cpustate, 1 ) - RDMEM( *cpustate->p1_reg32 ); + UINT8 result = *get_reg8_current( cpustate, 1 ) - RDMEM( *cpustate->p2_reg32 ); UINT16 *bc = get_reg16_current( cpustate, 1 ); - *cpustate->p1_reg32 += 1; + *cpustate->p2_reg32 += 1; *bc -= 1; cpustate->sr.b.l &= ~ ( FLAG_SF | FLAG_ZF | FLAG_HF | FLAG_VF ); cpustate->sr.b.l |= ( result & FLAG_SF ) | ( result ? FLAG_NF : FLAG_NF | FLAG_ZF ) | @@ -1799,10 +1799,10 @@ static void _CPIR(tlcs900_state *cpustate) static void _CPIW(tlcs900_state *cpustate) { - UINT16 result = *get_reg16_current( cpustate, 0 ) - RDMEMW( *cpustate->p1_reg32 ); + UINT16 result = *get_reg16_current( cpustate, 0 ) - RDMEMW( *cpustate->p2_reg32 ); UINT16 *bc = get_reg16_current( cpustate, 1 ); - *cpustate->p1_reg32 += 2; + *cpustate->p2_reg32 += 2; *bc -= 1; cpustate->sr.b.l &= ~ ( FLAG_SF | FLAG_ZF | FLAG_HF | FLAG_VF ); cpustate->sr.b.l |= ( ( result >> 8 ) & FLAG_SF ) | ( result ? FLAG_NF : FLAG_NF | FLAG_ZF ) | |