--- previous/src/reset.c 2018/04/24 19:25:10 1.1 +++ previous/src/reset.c 2018/04/24 19:29:56 1.1.1.4 @@ -10,13 +10,24 @@ const char Reset_fileid[] = "Hatari rese #include "main.h" #include "configuration.h" -#include "cart.h" #include "cycInt.h" #include "m68000.h" #include "reset.h" #include "screen.h" #include "nextMemory.h" +#include "tmc.h" #include "video.h" +#include "debugcpu.h" +#include "scsi.h" +#include "mo.h" +#include "sysReg.h" +#include "rtcnvram.h" +#include "scc.h" +#include "ethernet.h" +#include "floppy.h" +#include "snd.h" +#include "printer.h" +#include "dsp.h" /*-----------------------------------------------------------------------*/ @@ -24,21 +35,34 @@ const char Reset_fileid[] = "Hatari rese * Reset ST emulator states, chips, interrupts and registers. * Return zero or negative TOS image load error code. */ -static int Reset_ST(bool bCold) +static const char* Reset_ST(bool bCold) { if (bCold) { - int ret; - memory_init(8*1024*1024); - + const char* error_str; + error_str=memory_init(ConfigureParams.Memory.nMemoryBankSize); + if (error_str!=NULL) { + return error_str; + } } CycInt_Reset(); /* Reset interrupts */ Video_Reset(); /* Reset video */ - - Screen_Reset(); /* Reset screen */ + TMC_Reset(); /* Reset TMC Registers */ + SCR_Reset(); /* Reset System Control Registers */ + nvram_init(); /* Reset NVRAM */ + SCSI_Reset(); /* Reset SCSI disks */ + MO_Reset(); /* Reset MO disks */ + Floppy_Reset(); /* Reset Floppy disks */ + SCC_Reset(2); /* Reset SCC */ + Ethernet_Reset(true); /* Reset Ethernet */ + Sound_Reset(); /* Reset Sound */ + Printer_Reset(); /* Reset Printer */ + Screen_Reset(); /* Reset screen */ + DSP_Reset(); /* Reset DSP */ M68000_Reset(bCold); /* Reset CPU */ + DebugCpu_SetDebugging(); /* Re-set debugging flag if needed */ - return 0; + return NULL; } @@ -46,7 +70,7 @@ static int Reset_ST(bool bCold) /** * Cold reset ST (reset memory, all registers and reboot) */ -int Reset_Cold(void) +const char* Reset_Cold(void) { Main_WarpMouse(sdlscrn->w/2, sdlscrn->h/2); /* Set mouse pointer to the middle of the screen */ @@ -58,7 +82,7 @@ int Reset_Cold(void) /** * Warm reset ST (reset registers, leave in same state and reboot) */ -int Reset_Warm(void) +const char* Reset_Warm(void) { return Reset_ST(false); }