|
|
| version 1.5, 2004/08/11 13:53:54 | version 1.7, 2004/08/14 12:16:18 |
|---|---|
| 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 122 void CPUCALL z80c_reset(void) { | Line 124 void CPUCALL z80c_reset(void) { |
| R_Z80R = rand_get(); | R_Z80R = rand_get(); |
| } | } |
| REG8 CPUCALL z80c_ableinterrupt(void) { | |
| return((Z80_IFF & ((1 << IFF_IFLAG) | (1 << IFF_IRQ) | (1 << IFF_NMI))) | |
| ?0:1); | |
| } | |
| void CPUCALL z80c_interrupt(REG8 vect) { | void CPUCALL z80c_interrupt(REG8 vect) { |
| REG16 pc; | REG16 pc; |
| Line 136 void CPUCALL z80c_interrupt(REG8 vect) { | Line 132 void CPUCALL z80c_interrupt(REG8 vect) { |
| Z80_IFF ^= (1 << IFF_HALT); | Z80_IFF ^= (1 << IFF_HALT); |
| R_Z80PC++; | R_Z80PC++; |
| } | } |
| Z80_IFF |= (1 << IFF_IRQ) | (1 << IFF_IFLAG); | Z80_IFF |= (1 << IFF_IFLAG); |
| switch(R_Z80IM) { | switch(R_Z80IM) { |
| case 0: | case 0: |
| if ((vect != 0xdd) && (vect != 0xed) && (vect != 0xfd)) { | if ((vect != 0xdd) && (vect != 0xed) && (vect != 0xfd)) { |
| Line 179 void CPUCALL z80c_execute(void) { | Line 175 void CPUCALL z80c_execute(void) { |
| UINT op; | UINT op; |
| do { | if (!dma.working) { |
| R_Z80R++; | do { |
| GET_PC_BYTE(op); | R_Z80R++; |
| Z80_COUNT(cycles_main[op]); | GET_PC_BYTE(op); |
| z80c_mainop[op](); | Z80_COUNT(cycles_main[op]); |
| z80dmap(); | z80c_mainop[op](); |
| } while(CPU_REMCLOCK > 0); | } 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) { | void CPUCALL z80c_step(void) { |