diff --git a/Arcade_MiST/Konami TimePilot84/rtl/TimePilot84_CPU.sv b/Arcade_MiST/Konami TimePilot84/rtl/TimePilot84_CPU.sv index 6a53ee45..4c397bdf 100644 --- a/Arcade_MiST/Konami TimePilot84/rtl/TimePilot84_CPU.sv +++ b/Arcade_MiST/Konami TimePilot84/rtl/TimePilot84_CPU.sv @@ -291,7 +291,7 @@ end wire [15:0] mA; wire [7:0] mD_out; wire m_rw; - +/* cpu09 u12G ( .clk(~clk_49m), @@ -306,14 +306,13 @@ cpu09 u12G .firq(0), .nmi(0) ); +*/ -/* -// buggy (playfield scrolling is broken with this CPU) mc6809is u12G ( - .CLK(clk_49m), - .fallE_en(n_me_en), - .fallQ_en(n_mq_en), + .CLK(clk_49m), + .fallE_en(n_me_en), + .fallQ_en(n_mq_en), .D(mD_in), .DOut(mD_out), .ADDR(mA), @@ -325,7 +324,7 @@ mc6809is u12G .nRESET(n_res), .nDMABREQ(1'b1) ); -*/ + //Multiplex data inputs to primary MC6809E wire [7:0] mD_in = sndbrd_dir ? sndbrd_D: 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;