rendered paste body#ifndef AllFiles
#include "SYSDEPNS.h"
#endif
#include "ENDIANAC.h"
#include "ADDRSPAC.h"
#include "MINEM68K.h"
IMPORTFUNC ui5b MM_Access(ui5b Data, blnr WriteMem, blnr ByteSize, CPTR addr);
IMPORTFUNC ui3b *get_real_address(ui5b L, blnr WritableMem, CPTR addr);
IMPORTPROC customreset(void);
#ifdef USE_C68K
// Use Cyclone 68k core
#include "Cyclone.h"
struct Cyclone MacCpu;
GLOBALPROC MINEM68K_Init(ui3b **BankReadAddr, ui3b **BankWritAddr,
ui3b *fIPL)
{
// call CycloneInit() here if you set compressed jump tables
memset(&MacCpu,0,sizeof(MacCpu)); // clear everything
// Set up callback functions
MacCpu.fetch8 =MacCpu.read8 =MacRead8;
MacCpu.fetch16=MacCpu.read16=MacRead16;
MacCpu.fetch32=MacCpu.read32=MacRead32;
MacCpu.write8 =MacWrite8;
MacCpu.write16=MacWrite16;
MacCpu.write32=MacWrite32;
// MacRead/MacWrite will just be wrapper functions to MM_Access
MacCpu.ResetCallback=customreset; // need to use Cyclone .0086 with the correct config for this
}
GLOBALPROC m68k_IPLchangeNtfy(void)
{
// oh man I don't know what to do here so let's print a message
iprintf("m68k_IPLchangeNtfy hit\n");
}
GLOBALPROC DiskInsertedPsuedoException(CPTR newpc, ui5b data)
{
iprintf("DiskInsertedPsuedoException hit\n");
}
GLOBALPROC m68k_reset(void)
{
memset(&MacCpu,0,MacCpu.pad1-MacCpu.d); // clear all regs
MacCpu.stopped=0;
MacCpu.srh =0x27; // Supervisor mode
MacCpu.a[7]=MacCpu.read32(0); // Stack Pointer
MacCpu.membase=0;
MacCpu.pc=MacCpu.checkpc(MacCpu.read32(4)); // Program Counter
}
GLOBALFUNC ui5b GetInstructionsRemaining(void)
{
return (ui5b)MacCpu.cycles;
}
GLOBALPROC SetInstructionsRemaining(ui5b n)
{
MacCpu.cycles=(int)n;
}
GLOBALPROC m68k_go_nInstructions(ui5b n)
{
MacCpu.cycles=(int)n;
CycloneRun(&MacCpu);
}
#else
typedef unsigned char flagtype;
// rest of original MINEM68K.c follows