From 5263a9e9064995dbeb5ab2f4a5c21c1695ea692b Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Wed, 11 Jan 2012 10:58:00 -0800 Subject: [PATCH] Added a sanity check to validate the modify time of the simulator image being restored by the 'restore' command with respect to the modify times of any files which are attached during the restore operation. The logic here is based on the idea that a restore image contains the memory content for a running simulator, while the attached files contain the disk contents for that simulator. If the disk contents have changed since the memory image was created then the two data sets are likely out of sync and disk details cached in memory (i.e. file system information, storage allocation, etc.) will likely result in corrupted disk structures if they are used. The default behavior is to fail the restore operation if these inconsistencies are noticed. This sanity check can be overridden if the restore command is invoked with the '-F' switch: sim> restore -F simulator-state.file Also added logging of all erro messages produced during a restore operation to both stdout and a simulator log file if it is being used. --- Visual Studio Projects/ALTAIR.vcproj | 4 +- Visual Studio Projects/AltairZ80.vcproj | 4 +- Visual Studio Projects/BuildROMs.vcproj | 4 +- Visual Studio Projects/ECLIPSE.vcproj | 4 +- Visual Studio Projects/GRI.vcproj | 4 +- Visual Studio Projects/H316.vcproj | 4 +- Visual Studio Projects/HP2100.vcproj | 4 +- Visual Studio Projects/I1401.vcproj | 4 +- Visual Studio Projects/I1620.vcproj | 4 +- Visual Studio Projects/I7094.vcproj | 4 +- Visual Studio Projects/IBM1130.vcproj | 4 +- Visual Studio Projects/ID16.vcproj | 4 +- Visual Studio Projects/ID32.vcproj | 4 +- Visual Studio Projects/NOVA.vcproj | 4 +- Visual Studio Projects/PDP1.vcproj | 4 +- Visual Studio Projects/PDP10.vcproj | 4 +- Visual Studio Projects/PDP11.vcproj | 4 +- Visual Studio Projects/PDP15.vcproj | 4 +- Visual Studio Projects/PDP18B.vcproj | 4 +- Visual Studio Projects/PDP4.vcproj | 4 +- Visual Studio Projects/PDP7.vcproj | 4 +- Visual Studio Projects/PDP8.vcproj | 4 +- Visual Studio Projects/PDP9.vcproj | 4 +- Visual Studio Projects/S3.vcproj | 4 +- Visual Studio Projects/SDS.vcproj | 4 +- Visual Studio Projects/SWTP.vcproj | 4 +- Visual Studio Projects/VAX.vcproj | 4 +- Visual Studio Projects/VAX780.vcproj | 4 +- Visual Studio Projects/lgp.vcproj | 4 +- scp.c | 58 +++++++++++++++++++++++-- 30 files changed, 113 insertions(+), 61 deletions(-) diff --git a/Visual Studio Projects/ALTAIR.vcproj b/Visual Studio Projects/ALTAIR.vcproj index 59fa3bd7..32f0178e 100644 --- a/Visual Studio Projects/ALTAIR.vcproj +++ b/Visual Studio Projects/ALTAIR.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/AltairZ80.vcproj b/Visual Studio Projects/AltairZ80.vcproj index b5681a54..7f9224c6 100644 --- a/Visual Studio Projects/AltairZ80.vcproj +++ b/Visual Studio Projects/AltairZ80.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../AltairZ80/" - PreprocessorDefinitions="NO_INLINE;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="NO_INLINE;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../AltairZ80/" - PreprocessorDefinitions="NO_INLINE;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="NO_INLINE;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/BuildROMs.vcproj b/Visual Studio Projects/BuildROMs.vcproj index 349f0e0d..f66ef9f5 100644 --- a/Visual Studio Projects/BuildROMs.vcproj +++ b/Visual Studio Projects/BuildROMs.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/ECLIPSE.vcproj b/Visual Studio Projects/ECLIPSE.vcproj index d92daee7..ba3fe03d 100644 --- a/Visual Studio Projects/ECLIPSE.vcproj +++ b/Visual Studio Projects/ECLIPSE.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../;../NOVA/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="../;../NOVA/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/GRI.vcproj b/Visual Studio Projects/GRI.vcproj index 811cd8aa..1cf70f12 100644 --- a/Visual Studio Projects/GRI.vcproj +++ b/Visual Studio Projects/GRI.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../GRI/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../GRI/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/H316.vcproj b/Visual Studio Projects/H316.vcproj index 226ea7a8..43ceea9b 100644 --- a/Visual Studio Projects/H316.vcproj +++ b/Visual Studio Projects/H316.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/HP2100.vcproj b/Visual Studio Projects/HP2100.vcproj index 052039da..eaf4fd1a 100644 --- a/Visual Studio Projects/HP2100.vcproj +++ b/Visual Studio Projects/HP2100.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../HP2100/" - PreprocessorDefinitions="HAVE_INT64;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="HAVE_INT64;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../HP2100/" - PreprocessorDefinitions="HAVE_INT64;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="HAVE_INT64;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I1401.vcproj b/Visual Studio Projects/I1401.vcproj index d1f8f561..8d897993 100644 --- a/Visual Studio Projects/I1401.vcproj +++ b/Visual Studio Projects/I1401.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../I1401/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../I1401/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I1620.vcproj b/Visual Studio Projects/I1620.vcproj index f24ac970..077b9e52 100644 --- a/Visual Studio Projects/I1620.vcproj +++ b/Visual Studio Projects/I1620.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../I1620/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../I1620/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I7094.vcproj b/Visual Studio Projects/I7094.vcproj index c96b4579..423bf4b0 100644 --- a/Visual Studio Projects/I7094.vcproj +++ b/Visual Studio Projects/I7094.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;USE_INT64" + PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_INT64" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;USE_INT64" + PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_INT64" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/IBM1130.vcproj b/Visual Studio Projects/IBM1130.vcproj index cec64ded..1003e122 100644 --- a/Visual Studio Projects/IBM1130.vcproj +++ b/Visual Studio Projects/IBM1130.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../ibm1130/" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../ibm1130/" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/ID16.vcproj b/Visual Studio Projects/ID16.vcproj index 162a6fac..d9f4a116 100644 --- a/Visual Studio Projects/ID16.vcproj +++ b/Visual Studio Projects/ID16.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/ID32.vcproj b/Visual Studio Projects/ID32.vcproj index 237c2e7c..b25c1a51 100644 --- a/Visual Studio Projects/ID32.vcproj +++ b/Visual Studio Projects/ID32.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/NOVA.vcproj b/Visual Studio Projects/NOVA.vcproj index 22cb8bc2..e189a05d 100644 --- a/Visual Studio Projects/NOVA.vcproj +++ b/Visual Studio Projects/NOVA.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../NOVA/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../NOVA/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP1.vcproj b/Visual Studio Projects/PDP1.vcproj index 57431cb4..795ef22e 100644 --- a/Visual Studio Projects/PDP1.vcproj +++ b/Visual Studio Projects/PDP1.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../PDP1/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../PDP1/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP10.vcproj b/Visual Studio Projects/PDP10.vcproj index eff6841a..3f67e161 100644 --- a/Visual Studio Projects/PDP10.vcproj +++ b/Visual Studio Projects/PDP10.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../PDP10/;../PDP11/;../VAX/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_INT64;VM_PDP10;USE_SHARED;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" + PreprocessorDefinitions="USE_INT64;VM_PDP10;USE_SHARED;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -125,7 +125,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../PDP10/;../PDP11/;../VAX/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_INT64;VM_PDP10;USE_SHARED;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" + PreprocessorDefinitions="USE_INT64;VM_PDP10;USE_SHARED;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP11.vcproj b/Visual Studio Projects/PDP11.vcproj index 30e71620..279d5d65 100644 --- a/Visual Studio Projects/PDP11.vcproj +++ b/Visual Studio Projects/PDP11.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../PDP11/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_SHARED;VM_PDP11;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" + PreprocessorDefinitions="USE_SHARED;VM_PDP11;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -125,7 +125,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../PDP11/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_SHARED;VM_PDP11;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" + PreprocessorDefinitions="USE_SHARED;VM_PDP11;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP15.vcproj b/Visual Studio Projects/PDP15.vcproj index fb326065..c6329eed 100644 --- a/Visual Studio Projects/PDP15.vcproj +++ b/Visual Studio Projects/PDP15.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP15;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP15;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP15;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP15;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP18B.vcproj b/Visual Studio Projects/PDP18B.vcproj index 5d829a55..b45638e3 100644 --- a/Visual Studio Projects/PDP18B.vcproj +++ b/Visual Studio Projects/PDP18B.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP4.vcproj b/Visual Studio Projects/PDP4.vcproj index 3a5fa23d..51cd5d58 100644 --- a/Visual Studio Projects/PDP4.vcproj +++ b/Visual Studio Projects/PDP4.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP4;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP4;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP4;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP4;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP7.vcproj b/Visual Studio Projects/PDP7.vcproj index dce8d70e..406f59f6 100644 --- a/Visual Studio Projects/PDP7.vcproj +++ b/Visual Studio Projects/PDP7.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP7;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP7;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP7;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP7;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP8.vcproj b/Visual Studio Projects/PDP8.vcproj index 26335916..4b0da1b8 100644 --- a/Visual Studio Projects/PDP8.vcproj +++ b/Visual Studio Projects/PDP8.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../PDP8/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../PDP8/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP9.vcproj b/Visual Studio Projects/PDP9.vcproj index 7bec5514..6e33e1f3 100644 --- a/Visual Studio Projects/PDP9.vcproj +++ b/Visual Studio Projects/PDP9.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP9;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP9;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="../;../PDP18B/" - PreprocessorDefinitions="PDP9;_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="PDP9;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/S3.vcproj b/Visual Studio Projects/S3.vcproj index fba7a787..87accecc 100644 --- a/Visual Studio Projects/S3.vcproj +++ b/Visual Studio Projects/S3.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../S3/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../S3/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/SDS.vcproj b/Visual Studio Projects/SDS.vcproj index d1c3ff9c..da48167f 100644 --- a/Visual Studio Projects/SDS.vcproj +++ b/Visual Studio Projects/SDS.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../SDS/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../SDS/" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/SWTP.vcproj b/Visual Studio Projects/SWTP.vcproj index ca490ae2..4bbaf463 100644 --- a/Visual Studio Projects/SWTP.vcproj +++ b/Visual Studio Projects/SWTP.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/VAX.vcproj b/Visual Studio Projects/VAX.vcproj index bfc0e91c..4ff80430 100644 --- a/Visual Studio Projects/VAX.vcproj +++ b/Visual Studio Projects/VAX.vcproj @@ -45,7 +45,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../VAX/;../pdp11/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;USE_SHARED;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" + PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;USE_SHARED;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" KeepComments="false" MinimalRebuild="true" BasicRuntimeChecks="0" @@ -135,7 +135,7 @@ FavorSizeOrSpeed="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../VAX/;../pdp11/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;USE_SHARED;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" + PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;USE_SHARED;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" KeepComments="false" StringPooling="true" RuntimeLibrary="0" diff --git a/Visual Studio Projects/VAX780.vcproj b/Visual Studio Projects/VAX780.vcproj index e0139d7a..c16c1f0a 100644 --- a/Visual Studio Projects/VAX780.vcproj +++ b/Visual Studio Projects/VAX780.vcproj @@ -45,7 +45,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../VAX/;../pdp11/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;VAX_780;USE_SHARED;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" + PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;VAX_780;USE_SHARED;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" MinimalRebuild="true" BasicRuntimeChecks="0" RuntimeLibrary="1" @@ -134,7 +134,7 @@ FavorSizeOrSpeed="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../;../VAX/;../pdp11/;../../winpcap/Wpdpack/Include;"../../pthreads/Pre-built.2/include"" - PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;VAX_780;USE_SHARED;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" + PreprocessorDefinitions="USE_INT64;USE_ADDR64;VM_VAX;VAX_780;USE_SHARED;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;USE_READER_THREAD;SIM_ASYNCH_IO" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/lgp.vcproj b/Visual Studio Projects/lgp.vcproj index cf6d7156..4e9745ea 100644 --- a/Visual Studio Projects/lgp.vcproj +++ b/Visual Studio Projects/lgp.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -124,7 +124,7 @@ InlineFunctionExpansion="1" OmitFramePointers="true" AdditionalIncludeDirectories="./;../" - PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/scp.c b/scp.c index 56122651..2bc28be9 100644 --- a/scp.c +++ b/scp.c @@ -212,6 +212,7 @@ #include #include #include +#include #if defined(HAVE_DLOPEN) /* Dynamic Readline support */ #include @@ -2819,12 +2820,15 @@ t_bool v35, v32; DEVICE *dptr; UNIT *uptr; REG *rptr; +struct stat rstat; +t_bool force_restore = sim_switches & SWMASK ('F'); #define READ_S(xx) if (read_line ((xx), CBUFSIZE, rfile) == NULL) \ return SCPE_IOERR; #define READ_I(xx) if (sim_fread (&xx, sizeof (xx), 1, rfile) == 0) \ return SCPE_IOERR; +fstat (fileno (rfile), &rstat); READ_S (buf); /* [V2.5+] read version */ v35 = v32 = FALSE; if (strcmp (buf, save_vercur) == 0) /* version 3.5? */ @@ -2833,22 +2837,30 @@ else if (strcmp (buf, save_ver32) == 0) /* version 3.2? */ v32 = TRUE; else if (strcmp (buf, save_ver30) != 0) { /* version 3.0? */ printf ("Invalid file version: %s\n", buf); + if (sim_log) + fprintf (sim_log, "Invalid file version: %s\n", buf); return SCPE_INCOMP; } READ_S (buf); /* read sim name */ if (strcmp (buf, sim_name)) { /* name match? */ printf ("Wrong system type: %s\n", buf); + if (sim_log) + fprintf (sim_log, "Wrong system type: %s\n", buf); return SCPE_INCOMP; } if (v35) { /* [V3.5+] options */ READ_S (buf); /* integer size */ if (strcmp (buf, sim_si64) != 0) { printf ("Incompatible integer size, save file = %s\n", buf); + if (sim_log) + fprintf (sim_log, "Incompatible integer size, save file = %s\n", buf); return SCPE_INCOMP; } READ_S (buf); /* address size */ if (strcmp (buf, sim_sa64) != 0) { printf ("Incompatible address size, save file = %s\n", buf); + if (sim_log) + fprintf (sim_log, "Incompatible address size, save file = %s\n", buf); return SCPE_INCOMP; } READ_S (buf); /* Ethernet */ @@ -2866,6 +2878,8 @@ for ( ;; ) { /* device loop */ break; if ((dptr = find_dev (buf)) == NULL) { /* locate device */ printf ("Invalid device name: %s\n", buf); + if (sim_log) + fprintf (sim_log, "Invalid device name: %s\n", buf); return SCPE_INCOMP; } READ_S (buf); /* [V3.0+] logical name */ @@ -2886,6 +2900,8 @@ for ( ;; ) { /* device loop */ break; if ((uint32) unitno >= dptr->numunits) { /* too big? */ printf ("Invalid unit number: %s%d\n", sim_dname (dptr), unitno); + if (sim_log) + fprintf (sim_log, "Invalid unit number: %s%d\n", sim_dname (dptr), unitno); return SCPE_INCOMP; } READ_I (time); /* event time */ @@ -2936,6 +2952,8 @@ for ( ;; ) { /* device loop */ if (((uptr->flags & (UNIT_FIX + UNIT_ATTABLE)) != UNIT_FIX) || (dptr->deposit == NULL)) { printf ("Can't restore memory: %s%d\n", sim_dname (dptr), unitno); + if (sim_log) + fprintf (sim_log, "Can't restore memory: %s%d\n", sim_dname (dptr), unitno); return SCPE_INCOMP; } if (high != old_capac) { /* size change? */ @@ -2945,12 +2963,20 @@ for ( ;; ) { /* device loop */ (dptr->msize (uptr, (int32) high, NULL, NULL) != SCPE_OK))) { printf ("Can't change memory size: %s%d\n", sim_dname (dptr), unitno); + if (sim_log) + fprintf (sim_log, "Can't change memory size: %s%d\n", + sim_dname (dptr), unitno); return SCPE_INCOMP; } uptr->capac = high; /* new memory size */ printf ("Memory size changed: %s%d = ", sim_dname (dptr), unitno); fprint_capac (stdout, dptr, uptr); printf ("\n"); + if (sim_log) { + fprintf (sim_log, "Memory size changed: %s%d = ", sim_dname (dptr), unitno); + fprint_capac (sim_log, dptr, uptr); + fprintf (sim_log, "\n"); + } } sz = SZ_D (dptr); /* allocate buffer */ if ((mbuf = calloc (SRBSIZ, sz)) == NULL) @@ -2981,19 +3007,28 @@ for ( ;; ) { /* device loop */ READ_I (depth); /* [V2.10+] depth */ if ((rptr = find_reg (buf, NULL, dptr)) == NULL) { printf ("Invalid register name: %s %s\n", sim_dname (dptr), buf); + if (sim_log) + fprintf (sim_log, "Invalid register name: %s %s\n", sim_dname (dptr), buf); for (us = 0; us < depth; us++) { /* skip values */ READ_I (val); } continue; } - if (depth != rptr->depth) /* [V2.10+] mismatch? */ + if (depth != rptr->depth) { /* [V2.10+] mismatch? */ printf ("Register depth mismatch: %s %s, file = %d, sim = %d\n", sim_dname (dptr), buf, depth, rptr->depth); + if (sim_log) + fprintf (sim_log, "Register depth mismatch: %s %s, file = %d, sim = %d\n", + sim_dname (dptr), buf, depth, rptr->depth); + } mask = width_mask[rptr->width]; /* get mask */ for (us = 0; us < depth; us++) { /* loop thru values */ READ_I (val); /* read value */ - if (val > mask) /* value ok? */ + if (val > mask) { /* value ok? */ printf ("Invalid register value: %s %s\n", sim_dname (dptr), buf); + if (sim_log) + fprintf (sim_log, "Invalid register value: %s %s\n", sim_dname (dptr), buf); + } else if (us < rptr->depth) /* in range? */ put_rval (rptr, us, val); } @@ -3004,11 +3039,28 @@ for ( ;; ) { /* device loop */ may depend on the state of the device (in registers) to work correctly */ for (j=0, r = SCPE_OK; j rstat.st_mtime + 30) { + r = SCPE_INCOMP; + printf ("Error Attaching %s to %s - the restore state is %d seconds older than the attach file\n", sim_dname (dptr), attnames[j], (int)(fstat.st_mtime - rstat.st_mtime)); + printf ("restore with the -F switch to override this sanity check\n"); + if (sim_log) { + fprintf (sim_log, "Error Attaching %s to %s - the restore state is %d seconds older than the attach file\n", sim_dname (dptr), attnames[j], (int)(fstat.st_mtime - rstat.st_mtime)); + fprintf (sim_log, "restore with the -F switch to override this sanity check\n"); + } + continue; + } sim_switches = attswitches[j]; r = scp_attach_unit (dptr, attunits[j], attnames[j]);/* reattach unit */ - if (r != SCPE_OK) + if (r != SCPE_OK) { printf ("Error Attaching %s to %s\n", sim_dname (dptr), attnames[j]); + if (sim_log) + fprintf (sim_log, "Error Attaching %s to %s\n", sim_dname (dptr), attnames[j]); + } } free (attnames[j]); }