Diff for /xmil/z80c/z80c.c between versions 1.3 and 1.6

version 1.3, 2004/08/08 14:00:56 version 1.6, 2004/08/11 16:09:04
Line 11 Line 11
 #include        "parts.h"  #include        "parts.h"
 #include        "z80core.h"  #include        "z80core.h"
 #include        "z80c.h"  #include        "z80c.h"
   #include        "pccore.h"
   #include        "iocore.h"
 #include        "z80c.mcr"  #include        "z80c.mcr"
   
   
Line 161  void CPUCALL z80c_interrupt(REG8 vect) { Line 163  void CPUCALL z80c_interrupt(REG8 vect) {
         }          }
 }  }
   
 void CPUCALL z80c_interrupt2(REG8 vect) {  
   
         REG16   pc;  
   
         if (Z80_IFF & (1 << IFF_HALT)) {  
                 Z80_IFF ^= (1 << IFF_HALT);  
                 R_Z80PC++;  
         }  
         Z80_IFF |= (1 << IFF_IFLAG);  
         switch(R_Z80IM) {  
                 case 0:  
                         if ((vect != 0xdd) && (vect != 0xed) && (vect != 0xfd)) {  
                                 Z80_COUNT(cycles_main[vect]);  
                                 z80c_mainop[vect]();  
                         }  
                         break;  
   
                 case 1:  
                         Z80_COUNT(11);  
                         R_Z80SP -= 2;  
                         mem_write16(R_Z80SP, R_Z80PC);  
                         R_Z80PC = 0x38;  
                         break;  
   
                 case 2:  
                         pc = mem_read16((R_Z80I << 8) + vect);  
                         R_Z80SP -= 2;  
                         mem_write16(R_Z80SP, R_Z80PC);  
                         R_Z80PC = pc;  
                         break;  
         }  
 }  
   
 void CPUCALL z80c_nonmaskedinterrupt(void) {  void CPUCALL z80c_nonmaskedinterrupt(void) {
   
         if (!(Z80_IFF & (1 << IFF_NMI))) {          if (!(Z80_IFF & (1 << IFF_NMI))) {
Line 212  void CPUCALL z80c_execute(void) { Line 181  void CPUCALL z80c_execute(void) {
   
         UINT    op;          UINT    op;
   
         R_Z80R++;          if (!dma.working) {
         GET_PC_BYTE(op);                  do {
         Z80_COUNT(cycles_main[op]);                          R_Z80R++;
         z80c_mainop[op]();                          GET_PC_BYTE(op);
                           Z80_COUNT(cycles_main[op]);
                           z80c_mainop[op]();
                   } while(CPU_REMCLOCK > 0);
           }
           else {
                   do {
                           R_Z80R++;
                           GET_PC_BYTE(op);
                           Z80_COUNT(cycles_main[op]);
                           z80c_mainop[op]();
                           z80dmap();
                   } while(CPU_REMCLOCK > 0);
           }
   }
   
   void CPUCALL z80c_step(void) {
   
           UINT    op;
   
         R_Z80R++;          R_Z80R++;
         GET_PC_BYTE(op);          GET_PC_BYTE(op);
         Z80_COUNT(cycles_main[op]);          Z80_COUNT(cycles_main[op]);
         z80c_mainop[op]();          z80c_mainop[op]();
           z80dmap();
 }  }
   

Removed from v.1.3  
changed lines
  Added in v.1.6


RetroPC.NET-CVS <cvs@retropc.net>