--- previous/src/change.c 2018/04/24 19:30:00 1.1.1.4 +++ previous/src/change.c 2018/04/24 19:31:27 1.1.1.5 @@ -83,7 +83,13 @@ bool Change_DoNeedReset(CNF_PARAMS *curr printf("cpu type reset\n"); return true; } - + + /* Did we change the realtime flag? */ + if(current->System.bRealtime != changed->System.bRealtime) { + printf("realtime flag reset\n"); + return true; + } + /* Did we change FPU type? */ if (current->System.n_FPUType != changed->System.n_FPUType) { printf("fpu type reset\n"); @@ -167,6 +173,10 @@ bool Change_DoNeedReset(CNF_PARAMS *curr return true; } } + if(current->SCSI.nWriteProtection != changed->SCSI.nWriteProtection) { + printf("scsi disk reset\n"); + return true; + } /* Did we change MO drive? */ for (i = 0; i < MO_MAX_DRIVES; i++) { @@ -192,6 +202,8 @@ bool Change_DoNeedReset(CNF_PARAMS *curr /* Did we change NeXTdimension? */ if (current->Dimension.bEnabled != changed->Dimension.bEnabled || + current->Dimension.bI860Thread != changed->Dimension.bI860Thread || + current->Dimension.bMainDisplay != changed->Dimension.bMainDisplay || strcmp(current->Dimension.szRomFileName, changed->Dimension.szRomFileName)) { printf("dimension reset\n"); return true; @@ -224,13 +236,9 @@ bool Change_DoNeedReset(CNF_PARAMS *curr bool Change_CopyChangedParamsToConfiguration(CNF_PARAMS *current, CNF_PARAMS *changed, bool bForceReset) { bool NeedReset; - bool bReInitSCSIEmu = false; bool bReInitEnetEmu = false; bool bReInitSoundEmu = false; - bool bReInitIoMem = false; - bool bReInitScreen = false; bool bScreenModeChange = false; - int i; Dprintf("Changes for:\n"); /* Do we need to warn user that changes will only take effect after reset? */ @@ -239,18 +247,7 @@ bool Change_CopyChangedParamsToConfigura else NeedReset = Change_DoNeedReset(current, changed); - /* Do we need to change SCSI disks? */ - for (i = 0; i < ESP_MAX_DEVS; i++) { - if (!NeedReset && - (current->SCSI.target[i].bDiskInserted != changed->SCSI.target[i].bDiskInserted || - current->SCSI.target[i].bWriteProtected != changed->SCSI.target[i].bWriteProtected || - strcmp(current->SCSI.target[i].szImageName, changed->SCSI.target[i].szImageName))) { - bReInitSCSIEmu = true; - break; - } - } - - /* Note: MO and floppy disk insert/eject called from GUI */ + /* Note: SCSI, MO and floppy disk insert/eject called from GUI */ /* Do we need to change Ethernet connection? */ if (!NeedReset && current->Ethernet.bEthernetConnected != changed->Ethernet.bEthernetConnected) { @@ -267,7 +264,6 @@ bool Change_CopyChangedParamsToConfigura /* Do we need to change Screen configuration? */ if (!NeedReset && current->Screen.nMonitorType != changed->Screen.nMonitorType) { - bReInitScreen = true; } /* Copy details to configuration, @@ -281,27 +277,6 @@ bool Change_CopyChangedParamsToConfigura /* Copy details to global, if we reset copy them all */ Configuration_Apply(NeedReset); - /* Check if all necessary files exist */ - Dialog_CheckFiles(); - if (bQuitProgram) - { - SDL_Quit(); - exit(-2); - } - - /* Re-init IO memory map? */ - if (bReInitIoMem) - { - Dprintf("- IO mem<\n"); - IoMem_Init(); - } - - /* Re-init SCSI disks? */ - if (bReInitSCSIEmu) { - Dprintf("- SCSI disks<\n"); - SCSI_Reset(); - } - /* Re-init Ethernet? */ if (bReInitEnetEmu) { Dprintf("- Ethernet<\n"); @@ -314,12 +289,6 @@ bool Change_CopyChangedParamsToConfigura Sound_Reset(); } - /* Re-init Screen */ - if (bReInitScreen) { - Dprintf("- Screen<\n"); - Screen_SetFullUpdate(); - } - /* Force things associated with screen change */ if (bScreenModeChange) { @@ -330,13 +299,16 @@ bool Change_CopyChangedParamsToConfigura /* Do we need to perform reset? */ if (NeedReset) { - const char *err_msg; + /* Check if all necessary files exist */ + Dialog_CheckFiles(); + if (bQuitProgram) + { + SDL_Quit(); + exit(-2); + } + Dprintf("- reset\n"); - err_msg=Reset_Cold(); -// if (err_msg!=NULL) { -// DlgAlert_Notice(err_msg); -// return false; -// } + Reset_Cold(); } /* Go into/return from full screen if flagged */