summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Smith2010-09-13 22:26:37 -0700
committerDuncan Smith2010-09-13 22:26:37 -0700
commit04ea312f6558eae2c43066eb7b57260a7fd49b28 (patch)
tree0247b0788583799da2647021b7aad83714ab350c
parent9b2d156b85a3c3eadbc8c4ab4726fcb6ec44e5d0 (diff)
CCF flags :(
-rw-r--r--opcodes.asm4
-rw-r--r--testbenches/mine.z8010
2 files changed, 8 insertions, 6 deletions
diff --git a/opcodes.asm b/opcodes.asm
index 329a825..f6171e9 100644
--- a/opcodes.asm
+++ b/opcodes.asm
@@ -738,9 +738,11 @@ emu_op_3e:
emu_op_3f:
;; CCF
;; Clear carry flag
+ ;; XXX fuck flags
bsr flags_normalize
;; SZ5H3PNC
- eor.b #%00010001,flag_byte-flag_storage(a3)
+ andi.b #%11111110,flag_byte-flag_storage(a3)
+ ori.b #%00000001,flag_valid-flag_storage(a3)
DONE ;nok
START
diff --git a/testbenches/mine.z80 b/testbenches/mine.z80
index 637d2b5..0b75414 100644
--- a/testbenches/mine.z80
+++ b/testbenches/mine.z80
@@ -20,16 +20,16 @@ dec8:
ret ;c9
cond_jr:
- ld a,01h ;3e
+ ld a,01h ;3e 01
cp a ;bf
- jr nz,wrong ;20
+ jr nz,wrong ;20 07
ccf ;3f
- jr c,wrong ;38
+ jr c,wrong ;38
scf ;37
- jr nc,wrong ;30
- ret
+ jr nc,wrong ;30
+ ret ;c9
wrong: