--- previous/src/reset.c 2018/04/24 19:27:35 1.1.1.3 +++ previous/src/reset.c 2018/04/24 19:31:19 1.1.1.5 @@ -10,46 +10,60 @@ 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" +#include "kms.h" /*-----------------------------------------------------------------------*/ /** - * Reset ST emulator states, chips, interrupts and registers. - * Return zero or negative TOS image load error code. + * Reset NEXT emulator states, chips, interrupts and registers. */ -static const char* Reset_ST(bool bCold) +static const char* Reset_NeXT(bool bCold) { - if (bCold) - { + if (bCold) { const char* error_str; error_str=memory_init(ConfigureParams.Memory.nMemoryBankSize); if (error_str!=NULL) { return error_str; } } + + host_reset(); /* Reset host related timing vars */ + CycInt_Reset(); /* Reset interrupts */ + Main_SpeedReset(); /* Reset speed reporting system */ Video_Reset(); /* Reset video */ - 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 */ + 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 */ + KMS_Reset(); /* Reset KMS */ + Sound_Reset(); /* Reset Sound */ + Printer_Reset(); /* Reset Printer */ + DSP_Reset(); /* Reset DSP */ M68000_Reset(bCold); /* Reset CPU */ - DebugCpu_SetDebugging(); /* Re-set debugging flag if needed */ - + DebugCpu_SetDebugging(); /* Re-set debugging flag if needed */ + return NULL; } @@ -62,7 +76,7 @@ const char* Reset_Cold(void) { Main_WarpMouse(sdlscrn->w/2, sdlscrn->h/2); /* Set mouse pointer to the middle of the screen */ - return Reset_ST(true); + return Reset_NeXT(true); } @@ -72,5 +86,5 @@ const char* Reset_Cold(void) */ const char* Reset_Warm(void) { - return Reset_ST(false); + return Reset_NeXT(false); }