--- previous/src/reset.c 2018/04/24 19:25:34 1.1.1.2 +++ previous/src/reset.c 2018/04/24 19:27:35 1.1.1.3 @@ -18,6 +18,10 @@ const char Reset_fileid[] = "Hatari rese #include "nextMemory.h" #include "video.h" #include "debugcpu.h" +#include "scsi.h" +#include "sysReg.h" +#include "scc.h" +#include "ethernet.h" /*-----------------------------------------------------------------------*/ @@ -25,22 +29,28 @@ 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 */ + SCR_Reset(); /* Reset System Control Registers */ + nvram_init(); /* Reset NVRAM */ + SCSI_Reset(); /* Reset SCSI disks */ + SCC_Reset(); /* Reset SCC */ + Ethernet_Reset(); /* Reset Ethernet */ + Screen_Reset(); /* Reset screen */ M68000_Reset(bCold); /* Reset CPU */ - DebugCpu_SetDebugging(); /* Re-set debugging flag if needed */ + DebugCpu_SetDebugging(); /* Re-set debugging flag if needed */ - return 0; + return NULL; } @@ -48,7 +58,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 */ @@ -60,7 +70,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); }