shithub: sms

Download patch

ref: d72e81f3cfcea318968a5dd8539c229bb49db450
parent: c558f8af382c34666a5eb3c5c631813b3a864aa4
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Thu Jul 11 05:59:39 EDT 2024

Implement edab

--- a/z80.c
+++ b/z80.c
@@ -557,6 +557,15 @@
 		if (s[rL] + u > 0xff) s[rF] |= (FLAGC|FLAGH); else s[rF] &= ~(FLAGC|FLAGH);
 		if (((s[rL] + u) & 0x07) ^ s[rB]) s[rF] |= FLAGV; else s[rF] &= ~FLAGV;
 		return 16;
+	case 0xab:
+		s[rB]--;
+		u = z80read(HL());
+		z80write(s[rC], u);
+		addhl(-1);
+		if (u & 0x80) s[rF] |= FLAGN; else s[rF] &= ~FLAGN;
+		if (s[rL] + u > 0xff) s[rF] |= (FLAGC|FLAGH); else s[rF] &= ~(FLAGC|FLAGH);
+		if (((s[rL] + u) & 0x07) ^ s[rB]) s[rF] |= FLAGV; else s[rF] &= ~FLAGV;
+		return 16;
 	}
 	sysfatal("undefined z80 opcode ed%.2x at pc=%#.4x", op, curpc);
 	return 0;
--