Skip to content

Commit 98c557a

Browse files
rofl0rcarmiker
authored andcommitted
jgz80: fix "ind" flags and mem_ptr (wz)
1 parent 9052ba1 commit 98c557a

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

z80.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -578,9 +578,17 @@ static void ini(z80* const z) {
578578
}
579579

580580
static void ind(z80* const z) {
581-
ini(z);
582-
z->hl -= 2;
583-
z->mem_ptr = z->bc - 2;
581+
unsigned tmp = z->port_in(z, z->bc);
582+
unsigned tmp2 = tmp + ((z->c - 1) & 0xff);
583+
z->mem_ptr = z->bc - 1;
584+
wb(z, z->hl, tmp);
585+
--z->hl;
586+
--z->b;
587+
z->f = (f_szpxy[z->b] & ~(1 << pf)) |
588+
flag_val(nf, GET_BIT(7, tmp)) |
589+
flag_val(pf, parity((tmp2 & 7) ^ z->b)) |
590+
flag_val(hf, tmp2 > 255) |
591+
flag_val(cf, tmp2 > 255);
584592
}
585593

586594
static void outi(z80* const z) {

0 commit comments

Comments
 (0)