summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author goldnchild <48141308+goldnchild@users.noreply.github.com>2026-05-16 01:16:15 -0700
committer GitHub <noreply@github.com>2026-05-16 10:16:15 +0200
commit4d4da6bcd6d4537849893fd8bdd675f9ad5f166c (patch)
treeb15f4eb76d62273c85aeed8b0af44f66ab7a1099 /src
parent2ebb363b1eea6748f9085fad77eab3d001c0c08b (diff)
upd7810: fix SET_Z on OFFI/ONI instructions (#15343)
Diffstat (limited to 'src')
-rw-r--r--src/devices/cpu/upd7810/upd7810_opcodes.cpp160
1 files changed, 80 insertions, 80 deletions
diff --git a/src/devices/cpu/upd7810/upd7810_opcodes.cpp b/src/devices/cpu/upd7810/upd7810_opcodes.cpp
index 49c3b6b38bf..61d71f54551 100644
--- a/src/devices/cpu/upd7810/upd7810_opcodes.cpp
+++ b/src/devices/cpu/upd7810/upd7810_opcodes.cpp
@@ -3550,8 +3550,8 @@ void upd7810_device::ONI_PA_xx()
uint8_t pa = RP( UPD7810_PORTA ), imm;
RDOPARG( imm );
- if (pa & imm)
- PSW |= SK;
+ SET_Z( pa & imm );
+ SKIP_NZ;
}
/* 64 49: 0110 0100 0100 1001 xxxx xxxx */
@@ -3560,8 +3560,8 @@ void upd7810_device::ONI_PB_xx()
uint8_t pb = RP( UPD7810_PORTB ), imm;
RDOPARG( imm );
- if (pb & imm)
- PSW |= SK;
+ SET_Z( pb & imm );
+ SKIP_NZ;
}
/* 64 4a: 0110 0100 0100 1010 xxxx xxxx */
@@ -3570,8 +3570,8 @@ void upd7810_device::ONI_PC_xx()
uint8_t pc = RP( UPD7810_PORTC ), imm;
RDOPARG( imm );
- if (pc & imm)
- PSW |= SK;
+ SET_Z( pc & imm );
+ SKIP_NZ;
}
/* 64 4b: 0110 0100 0100 1011 xxxx xxxx */
@@ -3580,8 +3580,8 @@ void upd7810_device::ONI_PD_xx()
uint8_t pd = RP( UPD7810_PORTD ), imm;
RDOPARG( imm );
- if (pd & imm)
- PSW |= SK;
+ SET_Z( pd & imm );
+ SKIP_NZ;
}
/* 64 4d: 0110 0100 0100 1101 xxxx xxxx */
@@ -3590,8 +3590,8 @@ void upd7810_device::ONI_PF_xx()
uint8_t pf = RP( UPD7810_PORTF ), imm;
RDOPARG( imm );
- if (pf & imm)
- PSW |= SK;
+ SET_Z( pf & imm );
+ SKIP_NZ;
}
/* 64 4e: 0110 0100 0100 1110 xxxx xxxx */
@@ -3600,8 +3600,8 @@ void upd7810_device::ONI_MKH_xx()
uint8_t imm;
RDOPARG( imm );
- if (MKH & imm)
- PSW |= SK;
+ SET_Z( MKH & imm );
+ SKIP_NZ;
}
/* 64 4f: 0110 0100 0100 1111 xxxx xxxx */
@@ -3610,8 +3610,8 @@ void upd7810_device::ONI_MKL_xx()
uint8_t imm;
RDOPARG( imm );
- if (MKL & imm)
- PSW |= SK;
+ SET_Z( MKL & imm );
+ SKIP_NZ;
}
/* 64 50: 0110 0100 0101 0000 xxxx xxxx */
@@ -3702,8 +3702,8 @@ void upd7810_device::OFFI_PA_xx()
uint8_t pa = RP( UPD7810_PORTA ), imm;
RDOPARG( imm );
- if (0 == (pa & imm))
- PSW |= SK;
+ SET_Z( pa & imm );
+ SKIP_Z;
}
/* 64 59: 0110 0100 0101 1001 xxxx xxxx */
@@ -3712,8 +3712,8 @@ void upd7810_device::OFFI_PB_xx()
uint8_t pb = RP( UPD7810_PORTB ), imm;
RDOPARG( imm );
- if (0 == (pb & imm))
- PSW |= SK;
+ SET_Z( pb & imm );
+ SKIP_Z;
}
/* 64 5a: 0110 0100 0101 1010 xxxx xxxx */
@@ -3722,8 +3722,8 @@ void upd7810_device::OFFI_PC_xx()
uint8_t pc = RP( UPD7810_PORTC ), imm;
RDOPARG( imm );
- if (0 == (pc & imm))
- PSW |= SK;
+ SET_Z( pc & imm );
+ SKIP_Z;
}
/* 64 5b: 0110 0100 0101 1011 xxxx xxxx */
@@ -3732,8 +3732,8 @@ void upd7810_device::OFFI_PD_xx()
uint8_t pd = RP( UPD7810_PORTD ), imm;
RDOPARG( imm );
- if (0 == (pd & imm))
- PSW |= SK;
+ SET_Z( pd & imm );
+ SKIP_Z;
}
/* 64 5d: 0110 0100 0101 1101 xxxx xxxx */
@@ -3742,8 +3742,8 @@ void upd7810_device::OFFI_PF_xx()
uint8_t pf = RP( UPD7810_PORTF ), imm;
RDOPARG( imm );
- if (0 == (pf & imm))
- PSW |= SK;
+ SET_Z( pf & imm );
+ SKIP_Z;
}
/* 64 5e: 0110 0100 0101 1110 xxxx xxxx */
@@ -3752,8 +3752,8 @@ void upd7810_device::OFFI_MKH_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (MKH & imm))
- PSW |= SK;
+ SET_Z( MKH & imm );
+ SKIP_Z;
}
/* 64 5f: 0110 0100 0101 1111 xxxx xxxx */
@@ -3762,8 +3762,8 @@ void upd7810_device::OFFI_MKL_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (MKL & imm))
- PSW |= SK;
+ SET_Z( MKL & imm );
+ SKIP_Z;
}
/* 64 60: 0110 0100 0110 0000 xxxx xxxx */
@@ -4508,8 +4508,8 @@ void upd7810_device::ONI_ANM_xx()
uint8_t imm;
RDOPARG( imm );
- if (ANM & imm)
- PSW |= SK;
+ SET_Z( ANM & imm );
+ SKIP_NZ;
}
/* 64 c9: 0110 0100 1100 1001 xxxx xxxx */
@@ -4518,8 +4518,8 @@ void upd7810_device::ONI_SMH_xx()
uint8_t imm;
RDOPARG( imm );
- if (SMH & imm)
- PSW |= SK;
+ SET_Z( SMH & imm );
+ SKIP_NZ;
}
/* 64 cb: 0110 0100 1100 1011 xxxx xxxx */
@@ -4530,8 +4530,8 @@ void upd7810_device::ONI_EOM_xx()
uint8_t imm;
RDOPARG( imm );
- if (eom & imm)
- PSW |= SK;
+ SET_Z( eom & imm );
+ SKIP_NZ;
}
/* 64 cd: 0110 0100 1100 1101 xxxx xxxx */
@@ -4540,8 +4540,8 @@ void upd7810_device::ONI_TMM_xx()
uint8_t imm;
RDOPARG( imm );
- if (TMM & imm)
- PSW |= SK;
+ SET_Z( TMM & imm );
+ SKIP_NZ;
}
/* 64 d0: 0110 0100 1101 0000 xxxx xxxx */
@@ -4601,8 +4601,8 @@ void upd7810_device::OFFI_ANM_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (ANM & imm))
- PSW |= SK;
+ SET_Z( ANM & imm );
+ SKIP_Z;
}
/* 64 d9: 0110 0100 1101 1001 xxxx xxxx */
@@ -4611,8 +4611,8 @@ void upd7810_device::OFFI_SMH_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (SMH & imm))
- PSW |= SK;
+ SET_Z( SMH & imm );
+ SKIP_Z;
}
/* 64 db: 0110 0100 1101 1011 xxxx xxxx */
@@ -4623,8 +4623,8 @@ void upd7810_device::OFFI_EOM_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (eom & imm))
- PSW |= SK;
+ SET_Z( eom & imm );
+ SKIP_Z;
}
/* 64 dd: 0110 0100 1101 1101 xxxx xxxx */
@@ -4633,8 +4633,8 @@ void upd7810_device::OFFI_TMM_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (TMM & imm))
- PSW |= SK;
+ SET_Z( TMM & imm );
+ SKIP_Z;
}
/* 64 e0: 0110 0100 1110 0000 xxxx xxxx */
@@ -6768,8 +6768,8 @@ void upd7810_device::ONI_V_xx()
uint8_t imm;
RDOPARG( imm );
- if (V & imm)
- PSW |= SK;
+ SET_Z( V & imm );
+ SKIP_NZ;
}
/* 74 49: 0111 0100 0100 1001 xxxx xxxx */
@@ -6778,8 +6778,8 @@ void upd7810_device::ONI_A_xx()
uint8_t imm;
RDOPARG( imm );
- if (A & imm)
- PSW |= SK;
+ SET_Z( A & imm );
+ SKIP_NZ;
}
/* 74 4a: 0111 0100 0100 1010 xxxx xxxx */
@@ -6788,8 +6788,8 @@ void upd7810_device::ONI_B_xx()
uint8_t imm;
RDOPARG( imm );
- if (B & imm)
- PSW |= SK;
+ SET_Z( B & imm );
+ SKIP_NZ;
}
/* 74 4b: 0111 0100 0100 1011 xxxx xxxx */
@@ -6798,8 +6798,8 @@ void upd7810_device::ONI_C_xx()
uint8_t imm;
RDOPARG( imm );
- if (C & imm)
- PSW |= SK;
+ SET_Z( C & imm );
+ SKIP_NZ;
}
/* 74 4c: 0111 0100 0100 1100 xxxx xxxx */
@@ -6808,8 +6808,8 @@ void upd7810_device::ONI_D_xx()
uint8_t imm;
RDOPARG( imm );
- if (D & imm)
- PSW |= SK;
+ SET_Z( D & imm );
+ SKIP_NZ;
}
/* 74 4d: 0111 0100 0100 1101 xxxx xxxx */
@@ -6818,8 +6818,8 @@ void upd7810_device::ONI_E_xx()
uint8_t imm;
RDOPARG( imm );
- if (E & imm)
- PSW |= SK;
+ SET_Z( E & imm );
+ SKIP_NZ;
}
/* 74 4e: 0111 0100 0100 1110 xxxx xxxx */
@@ -6828,8 +6828,8 @@ void upd7810_device::ONI_H_xx()
uint8_t imm;
RDOPARG( imm );
- if (H & imm)
- PSW |= SK;
+ SET_Z( H & imm );
+ SKIP_NZ;
}
/* 74 4f: 0111 0100 0100 1111 xxxx xxxx */
@@ -6838,8 +6838,8 @@ void upd7810_device::ONI_L_xx()
uint8_t imm;
RDOPARG( imm );
- if (L & imm)
- PSW |= SK;
+ SET_Z( L & imm );
+ SKIP_NZ;
}
/* 74 50: 0111 0100 0101 0000 xxxx xxxx */
@@ -6936,8 +6936,8 @@ void upd7810_device::OFFI_V_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (V & imm))
- PSW |= SK;
+ SET_Z( V & imm );
+ SKIP_Z;
}
/* 74 59: 0111 0100 0101 1001 xxxx xxxx */
@@ -6946,8 +6946,8 @@ void upd7810_device::OFFI_A_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (A & imm))
- PSW |= SK;
+ SET_Z( A & imm );
+ SKIP_Z;
}
/* 74 5a: 0111 0100 0101 1010 xxxx xxxx */
@@ -6956,8 +6956,8 @@ void upd7810_device::OFFI_B_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (B & imm))
- PSW |= SK;
+ SET_Z( B & imm );
+ SKIP_Z;
}
/* 74 5b: 0111 0100 0101 1011 xxxx xxxx */
@@ -6966,8 +6966,8 @@ void upd7810_device::OFFI_C_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (C & imm))
- PSW |= SK;
+ SET_Z( C & imm );
+ SKIP_Z;
}
/* 74 5c: 0111 0100 0101 1100 xxxx xxxx */
@@ -6976,8 +6976,8 @@ void upd7810_device::OFFI_D_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (D & imm))
- PSW |= SK;
+ SET_Z( D & imm );
+ SKIP_Z;
}
/* 74 5d: 0111 0100 0101 1101 xxxx xxxx */
@@ -6986,8 +6986,8 @@ void upd7810_device::OFFI_E_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (E & imm))
- PSW |= SK;
+ SET_Z( E & imm );
+ SKIP_Z;
}
/* 74 5e: 0111 0100 0101 1110 xxxx xxxx */
@@ -6996,8 +6996,8 @@ void upd7810_device::OFFI_H_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (H & imm))
- PSW |= SK;
+ SET_Z( H & imm );
+ SKIP_Z;
}
/* 74 5f: 0111 0100 0101 1111 xxxx xxxx */
@@ -7006,8 +7006,8 @@ void upd7810_device::OFFI_L_xx()
uint8_t imm;
RDOPARG( imm );
- if (0 == (L & imm))
- PSW |= SK;
+ SET_Z( L & imm );
+ SKIP_Z;
}
/* 74 60: 0111 0100 0110 0000 xxxx xxxx */
@@ -8432,8 +8432,8 @@ void upd7810_device::ONIW_wa_xx()
RDOPARG( ea.b.l );
RDOPARG( imm );
- if (RM( ea.d ) & imm)
- PSW |= SK;
+ SET_Z( RM( ea.d ) & imm );
+ SKIP_NZ;
}
/* 46: 0100 0110 xxxx xxxx */
@@ -8565,8 +8565,8 @@ void upd7810_device::OFFIW_wa_xx()
RDOPARG( ea.b.l );
RDOPARG( imm );
- if (0 == (RM( ea.d ) & imm))
- PSW |= SK;
+ SET_Z( RM( ea.d ) & imm );
+ SKIP_Z;
}
/* 56: 0101 0110 xxxx xxxx */