memcpy(data+4, &drZ80, 0x54);\r
#elif defined(_USE_CZ80)\r
*(int *)data = 0x00007a43; // "Cz"\r
- memcpy(data+4, &CZ80, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
+ *(int *)(data+4) = Cz80_Get_Reg(&CZ80, CZ80_PC);\r
+ memcpy(data+8, &CZ80, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
#endif\r
}\r
\r
z80_int(); // try to goto int handler, maybe we won't execute trash there?\r
}\r
#elif defined(_USE_CZ80)\r
- if (*(int *)data == 0x00007a43) // "Cz" save?\r
- memcpy(&CZ80, data+4, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
- else {\r
+ if (*(int *)data == 0x00007a43) { // "Cz" save?\r
+ memcpy(&CZ80, data+8, (INT32)&CZ80.BasePC - (INT32)&CZ80);\r
+ Cz80_Set_Reg(&CZ80, CZ80_PC, *(int *)(data+4));\r
+ } else {\r
z80_reset();\r
z80_int();\r
}\r