changed EI handling a bit and types
authornotaz <notasas@gmail.com>
Fri, 30 May 2008 13:51:19 +0000 (13:51 +0000)
committernotaz <notasas@gmail.com>
Fri, 30 May 2008 13:51:19 +0000 (13:51 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@471 be3aeb3a-fb24-0410-a615-afba39da0efa

cpu/cz80/cz80.c
cpu/cz80/cz80.h
cpu/cz80/cz80_op.c

index 18fd620..20e8053 100644 (file)
@@ -242,6 +242,7 @@ INT32 Cz80_Exec(cz80_struc *CPU, INT32 cycles)
        UINT32 res;\r
        UINT32 val;\r
        int afterEI = 0;\r
+       union16 *data;\r
 \r
        PC = CPU->PC;\r
 #if CZ80_ENCRYPTED_ROM\r
@@ -255,7 +256,8 @@ INT32 Cz80_Exec(cz80_struc *CPU, INT32 cycles)
 Cz80_Exec:\r
                if (CPU->ICount > 0)\r
                {\r
-                       union16 *data = pzHL;\r
+Cz80_Exec_nocheck:\r
+                       data = pzHL;\r
                        Opcode = READ_OP();\r
 #if CZ80_EMULATE_R_EXACTLY\r
                        zR++;\r
index d23d793..4e84642 100644 (file)
@@ -24,7 +24,7 @@ extern "C" {
 #endif\r
 \r
 #ifndef INT8\r
-#define INT8   char\r
+#define INT8   signed char\r
 #endif\r
 \r
 #ifndef UINT16\r
@@ -32,7 +32,7 @@ extern "C" {
 #endif\r
 \r
 #ifndef INT16\r
-#define INT16  short\r
+#define INT16  signed short\r
 #endif\r
 \r
 #ifndef UINT32\r
@@ -40,7 +40,7 @@ extern "C" {
 #endif\r
 \r
 #ifndef INT32\r
-#define INT32  int\r
+#define INT32  signed int\r
 #endif\r
 \r
 /*************************************/\r
index a4a5ef9..8691452 100644 (file)
@@ -715,13 +715,9 @@ OP_EI:
                                CPU->ExtraCycles += 1 - CPU->ICount;\r
                                CPU->ICount = 1;\r
                        }\r
-                       else if (CPU->ICount <= 0)\r
-                       {\r
-                               CPU->ICount = 1;\r
-                       }\r
                }\r
                else zIFF2 = (1 << 2);\r
-               goto Cz80_Exec;\r
+               goto Cz80_Exec_nocheck;\r
 \r
 /*-----------------------------------------\r
  INC r16\r