ref: d40322f9f9d4332c462a7958e534cded2d6e3085
parent: 6d09b38445a2c1f3a66001f0f3f1f71ca54a4468
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Mon Jul 15 10:57:27 EDT 2024
Implement ed41 and init sp correctly
--- a/z80.c
+++ b/z80.c
@@ -8,8 +8,9 @@
#define sysfatal(fmt, ...){printf(fmt"\n", ##__VA_ARGS__); exit(EXIT_FAILURE);}uint8_t ipage, intm, z80irq;
-uint16_t ix[2] = {0xFFFF, 0xFFFF};-uint16_t pc, curpc, sp;
+uint16_t ix[2] = {0xffff, 0xffff};+uint16_t pc, curpc;
+uint16_t sp = 0xdff0;
int halt;
int inplast;
@@ -532,6 +533,7 @@
if ((s[rA] & 0x08) != 0) s[rF] |= FLAGX; else s[rF] &= ~FLAGX;
if ((s[rA] & 0x20) != 0) s[rF] |= FLAGY; else s[rF] &= ~FLAGY;
return 12;
+ case 0x41: z80out(s[rC], s[rB]); return 12;
case 0x61: z80out(s[rC], s[rH]); return 12;
case 0x69: z80out(s[rC], s[rL]); return 12;
case 0x79: z80out(s[rC], s[rA]); return 12;
--
⑨