From f26748f71f3f39de15a1c07f95c15f8c4481f452 Mon Sep 17 00:00:00 2001 From: Joshua Wise <joshua@rebirth.joshuawise.com> Date: Fri, 4 Apr 2008 02:10:58 -0400 Subject: [PATCH] Yay. Fix retcc. Comparing against an x value - great idea, or greatest idea? --- FPGABoy.ise | Bin 229884 -> 229884 bytes GBZ80Core.v | 6 ++---- rom.asm | 7 ++----- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/FPGABoy.ise b/FPGABoy.ise index b09f3837ef1027e88526812c8eda91499b2c5638..1d807e94bddb9631ff953512bd9ebefdfa15a801 100644 GIT binary patch delta 5532 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 EKc6-)egFUf delta 5532 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 diff --git a/GBZ80Core.v b/GBZ80Core.v index cd7f4d1..3cd46e3 100644 --- a/GBZ80Core.v +++ b/GBZ80Core.v @@ -401,7 +401,7 @@ module GBZ80Core( end endcase end - `INSN_RET: begin + `INSN_RET,`INSN_RETCC: begin case (cycle) 0: begin rd <= 1; @@ -409,8 +409,6 @@ module GBZ80Core( end 1: begin // SPECIAL CASE: cycle does NOT increase linearly with ret! `EXEC_INC_PC; - if (opcode != `INSN_RETCC) - $stop; case (opcode[4:3]) // cycle 1 is skipped if we are not retcc `INSN_cc_NZ: if (registers[`REG_F][7]) begin `EXEC_NEWCYCLE; end `INSN_cc_Z: if (~registers[`REG_F][7]) begin `EXEC_NEWCYCLE; end @@ -794,7 +792,7 @@ module GBZ80Core( end `INSN_RET,`INSN_RETCC: begin case (cycle) - 0: if (opcode != `INSN_RETCC) + 0: if (opcode[0]) // i.e., not RETCC cycle <= 1; // Skip cycle 1; it gets incremented on the next round. 1: begin /* Nothing need happen here. */ end 2: registers[`REG_PCL] <= rdata; diff --git a/rom.asm b/rom.asm index aa070ff..d650855 100644 --- a/rom.asm +++ b/rom.asm @@ -212,7 +212,7 @@ insntest: .cplfail: db "CPL",0 .testfailed: - db "test failed.",$0D,$0A,0 + db " test failed.",$0D,$0A,0 .ok: db "OK!",$0D,$0A,0 @@ -233,9 +233,6 @@ puts: ld a, [hli] ld b, $00 cp b - jr z, .done + ret z call putc jr puts -.done: - ret - -- 2.43.0