From daea4522fc6d74de9f077d6354f39ed93230c562 Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Thu, 10 Jun 2021 23:01:10 +0200 Subject: [PATCH] MC6809: fix SEX instruction's flags --- common/CPU/MC6809/mc6809i.v | 5 ++++- common/CPU/MC6809/mc6809is.v | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/common/CPU/MC6809/mc6809i.v b/common/CPU/MC6809/mc6809i.v index 5725aab4..d3a92d4a 100644 --- a/common/CPU/MC6809/mc6809i.v +++ b/common/CPU/MC6809/mc6809i.v @@ -1971,10 +1971,13 @@ begin else if (Inst1 == OPCODE_INH_SEX) begin a_nxt = {8{b[7]}}; + cc_nxt[CC_N_BIT] = b[7]; + cc_nxt[CC_Z_BIT] = {b == 8'H00}; + cc_nxt[CC_V_BIT] = 1'b0; rLIC = 1'b1; // Instruction done! rAVMA = 1'b1; CpuState_nxt = CPUSTATE_FETCH_I1; - end + end else if (Inst1 == OPCODE_INH_ABX) begin x_nxt = x + b; diff --git a/common/CPU/MC6809/mc6809is.v b/common/CPU/MC6809/mc6809is.v index ebdc88be..d0d2086e 100644 --- a/common/CPU/MC6809/mc6809is.v +++ b/common/CPU/MC6809/mc6809is.v @@ -1969,10 +1969,13 @@ begin else if (Inst1 == OPCODE_INH_SEX) begin a_nxt = {8{b[7]}}; + cc_nxt[CC_N_BIT] = b[7]; + cc_nxt[CC_Z_BIT] = {b == 8'H00}; + cc_nxt[CC_V_BIT] = 1'b0; rLIC = 1'b1; // Instruction done! rAVMA = 1'b1; CpuState_nxt = CPUSTATE_FETCH_I1; - end + end else if (Inst1 == OPCODE_INH_ABX) begin x_nxt = x + b;