Skip to content

Commit a0a06e2

Browse files
committed
Fixed zexdoc not passing RLD/RRD
1 parent 1d2071e commit a0a06e2

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/cpu.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2787,11 +2787,11 @@ impl CPU {
27872787
let hl_contents = self.bus.read_byte(self.reg.get_hl());
27882788
let a_contents = self.reg.a;
27892789

2790-
let r = (self.reg.a & 0xF0) | ((((hl_contents & 0xF0) as i8) >> 4) as u8);
2790+
let r = (self.reg.a & 0xF0) | ((hl_contents & 0xF0) >> 4);
27912791
self.reg.a = r;
27922792
self.bus
27932793
.write_byte(self.reg.get_hl(), (hl_contents << 4) | (a_contents & 0x0F));
2794-
self.reg.flags.s = (r as i8) < 0;
2794+
self.reg.flags.s = r & 0x80 == 0x80;
27952795
self.reg.flags.z = r == 0x00;
27962796
self.reg.flags.h = false;
27972797
self.reg.flags.p = r.count_ones() & 0x01 == 0x00;
@@ -2807,9 +2807,9 @@ impl CPU {
28072807
self.reg.a = r;
28082808
self.bus.write_byte(
28092809
self.reg.get_hl(),
2810-
((a_contents & 0x0F) << 4) | ((((hl_contents & 0xF0) as i8) >> 4) as u8),
2810+
((a_contents & 0x0F) << 4) | ((hl_contents & 0xF0) >> 4),
28112811
);
2812-
self.reg.flags.s = (r as i8) < 0;
2812+
self.reg.flags.s = r & 0x80 == 0x80;
28132813
self.reg.flags.z = r == 0x00;
28142814
self.reg.flags.h = false;
28152815
self.reg.flags.p = r.count_ones() & 0x01 == 0x00;

zexdoc_results.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ ldd<r> (2).................... OK
5656
ldi<r> (1).................... OK
5757
ldi<r> (2).................... OK
5858
neg........................... OK
59-
<rrd,rld>..................... ERROR **** crc expected:955ba326 found:e2191d5f
59+
<rrd,rld>..................... OK
6060
<rlca,rrca,rla,rra>........... OK
6161
shf/rot (<ix,iy>+1)........... OK
6262
shf/rot <b,c,d,e,h,l,(hl),a>.. OK
@@ -66,4 +66,4 @@ ld (<ix,iy>+1),<b,c,d,e>...... OK
6666
ld (<ix,iy>+1),<h,l>.......... OK
6767
ld (<ix,iy>+1),a.............. OK
6868
ld (<bc,de>),a................ OK
69-
Tests complete
69+
Tests complete

0 commit comments

Comments
 (0)