psp bugfixes, refactoring, stuff
[picodrive.git] / Pico / PicoInt.h
index a9720c8..9aead10 100644 (file)
@@ -48,6 +48,10 @@ extern struct Cyclone PicoCpuCM68k, PicoCpuCS68k;
 #define SekPcS68k (PicoCpuCS68k.pc-PicoCpuCS68k.membase)\r
 #define SekSetStop(x) { PicoCpuCM68k.state_flags&=~1; if (x) { PicoCpuCM68k.state_flags|=1; PicoCpuCM68k.cycles=0; } }\r
 #define SekSetStopS68k(x) { PicoCpuCS68k.state_flags&=~1; if (x) { PicoCpuCS68k.state_flags|=1; PicoCpuCS68k.cycles=0; } }\r
+#define SekShouldInterrupt (PicoCpuCM68k.irq > (PicoCpuCM68k.srh&7))\r
+#ifdef EMU_M68K\r
+#define EMU_CORE_DEBUG\r
+#endif\r
 #endif\r
 \r
 #ifdef EMU_F68K\r
@@ -62,16 +66,20 @@ M68K_CONTEXT PicoCpuFM68k, PicoCpuFS68k;
 #define SekSetCyclesLeft(c) { \\r
        if ((PicoMCD&1) && (PicoOpt & 0x2000)) SekCycleCnt=SekCycleAim-(c); else SekSetCyclesLeftNoMCD(c); \\r
 }\r
-#define SekPc     m68k_get_pc(&PicoCpuFM68k)\r
-#define SekPcS68k m68k_get_pc(&PicoCpuFS68k)\r
+#define SekPc     fm68k_get_pc(&PicoCpuFM68k)\r
+#define SekPcS68k fm68k_get_pc(&PicoCpuFS68k)\r
 #define SekSetStop(x) { \\r
-       PicoCpuFM68k.execinfo &= ~M68K_HALTED; \\r
-       if (x) { PicoCpuFM68k.execinfo |= M68K_HALTED; PicoCpuFM68k.io_cycle_counter = 0; } \\r
+       PicoCpuFM68k.execinfo &= ~FM68K_HALTED; \\r
+       if (x) { PicoCpuFM68k.execinfo |= FM68K_HALTED; PicoCpuFM68k.io_cycle_counter = 0; } \\r
 }\r
 #define SekSetStopS68k(x) { \\r
-       PicoCpuFS68k.execinfo &= ~M68K_HALTED; \\r
-       if (x) { PicoCpuFS68k.execinfo |= M68K_HALTED; PicoCpuFS68k.io_cycle_counter = 0; } \\r
+       PicoCpuFS68k.execinfo &= ~FM68K_HALTED; \\r
+       if (x) { PicoCpuFS68k.execinfo |= FM68K_HALTED; PicoCpuFS68k.io_cycle_counter = 0; } \\r
 }\r
+#define SekShouldInterrupt fm68k_would_interrupt()\r
+#ifdef EMU_M68K\r
+#define EMU_CORE_DEBUG\r
+#endif\r
 #endif\r
 \r
 #ifdef EMU_M68K\r
@@ -97,6 +105,7 @@ extern m68ki_cpu_core PicoCpuMM68k, PicoCpuMS68k;
        if(x) { SET_CYCLES(0); PicoCpuMS68k.stopped=STOP_LEVEL_STOP; } \\r
        else PicoCpuMS68k.stopped=0; \\r
 }\r
+#define SekShouldInterrupt (CPU_INT_LEVEL > FLAG_INT_MASK)\r
 #endif\r
 #endif\r
 \r
@@ -128,8 +137,7 @@ extern int SekCycleAimS68k;
 }\r
 #define SekCyclesDoneS68k()  (SekCycleAimS68k-SekCyclesLeftS68k)\r
 \r
-// debug cyclone\r
-#if defined(EMU_C68K) && defined(EMU_M68K)\r
+#ifdef EMU_CORE_DEBUG\r
 #undef SekSetCyclesLeftNoMCD\r
 #undef SekSetCyclesLeft\r
 #undef SekCyclesBurn\r
@@ -304,6 +312,9 @@ PICO_INTERNAL int PicoCdLoadState(void *file);
 // Cart.c\r
 PICO_INTERNAL void PicoCartDetect(void);\r
 \r
+// Debug.c\r
+int CM_compareRun(int cyc);\r
+\r
 // Draw.c\r
 PICO_INTERNAL int PicoLine(int scan);\r
 PICO_INTERNAL void PicoFrameStart(void);\r
@@ -313,14 +324,18 @@ PICO_INTERNAL void PicoFrameFull();
 \r
 // Memory.c\r
 PICO_INTERNAL int PicoInitPc(unsigned int pc);\r
-PICO_INTERNAL_ASM unsigned int CPU_CALL PicoRead32(unsigned int a);\r
+PICO_INTERNAL_ASM unsigned int PicoRead32(unsigned int a);\r
 PICO_INTERNAL void PicoMemSetup(void);\r
 PICO_INTERNAL_ASM void PicoMemReset(void);\r
 PICO_INTERNAL int PadRead(int i);\r
 PICO_INTERNAL unsigned char z80_read(unsigned short a);\r
-PICO_INTERNAL unsigned short z80_read16(unsigned short a);\r
+#ifndef _USE_CZ80\r
 PICO_INTERNAL_ASM void z80_write(unsigned char data, unsigned short a);\r
 PICO_INTERNAL void z80_write16(unsigned short data, unsigned short a);\r
+PICO_INTERNAL unsigned short z80_read16(unsigned short a);\r
+#else\r
+PICO_INTERNAL_ASM void z80_write(unsigned int a, unsigned char data);\r
+#endif\r
 \r
 // cd/Memory.c\r
 PICO_INTERNAL void PicoMemSetupCD(void);\r
@@ -377,10 +392,10 @@ PICO_INTERNAL_ASM void wram_1M_to_2M(unsigned char *m);
 PICO_INTERNAL void PicoCDBufferRead(void *dest, int lba);\r
 \r
 // sound/sound.c\r
-PICO_INTERNAL void sound_reset(void);\r
-PICO_INTERNAL void sound_timers_and_dac(int raster);\r
-PICO_INTERNAL int  sound_render(int offset, int length);\r
-PICO_INTERNAL void sound_clear(void);\r
+PICO_INTERNAL void PsndReset(void);\r
+PICO_INTERNAL void Psnd_timers_and_dac(int raster);\r
+PICO_INTERNAL int  PsndRender(int offset, int length);\r
+PICO_INTERNAL void PsndClear(void);\r
 // z80 functionality wrappers\r
 PICO_INTERNAL void z80_init(void);\r
 PICO_INTERNAL void z80_resetCycles(void);\r