diff --git a/Visual Studio Projects/3B2.vcproj b/Visual Studio Projects/3B2.vcproj index 7b5220d..239d694 100644 --- a/Visual Studio Projects/3B2.vcproj +++ b/Visual Studio Projects/3B2.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../3B2/;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;USE_INT64;USE_ADDR64;USE_SHARED;PTW32_STATIC_LIB;SIM_ASYNCH_IO;USE_READER_THREAD;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;USE_INT64;USE_ADDR64;USE_SHARED;PTW32_STATIC_LIB;SIM_ASYNCH_IO;USE_READER_THREAD;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG" KeepComments="false" BasicRuntimeChecks="0" RuntimeLibrary="1" @@ -125,7 +125,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../3B2/;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;USE_INT64;USE_ADDR64;USE_SHARED;PTW32_STATIC_LIB;SIM_ASYNCH_IO;USE_READER_THREAD;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;USE_INT64;USE_ADDR64;USE_SHARED;PTW32_STATIC_LIB;SIM_ASYNCH_IO;USE_READER_THREAD;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/B5500.vcproj b/Visual Studio Projects/B5500.vcproj index aa52723..9f6d460 100644 --- a/Visual Studio Projects/B5500.vcproj +++ b/Visual Studio Projects/B5500.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" BasicRuntimeChecks="0" RuntimeLibrary="1" @@ -126,7 +126,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I701.vcproj b/Visual Studio Projects/I701.vcproj index eb473ef..eee30d4 100644 --- a/Visual Studio Projects/I701.vcproj +++ b/Visual Studio Projects/I701.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I701;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I701;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -123,7 +123,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I701;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I701;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I7010.vcproj b/Visual Studio Projects/I7010.vcproj index 8f1cd27..5215d94 100644 --- a/Visual Studio Projects/I7010.vcproj +++ b/Visual Studio Projects/I7010.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7010;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7010;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -123,7 +123,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7010;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7010;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I704.vcproj b/Visual Studio Projects/I704.vcproj index 5083ea6..e947345 100644 --- a/Visual Studio Projects/I704.vcproj +++ b/Visual Studio Projects/I704.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I704;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I704;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -123,7 +123,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I704;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I704;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I7070.vcproj b/Visual Studio Projects/I7070.vcproj index 4166872..2e740f4 100644 --- a/Visual Studio Projects/I7070.vcproj +++ b/Visual Studio Projects/I7070.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7070;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7070;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -123,7 +123,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7070;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7070;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I7080.vcproj b/Visual Studio Projects/I7080.vcproj index 71ac5c0..adfa460 100644 --- a/Visual Studio Projects/I7080.vcproj +++ b/Visual Studio Projects/I7080.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7080;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7080;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -123,7 +123,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7080;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7080;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I7090.vcproj b/Visual Studio Projects/I7090.vcproj index 384e9f5..aa2514e 100644 --- a/Visual Studio Projects/I7090.vcproj +++ b/Visual Studio Projects/I7090.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7090;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7090;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" @@ -123,7 +123,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="I7090;USE_INT64;USE_SIM_CARD;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="I7090;USE_INT64;USE_SIM_CARD;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/I7094.vcproj b/Visual Studio Projects/I7094.vcproj index ed21cb0..abcc94a 100644 --- a/Visual Studio Projects/I7094.vcproj +++ b/Visual Studio Projects/I7094.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_INT64;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_INT64;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" BasicRuntimeChecks="0" RuntimeLibrary="1" @@ -125,7 +125,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_INT64;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_INT64;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/IBM360.vcproj b/Visual Studio Projects/IBM360.vcproj index e781ac4..1b36048 100644 --- a/Visual Studio Projects/IBM360.vcproj +++ b/Visual Studio Projects/IBM360.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="IBM360;USE_64BIT;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="IBM360;USE_64BIT;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" MinimalRebuild="true" BasicRuntimeChecks="0" @@ -127,7 +127,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="IBM360;USE_64BIT;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="IBM360;USE_64BIT;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/IBM360_32.vcproj b/Visual Studio Projects/IBM360_32.vcproj index 46ae8d5..9155cce 100644 --- a/Visual Studio Projects/IBM360_32.vcproj +++ b/Visual Studio Projects/IBM360_32.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="IBM360;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="IBM360;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" MinimalRebuild="true" BasicRuntimeChecks="0" @@ -127,7 +127,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="IBM360;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="IBM360;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/ICL1900.vcproj b/Visual Studio Projects/ICL1900.vcproj index 4d4dca5..0e3070f 100644 --- a/Visual Studio Projects/ICL1900.vcproj +++ b/Visual Studio Projects/ICL1900.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="ICL1900;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="ICL1900;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" MinimalRebuild="true" BasicRuntimeChecks="0" @@ -127,7 +127,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="ICL1900;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="ICL1900;SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USE_SIM_CARD;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" diff --git a/Visual Studio Projects/PDP10-KA.vcproj b/Visual Studio Projects/PDP10-KA.vcproj index ef4df83..f97eaf2 100644 --- a/Visual Studio Projects/PDP10-KA.vcproj +++ b/Visual Studio Projects/PDP10-KA.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../PDP10/;../PDP11/;../VAX/;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KA=1;USE_DISPLAY;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;PTW32_STATIC_LIB;USE_READER_THREAD;SIM_ASYNCH_IO" + PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KA=1;SIM_BUILD_TOOL=simh-Visual-Studio-Project;USE_DISPLAY;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;PTW32_STATIC_LIB;USE_READER_THREAD;SIM_ASYNCH_IO" KeepComments="false" BasicRuntimeChecks="0" RuntimeLibrary="1" @@ -126,7 +126,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../PDP10/;../PDP11/;../VAX/;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KA=1;USE_DISPLAY;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;PTW32_STATIC_LIB;USE_READER_THREAD;SIM_ASYNCH_IO" + PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KA=1;SIM_BUILD_TOOL=simh-Visual-Studio-Project;USE_DISPLAY;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC;PTW32_STATIC_LIB;USE_READER_THREAD;SIM_ASYNCH_IO" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" @@ -213,6 +213,10 @@ RelativePath="..\PDP10\ka10_dpk.c" > + + @@ -301,6 +305,10 @@ RelativePath="..\PDP10\kx10_rc.c" > + + diff --git a/Visual Studio Projects/PDP10-KI.vcproj b/Visual Studio Projects/PDP10-KI.vcproj index 97ded4f..90ad3c0 100644 --- a/Visual Studio Projects/PDP10-KI.vcproj +++ b/Visual Studio Projects/PDP10-KI.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../PDP10/;../PDP11/;../VAX/;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KI=1;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;USE_DISPLAY;DISPLAY_TYPE=DIS_TYPE30;PIX_SCALE=RES_HALF;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KI=1;SIM_BUILD_TOOL=simh-Visual-Studio-Project;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;USE_DISPLAY;DISPLAY_TYPE=DIS_TYPE30;PIX_SCALE=RES_HALF;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" BasicRuntimeChecks="0" RuntimeLibrary="1" @@ -126,7 +126,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../PDP10/;../PDP11/;../VAX/;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/include;;../../windows-build/include/SDL2" - PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KI=1;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;USE_DISPLAY;DISPLAY_TYPE=DIS_TYPE30;PIX_SCALE=RES_HALF;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="USE_INT64;USE_SIM_CARD;KI=1;SIM_BUILD_TOOL=simh-Visual-Studio-Project;USE_SHARED;HAVE_SLIRP_NETWORK;USE_SIMH_SLIRP_DEBUG;USE_DISPLAY;DISPLAY_TYPE=DIS_TYPE30;PIX_SCALE=RES_HALF;USE_SIM_VIDEO;HAVE_LIBSDL;HAVE_LIBPNG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" @@ -253,6 +253,10 @@ RelativePath="..\PDP10\kx10_rc.c" > + + diff --git a/Visual Studio Projects/PDP10-KL.vcproj b/Visual Studio Projects/PDP10-KL.vcproj new file mode 100644 index 0000000..a1a00af --- /dev/null +++ b/Visual Studio Projects/PDP10-KL.vcproj @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Visual Studio Projects/Pre-Build-Event.cmd b/Visual Studio Projects/Pre-Build-Event.cmd index 1261014..3efafb4 100644 --- a/Visual Studio Projects/Pre-Build-Event.cmd +++ b/Visual Studio Projects/Pre-Build-Event.cmd @@ -29,7 +29,7 @@ rem rem Everything implicitly requires BUILD to also be set to have rem any meaning, it always gets set. set _X_BUILD=BUILD -set _X_REQUIRED_WINDOWS_BUILD=20191213 +set _X_REQUIRED_WINDOWS_BUILD=20191221 call :FindVCVersion _VC_VER set _PDB=%~dpn1.pdb diff --git a/Visual Studio Projects/SEL32.vcproj b/Visual Studio Projects/SEL32.vcproj index bbc7228..eb83569 100644 --- a/Visual Studio Projects/SEL32.vcproj +++ b/Visual Studio Projects/SEL32.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" KeepComments="false" MinimalRebuild="true" BasicRuntimeChecks="0" @@ -126,7 +126,7 @@ OmitFramePointers="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="../../windows-build/libSDL/SDL2-2.0.5/include;./;../;../slirp;../slirp_glue;../slirp_glue/qemu;../slirp_glue/qemu/win32/include;../../windows-build/winpcap/Wpdpack/Include;../../windows-build/PCRE/include/;../../windows-build/pthreads;../../windows-build/libSDL/SDL2-2.0.8/include;../../windows-build/libpng-1.6.18" - PreprocessorDefinitions="_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" + PreprocessorDefinitions="SIM_BUILD_TOOL=simh-Visual-Studio-Project;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;SIM_NEED_GIT_COMMIT_ID;HAVE_PCREPOSIX_H;PCRE_STATIC" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" @@ -224,10 +224,6 @@ RelativePath="..\SEL32\sel32_fltpt.c" > - - diff --git a/makefile b/makefile index ac27810..115e997 100644 --- a/makefile +++ b/makefile @@ -78,7 +78,7 @@ # # CC Command (and platform available options). (Poor man's autoconf) # -ifneq (,$(GREP_OPTIONS)) +ifneq (,${GREP_OPTIONS}) $(info GREP_OPTIONS is defined in your environment.) $(info ) $(info This variable interfers with the proper operation of this script.) @@ -96,39 +96,44 @@ ifeq (old,$(shell gmake --version /dev/null 2>&1 | grep 'GNU Make' | awk '{ if ( $(warning *** Warning *** GNU Make Version $(GMAKE_VERSION) is too old to) $(warning *** Warning *** fully process this makefile) endif -BUILD_SINGLE := $(MAKECMDGOALS) $(BLANK_SUFFIX) +BUILD_SINGLE := ${MAKECMDGOALS} $(BLANK_SUFFIX) BUILD_MULTIPLE_VERB = is # building the pdp1, pdp11, tx-0, or any microvax simulator could use video support -ifneq (,$(or $(findstring XXpdp1XX,$(addsuffix XX,$(addprefix XX,$(MAKECMDGOALS)))),$(findstring pdp11,$(MAKECMDGOALS)),$(findstring tx-0,$(MAKECMDGOALS)),$(findstring microvax1,$(MAKECMDGOALS)),$(findstring microvax2,$(MAKECMDGOALS)),$(findstring microvax3900,$(MAKECMDGOALS)),$(findstring XXvaxXX,$(addsuffix XX,$(addprefix XX,$(MAKECMDGOALS)))))) +ifneq (,$(or $(findstring XXpdp1XX,$(addsuffix XX,$(addprefix XX,${MAKECMDGOALS}))),$(findstring pdp11,${MAKECMDGOALS}),$(findstring tx-0,${MAKECMDGOALS}),$(findstring microvax1,${MAKECMDGOALS}),$(findstring microvax2,${MAKECMDGOALS}),$(findstring microvax3900,${MAKECMDGOALS}),$(findstring microvax2000,${MAKECMDGOALS}),$(findstring vaxstation3100,${MAKECMDGOALS}),$(findstring XXvaxXX,$(addsuffix XX,$(addprefix XX,${MAKECMDGOALS}))))) VIDEO_USEFUL = true endif # building the besm6 needs both video support and fontfile support -ifneq (,$(findstring besm6,$(MAKECMDGOALS))) +ifneq (,$(findstring besm6,${MAKECMDGOALS})) VIDEO_USEFUL = true BESM6_BUILD = true endif -# building the KA10 needs video support -ifneq (,$(or $(findstring pdp6,$(MAKECMDGOALS)),$(findstring pdp10-ka,$(MAKECMDGOALS)),$(findstring pdp10-ki,$(MAKECMDGOALS)))) +# building the PDP6, KA10 or KI10 needs video support +ifneq (,$(or $(findstring pdp6,${MAKECMDGOALS}),$(findstring pdp10-ka,${MAKECMDGOALS}),$(findstring pdp10-ki,${MAKECMDGOALS}))) VIDEO_USEFUL = true endif -ifneq (,$(or $(findstring pdp10-ka,$(MAKECMDGOALS)),$(findstring pdp10-ki,$(MAKECMDGOALS)))) +# building the KA10 or KI10 networking can be used. +ifneq (,$(or $(findstring pdp10-ka,${MAKECMDGOALS}),$(findstring pdp10-ki,${MAKECMDGOALS}))) NETWORK_USEFUL = true endif +# building the PDP-7 needs video support +ifneq (,$(findstring pdp7,${MAKECMDGOALS})) + VIDEO_USEFUL = true +endif # building the pdp11, pdp10, or any vax simulator could use networking support -ifneq (,$(or $(findstring pdp11,$(MAKECMDGOALS)),$(findstring pdp10,$(MAKECMDGOALS)),$(findstring vax,$(MAKECMDGOALS)),$(findstring all,$(MAKECMDGOALS)))) +ifneq (,$(or $(findstring pdp11,${MAKECMDGOALS}),$(findstring pdp10,${MAKECMDGOALS}),$(findstring vax,${MAKECMDGOALS}),$(findstring 3b2,${MAKECMDGOALS})$(findstring all,${MAKECMDGOALS}))) NETWORK_USEFUL = true - ifneq (,$(findstring all,$(MAKECMDGOALS))) + ifneq (,$(findstring all,${MAKECMDGOALS})) BUILD_MULTIPLE = s BUILD_MULTIPLE_VERB = are VIDEO_USEFUL = true BESM6_BUILD = true endif - ifneq (,$(word 2,$(MAKECMDGOALS))) + ifneq (,$(word 2,${MAKECMDGOALS})) BUILD_MULTIPLE = s BUILD_MULTIPLE_VERB = are endif else - ifeq ($(MAKECMDGOALS),) + ifeq (${MAKECMDGOALS},) # default target is all NETWORK_USEFUL = true VIDEO_USEFUL = true @@ -138,28 +143,28 @@ else BESM6_BUILD = true endif endif -find_exe = $(abspath $(strip $(firstword $(foreach dir,$(strip $(subst :, ,$(PATH))),$(wildcard $(dir)/$(1)))))) -find_lib = $(abspath $(strip $(firstword $(foreach dir,$(strip $(LIBPATH)),$(wildcard $(dir)/lib$(1).$(LIBEXT)))))) -find_include = $(abspath $(strip $(firstword $(foreach dir,$(strip $(INCPATH)),$(wildcard $(dir)/$(1).h))))) +find_exe = $(abspath $(strip $(firstword $(foreach dir,$(strip $(subst :, ,${PATH})),$(wildcard $(dir)/$(1)))))) +find_lib = $(abspath $(strip $(firstword $(foreach dir,$(strip ${LIBPATH}),$(wildcard $(dir)/lib$(1).${LIBEXT}))))) +find_include = $(abspath $(strip $(firstword $(foreach dir,$(strip ${INCPATH}),$(wildcard $(dir)/$(1).h))))) ifneq (0,$(TESTS)) find_test = $(abspath $(wildcard $(1)/tests/$(2)_test.ini)) TESTING_FEATURES = - Per simulator tests will be run else TESTING_FEATURES = - Per simulator tests will be skipped endif -ifneq ($(findstring Windows,$(OS)),) - ifeq ($(findstring .exe,$(SHELL)),.exe) +ifneq ($(findstring Windows,${OS}),) + ifeq ($(findstring .exe,${SHELL}),.exe) # MinGW WIN32 := 1 else # Msys or cygwin ifeq (MINGW,$(findstring MINGW,$(shell uname))) $(info *** This makefile can not be used with the Msys bash shell) - $(error Use build_mingw.bat $(MAKECMDGOALS) from a Windows command prompt) + $(error Use build_mingw.bat ${MAKECMDGOALS} from a Windows command prompt) endif endif endif -ifeq ($(WIN32),) #*nix Environments (&& cygwin) - ifeq ($(GCC),) +ifeq (${WIN32},) #*nix Environments (&& cygwin) + ifeq (${GCC},) ifeq (,$(shell which gcc 2>/dev/null)) $(info *** Warning *** Using local cc since gcc isn't available locally.) $(info *** Warning *** You may need to install gcc to build working simulators.) @@ -180,55 +185,55 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) OSTYPE = cygwin OSNAME = windows-build endif - ifeq (,$(shell $(GCC) -v /dev/null 2>&1 | grep 'clang')) - GCC_VERSION = $(shell $(GCC) -v /dev/null 2>&1 | grep 'gcc version' | awk '{ print $$3 }') + ifeq (,$(shell ${GCC} -v /dev/null 2>&1 | grep 'clang')) + GCC_VERSION = $(shell ${GCC} -v /dev/null 2>&1 | grep 'gcc version' | awk '{ print $$3 }') COMPILER_NAME = GCC Version: $(GCC_VERSION) ifeq (,$(GCC_VERSION)) ifeq (SunOS,$(OSTYPE)) - ifneq (,$(shell $(GCC) -V 2>&1 | grep 'Sun C')) - SUNC_VERSION = $(shell $(GCC) -V 2>&1 | grep 'Sun C') + ifneq (,$(shell ${GCC} -V 2>&1 | grep 'Sun C')) + SUNC_VERSION = $(shell ${GCC} -V 2>&1 | grep 'Sun C') COMPILER_NAME = $(wordlist 2,10,$(SUNC_VERSION)) CC_STD = -std=c99 endif endif ifeq (HP-UX,$(OSTYPE)) - ifneq (,$(shell what `which $(firstword $(GCC)) 2>&1`| grep -i compiler)) - COMPILER_NAME = $(strip $(shell what `which $(firstword $(GCC)) 2>&1` | grep -i compiler)) + ifneq (,$(shell what `which $(firstword ${GCC}) 2>&1`| grep -i compiler)) + COMPILER_NAME = $(strip $(shell what `which $(firstword ${GCC}) 2>&1` | grep -i compiler)) CC_STD = -std=gnu99 endif endif else - ifeq (,$(findstring ++,$(GCC))) + ifeq (,$(findstring ++,${GCC})) CC_STD = -std=gnu99 else CPP_BUILD = 1 endif endif else - ifeq (Apple,$(shell $(GCC) -v /dev/null 2>&1 | grep 'Apple' | awk '{ print $$1 }')) - COMPILER_NAME = $(shell $(GCC) -v /dev/null 2>&1 | grep 'Apple' | awk '{ print $$1 " " $$2 " " $$3 " " $$4 }') + ifeq (Apple,$(shell ${GCC} -v /dev/null 2>&1 | grep 'Apple' | awk '{ print $$1 }')) + COMPILER_NAME = $(shell ${GCC} -v /dev/null 2>&1 | grep 'Apple' | awk '{ print $$1 " " $$2 " " $$3 " " $$4 }') CLANG_VERSION = $(word 4,$(COMPILER_NAME)) else - COMPILER_NAME = $(shell $(GCC) -v /dev/null 2>&1 | grep 'clang version' | awk '{ print $$1 " " $$2 " " $$3 }') + COMPILER_NAME = $(shell ${GCC} -v /dev/null 2>&1 | grep 'clang version' | awk '{ print $$1 " " $$2 " " $$3 }') CLANG_VERSION = $(word 3,$(COMPILER_NAME)) ifeq (,$(findstring .,$(CLANG_VERSION))) - COMPILER_NAME = $(shell $(GCC) -v /dev/null 2>&1 | grep 'clang version' | awk '{ print $$1 " " $$2 " " $$3 " " $$4 }') + COMPILER_NAME = $(shell ${GCC} -v /dev/null 2>&1 | grep 'clang version' | awk '{ print $$1 " " $$2 " " $$3 " " $$4 }') CLANG_VERSION = $(word 4,$(COMPILER_NAME)) endif endif - ifeq (,$(findstring ++,$(GCC))) + ifeq (,$(findstring ++,${GCC})) CC_STD = -std=c99 else CPP_BUILD = 1 OS_CCDEFS += -Wno-deprecated endif endif - ifeq (git-repo,$(shell if $(TEST) -d ./.git; then echo git-repo; fi)) + ifeq (git-repo,$(shell if ${TEST} -d ./.git; then echo git-repo; fi)) GIT_PATH=$(strip $(shell which git)) ifeq (,$(GIT_PATH)) $(error building using a git repository, but git is not available) endif - ifeq (commit-id-exists,$(shell if $(TEST) -e .git-commit-id; then echo commit-id-exists; fi)) + ifeq (commit-id-exists,$(shell if ${TEST} -e .git-commit-id; then echo commit-id-exists; fi)) CURRENT_GIT_COMMIT_ID=$(strip $(shell grep 'SIM_GIT_COMMIT_ID' .git-commit-id | awk '{ print $$2 }')) ACTUAL_GIT_COMMIT_ID=$(strip $(shell git log -1 --pretty="%H")) ifneq ($(CURRENT_GIT_COMMIT_ID),$(ACTUAL_GIT_COMMIT_ID)) @@ -247,7 +252,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif LTO_EXCLUDE_VERSIONS = PCAPLIB = pcap - ifeq (agcc,$(findstring agcc,$(GCC))) # Android target build? + ifeq (agcc,$(findstring agcc,${GCC})) # Android target build? OS_CCDEFS = -D_GNU_SOURCE ifeq (,$(NOASYNCH)) OS_CCDEFS += -DSIM_ASYNCH_IO @@ -255,15 +260,15 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) OS_LDFLAGS = -lm else # Non-Android (or Native Android) Builds ifeq (,$(INCLUDES)$(LIBRARIES)) - INCPATH:=$(shell LANG=C; $(GCC) -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | tr -d '\n') - ifeq (,$(INCPATH)) + INCPATH:=$(shell LANG=C; ${GCC} -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | tr -d '\n') + ifeq (,${INCPATH}) INCPATH:=/usr/include endif LIBPATH:=/usr/lib else $(info *** Warning ***) ifeq (,$(INCLUDES)) - INCPATH:=$(shell LANG=C; $(GCC) -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | tr -d '\n') + INCPATH:=$(shell LANG=C; ${GCC} -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | tr -d '\n') else $(info *** Warning *** Unsupported build with INCLUDES defined as: $(INCLUDES)) INCPATH:=$(strip $(subst :, ,$(INCLUDES))) @@ -283,28 +288,28 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) $(info *** Warning ***) endif OS_CCDEFS += -D_GNU_SOURCE - GCC_OPTIMIZERS_CMD = $(GCC) -v --help 2>&1 - GCC_WARNINGS_CMD = $(GCC) -v --help 2>&1 - LD_ELF = $(shell echo | $(GCC) -E -dM - | grep __ELF__) + GCC_OPTIMIZERS_CMD = ${GCC} -v --help 2>&1 + GCC_WARNINGS_CMD = ${GCC} -v --help 2>&1 + LD_ELF = $(shell echo | ${GCC} -E -dM - | grep __ELF__) ifeq (Darwin,$(OSTYPE)) OSNAME = OSX LIBEXT = dylib ifneq (include,$(findstring include,$(UNSUPPORTED_BUILD))) - INCPATH:=$(shell LANG=C; $(GCC) -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | grep -v 'framework directory' | tr -d '\n') + INCPATH:=$(shell LANG=C; ${GCC} -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | grep -v 'framework directory' | tr -d '\n') endif - ifeq (incopt,$(shell if $(TEST) -d /opt/local/include; then echo incopt; fi)) + ifeq (incopt,$(shell if ${TEST} -d /opt/local/include; then echo incopt; fi)) INCPATH += /opt/local/include OS_CCDEFS += -I/opt/local/include endif - ifeq (libopt,$(shell if $(TEST) -d /opt/local/lib; then echo libopt; fi)) + ifeq (libopt,$(shell if ${TEST} -d /opt/local/lib; then echo libopt; fi)) LIBPATH += /opt/local/lib OS_LDFLAGS += -L/opt/local/lib endif - ifeq (HomeBrew,$(shell if $(TEST) -d /usr/local/Cellar; then echo HomeBrew; fi)) + ifeq (HomeBrew,$(shell if ${TEST} -d /usr/local/Cellar; then echo HomeBrew; fi)) INCPATH += $(foreach dir,$(wildcard /usr/local/Cellar/*/*),$(dir)/include) LIBPATH += $(foreach dir,$(wildcard /usr/local/Cellar/*/*),$(dir)/lib) endif - ifeq (libXt,$(shell if $(TEST) -d /usr/X11/lib; then echo libXt; fi)) + ifeq (libXt,$(shell if ${TEST} -d /usr/X11/lib; then echo libXt; fi)) LIBPATH += /usr/X11/lib OS_LDFLAGS += -L/usr/X11/lib endif @@ -315,12 +320,15 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif ifneq (lib,$(findstring lib,$(UNSUPPORTED_BUILD))) ifeq (Android,$(shell uname -o)) - ifneq (,$(shell if $(TEST) -d /system/lib; then echo systemlib; fi)) + ifneq (,$(shell if ${TEST} -d ${PREFIX}/lib; then echo prefixlib; fi)) + LIBPATH += ${PREFIX}/lib + endif + ifneq (,$(shell if ${TEST} -d /system/lib; then echo systemlib; fi)) LIBPATH += /system/lib endif LIBPATH += $(LD_LIBRARY_PATH) endif - ifeq (ldconfig,$(shell if $(TEST) -e /sbin/ldconfig; then echo ldconfig; fi)) + ifeq (ldconfig,$(shell if ${TEST} -e /sbin/ldconfig; then echo ldconfig; fi)) LIBPATH := $(sort $(foreach lib,$(shell /sbin/ldconfig -p | grep ' => /' | sed 's/^.* => //'),$(dir $(lib)))) endif endif @@ -333,11 +341,11 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif LIBEXT = so OS_LDFLAGS += -lsocket -lnsl - ifeq (incsfw,$(shell if $(TEST) -d /opt/sfw/include; then echo incsfw; fi)) + ifeq (incsfw,$(shell if ${TEST} -d /opt/sfw/include; then echo incsfw; fi)) INCPATH += /opt/sfw/include OS_CCDEFS += -I/opt/sfw/include endif - ifeq (libsfw,$(shell if $(TEST) -d /opt/sfw/lib; then echo libsfw; fi)) + ifeq (libsfw,$(shell if ${TEST} -d /opt/sfw/lib; then echo libsfw; fi)) LIBPATH += /opt/sfw/lib OS_LDFLAGS += -L/opt/sfw/lib -R/opt/sfw/lib endif @@ -345,18 +353,18 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) else ifeq (cygwin,$(OSTYPE)) # use 0readme_ethernet.txt documented Windows pcap build components - INCPATH += ../windows-build/winpcap/WpdPack/include - LIBPATH += ../windows-build/winpcap/WpdPack/lib + INCPATH += ../windows-build/winpcap/WpdPack/Include + LIBPATH += ../windows-build/winpcap/WpdPack/Lib PCAPLIB = wpcap LIBEXT = a else ifneq (,$(findstring AIX,$(OSTYPE))) OS_LDFLAGS += -lm -lrt - ifeq (incopt,$(shell if $(TEST) -d /opt/freeware/include; then echo incopt; fi)) + ifeq (incopt,$(shell if ${TEST} -d /opt/freeware/include; then echo incopt; fi)) INCPATH += /opt/freeware/include OS_CCDEFS += -I/opt/freeware/include endif - ifeq (libopt,$(shell if $(TEST) -d /opt/freeware/lib; then echo libopt; fi)) + ifeq (libopt,$(shell if ${TEST} -d /opt/freeware/lib; then echo libopt; fi)) LIBPATH += /opt/freeware/lib OS_LDFLAGS += -L/opt/freeware/lib endif @@ -394,23 +402,23 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) LIBPATH = $(subst :, ,$(LPATH)) endif endif - OS_LDFLAGS += $(patsubst %,-L%,$(LIBPATH)) + OS_LDFLAGS += $(patsubst %,-L%,${LIBPATH}) endif endif endif - ifeq (usrpkglib,$(shell if $(TEST) -d /usr/pkg/lib; then echo usrpkglib; fi)) + ifeq (usrpkglib,$(shell if ${TEST} -d /usr/pkg/lib; then echo usrpkglib; fi)) LIBPATH += /usr/pkg/lib INCPATH += /usr/pkg/include OS_LDFLAGS += -L/usr/pkg/lib -R/usr/pkg/lib OS_CCDEFS += -I/usr/pkg/include endif - ifeq (X11R7,$(shell if $(TEST) -d /usr/X11R7/lib; then echo X11R7; fi)) + ifeq (X11R7,$(shell if ${TEST} -d /usr/X11R7/lib; then echo X11R7; fi)) LIBPATH += /usr/X11R7/lib INCPATH += /usr/X11R7/include OS_LDFLAGS += -L/usr/X11R7/lib -R/usr/X11R7/lib OS_CCDEFS += -I/usr/X11R7/include endif - ifeq (/usr/local/lib,$(findstring /usr/local/lib,$(LIBPATH))) + ifeq (/usr/local/lib,$(findstring /usr/local/lib,${LIBPATH})) INCPATH += /usr/local/include OS_CCDEFS += -I/usr/local/include endif @@ -437,14 +445,14 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) # Some gcc versions don't support LTO, so only use LTO when the compiler is known to support it ifeq (,$(NO_LTO)) ifneq (,$(GCC_VERSION)) - ifeq (,$(shell $(GCC) -v /dev/null 2>&1 | grep '\-\-enable-lto')) + ifeq (,$(shell ${GCC} -v /dev/null 2>&1 | grep '\-\-enable-lto')) LTO_EXCLUDE_VERSIONS += $(GCC_VERSION) endif endif endif endif - $(info lib paths are: $(LIBPATH)) - $(info include paths are: $(INCPATH)) + $(info lib paths are: ${LIBPATH}) + $(info include paths are: ${INCPATH}) need_search = $(strip $(shell ld -l$(1) /dev/null 2>&1 | grep $(1) | sed s/$(1)//)) LD_SEARCH_NEEDED := $(call need_search,ZzzzzzzZ) ifneq (,$(call find_lib,m)) @@ -467,7 +475,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) OS_LDFLAGS += -lpthread $(info using libpthread: $(call find_lib,pthread) $(call find_include,pthread)) else - LIBEXTSAVE := $(LIBEXT) + LIBEXTSAVE := ${LIBEXT} LIBEXT = a ifneq (,$(call find_lib,pthread)) OS_CCDEFS += -DUSE_READER_THREAD @@ -520,7 +528,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif ifneq (,$(call find_include,dlfcn)) ifneq (,$(call find_lib,dl)) - OS_CCDEFS += -DHAVE_DLOPEN=$(LIBEXT) + OS_CCDEFS += -DHAVE_DLOPEN=${LIBEXT} OS_LDFLAGS += -ldl $(info using libdl: $(call find_lib,dl) $(call find_include,dlfcn)) else @@ -529,7 +537,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) $(info using libdl: $(call find_include,dlfcn)) else ifneq (,$(call find_lib,dld)) - OS_CCDEFS += -DHAVE_DLOPEN=$(LIBEXT) + OS_CCDEFS += -DHAVE_DLOPEN=${LIBEXT} OS_LDFLAGS += -ldld $(info using libdld: $(call find_lib,dld) $(call find_include,dlfcn)) endif @@ -562,13 +570,18 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif ifneq (,$(call find_include,sys/mman)) ifneq (,$(shell grep shm_open $(call find_include,sys/mman))) - OS_CCDEFS += -DHAVE_SHM_OPEN - $(info using mman: $(call find_include,sys/mman)) + # some Linux installs have been known to have the include, but are + # missing librt (where the shm_ APIs are implemented on Linux) + # other OSes seem have these APIs implemented elsewhere + ifneq (,$(if $(findstring Linux,$(OSTYPE)),$(call find_lib,rt),OK)) + OS_CCDEFS += -DHAVE_SHM_OPEN + $(info using mman: $(call find_include,sys/mman)) + endif endif endif ifneq (,$(VIDEO_USEFUL)) ifeq (cygwin,$(OSTYPE)) - LIBEXTSAVE := $(LIBEXT) + LIBEXTSAVE := ${LIBEXT} LIBEXT = dll.a endif ifneq (,$(call find_include,SDL2/SDL)) @@ -587,6 +600,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) DISPLAYL = ${DISPLAYD}/display.c $(DISPLAYD)/sim_ws.c DISPLAYVT = ${DISPLAYD}/vt11.c DISPLAY340 = ${DISPLAYD}/type340.c + DISPLAYNG = ${DISPLAYD}/ng.c DISPLAY_OPT += -DUSE_DISPLAY $(VIDEO_CCDEFS) $(VIDEO_LDFLAGS) $(info using libSDL2: $(call find_include,SDL2/SDL)) ifeq (Darwin,$(OSTYPE)) @@ -611,6 +625,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) DISPLAYL = ${DISPLAYD}/display.c $(DISPLAYD)/sim_ws.c DISPLAYVT = ${DISPLAYD}/vt11.c DISPLAY340 = ${DISPLAYD}/type340.c + DISPLAYNG = ${DISPLAYD}/ng.c DISPLAY_OPT += -DUSE_DISPLAY $(VIDEO_CCDEFS) $(VIDEO_LDFLAGS) $(info using libSDL: $(call find_include,SDL/SDL)) ifeq (Darwin,$(OSTYPE)) @@ -630,21 +645,21 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) ifeq (Darwin,$(OSTYPE)) $(info *** Info *** Install the MacPorts libSDL2 package to provide this) $(info *** Info *** functionality for your OS X system:) - $(info *** Info *** # port install libsdl2) + $(info *** Info *** # port install libsdl2 libpng zlib) ifeq (/usr/local/bin/brew,$(shell which brew)) $(info *** Info ***) $(info *** Info *** OR) $(info *** Info ***) $(info *** Info *** Install the HomeBrew libSDL2 package to provide this) $(info *** Info *** functionality for your OS X system:) - $(info *** Info *** $$ brew install sdl2) + $(info *** Info *** $$ brew install sdl2 libpng zlib) endif else ifneq (,$(and $(findstring Linux,$(OSTYPE)),$(call find_exe,apt-get))) $(info *** Info *** Install the development components of libSDL or libSDL2) $(info *** Info *** packaged for your operating system distribution for) $(info *** Info *** your Linux system:) - $(info *** Info *** $$ sudo apt-get install libsdl2-dev) + $(info *** Info *** $$ sudo apt-get install libsdl2-dev libpng-dev) $(info *** Info *** or) $(info *** Info *** $$ sudo apt-get install libsdl-dev) else @@ -703,7 +718,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) NETWORK_FEATURES = - dynamic networking support using $(OSNAME) provided libpcap components endif else - LIBEXTSAVE := $(LIBEXT) + LIBEXTSAVE := ${LIBEXT} LIBEXT = a ifneq (,$(call find_lib,$(PCAPLIB))) NETWORK_CCDEFS += -DUSE_NETWORK @@ -715,7 +730,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif else # On non-Linux platforms, we'll still try to provide deprecated support for libpcap in /usr/local - INCPATHSAVE := $(INCPATH) + INCPATHSAVE := ${INCPATH} ifeq (,$(findstring Linux,$(OSTYPE))) # Look for package built from tcpdump.org sources with default install target (or cygwin winpcap) INCPATH += /usr/local/include @@ -730,11 +745,11 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) ifneq (,$(shell grep pcap_compile $(PCAP_H_PATH) | grep const)) BPF_CONST_STRING = -DBPF_CONST_STRING endif - LIBEXTSAVE := $(LIBEXT) + LIBEXTSAVE := ${LIBEXT} # first check if binary - shared objects are available/installed in the linker known search paths ifneq (,$(call find_lib,$(PCAPLIB))) NETWORK_CCDEFS = -DUSE_SHARED -I$(dir $(call find_include,pcap)) $(BPF_CONST_STRING) - NETWORK_FEATURES = - dynamic networking support using libpcap components from www.tcpdump.org and locally installed libpcap.$(LIBEXT) + NETWORK_FEATURES = - dynamic networking support using libpcap components from www.tcpdump.org and locally installed libpcap.${LIBEXT} $(info using libpcap: $(call find_include,pcap)) else LIBPATH += /usr/local/lib @@ -761,7 +776,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) $(info *** Warning ***) endif else - $(error using libpcap: $(call find_include,pcap) missing $(PCAPLIB).$(LIBEXT)) + $(error using libpcap: $(call find_include,pcap) missing $(PCAPLIB).${LIBEXT}) endif NETWORK_LAN_FEATURES += PCAP endif @@ -857,7 +872,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) NETWORK_CCDEFS += -DUSE_NETWORK endif endif - ifeq (bsdtuntap,$(shell if $(TEST) -e /usr/include/net/if_tun.h -o -e /Library/Extensions/tap.kext; then echo bsdtuntap; fi)) + ifeq (bsdtuntap,$(shell if ${TEST} -e /usr/include/net/if_tun.h -o -e /Library/Extensions/tap.kext; then echo bsdtuntap; fi)) # Provide support for Tap networking on BSD platforms (including OS X) NETWORK_CCDEFS += -DHAVE_TAP_NETWORK -DHAVE_BSDTUNTAP NETWORK_LAN_FEATURES += TAP @@ -865,7 +880,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) NETWORK_CCDEFS += -DUSE_NETWORK endif endif - ifeq (slirp,$(shell if $(TEST) -e slirp_glue/sim_slirp.c; then echo slirp; fi)) + ifeq (slirp,$(shell if ${TEST} -e slirp_glue/sim_slirp.c; then echo slirp; fi)) NETWORK_CCDEFS += -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/*.c slirp_glue/*.c NETWORK_LAN_FEATURES += NAT(SLiRP) endif @@ -882,10 +897,10 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) endif NETWORK_OPT = $(NETWORK_CCDEFS) endif - ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi)) - MKDIRBIN = mkdir -p BIN + ifneq (binexists,$(shell if ${TEST} -e BIN/buildtools; then echo binexists; fi)) + MKDIRBIN = @mkdir -p BIN/buildtools endif - ifeq (commit-id-exists,$(shell if $(TEST) -e .git-commit-id; then echo commit-id-exists; fi)) + ifeq (commit-id-exists,$(shell if ${TEST} -e .git-commit-id; then echo commit-id-exists; fi)) GIT_COMMIT_ID=$(shell grep 'SIM_GIT_COMMIT_ID' .git-commit-id | awk '{ print $$2 }') GIT_COMMIT_TIME=$(shell grep 'SIM_GIT_COMMIT_TIME' .git-commit-id | awk '{ print $$2 }') else @@ -920,14 +935,14 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin) else #Win32 Environments (via MinGW32) GCC := gcc - GCC_Path := $(abspath $(dir $(word 1,$(wildcard $(addsuffix /$(GCC).exe,$(subst ;, ,$(PATH))))))) + GCC_Path := $(abspath $(dir $(word 1,$(wildcard $(addsuffix /${GCC}.exe,$(subst ;, ,${PATH})))))) ifeq (rename-build-support,$(shell if exist ..\windows-build-windows-build echo rename-build-support)) REMOVE_OLD_BUILD := $(shell if exist ..\windows-build rmdir/s/q ..\windows-build) FIXED_BUILD := $(shell move ..\windows-build-windows-build ..\windows-build >NUL) endif - GCC_VERSION = $(word 3,$(shell $(GCC) --version)) + GCC_VERSION = $(word 3,$(shell ${GCC} --version)) COMPILER_NAME = GCC Version: $(GCC_VERSION) - ifeq (,$(findstring ++,$(GCC))) + ifeq (,$(findstring ++,${GCC})) CC_STD = -std=gnu99 else CPP_BUILD = 1 @@ -938,8 +953,8 @@ else endif INCPATH = $(abspath $(wildcard $(GCC_Path)\..\include $(subst $(PATH_SEPARATOR), ,$(CPATH)) $(subst $(PATH_SEPARATOR), ,$(C_INCLUDE_PATH)))) LIBPATH = $(abspath $(wildcard $(GCC_Path)\..\lib $(subst :, ,$(LIBRARY_PATH)))) - $(info lib paths are: $(LIBPATH)) - $(info include paths are: $(INCPATH)) + $(info lib paths are: ${LIBPATH}) + $(info include paths are: ${INCPATH}) # Give preference to any MinGW provided threading (if available) ifneq (,$(call find_include,pthread)) PTHREADS_CCDEFS = -DUSE_READER_THREAD @@ -972,9 +987,18 @@ else ifneq (,$(VIDEO_USEFUL)) SDL_INCLUDE = $(word 1,$(shell dir /b /s ..\windows-build\libSDL\SDL.h)) ifeq (SDL.h,$(findstring SDL.h,$(SDL_INCLUDE))) - VIDEO_CCDEFS += -DHAVE_LIBSDL -I$(abspath $(dir $(SDL_INCLUDE))) - VIDEO_LDFLAGS += -lSDL2 -L$(abspath $(dir $(SDL_INCLUDE))\..\lib) + VIDEO_CCDEFS += -DHAVE_LIBSDL -DUSE_SIM_VIDEO -I$(abspath $(dir $(SDL_INCLUDE))) + ifneq ($(DEBUG),) + VIDEO_LDFLAGS += $(abspath $(dir $(SDL_INCLUDE))\..\..\..\lib\lib-VC2008\Debug)/SDL2.lib + else + VIDEO_LDFLAGS += $(abspath $(dir $(SDL_INCLUDE))\..\..\..\lib\lib-VC2008\Release)/SDL2.lib + endif VIDEO_FEATURES = - video capabilities provided by libSDL2 (Simple Directmedia Layer) + DISPLAYL = ${DISPLAYD}/display.c $(DISPLAYD)/sim_ws.c + DISPLAYVT = ${DISPLAYD}/vt11.c + DISPLAY340 = ${DISPLAYD}/type340.c + DISPLAYNG = ${DISPLAYD}/ng.c + DISPLAY_OPT += -DUSE_DISPLAY $(VIDEO_CCDEFS) $(VIDEO_LDFLAGS) else $(info ***********************************************************************) $(info ***********************************************************************) @@ -992,8 +1016,10 @@ else OS_CCDEFS += -fms-extensions $(PTHREADS_CCDEFS) OS_LDFLAGS += -lm -lwsock32 -lwinmm $(PTHREADS_LDFLAGS) EXE = .exe - ifneq (binexists,$(shell if exist BIN echo binexists)) - MKDIRBIN = if not exist BIN mkdir BIN + ifneq (clean,${MAKECMDGOALS}) + ifneq (buildtoolsexists,$(shell if exist BIN\buildtools (echo buildtoolsexists) else (mkdir BIN\buildtools))) + MKDIRBIN= + endif endif ifneq ($(USE_NETWORK),) NETWORK_OPT += -DUSE_SHARED @@ -1025,7 +1051,6 @@ else $(shell echo SIM_GIT_COMMIT_TIME $(commit_time)>>.git-commit-id) endif endif - ifneq (,$(shell if exist .git-commit-id echo git-commit-id)) GIT_COMMIT_ID=$(shell for /F "tokens=2" %%i in ("$(shell findstr /C:"SIM_GIT_COMMIT_ID" .git-commit-id)") do echo %%i) GIT_COMMIT_TIME=$(shell for /F "tokens=2" %%i in ("$(shell findstr /C:"SIM_GIT_COMMIT_TIME" .git-commit-id)") do echo %%i) @@ -1036,32 +1061,15 @@ else endif endif ifneq (windows-build,$(shell if exist ..\windows-build\README.md echo windows-build)) - $(info ***********************************************************************) - $(info ***********************************************************************) - $(info ** This build is operating without the required windows-build **) - $(info ** components and therefore will produce less than optimal **) - $(info ** simulator operation and features. **) - $(info ** Download the file: **) - $(info ** https://github.com/simh/windows-build/archive/windows-build.zip **) - $(info ** Extract the windows-build-windows-build folder it contains to **) - $(info ** $(abspath ..\) **) - $(info ***********************************************************************) - $(info ***********************************************************************) - $(info .) - else - # Version check on windows-build - WINDOWS_BUILD = $(word 2,$(shell findstr WINDOWS-BUILD ..\windows-build\Windows-Build_Versions.txt)) - ifeq (,$(WINDOWS_BUILD)) - WINDOWS_BUILD = 00000000 - endif - ifneq (,$(or $(shell if 20150412 GTR $(WINDOWS_BUILD) echo old-windows-build),$(and $(shell if 20171112 GTR $(WINDOWS_BUILD) echo old-windows-build),$(findstring pthreadGC2,$(PTHREADS_LDFLAGS))))) - $(info .) - $(info windows-build components at: $(abspath ..\windows-build)) - $(info .) + ifneq (,$(GIT_PATH)) + $(info Cloning the windows-build dependencies into $(abspath ..)/windows-build) + $(shell git clone https://github.com/simh/windows-build ../windows-build) + else $(info ***********************************************************************) $(info ***********************************************************************) - $(info ** This currently available windows-build components are out of **) - $(info ** date. For the most functional and stable features you shoud **) + $(info ** This build is operating without the required windows-build **) + $(info ** components and therefore will produce less than optimal **) + $(info ** simulator operation and features. **) $(info ** Download the file: **) $(info ** https://github.com/simh/windows-build/archive/windows-build.zip **) $(info ** Extract the windows-build-windows-build folder it contains to **) @@ -1070,10 +1078,45 @@ else $(info ***********************************************************************) $(info .) endif + else + # Version check on windows-build + WINDOWS_BUILD = $(word 2,$(shell findstr WINDOWS-BUILD ..\windows-build\Windows-Build_Versions.txt)) + ifeq (,$(WINDOWS_BUILD)) + WINDOWS_BUILD = 00000000 + endif + ifneq (,$(or $(shell if 20190124 GTR $(WINDOWS_BUILD) echo old-windows-build),$(and $(shell if 20171112 GTR $(WINDOWS_BUILD) echo old-windows-build),$(findstring pthreadGC2,$(PTHREADS_LDFLAGS))))) + $(info .) + $(info windows-build components at: $(abspath ..\windows-build)) + $(info .) + $(info ***********************************************************************) + $(info ***********************************************************************) + $(info ** This currently available windows-build components are out of **) + ifneq (,$(GIT_PATH)) + $(info ** date. You need to update to the latest windows-build **) + $(info ** dependencies by executing these commands: **) + $(info ** **) + $(info ** > cd ..\windows-build **) + $(info ** > git pull **) + $(info ** **) + $(info ***********************************************************************) + $(info ***********************************************************************) + $(error .) + else + $(info ** date. For the most functional and stable features you shoud **) + $(info ** Download the file: **) + $(info ** https://github.com/simh/windows-build/archive/windows-build.zip **) + $(info ** Extract the windows-build-windows-build folder it contains to **) + $(info ** $(abspath ..\) **) + $(info ***********************************************************************) + $(info ***********************************************************************) + $(info .) + $(error Update windows-build) + endif + endif ifeq (pcre,$(shell if exist ..\windows-build\PCRE\include\pcre.h echo pcre)) - OS_CCDEFS += -DHAVE_PCREPOSIX_H -DPCRE_STATIC -I$(abspath ../windows-build/PCRE/include) - OS_LDFLAGS += -lpcreposix -lpcre -L../windows-build/PCRE/lib/ - $(info using libpcreposix: $(abspath ../windows-build/PCRE/lib/pcreposix.a) $(abspath ../windows-build/PCRE/include/pcreposix.h)) + OS_CCDEFS += -DHAVE_PCRE_H -DPCRE_STATIC -I$(abspath ../windows-build/PCRE/include) + OS_LDFLAGS += -lpcre -L../windows-build/PCRE/lib/ + $(info using libpcre: $(abspath ../windows-build/PCRE/lib/pcre.a) $(abspath ../windows-build/PCRE/include/pcre.h)) endif ifeq (slirp,slirp) NETWORK_OPT += -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/*.c slirp_glue/*.c -lIphlpapi @@ -1100,7 +1143,7 @@ ifneq ($(DEBUG),) else ifneq (,$(findstring clang,$(COMPILER_NAME))$(findstring LLVM,$(COMPILER_NAME))) CFLAGS_O = -O2 -fno-strict-overflow - GCC_OPTIMIZERS_CMD = $(GCC) --help + GCC_OPTIMIZERS_CMD = ${GCC} --help NO_LTO = 1 else NO_LTO = 1 @@ -1114,7 +1157,7 @@ else GCC_MAJOR_VERSION = $(firstword $(subst ., ,$(GCC_VERSION))) ifneq (3,$(GCC_MAJOR_VERSION)) ifeq (,$(GCC_OPTIMIZERS_CMD)) - GCC_OPTIMIZERS_CMD = $(GCC) --help=optimizers + GCC_OPTIMIZERS_CMD = ${GCC} --help=optimizers endif endif ifneq (,$(GCC_OPTIMIZERS_CMD)) @@ -1151,16 +1194,10 @@ else endif ifneq (3,$(GCC_MAJOR_VERSION)) ifeq (,$(GCC_WARNINGS_CMD)) - GCC_WARNINGS_CMD = $(GCC) --help=warnings - endif - ifneq (,$(findstring -Wunused-result,$(shell $(GCC_WARNINGS_CMD)))) - CFLAGS_O += -Wno-unused-result + GCC_WARNINGS_CMD = ${GCC} --help=warnings endif endif - ifneq (,$(findstring -Wformat-truncation,$(shell $(GCC_WARNINGS_CMD)))) - CFLAGS_O += -Wno-format-truncation - endif -ifneq (clean,$(MAKECMDGOALS)) +ifneq (clean,${MAKECMDGOALS}) BUILD_FEATURES := $(BUILD_FEATURES). $(COMPILER_NAME) $(info ***) $(info *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) being built with:) @@ -1187,124 +1224,43 @@ endif ifneq ($(DONT_USE_ROMS),) ROMS_OPT = -DDONT_USE_INTERNAL_ROM else - BUILD_ROMS = ${BIN}BuildROMs${EXE} + BUILD_ROMS = ${BIN}buildtools/BuildROMs${EXE} endif ifneq ($(DONT_USE_READER_THREAD),) NETWORK_OPT += -DDONT_USE_READER_THREAD endif CC_OUTSPEC = -o $@ -CC := $(GCC) $(CC_STD) -U__STRICT_ANSI__ $(CFLAGS_G) $(CFLAGS_O) $(CFLAGS_GIT) $(CFLAGS_I) -DSIM_COMPILER="$(COMPILER_NAME)" -I . $(OS_CCDEFS) $(ROMS_OPT) -LDFLAGS := $(OS_LDFLAGS) $(NETWORK_LDFLAGS) $(LDFLAGS_O) +CC := ${GCC} ${CC_STD} -U__STRICT_ANSI__ ${CFLAGS_G} ${CFLAGS_O} ${CFLAGS_GIT} ${CFLAGS_I} -DSIM_COMPILER="${COMPILER_NAME}" -DSIM_BUILD_TOOL=simh-makefile -I . ${OS_CCDEFS} ${ROMS_OPT} +LDFLAGS := ${OS_LDFLAGS} ${NETWORK_LDFLAGS} ${LDFLAGS_O} # # Common Libraries # BIN = BIN/ -SIM = scp.c sim_console.c sim_fio.c sim_timer.c sim_sock.c \ - sim_tmxr.c sim_ether.c sim_tape.c sim_disk.c sim_serial.c \ - sim_video.c sim_imd.c sim_card.c +SIMHD = . +SIM = ${SIMHD}/scp.c ${SIMHD}/sim_console.c ${SIMHD}/sim_fio.c \ + ${SIMHD}/sim_timer.c ${SIMHD}/sim_sock.c ${SIMHD}/sim_tmxr.c \ + ${SIMHD}/sim_ether.c ${SIMHD}/sim_tape.c ${SIMHD}/sim_disk.c \ + ${SIMHD}/sim_serial.c ${SIMHD}/sim_video.c ${SIMHD}/sim_imd.c \ + ${SIMHD}/sim_card.c + +DISPLAYD = ${SIMHD}/display + +SCSI = ${SIMHD}/sim_scsi.c -DISPLAYD = display - # # Emulator source files and compile time options # -SEL32D = SEL32 -# -SEL32 = ${SEL32D}/sel32_cpu.c ${SEL32D}/sel32_sys.c ${SEL32D}/sel32_defs.h \ - ${SEL32D}/sel32_chan.c ${SEL32D}/sel32_iop.c ${SEL32D}/sel32_com.c \ - ${SEL32D}/sel32_con.c ${SEL32D}/sel32_clk.c ${SEL32D}/sel32_mt.c \ - ${SEL32D}/sel32_lpr.c ${SEL32D}/sel32_scfi.c ${SEL32D}/sel32_fltpt.c \ - ${SEL32D}/sel32_disk.c ${SEL32D}/sel32_hsdp.c -SEL32_OPT = -I $(SEL32D) -DSEL32 -#SEL32_OPT = -I $(SEL32D) -DUSE_INT64 -DSEL32 - -ICL1900D = ICL1900 -ICL1900 = ${ICL1900D}/icl1900_cpu.c ${ICL1900D}/icl1900_sys.c \ - ${ICL1900D}/icl1900_stdio.c ${ICL1900D}/icl1900_cty.c \ - ${ICL1900D}/icl1900_tr.c ${ICL1900D}/icl1900_tp.c \ - ${ICL1900D}/icl1900_cr.c ${ICL1900D}/icl1900_cp.c \ - ${ICL1900D}/icl1900_lp.c ${ICL1900D}/icl1900_mta.c \ - ${ICL1900D}/icl1900_mt.c ${ICL1900D}/icl1900_eds8.c - -ICL1900_OPT = -I $(ICL1900D) -DICL1900 -DUSE_SIM_CARD - -IBM360D = IBM360 -IBM360 = ${IBM360D}/ibm360_cpu.c ${IBM360D}/ibm360_sys.c \ - ${IBM360D}/ibm360_con.c ${IBM360D}/ibm360_chan.c \ - ${IBM360D}/ibm360_cdr.c ${IBM360D}/ibm360_cdp.c \ - ${IBM360D}/ibm360_mt.c ${IBM360D}/ibm360_lpr.c \ - ${IBM360D}/ibm360_dasd.c ${IBM360D}/ibm360_com.c -IBM360_OPT = -I $(IBM360D) -DIBM360 -DUSE_64BIT -DUSE_SIM_CARD -IBM360_OPT32 = -I $(IBM360D) -DIBM360 -DUSE_SIM_CARD - -PDP6D = PDP10 -ifneq (,$(DISPLAY_OPT)) - PDP6_DISPLAY_OPT = -endif -PDP6 = ${PDP6D}/kx10_cpu.c ${PDP6D}/kx10_sys.c ${PDP6D}/kx10_cty.c \ - ${PDP6D}/kx10_lp.c ${PDP6D}/kx10_pt.c ${PDP6D}/kx10_cr.c \ - ${PDP6D}/kx10_cp.c ${PDP6D}/pdp6_dct.c ${PDP6D}/pdp6_dtc.c \ - ${PDP6D}/pdp6_mtc.c ${PDP6D}/pdp6_dsk.c ${PDP6D}/pdp6_dcs.c \ - ${PDP6D}/kx10_dpy.c ${DISPLAYL} $(DISPLAY340) -PDP6_OPT = -DPDP6=1 -DUSE_INT64 -I $(PDP6D) -DUSE_SIM_CARD $(DISPLAY_OPT) $(PDP6_DISPLAY_OPT) - -KA10D = PDP10 -ifneq (,$(DISPLAY_OPT)) - KA10_DISPLAY_OPT = -endif -KA10 = ${KA10D}/kx10_cpu.c ${KA10D}/kx10_sys.c ${KA10D}/kx10_df.c \ - ${KA10D}/kx10_dp.c ${KA10D}/kx10_mt.c ${KA10D}/kx10_cty.c \ - ${KA10D}/kx10_lp.c ${KA10D}/kx10_pt.c ${KA10D}/kx10_dc.c \ - ${KA10D}/kx10_rp.c ${KA10D}/kx10_rc.c ${KA10D}/kx10_dt.c \ - ${KA10D}/kx10_dk.c ${KA10D}/kx10_cr.c ${KA10D}/kx10_cp.c \ - ${KA10D}/kx10_tu.c ${KA10D}/kx10_rs.c ${KA10D}/ka10_pd.c \ - ${KA10D}/kx10_imp.c ${KA10D}/ka10_tk10.c ${KA10D}/ka10_mty.c \ - ${KA10D}/ka10_imx.c ${KA10D}/ka10_ch10.c ${KA10D}/ka10_stk.c \ - ${KA10D}/ka10_ten11.c ${KA10D}/ka10_auxcpu.c $(KA10D)/ka10_pmp.c \ - ${KA10D}/ka10_dkb.c ${KA10D}/pdp6_dct.c ${KA10D}/pdp6_dtc.c \ - ${KA10D}/pdp6_mtc.c ${KA10D}/pdp6_dsk.c ${KA10D}/pdp6_dcs.c \ - ${KA10D}/ka10_dpk.c ${KA10D}/kx10_dpy.c ${PDP10D}/ka10_ai.c \ - ${DISPLAYL} $(DISPLAY340) -KA10_OPT = -DKA=1 -DUSE_INT64 -I $(KA10D) -DUSE_SIM_CARD ${NETWORK_OPT} $(DISPLAY_OPT) $(KA10_DISPLAY_OPT) -ifneq ($(PANDA_LIGHTS),) -# ONLY for Panda display. -KA10_OPT += -DPANDA_LIGHTS -KA10 += ${KA10D}/ka10_lights.c -KA10_LDFLAGS += -lusb-1.0 -endif - -KI10D = PDP10 -ifneq (,$(DISPLAY_OPT)) -KI10_DISPLAY_OPT = -endif -KI10 = ${KI10D}/kx10_cpu.c ${KI10D}/kx10_sys.c ${KI10D}/kx10_df.c \ - ${KI10D}/kx10_dp.c ${KI10D}/kx10_mt.c ${KI10D}/kx10_cty.c \ - ${KI10D}/kx10_lp.c ${KI10D}/kx10_pt.c ${KI10D}/kx10_dc.c \ - ${KI10D}/kx10_rp.c ${KI10D}/kx10_rc.c ${KI10D}/kx10_dt.c \ - ${KI10D}/kx10_dk.c ${KI10D}/kx10_cr.c ${KI10D}/kx10_cp.c \ - ${KI10D}/kx10_tu.c ${KI10D}/kx10_rs.c ${KI10D}/kx10_imp.c \ - ${KI10D}/kx10_dpy.c ${DISPLAYL} $(DISPLAY340) -KI10_OPT = -DKI=1 -DUSE_INT64 -I $(KI10D) -DUSE_SIM_CARD ${NETWORK_OPT} $(DISPLAY_OPT) $(KI10_DISPLAY_OPT) -ifneq ($(PANDA_LIGHTS),) -# ONLY for Panda display. -KI10_OPT += -DPANDA_LIGHTS -KI10 += ${KA10D}/ka10_lights.c -KI10_LDFLAGS = -lusb-1.0 -endif - -PDP1D = PDP1 -ifneq (,$(DISPLAY_OPT)) - PDP1_DISPLAY_OPT = -DDISPLAY_TYPE=DIS_TYPE30 -DPIX_SCALE=RES_HALF -endif +PDP1D = ${SIMHD}/PDP1 +PDP1_DISPLAY_OPT = -DDISPLAY_TYPE=DIS_TYPE30 -DPIX_SCALE=RES_HALF PDP1 = ${PDP1D}/pdp1_lp.c ${PDP1D}/pdp1_cpu.c ${PDP1D}/pdp1_stddev.c \ ${PDP1D}/pdp1_sys.c ${PDP1D}/pdp1_dt.c ${PDP1D}/pdp1_drm.c \ ${PDP1D}/pdp1_clk.c ${PDP1D}/pdp1_dcs.c ${PDP1D}/pdp1_dpy.c ${DISPLAYL} -PDP1_OPT = -I ${PDP1D} $(DISPLAY_OPT) $(PDP1_DISPLAY_OPT) +PDP1_OPT = -I ${PDP1D} ${DISPLAY_OPT} $(PDP1_DISPLAY_OPT) -NOVAD = NOVA +NOVAD = ${SIMHD}/NOVA NOVA = ${NOVAD}/nova_sys.c ${NOVAD}/nova_cpu.c ${NOVAD}/nova_dkp.c \ ${NOVAD}/nova_dsk.c ${NOVAD}/nova_lp.c ${NOVAD}/nova_mta.c \ ${NOVAD}/nova_plt.c ${NOVAD}/nova_pt.c ${NOVAD}/nova_clk.c \ @@ -1319,20 +1275,24 @@ ECLIPSE = ${NOVAD}/eclipse_cpu.c ${NOVAD}/eclipse_tt.c ${NOVAD}/nova_sys.c \ ECLIPSE_OPT = -I ${NOVAD} -DECLIPSE -PDP18BD = PDP18B +PDP18BD = ${SIMHD}/PDP18B PDP18B = ${PDP18BD}/pdp18b_dt.c ${PDP18BD}/pdp18b_drm.c ${PDP18BD}/pdp18b_cpu.c \ ${PDP18BD}/pdp18b_lp.c ${PDP18BD}/pdp18b_mt.c ${PDP18BD}/pdp18b_rf.c \ ${PDP18BD}/pdp18b_rp.c ${PDP18BD}/pdp18b_stddev.c ${PDP18BD}/pdp18b_sys.c \ ${PDP18BD}/pdp18b_rb.c ${PDP18BD}/pdp18b_tt1.c ${PDP18BD}/pdp18b_fpp.c \ ${PDP18BD}/pdp18b_g2tty.c ${PDP18BD}/pdp18b_dr15.c +ifneq (,${DISPLAY_OPT}) + PDP7_DISPLAY_OPT = -DDISPLAY_TYPE=DIS_TYPE30 -DPIX_SCALE=RES_HALF +endif + PDP4_OPT = -DPDP4 -I ${PDP18BD} -PDP7_OPT = -DPDP7 -I ${PDP18BD} +PDP7_OPT = -DPDP7 -I ${PDP18BD} ${DISPLAY_OPT} $(PDP7_DISPLAY_OPT) PDP9_OPT = -DPDP9 -I ${PDP18BD} PDP15_OPT = -DPDP15 -I ${PDP18BD} -PDP11D = PDP11 +PDP11D = ${SIMHD}/PDP11 PDP11 = ${PDP11D}/pdp11_fp.c ${PDP11D}/pdp11_cpu.c ${PDP11D}/pdp11_dz.c \ ${PDP11D}/pdp11_cis.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_rk.c \ ${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_rx.c \ @@ -1347,11 +1307,12 @@ PDP11 = ${PDP11D}/pdp11_fp.c ${PDP11D}/pdp11_cpu.c ${PDP11D}/pdp11_dz.c \ ${PDP11D}/pdp11_ke.c ${PDP11D}/pdp11_dc.c ${PDP11D}/pdp11_dmc.c \ ${PDP11D}/pdp11_kmc.c ${PDP11D}/pdp11_dup.c ${PDP11D}/pdp11_rs.c \ ${PDP11D}/pdp11_vt.c ${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_io_lib.c \ - ${PDP11D}/pdp11_rom.c ${PDP11D}/pdp11_ch.c $(DISPLAYL) $(DISPLAYVT) -PDP11_OPT = -DVM_PDP11 -I ${PDP11D} ${NETWORK_OPT} $(DISPLAY_OPT) + ${PDP11D}/pdp11_rom.c ${PDP11D}/pdp11_ch.c ${DISPLAYL} ${DISPLAYVT} \ + ${PDP11D}/pdp11_ng.c ${PDP11D}/pdp11_daz.c ${DISPLAYNG} +PDP11_OPT = -DVM_PDP11 -I ${PDP11D} ${NETWORK_OPT} ${DISPLAY_OPT} -UC15D = PDP11 +UC15D = ${SIMHD}/PDP11 UC15 = ${UC15D}/pdp11_cis.c ${UC15D}/pdp11_cpu.c \ ${UC15D}/pdp11_cpumod.c ${UC15D}/pdp11_cr.c \ ${UC15D}/pdp11_fp.c ${UC15D}/pdp11_io.c \ @@ -1362,7 +1323,7 @@ UC15 = ${UC15D}/pdp11_cis.c ${UC15D}/pdp11_cpu.c \ UC15_OPT = -DVM_PDP11 -DUC15 -I ${UC15D} -I ${PDP18BD} -VAXD = VAX +VAXD = ${SIMHD}/VAX VAX = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c ${VAXD}/vax_io.c \ ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ ${VAXD}/vax_mmu.c ${VAXD}/vax_stddev.c ${VAXD}/vax_sysdev.c \ @@ -1375,6 +1336,65 @@ VAX = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c ${VAXD}/vax_io.c \ VAX_OPT = -DVM_VAX -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS} +VAX410 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ + ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ + ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ + ${VAXD}/vax_watch.c ${VAXD}/vax_nar.c ${VAXD}/vax4xx_stddev.c \ + ${VAXD}/vax410_sysdev.c ${VAXD}/vax410_syslist.c ${VAXD}/vax4xx_dz.c \ + ${VAXD}/vax4xx_rd.c ${VAXD}/vax4xx_rz80.c ${VAXD}/vax_xs.c \ + ${VAXD}/vax4xx_va.c ${VAXD}/vax4xx_vc.c ${VAXD}/vax_lk.c \ + ${VAXD}/vax_vs.c ${VAXD}/vax_gpx.c +VAX410_OPT = -DVM_VAX -DVAX_410 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS} + + +VAX420 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ + ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ + ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ + ${VAXD}/vax_watch.c ${VAXD}/vax_nar.c ${VAXD}/vax4xx_stddev.c \ + ${VAXD}/vax420_sysdev.c ${VAXD}/vax420_syslist.c ${VAXD}/vax4xx_dz.c \ + ${VAXD}/vax4xx_rd.c ${VAXD}/vax4xx_rz80.c ${VAXD}/vax_xs.c \ + ${VAXD}/vax4xx_va.c ${VAXD}/vax4xx_vc.c ${VAXD}/vax4xx_ve.c \ + ${VAXD}/vax_lk.c ${VAXD}/vax_vs.c ${VAXD}/vax_gpx.c +VAX420_OPT = -DVM_VAX -DVAX_420 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS} +VAX411_OPT = ${VAX420_OPT} -DVAX_411 +VAX412_OPT = ${VAX420_OPT} -DVAX_412 +VAX41A_OPT = ${VAX420_OPT} -DVAX_41A +VAX41D_OPT = ${VAX420_OPT} -DVAX_41D +VAX42A_OPT = ${VAX420_OPT} -DVAX_42A +VAX42B_OPT = ${VAX420_OPT} -DVAX_42B + + +VAX43 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ + ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ + ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ + ${VAXD}/vax_watch.c ${VAXD}/vax_nar.c ${VAXD}/vax4xx_stddev.c \ + ${VAXD}/vax43_sysdev.c ${VAXD}/vax43_syslist.c ${VAXD}/vax4xx_dz.c \ + ${VAXD}/vax4xx_rz80.c ${VAXD}/vax_xs.c ${VAXD}/vax4xx_vc.c \ + ${VAXD}/vax4xx_ve.c ${VAXD}/vax_lk.c ${VAXD}/vax_vs.c +VAX43_OPT = -DVM_VAX -DVAX_43 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS} + + +VAX440 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ + ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ + ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ + ${VAXD}/vax_watch.c ${VAXD}/vax_nar.c ${VAXD}/vax4xx_stddev.c \ + ${VAXD}/vax440_sysdev.c ${VAXD}/vax440_syslist.c ${VAXD}/vax4xx_dz.c \ + ${VAXD}/vax_xs.c ${VAXD}/vax_lk.c ${VAXD}/vax_vs.c ${VAXD}/vax4xx_rz94.c +VAX440_OPT = -DVM_VAX -DVAX_440 -DUSE_INT64 -DUSE_ADDR64 -I ${VAXD} ${NETWORK_OPT} +VAX46_OPT = ${VAX440_OPT} -DVAX_46 +VAX47_OPT = ${VAX440_OPT} -DVAX_47 +VAX48_OPT = ${VAX440_OPT} -DVAX_48 + + +IS1000 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ + ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ + ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ + ${VAXD}/vax_watch.c ${VAXD}/vax_nar.c ${VAXD}/vax_xs.c \ + ${VAXD}/vax4xx_rz94.c ${VAXD}/vax4nn_stddev.c \ + ${VAXD}/is1000_sysdev.c ${VAXD}/is1000_syslist.c +IS1000_OPT = -DVM_VAX -DIS_1000 -DUSE_INT64 -DUSE_ADDR64 -I ${VAXD} ${NETWORK_OPT} + + VAX610 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ @@ -1387,12 +1407,14 @@ VAX610 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ ${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_io_lib.c VAX610_OPT = -DVM_VAX -DVAX_610 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS} + VAX630 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ ${VAXD}/vax_watch.c ${VAXD}/vax630_stddev.c ${VAXD}/vax630_sysdev.c \ - ${VAXD}/vax630_io.c ${VAXD}/vax630_syslist.c ${VAXD}/vax_vc.c \ - ${VAXD}/vax_lk.c ${VAXD}/vax_vs.c ${VAXD}/vax_2681.c \ + ${VAXD}/vax630_io.c ${VAXD}/vax630_syslist.c ${VAXD}/vax_va.c \ + ${VAXD}/vax_vc.c ${VAXD}/vax_lk.c ${VAXD}/vax_vs.c \ + ${VAXD}/vax_2681.c ${VAXD}/vax_gpx.c \ ${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \ ${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \ ${PDP11D}/pdp11_xq.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_cr.c \ @@ -1448,6 +1470,21 @@ VAX780 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ VAX780_OPT = -DVM_VAX -DVAX_780 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT} +VAX8200 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ + ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ + ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ + ${VAXD}/vax_watch.c ${VAXD}/vax820_stddev.c ${VAXD}/vax820_bi.c \ + ${VAXD}/vax820_mem.c ${VAXD}/vax820_uba.c ${VAXD}/vax820_ka.c \ + ${VAXD}/vax820_syslist.c \ + ${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \ + ${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \ + ${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \ + ${PDP11D}/pdp11_hk.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c \ + ${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_tc.c ${PDP11D}/pdp11_rk.c \ + ${PDP11D}/pdp11_io_lib.c ${PDP11D}/pdp11_ch.c +VAX8200_OPT = -DVM_VAX -DVAX_820 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT} + + VAX8600 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \ ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \ @@ -1464,7 +1501,7 @@ VAX8600 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \ VAX8600_OPT = -DVM_VAX -DVAX_860 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT} -PDP10D = PDP10 +PDP10D = ${SIMHD}/PDP10 PDP10 = ${PDP10D}/pdp10_fe.c ${PDP11D}/pdp11_dz.c ${PDP10D}/pdp10_cpu.c \ ${PDP10D}/pdp10_ksio.c ${PDP10D}/pdp10_lp20.c ${PDP10D}/pdp10_mdfp.c \ ${PDP10D}/pdp10_pag.c ${PDP10D}/pdp10_rp.c ${PDP10D}/pdp10_sys.c \ @@ -1475,7 +1512,7 @@ PDP10 = ${PDP10D}/pdp10_fe.c ${PDP11D}/pdp11_dz.c ${PDP10D}/pdp10_cpu.c \ PDP10_OPT = -DVM_PDP10 -DUSE_INT64 -I ${PDP10D} -I ${PDP11D} ${NETWORK_OPT} -PDP8D = PDP8 +PDP8D = ${SIMHD}/PDP8 PDP8 = ${PDP8D}/pdp8_cpu.c ${PDP8D}/pdp8_clk.c ${PDP8D}/pdp8_df.c \ ${PDP8D}/pdp8_dt.c ${PDP8D}/pdp8_lp.c ${PDP8D}/pdp8_mt.c \ ${PDP8D}/pdp8_pt.c ${PDP8D}/pdp8_rf.c ${PDP8D}/pdp8_rk.c \ @@ -1485,7 +1522,7 @@ PDP8 = ${PDP8D}/pdp8_cpu.c ${PDP8D}/pdp8_clk.c ${PDP8D}/pdp8_df.c \ PDP8_OPT = -I ${PDP8D} -H316D = H316 +H316D = ${SIMHD}/H316 H316 = ${H316D}/h316_stddev.c ${H316D}/h316_lp.c ${H316D}/h316_cpu.c \ ${H316D}/h316_sys.c ${H316D}/h316_mt.c ${H316D}/h316_fhd.c \ ${H316D}/h316_dp.c ${H316D}/h316_rtc.c ${H316D}/h316_imp.c \ @@ -1493,7 +1530,7 @@ H316 = ${H316D}/h316_stddev.c ${H316D}/h316_lp.c ${H316D}/h316_cpu.c \ H316_OPT = -I ${H316D} -D VM_IMPTIP -HP2100D = HP2100 +HP2100D = ${SIMHD}/HP2100 HP2100 = ${HP2100D}/hp2100_stddev.c ${HP2100D}/hp2100_dp.c ${HP2100D}/hp2100_dq.c \ ${HP2100D}/hp2100_dr.c ${HP2100D}/hp2100_lps.c ${HP2100D}/hp2100_ms.c \ ${HP2100D}/hp2100_mt.c ${HP2100D}/hp2100_mux.c ${HP2100D}/hp2100_cpu.c \ @@ -1506,7 +1543,7 @@ HP2100 = ${HP2100D}/hp2100_stddev.c ${HP2100D}/hp2100_dp.c ${HP2100D}/hp2100_dq. ${HP2100D}/hp2100_di_da.c ${HP2100D}/hp2100_disclib.c HP2100_OPT = -DHAVE_INT64 -I ${HP2100D} -HP3000D = HP3000 +HP3000D = ${SIMHD}/HP3000 HP3000 = ${HP3000D}/hp_disclib.c ${HP3000D}/hp_tapelib.c ${HP3000D}/hp3000_atc.c \ ${HP3000D}/hp3000_clk.c ${HP3000D}/hp3000_cpu.c ${HP3000D}/hp3000_cpu_base.c \ ${HP3000D}/hp3000_cpu_fp.c ${HP3000D}/hp3000_cpu_cis.c ${HP3000D}/hp3000_ds.c \ @@ -1516,20 +1553,20 @@ HP3000 = ${HP3000D}/hp_disclib.c ${HP3000D}/hp_tapelib.c ${HP3000D}/hp3000_atc.c HP3000_OPT = -I ${HP3000D} -I1401D = I1401 +I1401D = ${SIMHD}/I1401 I1401 = ${I1401D}/i1401_lp.c ${I1401D}/i1401_cpu.c ${I1401D}/i1401_iq.c \ ${I1401D}/i1401_cd.c ${I1401D}/i1401_mt.c ${I1401D}/i1401_dp.c \ ${I1401D}/i1401_sys.c I1401_OPT = -I ${I1401D} -I1620D = I1620 +I1620D = ${SIMHD}/I1620 I1620 = ${I1620D}/i1620_cd.c ${I1620D}/i1620_dp.c ${I1620D}/i1620_pt.c \ ${I1620D}/i1620_tty.c ${I1620D}/i1620_cpu.c ${I1620D}/i1620_lp.c \ ${I1620D}/i1620_fp.c ${I1620D}/i1620_sys.c I1620_OPT = -I ${I1620D} -I7000D = I7000 +I7000D = ${SIMHD}/I7000 I7090 = ${I7000D}/i7090_cpu.c ${I7000D}/i7090_sys.c ${I7000D}/i7090_chan.c \ ${I7000D}/i7090_cdr.c ${I7000D}/i7090_cdp.c ${I7000D}/i7090_lpr.c \ ${I7000D}/i7000_chan.c ${I7000D}/i7000_mt.c ${I7000D}/i7090_drum.c \ @@ -1537,7 +1574,7 @@ I7090 = ${I7000D}/i7090_cpu.c ${I7000D}/i7090_sys.c ${I7000D}/i7090_chan.c \ ${I7000D}/i7000_com.c ${I7000D}/i7000_ht.c I7090_OPT = -I $(I7000D) -DUSE_INT64 -DI7090 -DUSE_SIM_CARD -I7080D = I7000 +I7080D = ${SIMHD}/I7000 I7080 = ${I7000D}/i7080_cpu.c ${I7000D}/i7080_sys.c ${I7000D}/i7080_chan.c \ ${I7000D}/i7080_drum.c ${I7000D}/i7000_cdp.c ${I7000D}/i7000_cdr.c \ ${I7000D}/i7000_con.c ${I7000D}/i7000_chan.c ${I7000D}/i7000_lpr.c \ @@ -1545,7 +1582,7 @@ I7080 = ${I7000D}/i7080_cpu.c ${I7000D}/i7080_sys.c ${I7000D}/i7080_chan.c \ ${I7000D}/i7000_com.c ${I7000D}/i7000_ht.c I7080_OPT = -I $(I7000D) -DI7080 -DUSE_SIM_CARD -I7070D = I7000 +I7070D = ${SIMHD}/I7000 I7070 = ${I7000D}/i7070_cpu.c ${I7000D}/i7070_sys.c ${I7000D}/i7070_chan.c \ ${I7000D}/i7000_cdp.c ${I7000D}/i7000_cdr.c ${I7000D}/i7000_con.c \ ${I7000D}/i7000_chan.c ${I7000D}/i7000_lpr.c ${I7000D}/i7000_mt.c \ @@ -1553,7 +1590,7 @@ I7070 = ${I7000D}/i7070_cpu.c ${I7000D}/i7070_sys.c ${I7000D}/i7070_chan.c \ ${I7000D}/i7000_ht.c I7070_OPT = -I $(I7000D) -DUSE_INT64 -DI7070 -DUSE_SIM_CARD -I7010D = I7000 +I7010D = ${SIMHD}/I7000 I7010 = ${I7000D}/i7010_cpu.c ${I7000D}/i7010_sys.c ${I7000D}/i7010_chan.c \ ${I7000D}/i7000_cdp.c ${I7000D}/i7000_cdr.c ${I7000D}/i7000_con.c \ ${I7000D}/i7000_chan.c ${I7000D}/i7000_lpr.c ${I7000D}/i7000_mt.c \ @@ -1561,21 +1598,21 @@ I7010 = ${I7000D}/i7010_cpu.c ${I7000D}/i7010_sys.c ${I7000D}/i7010_chan.c \ ${I7000D}/i7000_ht.c I7010_OPT = -I $(I7010D) -DI7010 -DUSE_SIM_CARD -I704D = I7000 +I704D = ${SIMHD}/I7000 I704 = ${I7000D}/i7090_cpu.c ${I7000D}/i7090_sys.c ${I7000D}/i7090_chan.c \ ${I7000D}/i7090_cdr.c ${I7000D}/i7090_cdp.c ${I7000D}/i7090_lpr.c \ ${I7000D}/i7000_mt.c ${I7000D}/i7090_drum.c ${I7000D}/i7000_chan.c I704_OPT = -I $(I7000D) -DUSE_INT64 -DI704 -DUSE_SIM_CARD -I701D = I7000 +I701D = ${SIMHD}/I7000 I701 = ${I7000D}/i701_cpu.c ${I7000D}/i701_sys.c ${I7000D}/i701_chan.c \ ${I7000D}/i7090_cdr.c ${I7000D}/i7090_cdp.c ${I7000D}/i7090_lpr.c \ ${I7000D}/i7000_mt.c ${I7000D}/i7090_drum.c ${I7000D}/i7000_chan.c I701_OPT = -I $(I7000D) -DUSE_INT64 -DI701 -DUSE_SIM_CARD -I7094D = I7094 +I7094D = ${SIMHD}/I7094 I7094 = ${I7094D}/i7094_cpu.c ${I7094D}/i7094_cpu1.c ${I7094D}/i7094_io.c \ ${I7094D}/i7094_cd.c ${I7094D}/i7094_clk.c ${I7094D}/i7094_com.c \ ${I7094D}/i7094_drm.c ${I7094D}/i7094_dsk.c ${I7094D}/i7094_sys.c \ @@ -1583,13 +1620,13 @@ I7094 = ${I7094D}/i7094_cpu.c ${I7094D}/i7094_cpu1.c ${I7094D}/i7094_io.c \ I7094_OPT = -DUSE_INT64 -I ${I7094D} -I650D = I650 +I650D = ${SIMHD}/I650 I650 = ${I650D}/i650_cpu.c ${I650D}/i650_cdr.c ${I650D}/i650_cdp.c \ ${I650D}/i650_sys.c I650_OPT = -I ${I650D} -DUSE_INT64 -DUSE_SIM_CARD -IBM1130D = Ibm1130 +IBM1130D = ${SIMHD}/Ibm1130 IBM1130 = ${IBM1130D}/ibm1130_cpu.c ${IBM1130D}/ibm1130_cr.c \ ${IBM1130D}/ibm1130_disk.c ${IBM1130D}/ibm1130_stddev.c \ ${IBM1130D}/ibm1130_sys.c ${IBM1130D}/ibm1130_gdu.c \ @@ -1598,12 +1635,12 @@ IBM1130 = ${IBM1130D}/ibm1130_cpu.c ${IBM1130D}/ibm1130_cr.c \ ${IBM1130D}/ibm1130_plot.c ${IBM1130D}/ibm1130_sca.c \ ${IBM1130D}/ibm1130_t2741.c IBM1130_OPT = -I ${IBM1130D} -ifneq ($(WIN32),) -IBM1130_OPT += -DGUI_SUPPORT -lgdi32 +ifneq (${WIN32},) +IBM1130_OPT += -DGUI_SUPPORT -lgdi32 ${BIN}ibm1130.o endif -ID16D = Interdata +ID16D = ${SIMHD}/Interdata ID16 = ${ID16D}/id16_cpu.c ${ID16D}/id16_sys.c ${ID16D}/id_dp.c \ ${ID16D}/id_fd.c ${ID16D}/id_fp.c ${ID16D}/id_idc.c ${ID16D}/id_io.c \ ${ID16D}/id_lp.c ${ID16D}/id_mt.c ${ID16D}/id_pas.c ${ID16D}/id_pt.c \ @@ -1611,7 +1648,7 @@ ID16 = ${ID16D}/id16_cpu.c ${ID16D}/id16_sys.c ${ID16D}/id_dp.c \ ID16_OPT = -I ${ID16D} -ID32D = Interdata +ID32D = ${SIMHD}/Interdata ID32 = ${ID32D}/id32_cpu.c ${ID32D}/id32_sys.c ${ID32D}/id_dp.c \ ${ID32D}/id_fd.c ${ID32D}/id_fp.c ${ID32D}/id_idc.c ${ID32D}/id_io.c \ ${ID32D}/id_lp.c ${ID32D}/id_mt.c ${ID32D}/id_pas.c ${ID32D}/id_pt.c \ @@ -1619,19 +1656,19 @@ ID32 = ${ID32D}/id32_cpu.c ${ID32D}/id32_sys.c ${ID32D}/id_dp.c \ ID32_OPT = -I ${ID32D} -S3D = S3 +S3D = ${SIMHD}/S3 S3 = ${S3D}/s3_cd.c ${S3D}/s3_cpu.c ${S3D}/s3_disk.c ${S3D}/s3_lp.c \ ${S3D}/s3_pkb.c ${S3D}/s3_sys.c S3_OPT = -I ${S3D} -ALTAIRD = ALTAIR +ALTAIRD = ${SIMHD}/ALTAIR ALTAIR = ${ALTAIRD}/altair_sio.c ${ALTAIRD}/altair_cpu.c ${ALTAIRD}/altair_dsk.c \ ${ALTAIRD}/altair_sys.c ALTAIR_OPT = -I ${ALTAIRD} -ALTAIRZ80D = AltairZ80 +ALTAIRZ80D = ${SIMHD}/AltairZ80 ALTAIRZ80 = ${ALTAIRZ80D}/altairz80_cpu.c ${ALTAIRZ80D}/altairz80_cpu_nommu.c \ ${ALTAIRZ80D}/altairz80_dsk.c ${ALTAIRZ80D}/disasm.c \ ${ALTAIRZ80D}/altairz80_sio.c ${ALTAIRZ80D}/altairz80_sys.c \ @@ -1646,6 +1683,7 @@ ALTAIRZ80 = ${ALTAIRZ80D}/altairz80_cpu.c ${ALTAIRZ80D}/altairz80_cpu_nommu.c \ ${ALTAIRZ80D}/s100_mdsad.c ${ALTAIRZ80D}/s100_selchan.c \ ${ALTAIRZ80D}/s100_ss1.c ${ALTAIRZ80D}/s100_64fdc.c \ ${ALTAIRZ80D}/s100_scp300f.c \ + ${ALTAIRZ80D}/s100_tarbell.c \ ${ALTAIRZ80D}/wd179x.c ${ALTAIRZ80D}/s100_hdc1001.c \ ${ALTAIRZ80D}/s100_if3.c ${ALTAIRZ80D}/s100_adcs6.c \ ${ALTAIRZ80D}/m68kcpu.c ${ALTAIRZ80D}/m68kdasm.c \ @@ -1654,25 +1692,25 @@ ALTAIRZ80 = ${ALTAIRZ80D}/altairz80_cpu.c ${ALTAIRZ80D}/altairz80_cpu_nommu.c \ ALTAIRZ80_OPT = -I ${ALTAIRZ80D} -DUSE_SIM_IMD -GRID = GRI +GRID = ${SIMHD}/GRI GRI = ${GRID}/gri_cpu.c ${GRID}/gri_stddev.c ${GRID}/gri_sys.c GRI_OPT = -I ${GRID} -LGPD = LGP +LGPD = ${SIMHD}/LGP LGP = ${LGPD}/lgp_cpu.c ${LGPD}/lgp_stddev.c ${LGPD}/lgp_sys.c LGP_OPT = -I ${LGPD} -SDSD = SDS +SDSD = ${SIMHD}/SDS SDS = ${SDSD}/sds_cpu.c ${SDSD}/sds_drm.c ${SDSD}/sds_dsk.c ${SDSD}/sds_io.c \ ${SDSD}/sds_lp.c ${SDSD}/sds_mt.c ${SDSD}/sds_mux.c ${SDSD}/sds_rad.c \ ${SDSD}/sds_stddev.c ${SDSD}/sds_sys.c SDS_OPT = -I ${SDSD} -SWTP6800D = swtp6800/swtp6800 -SWTP6800C = swtp6800/common +SWTP6800D = ${SIMHD}/swtp6800/swtp6800 +SWTP6800C = ${SIMHD}/swtp6800/common SWTP6800MP-A = ${SWTP6800C}/mp-a.c ${SWTP6800C}/m6800.c ${SWTP6800C}/m6810.c \ ${SWTP6800C}/bootrom.c ${SWTP6800C}/dc-4.c ${SWTP6800C}/mp-s.c ${SWTP6800D}/mp-a_sys.c \ ${SWTP6800C}/mp-b2.c ${SWTP6800C}/mp-8m.c @@ -1681,70 +1719,146 @@ SWTP6800MP-A2 = ${SWTP6800C}/mp-a2.c ${SWTP6800C}/m6800.c ${SWTP6800C}/m6810.c \ ${SWTP6800C}/mp-b2.c ${SWTP6800C}/mp-8m.c ${SWTP6800C}/i2716.c SWTP6800_OPT = -I ${SWTP6800D} - -ISYS8010D = Intel-Systems/isys8010 -ISYS8010C = Intel-Systems/common +INTELSYSD = ${SIMHD}/Intel-Systems +ISYS8010D = ${INTELSYSD}/isys8010 +ISYS8010C = ${INTELSYSD}/common ISYS8010 = ${ISYS8010C}/i8080.c ${ISYS8010D}/isys8010_sys.c \ ${ISYS8010C}/i8251.c ${ISYS8010C}/i8255.c \ ${ISYS8010C}/ieprom.c ${ISYS8010C}/iram8.c \ ${ISYS8010C}/multibus.c ${ISYS8010D}/isbc8010.c \ ${ISYS8010C}/isbc064.c ${ISYS8010C}/isbc202.c \ - ${ISYS8010C}/isbc201.c ${ISYS8010C}/zx200a.c + ${ISYS8010C}/isbc201.c ${ISYS8010C}/zx200a.c \ + ${ISYS8010C}/isbc206.c ${ISYS8010C}/isbc464.c \ + ${ISYS8010C}/isbc208.c ISYS8010_OPT = -I ${ISYS8010D} -ISYS8020D = Intel-Systems/isys8020 -ISYS8020C = Intel-Systems/common +ISYS8020D = ${INTELSYSD}/isys8020 +ISYS8020C = ${INTELSYSD}/common ISYS8020 = ${ISYS8020C}/i8080.c ${ISYS8020D}/isys8020_sys.c \ ${ISYS8020C}/i8251.c ${ISYS8020C}/i8255.c \ ${ISYS8020C}/ieprom.c ${ISYS8020C}/iram8.c \ ${ISYS8020C}/multibus.c ${ISYS8020D}/isbc8020.c \ ${ISYS8020C}/isbc064.c ${ISYS8020C}/i8259.c \ - ${ISYS8010C}/isbc202.c ${ISYS8010C}/isbc201.c \ - ${ISYS8010C}/zx200a.c + ${ISYS8020C}/isbc202.c ${ISYS8020C}/isbc201.c \ + ${ISYS8020C}/isbc206.c ${ISYS8020C}/isbc464.c \ + ${ISYS8020C}/zx200a.c ${ISYS8020C}/i8253.c \ + ${ISYS8020C}/isbc208.c ISYS8020_OPT = -I ${ISYS8020D} -ISYS8024D = Intel-Systems/isys8024 -ISYS8024C = Intel-Systems/common +ISYS8024D = ${INTELSYSD}/isys8024 +ISYS8024C = ${INTELSYSD}/common ISYS8024 = ${ISYS8024C}/i8080.c ${ISYS8024D}/isys8024_sys.c \ ${ISYS8024C}/i8251.c ${ISYS8024C}/i8253.c \ ${ISYS8024C}/i8255.c ${ISYS8024C}/i8259.c \ ${ISYS8024C}/ieprom.c ${ISYS8024C}/iram8.c \ ${ISYS8024C}/multibus.c ${ISYS8024D}/isbc8024.c \ ${ISYS8024C}/isbc064.c ${ISYS8024C}/isbc208.c \ - ${ISYS8010C}/isbc202.c ${ISYS8010C}/isbc201.c \ - ${ISYS8010C}/zx200a.c + ${ISYS8024C}/isbc202.c ${ISYS8024C}/isbc201.c \ + ${ISYS8024C}/isbc206.c ${ISYS8024C}/isbc464.c \ + ${ISYS8024C}/zx200a.c ISYS8024_OPT = -I ${ISYS8024D} -ISYS8030D = Intel-Systems/isys8030 -ISYS8030C = Intel-Systems/common +ISYS8030D = ${INTELSYSD}/isys8030 +ISYS8030C = ${INTELSYSD}/common ISYS8030 = ${ISYS8030C}/i8080.c ${ISYS8030D}/isys8030_sys.c \ ${ISYS8030C}/i8251.c ${ISYS8030C}/i8255.c \ ${ISYS8030C}/i8259.c ${ISYS8030C}/i8253.c \ ${ISYS8030C}/ieprom.c ${ISYS8030C}/iram8.c \ ${ISYS8030C}/multibus.c ${ISYS8030D}/isbc8030.c \ - ${ISYS8010C}/isbc202.c ${ISYS8010C}/isbc201.c \ - ${ISYS8030C}/isbc064.c ${ISYS8010C}/zx200a.c + ${ISYS8030C}/isbc202.c ${ISYS8030C}/isbc201.c \ + ${ISYS8030C}/isbc206.c ${ISYS8030C}/isbc464.c \ + ${ISYS8030C}/isbc064.c ${ISYS8030C}/zx200a.c \ + ${ISYS8010C}/isbc208.c ISYS8030_OPT = -I ${ISYS8030D} -IMDS-225D = Intel-Systems/imds-225 -IMDS-225C = Intel-Systems/common -IMDS-225 = ${IMDS-225C}/i8080.c ${IMDS-225D}/imds-225_sys.c \ - ${IMDS-225C}/i8251.c ${IMDS-225C}/i8255.c \ - ${IMDS-225C}/i8259.c ${IMDS-225C}/i8253.c \ - ${IMDS-225C}/ieprom.c ${IMDS-225C}/iram8.c \ - ${IMDS-225C}/ipcmultibus.c ${IMDS-225D}/ipc.c \ - ${IMDS-225C}/ipc-cont.c ${IMDS-225C}/ioc-cont.c \ - ${IMDS-225C}/isbc202.c ${IMDS-225C}/isbc201.c \ - ${IMDS-225C}/zx200a.c -IMDS-225_OPT = -I ${IMDS-225D} +IMDS210D = ${INTELSYSD}/imds-210 +IMDS210C = ${INTELSYSD}/common +IMDS210 = ${IMDS210C}/i8080.c ${IMDS210D}/imds-210_sys.c \ + ${IMDS210C}/i8251.c ${IMDS210C}/i8255.c \ + ${IMDS210C}/i8259.c ${IMDS210C}/i8253.c \ + ${IMDS210C}/ieprom.c ${IMDS210C}/iram8.c \ + ${IMDS210C}/ipbmultibus.c ${IMDS210C}/ipb.c \ + ${IMDS210C}/ipc-cont.c ${IMDS210C}/ioc-cont.c \ + ${IMDS210C}/isbc202.c ${IMDS210C}/isbc201.c \ + ${IMDS210C}/isbc206.c ${IMDS210C}/isbc464.c \ + ${IMDS210C}/zx200a.c ${IMDS210C}/isbc064.c +IMDS210_OPT = -I ${IMDS210D} -IBMPCD = Intel-Systems/ibmpc -IBMPCC = Intel-Systems/common +IMDS220D = ${INTELSYSD}/imds-220 +IMDS220C = ${INTELSYSD}/common +IMDS220 = ${IMDS220C}/i8080.c ${IMDS220D}/imds-220_sys.c \ + ${IMDS220C}/i8251.c ${IMDS220C}/i8255.c \ + ${IMDS220C}/i8259.c ${IMDS220C}/i8253.c \ + ${IMDS220C}/ieprom.c ${IMDS220C}/iram8.c \ + ${IMDS220C}/ipbmultibus.c ${IMDS220C}/ipb.c \ + ${IMDS220C}/ipc-cont.c ${IMDS220C}/ioc-cont.c \ + ${IMDS220C}/isbc202.c ${IMDS220C}/isbc201.c \ + ${IMDS220C}/isbc206.c ${IMDS220C}/isbc464.c \ + ${IMDS220C}/zx200a.c ${IMDS220C}/isbc064.c +IMDS220_OPT = -I ${IMDS220D} + + +IMDS225D = ${INTELSYSD}/imds-225 +IMDS225C = ${INTELSYSD}/common +IMDS225 = ${IMDS225C}/i8080.c ${IMDS225D}/imds-225_sys.c \ + ${IMDS225C}/i8251.c ${IMDS225C}/i8255.c \ + ${IMDS225C}/i8259.c ${IMDS225C}/i8253.c \ + ${IMDS225C}/ieprom.c ${IMDS225C}/iram8.c \ + ${IMDS225C}/ipcmultibus.c ${IMDS225C}/ipc.c \ + ${IMDS225C}/ipc-cont.c ${IMDS225C}/ioc-cont.c \ + ${IMDS225C}/isbc202.c ${IMDS225C}/isbc201.c \ + ${IMDS225C}/zx200a.c ${IMDS225C}/isbc464.c \ + ${IMDS225C}/isbc206.c +IMDS225_OPT = -I ${IMDS225D} + + +IMDS230D = ${INTELSYSD}/imds-230 +IMDS230C = ${INTELSYSD}/common +IMDS230 = ${IMDS230C}/i8080.c ${IMDS230D}/imds-230_sys.c \ + ${IMDS230C}/i8251.c ${IMDS230C}/i8255.c \ + ${IMDS230C}/i8259.c ${IMDS230C}/i8253.c \ + ${IMDS230C}/ieprom.c ${IMDS230C}/iram8.c \ + ${IMDS230C}/ipbmultibus.c ${IMDS230C}/ipb.c \ + ${IMDS230C}/ipc-cont.c ${IMDS230C}/ioc-cont.c \ + ${IMDS230C}/isbc202.c ${IMDS230C}/isbc201.c \ + ${IMDS230C}/isbc206.c ${IMDS230C}/isbc464.c \ + ${IMDS230C}/zx200a.c ${IMDS230C}/isbc064.c +IMDS230_OPT = -I ${IMDS230D} + + +IMDS800D = ${INTELSYSD}/imds-800 +IMDS800C = ${INTELSYSD}/common +IMDS800 = ${IMDS800C}/i8080.c ${IMDS800D}/imds-800_sys.c \ + ${IMDS800D}/cpu.c ${IMDS800D}/front_panel.c \ + ${IMDS800D}/monitor.c ${IMDS800C}/ieprom1.c \ + ${IMDS800C}/i8251.c ${IMDS800C}/ieprom.c \ + ${IMDS800C}/m800multibus.c ${IMDS800C}/isbc064.c \ + ${IMDS800C}/isbc202.c ${IMDS800C}/isbc201.c \ + ${IMDS800C}/zx200a.c ${IMDS800C}/isbc464.c \ + ${IMDS800C}/isbc206.c ${IMDS800C}/i3214.c +IMDS800_OPT = -I ${IMDS800D} + + +IMDS810D = ${INTELSYSD}/imds-810 +IMDS810C = ${INTELSYSD}/common +IMDS810 = ${IMDS800C}/i8080.c ${IMDS810D}/imds-810_sys.c \ + ${IMDS810D}/cpu.c ${IMDS810D}/front_panel.c \ + ${IMDS810D}/monitor.c ${IMDS810C}/ieprom1.c \ + ${IMDS810C}/i8251.c ${IMDS810C}/ieprom.c \ + ${IMDS810C}/m800multibus.c ${IMDS810C}/isbc064.c \ + ${IMDS810C}/isbc202.c ${IMDS810C}/isbc201.c \ + ${IMDS810C}/zx200a.c ${IMDS810C}/isbc464.c \ + ${IMDS810C}/isbc206.c ${IMDS800C}/i3214.c +IMDS810_OPT = -I ${IMDS810D} + + +IBMPCD = ${INTELSYSD}/ibmpc +IBMPCC = ${INTELSYSD}/common IBMPC = ${IBMPCC}/i8255.c ${IBMPCD}/ibmpc.c \ ${IBMPCC}/i8088.c ${IBMPCD}/ibmpc_sys.c \ ${IBMPCC}/i8253.c ${IBMPCC}/i8259.c \ @@ -1753,8 +1867,8 @@ IBMPC = ${IBMPCC}/i8255.c ${IBMPCD}/ibmpc.c \ IBMPC_OPT = -I ${IBMPCD} -IBMPCXTD = Intel-Systems/ibmpcxt -IBMPCXTC = Intel-Systems/common +IBMPCXTD = ${INTELSYSD}/ibmpcxt +IBMPCXTC = ${INTELSYSD}/common IBMPCXT = ${IBMPCXTC}/i8088.c ${IBMPCXTD}/ibmpcxt_sys.c \ ${IBMPCXTC}/i8253.c ${IBMPCXTC}/i8259.c \ ${IBMPCXTC}/i8255.c ${IBMPCXTD}/ibmpcxt.c \ @@ -1763,29 +1877,29 @@ IBMPCXT = ${IBMPCXTC}/i8088.c ${IBMPCXTD}/ibmpcxt_sys.c \ IBMPCXT_OPT = -I ${IBMPCXTD} -SCELBID = Intel-Systems/scelbi -SCELBIC = Intel-Systems/common +SCELBID = ${INTELSYSD}/scelbi +SCELBIC = ${INTELSYSD}/common SCELBI = ${SCELBIC}/i8008.c ${SCELBID}/scelbi_sys.c ${SCELBID}/scelbi_io.c SCELBI_OPT = -I ${SCELBID} -TX0D = TX-0 +TX0D = ${SIMHD}/TX-0 TX0 = ${TX0D}/tx0_cpu.c ${TX0D}/tx0_dpy.c ${TX0D}/tx0_stddev.c \ ${TX0D}/tx0_sys.c ${TX0D}/tx0_sys_orig.c ${DISPLAYL} -TX0_OPT = -I ${TX0D} $(DISPLAY_OPT) +TX0_OPT = -I ${TX0D} ${DISPLAY_OPT} -SSEMD = SSEM +SSEMD = ${SIMHD}/SSEM SSEM = ${SSEMD}/ssem_cpu.c ${SSEMD}/ssem_sys.c SSEM_OPT = -I ${SSEMD} -B5500D = B5500 +B5500D = ${SIMHD}/B5500 B5500 = ${B5500D}/b5500_cpu.c ${B5500D}/b5500_io.c ${B5500D}/b5500_sys.c \ ${B5500D}/b5500_dk.c ${B5500D}/b5500_mt.c ${B5500D}/b5500_urec.c \ ${B5500D}/b5500_dr.c ${B5500D}/b5500_dtc.c B5500_OPT = -I.. -DUSE_INT64 -DB5500 -DUSE_SIM_CARD -BESM6D = BESM6 +BESM6D = ${SIMHD}/BESM6 BESM6 = ${BESM6D}/besm6_cpu.c ${BESM6D}/besm6_sys.c ${BESM6D}/besm6_mmu.c \ ${BESM6D}/besm6_arith.c ${BESM6D}/besm6_disk.c ${BESM6D}/besm6_drum.c \ ${BESM6D}/besm6_tty.c ${BESM6D}/besm6_panel.c ${BESM6D}/besm6_printer.c \ @@ -1855,11 +1969,103 @@ ifneq (,$(BESM6_BUILD)) endif endif +SEL32D = ${SIMHD}/SEL32 +SEL32 = ${SEL32D}/sel32_cpu.c ${SEL32D}/sel32_sys.c ${SEL32D}/sel32_defs.h \ + ${SEL32D}/sel32_chan.c ${SEL32D}/sel32_iop.c ${SEL32D}/sel32_com.c \ + ${SEL32D}/sel32_con.c ${SEL32D}/sel32_clk.c ${SEL32D}/sel32_mt.c \ + ${SEL32D}/sel32_lpr.c ${SEL32D}/sel32_scfi.c ${SEL32D}/sel32_fltpt.c \ + ${SEL32D}/sel32_disk.c +SEL32_OPT = -I $(SEL32D) -DSEL32 +#SEL32_OPT = -I $(SEL32D) -DUSE_INT64 -DSEL32 + +ICL1900D = ${SIMHD}/ICL1900 +ICL1900 = ${ICL1900D}/icl1900_cpu.c ${ICL1900D}/icl1900_sys.c \ + ${ICL1900D}/icl1900_stdio.c ${ICL1900D}/icl1900_cty.c \ + ${ICL1900D}/icl1900_tr.c ${ICL1900D}/icl1900_tp.c \ + ${ICL1900D}/icl1900_cr.c ${ICL1900D}/icl1900_cp.c \ + ${ICL1900D}/icl1900_lp.c ${ICL1900D}/icl1900_mta.c \ + ${ICL1900D}/icl1900_mt.c ${ICL1900D}/icl1900_eds8.c +ICL1900_OPT = -I $(ICL1900D) -DICL1900 -DUSE_SIM_CARD + +IBM360D = ${SIMHD}/IBM360 +IBM360 = ${IBM360D}/ibm360_cpu.c ${IBM360D}/ibm360_sys.c \ + ${IBM360D}/ibm360_con.c ${IBM360D}/ibm360_chan.c \ + ${IBM360D}/ibm360_cdr.c ${IBM360D}/ibm360_cdp.c \ + ${IBM360D}/ibm360_mt.c ${IBM360D}/ibm360_lpr.c \ + ${IBM360D}/ibm360_dasd.c ${IBM360D}/ibm360_com.c +IBM360_OPT = -I $(IBM360D) -DIBM360 -DUSE_64BIT -DUSE_SIM_CARD +IBM360_OPT32 = -I $(IBM360D) -DIBM360 -DUSE_SIM_CARD + +PDP6D = ${SIMHD}/PDP10 +ifneq (,${DISPLAY_OPT}) + PDP6_DISPLAY_OPT = +endif +PDP6 = ${PDP6D}/kx10_cpu.c ${PDP6D}/kx10_sys.c ${PDP6D}/kx10_cty.c \ + ${PDP6D}/kx10_lp.c ${PDP6D}/kx10_pt.c ${PDP6D}/kx10_cr.c \ + ${PDP6D}/kx10_cp.c ${PDP6D}/pdp6_dct.c ${PDP6D}/pdp6_dtc.c \ + ${PDP6D}/pdp6_mtc.c ${PDP6D}/pdp6_dsk.c ${PDP6D}/pdp6_dcs.c \ + ${PDP6D}/kx10_dpy.c ${DISPLAYL} $(DISPLAY340) +PDP6_OPT = -DPDP6=1 -DUSE_INT64 -I ${PDP6D} -DUSE_SIM_CARD ${DISPLAY_OPT} ${PDP6_DISPLAY_OPT} + +KA10D = ${SIMHD}/PDP10 +ifneq (,${DISPLAY_OPT}) + KA10_DISPLAY_OPT = +endif +KA10 = ${KA10D}/kx10_cpu.c ${KA10D}/kx10_sys.c ${KA10D}/kx10_df.c \ + ${KA10D}/kx10_dp.c ${KA10D}/kx10_mt.c ${KA10D}/kx10_cty.c \ + ${KA10D}/kx10_lp.c ${KA10D}/kx10_pt.c ${KA10D}/kx10_dc.c \ + ${KA10D}/kx10_rp.c ${KA10D}/kx10_rc.c ${KA10D}/kx10_dt.c \ + ${KA10D}/kx10_dk.c ${KA10D}/kx10_cr.c ${KA10D}/kx10_cp.c \ + ${KA10D}/kx10_tu.c ${KA10D}/kx10_rs.c ${KA10D}/ka10_pd.c \ + ${KA10D}/kx10_imp.c ${KA10D}/ka10_tk10.c \ + ${KA10D}/ka10_mty.c ${KA10D}/ka10_imx.c ${KA10D}/ka10_ch10.c \ + ${KA10D}/ka10_stk.c ${KA10D}/ka10_ten11.c ${KA10D}/ka10_auxcpu.c \ + $(KA10D)/ka10_pmp.c ${KA10D}/ka10_dkb.c ${KA10D}/pdp6_dct.c \ + ${KA10D}/pdp6_dtc.c ${KA10D}/pdp6_mtc.c ${KA10D}/pdp6_dsk.c \ + ${KA10D}/pdp6_dcs.c ${KA10D}/ka10_dpk.c ${KA10D}/kx10_dpy.c \ + ${PDP10D}/ka10_ai.c ${DISPLAYL} $(DISPLAY340) +KA10_OPT = -DKA=1 -DUSE_INT64 -I ${KA10D} -DUSE_SIM_CARD ${NETWORK_OPT} ${DISPLAY_OPT} ${KA10_DISPLAY_OPT} +ifneq (${PANDA_LIGHTS},) +# ONLY for Panda display. +KA10_OPT += -DPANDA_LIGHTS +KA10 += ${KA10D}/ka10_lights.c +KA10_LDFLAGS += -lusb-1.0 +endif + +KI10D = ${SIMHD}/PDP10 +ifneq (,${DISPLAY_OPT}) +KI10_DISPLAY_OPT = +endif +KI10 = ${KI10D}/kx10_cpu.c ${KI10D}/kx10_sys.c ${KI10D}/kx10_df.c \ + ${KI10D}/kx10_dp.c ${KI10D}/kx10_mt.c ${KI10D}/kx10_cty.c \ + ${KI10D}/kx10_lp.c ${KI10D}/kx10_pt.c ${KI10D}/kx10_dc.c \ + ${KI10D}/kx10_rp.c ${KI10D}/kx10_rc.c \ + ${KI10D}/kx10_dt.c ${KI10D}/kx10_dk.c ${KI10D}/kx10_cr.c \ + ${KI10D}/kx10_cp.c ${KI10D}/kx10_tu.c ${KI10D}/kx10_rs.c \ + ${KI10D}/kx10_imp.c ${KI10D}/kx10_dpy.c ${DISPLAYL} $(DISPLAY340) +KI10_OPT = -DKI=1 -DUSE_INT64 -I ${KI10D} -DUSE_SIM_CARD ${NETWORK_OPT} ${DISPLAY_OPT} ${KI10_DISPLAY_OPT} +ifneq (${PANDA_LIGHTS},) +# ONLY for Panda display. +KI10_OPT += -DPANDA_LIGHTS +KI10 += ${KA10D}/ka10_lights.c +KI10_LDFLAGS = -lusb-1.0 +endif + +ATT3B2D = ${SIMHD}/3B2 +ATT3B2 = ${ATT3B2D}/3b2_cpu.c ${ATT3B2D}/3b2_mmu.c \ + ${ATT3B2D}/3b2_iu.c ${ATT3B2D}/3b2_if.c \ + ${ATT3B2D}/3b2_id.c ${ATT3B2D}/3b2_dmac.c \ + ${ATT3B2D}/3b2_sys.c ${ATT3B2D}/3b2_io.c \ + ${ATT3B2D}/3b2_ports.c ${ATT3B2D}/3b2_ctc.c \ + ${ATT3B2D}/3b2_ni.c ${ATT3B2D}/3b2_mau.c \ + ${ATT3B2D}/3b2_sysdev.c +ATT3B2_OPT = -DUSE_INT64 -DUSE_ADDR64 -I ${ATT3B2D} ${NETWORK_OPT} + ### ### Experimental simulators ### -CDC1700D = CDC1700 +CDC1700D = ${SIMHD}/CDC1700 CDC1700 = ${CDC1700D}/cdc1700_cpu.c ${CDC1700D}/cdc1700_dis.c \ ${CDC1700D}/cdc1700_io.c ${CDC1700D}/cdc1700_sys.c \ ${CDC1700D}/cdc1700_dev1.c ${CDC1700D}/cdc1700_mt.c \ @@ -1874,7 +2080,7 @@ CDC1700_OPT = -I ${CDC1700D} ### Unsupported/Incomplete simulators ### -SIGMAD = sigma +SIGMAD = ${SIMHD}/sigma SIGMA = ${SIGMAD}/sigma_cpu.c ${SIGMAD}/sigma_sys.c ${SIGMAD}/sigma_cis.c \ ${SIGMAD}/sigma_coc.c ${SIGMAD}/sigma_dk.c ${SIGMAD}/sigma_dp.c \ ${SIGMAD}/sigma_fp.c ${SIGMAD}/sigma_io.c ${SIGMAD}/sigma_lp.c \ @@ -1882,7 +2088,7 @@ SIGMA = ${SIGMAD}/sigma_cpu.c ${SIGMAD}/sigma_sys.c ${SIGMAD}/sigma_cis.c \ ${SIGMAD}/sigma_rad.c ${SIGMAD}/sigma_rtc.c ${SIGMAD}/sigma_tt.c SIGMA_OPT = -I ${SIGMAD} -ALPHAD = alpha +ALPHAD = ${SIMHD}/alpha ALPHA = ${ALPHAD}/alpha_500au_syslist.c ${ALPHAD}/alpha_cpu.c \ ${ALPHAD}/alpha_ev5_cons.c ${ALPHAD}/alpha_ev5_pal.c \ ${ALPHAD}/alpha_ev5_tlb.c ${ALPHAD}/alpha_fpi.c \ @@ -1890,7 +2096,7 @@ ALPHA = ${ALPHAD}/alpha_500au_syslist.c ${ALPHAD}/alpha_cpu.c \ ${ALPHAD}/alpha_mmu.c ${ALPHAD}/alpha_sys.c ALPHA_OPT = -I ${ALPHAD} -DUSE_ADDR64 -DUSE_INT64 -SAGED = SAGE +SAGED = ${SIMHD}/SAGE SAGE = ${SAGED}/sage_cpu.c ${SAGED}/sage_sys.c ${SAGED}/sage_stddev.c \ ${SAGED}/sage_cons.c ${SAGED}/sage_fd.c ${SAGED}/sage_lp.c \ ${SAGED}/m68k_cpu.c ${SAGED}/m68k_mem.c ${SAGED}/m68k_scp.c \ @@ -1898,55 +2104,50 @@ SAGE = ${SAGED}/sage_cpu.c ${SAGED}/sage_sys.c ${SAGED}/sage_stddev.c \ ${SAGED}/i8251.c ${SAGED}/i8253.c ${SAGED}/i8255.c ${SAGED}/i8259.c ${SAGED}/i8272.c SAGE_OPT = -I ${SAGED} -DHAVE_INT64 -DUSE_SIM_IMD -PDQ3D = PDQ-3 +PDQ3D = ${SIMHD}/PDQ-3 PDQ3 = ${PDQ3D}/pdq3_cpu.c ${PDQ3D}/pdq3_sys.c ${PDQ3D}/pdq3_stddev.c \ ${PDQ3D}/pdq3_mem.c ${PDQ3D}/pdq3_debug.c ${PDQ3D}/pdq3_fdc.c PDQ3_OPT = -I ${PDQ3D} -DUSE_SIM_IMD -ATT3B2D = 3B2 -ATT3B2 = ${ATT3B2D}/3b2_cpu.c ${ATT3B2D}/3b2_mmu.c \ - ${ATT3B2D}/3b2_iu.c ${ATT3B2D}/3b2_if.c \ - ${ATT3B2D}/3b2_id.c ${ATT3B2D}/3b2_dmac.c \ - ${ATT3B2D}/3b2_sys.c ${ATT3B2D}/3b2_io.c \ - ${ATT3B2D}/3b2_ports.c ${ATT3B2D}/3b2_ctc.c \ - ${ATT3B2D}/3b2_sysdev.c -ATT3B2_OPT = -I ${ATT3B2D} -DUSE_INT64 -DUSE_ADDR64 # # Build everything (not the unsupported/incomplete or experimental simulators) # +ALL = pdp1 pdp4 pdp7 pdp8 pdp9 pdp15 pdp11 pdp10 \ + vax microvax3900 microvax1 rtvax1000 microvax2 vax730 vax750 vax780 \ + vax8200 vax8600 besm6 \ + microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e \ + vaxstation3100m30 vaxstation3100m38 vaxstation3100m76 vaxstation4000m60 \ + microvax3100m80 vaxstation4000vlc infoserver1000 \ + nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri \ + i7094 ibm1130 id16 id32 sds lgp h316 cdc1700 \ + swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 isys8010 isys8020 \ + isys8030 isys8024 imds-210 imds-220 imds-225 imds-230 imds-800 imds-810 \ + scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 \ + sigma uc15 pdp10-ka pdp10-ki pdp6 + ALL = b5500 i701 i704 i7010 i7070 i7080 i7090 pdp10-ka pdp10-ki ibm360 ibm360_32 icl1900 pdp6 sel32 all : ${ALL} EXPERIMENTAL = cdc1700 -experimental : $(EXPERIMENTAL) +experimental : ${EXPERIMENTAL} clean : -ifeq ($(WIN32),) - ${RM} -r ${BIN} +ifeq (${WIN32},) + ${RM} -rf ${BIN} else - if exist BIN\*.exe del /q BIN\*.exe - if exist BIN rmdir BIN + if exist BIN rmdir /s /q BIN endif -${BIN}BuildROMs${EXE} : +${BUILD_ROMS} : ${MKDIRBIN} -ifeq (agcc,$(findstring agcc,$(firstword $(CC)))) - gcc $(wordlist 2,1000,${CC}) sim_BuildROMs.c $(CC_OUTSPEC) +ifeq (${WIN32},) + @if ${TEST} \( ! -e $@ \) -o \( sim_BuildROMs.c -nt $@ \) ; then ${CC} sim_BuildROMs.c ${CC_OUTSPEC}; fi else - ${CC} sim_BuildROMs.c $(CC_OUTSPEC) -endif -ifeq ($(WIN32),) - $@ - ${RM} $@ - ifeq (Darwin,$(OSTYPE)) # remove Xcode's debugging symbols folder too - ${RM} -rf $@.dSYM - endif -else - $(@D)\$(@F) - del $(@D)\$(@F) + @if not exist $@ ${CC} sim_BuildROMs.c ${CC_OUTSPEC} endif + @$@ # # Individual builds @@ -1955,224 +2156,314 @@ pdp1 : ${BIN}pdp1${EXE} ${BIN}pdp1${EXE} : ${PDP1} ${SIM} ${MKDIRBIN} - ${CC} ${PDP1} ${SIM} ${PDP1_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP1} ${SIM} ${PDP1_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP1D},pdp1)) - $@ $(call find_test,${PDP1D},pdp1) $(TEST_ARG) + $@ $(call find_test,${PDP1D},pdp1) ${TEST_ARG} endif pdp4 : ${BIN}pdp4${EXE} ${BIN}pdp4${EXE} : ${PDP18B} ${SIM} ${MKDIRBIN} - ${CC} ${PDP18B} ${SIM} ${PDP4_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP18B} ${SIM} ${PDP4_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP18BD},pdp4)) - $@ $(call find_test,${PDP18BD},pdp4) $(TEST_ARG) + $@ $(call find_test,${PDP18BD},pdp4) ${TEST_ARG} endif pdp7 : ${BIN}pdp7${EXE} -${BIN}pdp7${EXE} : ${PDP18B} ${SIM} +${BIN}pdp7${EXE} : ${PDP18B} ${PDP18BD}/pdp18b_dpy.c ${DISPLAYL} ${DISPLAY340} ${SIM} ${MKDIRBIN} - ${CC} ${PDP18B} ${SIM} ${PDP7_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP18B} ${PDP18BD}/pdp18b_dpy.c ${DISPLAYL} ${DISPLAY340} ${SIM} ${PDP7_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP18BD},pdp7)) - $@ $(call find_test,${PDP18BD},pdp7) $(TEST_ARG) + $@ $(call find_test,${PDP18BD},pdp7) ${TEST_ARG} endif pdp8 : ${BIN}pdp8${EXE} ${BIN}pdp8${EXE} : ${PDP8} ${SIM} ${MKDIRBIN} - ${CC} ${PDP8} ${SIM} ${PDP8_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP8} ${SIM} ${PDP8_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP8D},pdp8)) - $@ $(call find_test,${PDP8D},pdp8) $(TEST_ARG) + $@ $(call find_test,${PDP8D},pdp8) ${TEST_ARG} endif pdp9 : ${BIN}pdp9${EXE} ${BIN}pdp9${EXE} : ${PDP18B} ${SIM} ${MKDIRBIN} - ${CC} ${PDP18B} ${SIM} ${PDP9_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP18B} ${SIM} ${PDP9_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP18BD},pdp9)) - $@ $(call find_test,${PDP18BD},pdp9) $(TEST_ARG) + $@ $(call find_test,${PDP18BD},pdp9) ${TEST_ARG} endif pdp15 : ${BIN}pdp15${EXE} ${BIN}pdp15${EXE} : ${PDP18B} ${SIM} ${MKDIRBIN} - ${CC} ${PDP18B} ${SIM} ${PDP15_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP18B} ${SIM} ${PDP15_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP18BD},pdp15)) - $@ $(call find_test,${PDP18BD},pdp15) $(TEST_ARG) + $@ $(call find_test,${PDP18BD},pdp15) ${TEST_ARG} endif pdp10 : ${BIN}pdp10${EXE} ${BIN}pdp10${EXE} : ${PDP10} ${SIM} ${MKDIRBIN} - ${CC} ${PDP10} ${SIM} ${PDP10_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP10} ${SIM} ${PDP10_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP10D},pdp10)) - $@ $(call find_test,${PDP10D},pdp10) $(TEST_ARG) + $@ $(call find_test,${PDP10D},pdp10) ${TEST_ARG} endif -pdp6 : ${BIN}pdp6${EXE} - -${BIN}pdp6${EXE} : ${PDP6} ${SIM} - ${MKDIRBIN} - ${CC} ${PDP6} ${PDP6_DPY} ${SIM} ${PDP6_OPT} $(CC_OUTSPEC) ${LDFLAGS} ${PDP6_LDFLAGS} -ifneq (,$(call find_test,${PDP10D},pdp6)) - $@ $(call find_test,${PDP10D},pdp6) $(TEST_ARG) -endif - -pdp10-ka : ${BIN}pdp10-ka${EXE} - -${BIN}pdp10-ka${EXE} : ${KA10} ${SIM} - ${MKDIRBIN} - ${CC} ${KA10} ${KA10_DPY} ${SIM} ${KA10_OPT} $(CC_OUTSPEC) ${LDFLAGS} ${KA10_LDFLAGS} -ifneq (,$(call find_test,${PDP10D},ka10)) - $@ $(call find_test,${PDP10D},ka10) $(TEST_ARG) -endif - -pdp10-ki : ${BIN}pdp10-ki${EXE} - -${BIN}pdp10-ki${EXE} : ${KI10} ${SIM} - ${MKDIRBIN} - ${CC} ${KI10} ${KI10_DPY} ${SIM} ${KI10_OPT} $(CC_OUTSPEC) ${LDFLAGS} ${KI10_LDFLAGS} -ifneq (,$(call find_test,${PDP10D},ki10)) - $@ $(call find_test,${PDP10D},ki10) $(TEST_ARG) -endif - -pdp11 : ${BIN}BuildROMs${EXE} ${BIN}pdp11${EXE} +pdp11 : ${BIN}pdp11${EXE} ${BIN}pdp11${EXE} : ${PDP11} ${SIM} ${MKDIRBIN} - ${CC} ${PDP11} ${SIM} ${PDP11_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDP11} ${SIM} ${PDP11_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP11D},pdp11)) - $@ $(call find_test,${PDP11D},pdp11) $(TEST_ARG) + $@ $(call find_test,${PDP11D},pdp11) ${TEST_ARG} endif uc15 : ${BIN}uc15${EXE} ${BIN}uc15${EXE} : ${UC15} ${SIM} ${MKDIRBIN} - ${CC} ${UC15} ${SIM} ${UC15_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${UC15} ${SIM} ${UC15_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDP11D},uc15)) - $@ $(call find_test,${PDP11D},uc15) $(TEST_ARG) + $@ $(call find_test,${PDP11D},uc15) ${TEST_ARG} endif -vax : microvax3900 +microvax3900 : vax -microvax3900 : ${BIN}BuildROMs${EXE} ${BIN}microvax3900${EXE} +vax : ${BIN}vax${EXE} -${BIN}microvax3900${EXE} : ${VAX} ${SIM} ${BUILD_ROMS} +${BIN}vax${EXE} : ${VAX} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${VAX} ${SIM} ${VAX_OPT} $(CC_OUTSPEC) ${LDFLAGS} -ifeq ($(WIN32),) - cp ${BIN}microvax3900${EXE} ${BIN}vax${EXE} + ${CC} ${VAX} ${SIM} ${VAX_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifeq (${WIN32},) + cp ${BIN}vax${EXE} ${BIN}microvax3900${EXE} else - copy $(@D)\microvax3900${EXE} $(@D)\vax${EXE} + copy $(@D)\vax${EXE} $(@D)\microvax3900${EXE} endif -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -microvax1 : ${BIN}BuildROMs${EXE} ${BIN}microvax1${EXE} +microvax2000 : ${BIN}microvax2000${EXE} + +${BIN}microvax2000${EXE} : ${VAX410} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX410} ${SCSI} ${SIM} ${VAX410_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +infoserver100 : ${BIN}infoserver100${EXE} + +${BIN}infoserver100${EXE} : ${VAX420} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX420} ${SCSI} ${SIM} ${VAX411_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +infoserver150vxt : ${BIN}infoserver150vxt${EXE} + +${BIN}infoserver150vxt${EXE} : ${VAX420} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX420} ${SCSI} ${SIM} ${VAX412_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +microvax3100 : ${BIN}microvax3100${EXE} + +${BIN}microvax3100${EXE} : ${VAX420} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX420} ${SCSI} ${SIM} ${VAX41A_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +microvax3100e : ${BIN}microvax3100e${EXE} + +${BIN}microvax3100e${EXE} : ${VAX420} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX420} ${SCSI} ${SIM} ${VAX41D_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +vaxstation3100m30 : ${BIN}vaxstation3100m30${EXE} + +${BIN}vaxstation3100m30${EXE} : ${VAX420} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX420} ${SCSI} ${SIM} ${VAX42A_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +vaxstation3100m38 : ${BIN}vaxstation3100m38${EXE} + +${BIN}vaxstation3100m38${EXE} : ${VAX420} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX420} ${SCSI} ${SIM} ${VAX42B_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +vaxstation3100m76 : ${BIN}vaxstation3100m76${EXE} + +${BIN}vaxstation3100m76${EXE} : ${VAX43} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX43} ${SCSI} ${SIM} ${VAX43_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +vaxstation4000m60 : ${BIN}vaxstation4000m60${EXE} + +${BIN}vaxstation4000m60${EXE} : ${VAX440} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX440} ${SCSI} ${SIM} ${VAX46_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +microvax3100m80 : ${BIN}microvax3100m80${EXE} + +${BIN}microvax3100m80${EXE} : ${VAX440} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX440} ${SCSI} ${SIM} ${VAX47_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +vaxstation4000vlc : ${BIN}vaxstation4000vlc${EXE} + +${BIN}vaxstation4000vlc${EXE} : ${VAX440} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX440} ${SCSI} ${SIM} ${VAX48_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +infoserver1000 : ${BIN}infoserver1000${EXE} + +${BIN}infoserver1000${EXE} : ${IS1000} ${SCSI} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${IS1000} ${SCSI} ${SIM} ${IS1000_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +microvax1 : ${BIN}microvax1${EXE} ${BIN}microvax1${EXE} : ${VAX610} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX610} ${SIM} ${VAX610_OPT} -o $@ ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -rtvax1000 : ${BIN}BuildROMs${EXE} ${BIN}rtvax1000${EXE} +rtvax1000 : ${BIN}rtvax1000${EXE} ${BIN}rtvax1000${EXE} : ${VAX630} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX630} ${SIM} ${VAX620_OPT} -o $@ ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -microvax2 : ${BIN}BuildROMs${EXE} ${BIN}microvax2${EXE} +microvax2 : ${BIN}microvax2${EXE} ${BIN}microvax2${EXE} : ${VAX630} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX630} ${SIM} ${VAX630_OPT} -o $@ ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -vax730 : ${BIN}BuildROMs${EXE} ${BIN}vax730${EXE} +vax730 : ${BIN}vax730${EXE} ${BIN}vax730${EXE} : ${VAX730} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX730} ${SIM} ${VAX730_OPT} -o $@ ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -vax750 : ${BIN}BuildROMs${EXE} ${BIN}vax750${EXE} +vax750 : ${BIN}vax750${EXE} ${BIN}vax750${EXE} : ${VAX750} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX750} ${SIM} ${VAX750_OPT} -o $@ ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -vax780 : ${BIN}BuildROMs${EXE} ${BIN}vax780${EXE} +vax780 : ${BIN}vax780${EXE} ${BIN}vax780${EXE} : ${VAX780} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${VAX780} ${SIM} ${VAX780_OPT} $(CC_OUTSPEC) ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) + ${CC} ${VAX780} ${SIM} ${VAX780_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif -vax8600 : ${BIN}BuildROMs${EXE} ${BIN}vax8600${EXE} +vax8200 : ${BIN}vax8200${EXE} + +${BIN}vax8200${EXE} : ${VAX8200} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${VAX8200} ${SIM} ${VAX8200_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} +endif + +vax8600 : ${BIN}vax8600${EXE} ${BIN}vax8600${EXE} : ${VAX8600} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${VAX8600} ${SIM} ${VAX8600_OPT} $(CC_OUTSPEC) ${LDFLAGS} -ifneq (,$(call find_test,$(VAXD),vax-diag)) - $@ $(call find_test,$(VAXD),vax-diag) $(TEST_ARG) + ${CC} ${VAX8600} ${SIM} ${VAX8600_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${VAXD},vax-diag)) + $@ $(call find_test,${VAXD},vax-diag) ${TEST_ARG} endif nova : ${BIN}nova${EXE} ${BIN}nova${EXE} : ${NOVA} ${SIM} ${MKDIRBIN} - ${CC} ${NOVA} ${SIM} ${NOVA_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${NOVA} ${SIM} ${NOVA_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${NOVAD},nova)) - $@ $(call find_test,${NOVAD},nova) $(TEST_ARG) + $@ $(call find_test,${NOVAD},nova) ${TEST_ARG} endif eclipse : ${BIN}eclipse${EXE} ${BIN}eclipse${EXE} : ${ECLIPSE} ${SIM} ${MKDIRBIN} - ${CC} ${ECLIPSE} ${SIM} ${ECLIPSE_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ECLIPSE} ${SIM} ${ECLIPSE_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${NOVAD},eclipse)) - $@ $(call find_test,${NOVAD},eclipse) $(TEST_ARG) + $@ $(call find_test,${NOVAD},eclipse) ${TEST_ARG} endif h316 : ${BIN}h316${EXE} ${BIN}h316${EXE} : ${H316} ${SIM} ${MKDIRBIN} - ${CC} ${H316} ${SIM} ${H316_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${H316} ${SIM} ${H316_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${H316D},h316)) - $@ $(call find_test,${H316D},h316) $(TEST_ARG) + $@ $(call find_test,${H316D},h316) ${TEST_ARG} endif hp2100 : ${BIN}hp2100${EXE} ${BIN}hp2100${EXE} : ${HP2100} ${SIM} -ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) +ifneq (1,${CPP_BUILD}${CPP_FORCE}) ${MKDIRBIN} - ${CC} ${HP2100} ${SIM} ${HP2100_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${HP2100} ${SIM} ${HP2100_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${HP2100D},hp2100)) - $@ $(call find_test,${HP2100D},hp2100) $(TEST_ARG) + $@ $(call find_test,${HP2100D},hp2100) ${TEST_ARG} endif else $(info hp2100 can't be built using C++) @@ -2181,11 +2472,11 @@ endif hp3000 : ${BIN}hp3000${EXE} ${BIN}hp3000${EXE} : ${HP3000} ${SIM} -ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) +ifneq (1,${CPP_BUILD}${CPP_FORCE}) ${MKDIRBIN} - ${CC} ${HP3000} ${SIM} ${HP3000_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${HP3000} ${SIM} ${HP3000_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${HP3000D},hp3000)) - $@ $(call find_test,${HP3000D},hp3000) $(TEST_ARG) + $@ $(call find_test,${HP3000D},hp3000) ${TEST_ARG} endif else $(info hp3000 can't be built using C++) @@ -2195,43 +2486,43 @@ i1401 : ${BIN}i1401${EXE} ${BIN}i1401${EXE} : ${I1401} ${SIM} ${MKDIRBIN} - ${CC} ${I1401} ${SIM} ${I1401_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I1401} ${SIM} ${I1401_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I1401D},i1401)) - $@ $(call find_test,${I1401D},i1401) $(TEST_ARG) + $@ $(call find_test,${I1401D},i1401) ${TEST_ARG} endif i1620 : ${BIN}i1620${EXE} ${BIN}i1620${EXE} : ${I1620} ${SIM} ${MKDIRBIN} - ${CC} ${I1620} ${SIM} ${I1620_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I1620} ${SIM} ${I1620_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I1620D},i1620)) - $@ $(call find_test,${I1620D},i1620) $(TEST_ARG) + $@ $(call find_test,${I1620D},i1620) ${TEST_ARG} endif i7094 : ${BIN}i7094${EXE} ${BIN}i7094${EXE} : ${I7094} ${SIM} ${MKDIRBIN} - ${CC} ${I7094} ${SIM} ${I7094_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I7094} ${SIM} ${I7094_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I7094D},i7094)) - $@ $(call find_test,${I7094D},i7094) $(TEST_ARG) + $@ $(call find_test,${I7094D},i7094) ${TEST_ARG} endif ibm1130 : ${BIN}ibm1130${EXE} ${BIN}ibm1130${EXE} : ${IBM1130} -ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) +ifneq (1,${CPP_BUILD}${CPP_FORCE}) ${MKDIRBIN} -ifneq ($(WIN32),) - windres ${IBM1130D}/ibm1130.rc $(BIN)ibm1130.o - ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} $(BIN)ibm1130.o $(CC_OUTSPEC) ${LDFLAGS} - del BIN\ibm1130.o -else - ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} $(CC_OUTSPEC) ${LDFLAGS} -ifneq (,$(call find_test,${IBM1130D},ibm1130)) - $@ $(call find_test,${IBM1130D},ibm1130) $(TEST_ARG) +ifneq (${WIN32},) + windres ${IBM1130D}/ibm1130.rc ${BIN}ibm1130.o endif + ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (${WIN32},) + del BIN\ibm1130.o +endif +ifneq (,$(call find_test,${IBM1130D},ibm1130)) + $@ $(call find_test,${IBM1130D},ibm1130) ${TEST_ARG} endif else $(info ibm1130 can't be built using C++) @@ -2274,185 +2565,231 @@ ifneq (,$(call find_test,${SEL32D},sel32)) $@ $(call find_test,${SEL32D},sel32) $(TEST_ARG) endif - s3 : ${BIN}s3${EXE} ${BIN}s3${EXE} : ${S3} ${SIM} ${MKDIRBIN} - ${CC} ${S3} ${SIM} ${S3_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${S3} ${SIM} ${S3_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${S3D},s3)) - $@ $(call find_test,${S3D},s3) $(TEST_ARG) + $@ $(call find_test,${S3D},s3) ${TEST_ARG} endif altair : ${BIN}altair${EXE} ${BIN}altair${EXE} : ${ALTAIR} ${SIM} ${MKDIRBIN} - ${CC} ${ALTAIR} ${SIM} ${ALTAIR_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ALTAIR} ${SIM} ${ALTAIR_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ALTAIRD},altair)) - $@ $(call find_test,${ALTAIRD},altair) $(TEST_ARG) + $@ $(call find_test,${ALTAIRD},altair) ${TEST_ARG} endif altairz80 : ${BIN}altairz80${EXE} ${BIN}altairz80${EXE} : ${ALTAIRZ80} ${SIM} ${MKDIRBIN} - ${CC} ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ALTAIRZ80D},altairz80)) - $@ $(call find_test,${ALTAIRZ80D},altairz80) $(TEST_ARG) + $@ $(call find_test,${ALTAIRZ80D},altairz80) ${TEST_ARG} endif gri : ${BIN}gri${EXE} ${BIN}gri${EXE} : ${GRI} ${SIM} ${MKDIRBIN} - ${CC} ${GRI} ${SIM} ${GRI_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${GRI} ${SIM} ${GRI_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${GRID},gri)) - $@ $(call find_test,${GRID},gri) $(TEST_ARG) + $@ $(call find_test,${GRID},gri) ${TEST_ARG} endif lgp : ${BIN}lgp${EXE} ${BIN}lgp${EXE} : ${LGP} ${SIM} ${MKDIRBIN} - ${CC} ${LGP} ${SIM} ${LGP_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${LGP} ${SIM} ${LGP_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${LGPD},lgp)) - $@ $(call find_test,${LGPD},lgp) $(TEST_ARG) + $@ $(call find_test,${LGPD},lgp) ${TEST_ARG} endif id16 : ${BIN}id16${EXE} ${BIN}id16${EXE} : ${ID16} ${SIM} ${MKDIRBIN} - ${CC} ${ID16} ${SIM} ${ID16_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ID16} ${SIM} ${ID16_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ID32D},id16)) - $@ $(call find_test,${ID32D},id16) $(TEST_ARG) + $@ $(call find_test,${ID32D},id16) ${TEST_ARG} endif id32 : ${BIN}id32${EXE} ${BIN}id32${EXE} : ${ID32} ${SIM} ${MKDIRBIN} - ${CC} ${ID32} ${SIM} ${ID32_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ID32} ${SIM} ${ID32_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ID32D},id32)) - $@ $(call find_test,${ID32D},id32) $(TEST_ARG) + $@ $(call find_test,${ID32D},id32) ${TEST_ARG} endif sds : ${BIN}sds${EXE} ${BIN}sds${EXE} : ${SDS} ${SIM} ${MKDIRBIN} - ${CC} ${SDS} ${SIM} ${SDS_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SDS} ${SIM} ${SDS_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SDSD},sds)) - $@ $(call find_test,${SDSD},sds) $(TEST_ARG) + $@ $(call find_test,${SDSD},sds) ${TEST_ARG} endif -swtp6800mp-a : ${BIN}BuildROMs${EXE} ${BIN}swtp6800mp-a${EXE} +swtp6800mp-a : ${BIN}swtp6800mp-a${EXE} ${BIN}swtp6800mp-a${EXE} : ${SWTP6800MP-A} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${SWTP6800MP-A} ${SIM} ${SWTP6800_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SWTP6800MP-A} ${SIM} ${SWTP6800_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SWTP6800D},swtp6800mp-a)) - $@ $(call find_test,${SWTP6800D},swtp6800mp-a) $(TEST_ARG) + $@ $(call find_test,${SWTP6800D},swtp6800mp-a) ${TEST_ARG} endif -swtp6800mp-a2 : ${BIN}BuildROMs${EXE} ${BIN}swtp6800mp-a2${EXE} +swtp6800mp-a2 : ${BIN}swtp6800mp-a2${EXE} ${BIN}swtp6800mp-a2${EXE} : ${SWTP6800MP-A2} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${SWTP6800MP-A2} ${SIM} ${SWTP6800_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SWTP6800MP-A2} ${SIM} ${SWTP6800_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SWTP6800D},swtp6800mp-a2)) - $@ $(call find_test,${SWTP6800D},swtp6800mp-a2) $(TEST_ARG) + $@ $(call find_test,${SWTP6800D},swtp6800mp-a2) ${TEST_ARG} endif isys8010: ${BIN}isys8010${EXE} ${BIN}isys8010${EXE} : ${ISYS8010} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${ISYS8010} ${SIM} ${ISYS8010_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ISYS8010} ${SIM} ${ISYS8010_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ISYS8010D},isys8010)) - $@ $(call find_test,${ISYS8010D},isys8010) $(TEST_ARG) + $@ $(call find_test,${ISYS8010D},isys8010) ${TEST_ARG} endif isys8020: ${BIN}isys8020${EXE} ${BIN}isys8020${EXE} : ${ISYS8020} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${ISYS8020} ${SIM} ${ISYS8020_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ISYS8020} ${SIM} ${ISYS8020_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ISYS8020D},isys8020)) - $@ $(call find_test,${ISYS8020D},isys8020) $(TEST_ARG) + $@ $(call find_test,${ISYS8020D},isys8020) ${TEST_ARG} endif isys8024: ${BIN}isys8024${EXE} ${BIN}isys8024${EXE} : ${ISYS8024} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${ISYS8024} ${SIM} ${ISYS8024_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ISYS8024} ${SIM} ${ISYS8024_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ISYS8024D},isys8024)) - $@ $(call find_test,${ISYS8024D},isys8024) $(TEST_ARG) + $@ $(call find_test,${ISYS8024D},isys8024) ${TEST_ARG} endif isys8030: ${BIN}isys8030${EXE} ${BIN}isys8030${EXE} : ${ISYS8030} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${ISYS8030} ${SIM} ${ISYS8030_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ISYS8030} ${SIM} ${ISYS8030_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ISYS8030D},isys8030)) - $@ $(call find_test,${ISYS8030D},isys8030) $(TEST_ARG) + $@ $(call find_test,${ISYS8030D},isys8030) ${TEST_ARG} +endif + +imds-210: ${BIN}imds-210${EXE} + +${BIN}imds-210${EXE} : ${IMDS210} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${IMDS210} ${SIM} ${IMDS210_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${IMDS210D},imds-210)) + $@ $(call find_test,${IMDS210D},imds-210) ${TEST_ARG} +endif + +imds-220: ${BIN}imds-220${EXE} + +${BIN}imds-220${EXE} : ${IMDS220} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${IMDS220} ${SIM} ${IMDS220_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${IMDS220D},imds-220)) + $@ $(call find_test,${IMDS220D},imds-220) ${TEST_ARG} endif imds-225: ${BIN}imds-225${EXE} -${BIN}imds-225${EXE} : ${IMDS-225} ${SIM} ${BUILD_ROMS} +${BIN}imds-225${EXE} : ${IMDS225} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${IMDS-225} ${SIM} ${IMDS-225_OPT} $(CC_OUTSPEC) ${LDFLAGS} -ifneq (,$(call find_test,${IMDS-225D},imds-225)) - $@ $(call find_test,${IMDS-225D},imds-225) $(TEST_ARG) + ${CC} ${IMDS225} ${SIM} ${IMDS225_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${IMDS225D},imds-225)) + $@ $(call find_test,${IMDS225D},imds-225) ${TEST_ARG} +endif + +imds-230: ${BIN}imds-230${EXE} + +${BIN}imds-230${EXE} : ${IMDS230} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${IMDS230} ${SIM} ${IMDS230_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${IMDS230D},imds-230)) + $@ $(call find_test,${IMDS230D},imds-230) ${TEST_ARG} +endif + +imds-800: ${BIN}imds-800${EXE} + +${BIN}imds-800${EXE} : ${IMDS800} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${IMDS800} ${SIM} ${IMDS800_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${IMDS800D},imds-800)) + $@ $(call find_test,${IMDS800D},imds-800) ${TEST_ARG} +endif + +imds-810: ${BIN}imds-810${EXE} + +${BIN}imds-810${EXE} : ${IMDS810} ${SIM} ${BUILD_ROMS} + ${MKDIRBIN} + ${CC} ${IMDS810} ${SIM} ${IMDS810_OPT} ${CC_OUTSPEC} ${LDFLAGS} +ifneq (,$(call find_test,${IMDS810D},imds-810)) + $@ $(call find_test,${IMDS810D},imds-810) ${TEST_ARG} endif ibmpc: ${BIN}ibmpc${EXE} ${BIN}ibmpc${EXE} : ${IBMPC} ${SIM} ${BUILD_ROMS} + #cmake:ignore-target ${MKDIRBIN} - ${CC} ${IBMPC} ${SIM} ${IBMPC_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${IBMPC} ${SIM} ${IBMPC_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${IBMPCD},ibmpc)) - $@ $(call find_test,${IBMPCD},ibmpc) $(TEST_ARG) + $@ $(call find_test,${IBMPCD},ibmpc) ${TEST_ARG} endif ibmpcxt: ${BIN}ibmpcxt${EXE} ${BIN}ibmpcxt${EXE} : ${IBMPCXT} ${SIM} ${BUILD_ROMS} + #cmake:ignore-target ${MKDIRBIN} - ${CC} ${IBMPCXT} ${SIM} ${IBMPCXT_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${IBMPCXT} ${SIM} ${IBMPCXT_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${IBMPCXTD},ibmpcxt)) - $@ $(call find_test,${IBMPCXTD},ibmpcxt) $(TEST_ARG) + $@ $(call find_test,${IBMPCXTD},ibmpcxt) ${TEST_ARG} endif scelbi: ${BIN}scelbi${EXE} ${BIN}scelbi${EXE} : ${SCELBI} ${SIM} ${MKDIRBIN} - ${CC} ${SCELBI} ${SIM} ${SCELBI_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SCELBI} ${SIM} ${SCELBI_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SCELBID},scelbi)) - $@ $(call find_test,${SCELBID},scelbi) $(TEST_ARG) + $@ $(call find_test,${SCELBID},scelbi) ${TEST_ARG} endif tx-0 : ${BIN}tx-0${EXE} ${BIN}tx-0${EXE} : ${TX0} ${SIM} ${MKDIRBIN} - ${CC} ${TX0} ${SIM} ${TX0_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${TX0} ${SIM} ${TX0_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${TX0D},tx-0)) - $@ $(call find_test,${TX0D},tx-0) $(TEST_ARG) + $@ $(call find_test,${TX0D},tx-0) ${TEST_ARG} endif ssem : ${BIN}ssem${EXE} ${BIN}ssem${EXE} : ${SSEM} ${SIM} ${MKDIRBIN} - ${CC} ${SSEM} ${SIM} ${SSEM_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SSEM} ${SIM} ${SSEM_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SSEMD},ssem)) - $@ $(call find_test,${SSEMD},ssem) $(TEST_ARG) + $@ $(call find_test,${SSEMD},ssem) ${TEST_ARG} endif cdc1700 : ${BIN}cdc1700${EXE} @@ -2461,17 +2798,17 @@ ${BIN}cdc1700${EXE} : ${CDC1700} ${SIM} ${MKDIRBIN} ${CC} ${CDC1700} ${SIM} ${CDC1700_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${CDC1700D},cdc1700)) - $@ $(call find_test,${CDC1700D},cdc1700) $(TEST_ARG) + $@ $(call find_test,${CDC1700D},cdc1700) ${TEST_ARG} endif besm6 : ${BIN}besm6${EXE} ${BIN}besm6${EXE} : ${BESM6} ${SIM} -ifneq (1,$(CPP_BUILD)$(CPP_FORCE)) +ifneq (1,${CPP_BUILD}${CPP_FORCE}) ${MKDIRBIN} - ${CC} ${BESM6} ${SIM} ${BESM6_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${BESM6} ${SIM} ${BESM6_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${BESM6D},besm6)) - $@ $(call find_test,${BESM6D},besm6) $(TEST_ARG) + $@ $(call find_test,${BESM6D},besm6) ${TEST_ARG} endif else $(info besm6 can't be built using C++) @@ -2481,117 +2818,145 @@ sigma : ${BIN}sigma${EXE} ${BIN}sigma${EXE} : ${SIGMA} ${SIM} ${MKDIRBIN} - ${CC} ${SIGMA} ${SIM} ${SIGMA_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SIGMA} ${SIM} ${SIGMA_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SIGMAD},sigma)) - $@ $(call find_test,${SIGMAD},sigma) $(TEST_ARG) + $@ $(call find_test,${SIGMAD},sigma) ${TEST_ARG} endif alpha : ${BIN}alpha${EXE} ${BIN}alpha${EXE} : ${ALPHA} ${SIM} ${MKDIRBIN} - ${CC} ${ALPHA} ${SIM} ${ALPHA_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ALPHA} ${SIM} ${ALPHA_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ALPHAD},alpha)) - $@ $(call find_test,${ALPHAD},alpha) $(TEST_ARG) + $@ $(call find_test,${ALPHAD},alpha) ${TEST_ARG} endif sage : ${BIN}sage${EXE} ${BIN}sage${EXE} : ${SAGE} ${SIM} ${MKDIRBIN} - ${CC} ${SAGE} ${SIM} ${SAGE_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${SAGE} ${SIM} ${SAGE_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${SAGED},sage)) - $@ $(call find_test,${SAGED},sage) $(TEST_ARG) + $@ $(call find_test,${SAGED},sage) ${TEST_ARG} endif pdq3 : ${BIN}pdq3${EXE} ${BIN}pdq3${EXE} : ${PDQ3} ${SIM} ${MKDIRBIN} - ${CC} ${PDQ3} ${SIM} ${PDQ3_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${PDQ3} ${SIM} ${PDQ3_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${PDQ3D},pdq3)) - $@ $(call find_test,${PDQ3D},pdq3) $(TEST_ARG) + $@ $(call find_test,${PDQ3D},pdq3) ${TEST_ARG} endif -b5500 : $(BIN)b5500$(EXE) +b5500 : ${BIN}b5500${EXE} ${BIN}b5500${EXE} : ${B5500} ${SIM} ${MKDIRBIN} - ${CC} ${B5500} ${SIM} ${B5500_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${B5500} ${SIM} ${B5500_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${B5500D},b5500)) - $@ $(call find_test,${B5500D},b5500) $(TEST_ARG) + $@ $(call find_test,${B5500D},b5500) ${TEST_ARG} endif -3b2 : ${BIN}BuildROMs${EXE} $(BIN)3b2$(EXE) +3b2 : ${BIN}3b2${EXE} ${BIN}3b2${EXE} : ${ATT3B2} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} - ${CC} ${ATT3B2} ${SIM} ${ATT3B2_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${ATT3B2} ${SIM} ${ATT3B2_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${ATT3B2D},3b2)) - $@ $(call find_test,${ATT3B2D},3b2) $(TEST_ARG) + $@ $(call find_test,${ATT3B2D},3b2) ${TEST_ARG} endif -i7090 : $(BIN)i7090$(EXE) +i7090 : ${BIN}i7090${EXE} ${BIN}i7090${EXE} : ${I7090} ${SIM} ${MKDIRBIN} - ${CC} ${I7090} ${SIM} ${I7090_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I7090} ${SIM} ${I7090_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I7000D},i7090)) - $@ $(call find_test,${I7000D},i7090) $(TEST_ARG) + $@ $(call find_test,${I7000D},i7090) ${TEST_ARG} endif -i7080 : $(BIN)i7080$(EXE) +i7080 : ${BIN}i7080${EXE} ${BIN}i7080${EXE} : ${I7080} ${SIM} ${MKDIRBIN} - ${CC} ${I7080} ${SIM} ${I7080_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I7080} ${SIM} ${I7080_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I7080D},i7080)) - $@ $(call find_test,${I7080D},i7080) $(TEST_ARG) + $@ $(call find_test,${I7080D},i7080) ${TEST_ARG} endif -i7070 : $(BIN)i7070$(EXE) +i7070 : ${BIN}i7070${EXE} ${BIN}i7070${EXE} : ${I7070} ${SIM} ${MKDIRBIN} - ${CC} ${I7070} ${SIM} ${I7070_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I7070} ${SIM} ${I7070_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I7070D},i7070)) - $@ $(call find_test,${I7070D},i7070) $(TEST_ARG) + $@ $(call find_test,${I7070D},i7070) ${TEST_ARG} endif -i7010 : $(BIN)i7010$(EXE) +i7010 : ${BIN}i7010${EXE} ${BIN}i7010${EXE} : ${I7010} ${SIM} ${MKDIRBIN} - ${CC} ${I7010} ${SIM} ${I7010_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I7010} ${SIM} ${I7010_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I7010D},i7010)) - $@ $(call find_test,${I7010D},i7010) $(TEST_ARG) + $@ $(call find_test,${I7010D},i7010) ${TEST_ARG} endif -i704 : $(BIN)i704$(EXE) +i704 : ${BIN}i704${EXE} ${BIN}i704${EXE} : ${I704} ${SIM} ${MKDIRBIN} - ${CC} ${I704} ${SIM} ${I704_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I704} ${SIM} ${I704_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I704D},i704)) - $@ $(call find_test,${I704D},i704) $(TEST_ARG) + $@ $(call find_test,${I704D},i704) ${TEST_ARG} endif -i701 : $(BIN)i701$(EXE) +i701 : ${BIN}i701${EXE} ${BIN}i701${EXE} : ${I701} ${SIM} ${MKDIRBIN} - ${CC} ${I701} ${SIM} ${I701_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I701} ${SIM} ${I701_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I701D},i701)) - $@ $(call find_test,${I701D},i701) $(TEST_ARG) + $@ $(call find_test,${I701D},i701) ${TEST_ARG} endif -i650 : $(BIN)i650$(EXE) +i650 : ${BIN}i650${EXE} ${BIN}i650${EXE} : ${I650} ${SIM} + #cmake:ignore-target ${MKDIRBIN} - ${CC} ${I650} ${SIM} ${I650_OPT} $(CC_OUTSPEC) ${LDFLAGS} + ${CC} ${I650} ${SIM} ${I650_OPT} ${CC_OUTSPEC} ${LDFLAGS} ifneq (,$(call find_test,${I650D},i650)) - $@ $(call find_test,${I650D},i650) $(TEST_ARG) + $@ $(call find_test,${I650D},i650) ${TEST_ARG} +endif + +pdp6 : ${BIN}pdp6${EXE} + +${BIN}pdp6${EXE} : ${PDP6} ${SIM} + ${MKDIRBIN} + ${CC} ${PDP6} ${PDP6_DPY} ${SIM} ${PDP6_OPT} ${CC_OUTSPEC} ${LDFLAGS} ${PDP6_LDFLAGS} +ifneq (,$(call find_test,${PDP10D},pdp6)) + $@ $(call find_test,${PDP10D},pdp6) ${TEST_ARG} +endif + +pdp10-ka : ${BIN}pdp10-ka${EXE} + +${BIN}pdp10-ka${EXE} : ${KA10} ${SIM} + ${MKDIRBIN} + ${CC} ${KA10} ${KA10_DPY} ${SIM} ${KA10_OPT} ${CC_OUTSPEC} ${LDFLAGS} ${KA10_LDFLAGS} +ifneq (,$(call find_test,${PDP10D},ka10)) + $@ $(call find_test,${PDP10D},ka10) ${TEST_ARG} +endif + +pdp10-ki : ${BIN}pdp10-ki${EXE} + +${BIN}pdp10-ki${EXE} : ${KI10} ${SIM} + ${MKDIRBIN} + ${CC} ${KI10} ${KI10_DPY} ${SIM} ${KI10_OPT} ${CC_OUTSPEC} ${LDFLAGS} ${KI10_LDFLAGS} +ifneq (,$(call find_test,${PDP10D},ki10)) + $@ $(call find_test,${PDP10D},ki10) ${TEST_ARG} endif # Front Panel API Demo/Test program @@ -2599,6 +2964,7 @@ endif frontpaneltest : ${BIN}frontpaneltest${EXE} ${BIN}frontpaneltest${EXE} : frontpanel/FrontPanelTest.c sim_sock.c sim_frontpanel.c + #cmake:ignore-target ${MKDIRBIN} - ${CC} frontpanel/FrontPanelTest.c sim_sock.c sim_frontpanel.c $(CC_OUTSPEC) ${LDFLAGS} $(OS_CURSES_DEFS) + ${CC} frontpanel/FrontPanelTest.c sim_sock.c sim_frontpanel.c ${CC_OUTSPEC} ${LDFLAGS} ${OS_CURSES_DEFS} diff --git a/scp.c b/scp.c index c0fdf5c..7040d61 100644 --- a/scp.c +++ b/scp.c @@ -480,6 +480,7 @@ t_stat show_version (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char t_stat show_default (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat show_break (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat show_on (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); +t_stat show_runlimit (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat sim_show_send (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat sim_show_expect (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr); t_stat show_device (FILE *st, DEVICE *dptr, int32 flag); @@ -545,6 +546,7 @@ t_stat dep_addr (int32 flag, const char *cptr, t_addr addr, DEVICE *dptr, UNIT *uptr, int32 dfltinc); void fprint_fields (FILE *stream, t_value before, t_value after, BITFIELD* bitdefs); t_stat step_svc (UNIT *ptr); +t_stat runlimit_svc (UNIT *ptr); t_stat expect_svc (UNIT *ptr); t_stat flush_svc (UNIT *ptr); t_stat shift_args (char *do_arg[], size_t arg_count); @@ -557,6 +559,7 @@ t_stat sim_show_asynch (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST ch t_stat do_cmd_label (int32 flag, CONST char *cptr, CONST char *label); void int_handler (int signal); t_stat set_prompt (int32 flag, CONST char *cptr); +t_stat set_runlimit (int32 flag, CONST char *cptr); t_stat sim_set_asynch (int32 flag, CONST char *cptr); static const char *_get_dbg_verb (uint32 dbits, DEVICE* dptr, UNIT *uptr); static t_stat sim_library_unit_tests (void); @@ -596,6 +599,12 @@ int32 sim_brk_lnt = 0; int32 sim_brk_ins = 0; int32 sim_quiet = 0; int32 sim_step = 0; +int32 sim_runlimit = 0; +int32 sim_runlimit_initial = 0; +double sim_runlimit_d = 0.0; +double sim_runlimit_d_initial = 0.0; +int32 sim_runlimit_switches = 0; +t_bool sim_runlimit_enabled = FALSE; char *sim_sub_instr = NULL; /* Copy of pre-substitution buffer contents */ char *sim_sub_instr_buf = NULL; /* Buffer address that substitutions were saved in */ size_t sim_sub_instr_size = 0; /* substitution buffer size */ @@ -662,6 +671,31 @@ DEVICE sim_step_dev = { NULL, NULL, NULL, NULL, NULL, NULL, sim_int_step_description}; +static const char *sim_int_runlimit_description (DEVICE *dptr) +{ +return "Run time limit facility"; +} + +static t_stat sim_int_runlimit_reset (DEVICE *dptr) +{ +if (sim_runlimit_enabled) { + if (sim_runlimit_switches & SWMASK ('T')) + return sim_activate_after_d (dptr->units, sim_runlimit_d); + else + return sim_activate (dptr->units, sim_runlimit); + } +return SCPE_OK; +} + +static UNIT sim_runlimit_unit = { UDATA (&runlimit_svc, UNIT_IDLE, 0) }; +DEVICE sim_runlimit_dev = { + "INT-RUNLIMIT", &sim_runlimit_unit, NULL, NULL, + 1, 0, 0, 0, 0, 0, + NULL, NULL, &sim_int_runlimit_reset, NULL, NULL, NULL, + NULL, DEV_NOSAVE, 0, + NULL, NULL, NULL, NULL, NULL, NULL, + sim_int_runlimit_description}; + static const char *sim_int_expect_description (DEVICE *dptr) { return "Expect facility"; @@ -764,6 +798,7 @@ const struct scp_error { {"INVEXPR", "invalid expression"}, {"SIGTERM", "SIGTERM received"}, {"FSSIZE", "File System size larger than disk size"}, + {"RUNTIME", "Run time limit exhausted"}, }; const size_t size_map[] = { sizeof (int8), @@ -1072,6 +1107,25 @@ static const char simh_help[] = " \"SET NODEBUG\" commands. Additionally, support is provided that is\n" " equivalent to the \"SET DEBUG=opt1{;opt2}\" and\n" " \"SET NODEBUG=opt1{;opt2}\" commands.\n\n" +#define HLP_RUNLIMIT "*Commands Stopping_The_Simulator User_Specified_Stop_Conditions RUNLIMIT" + "4RUNLIMIT\n" + " A simulator user may want to limit the maximum execution time that a\n" + " simulator may run for. This might be appropriate to limit a runaway\n" + " diagnostic which didn't achieve explicit success or failure within\n" + " some user specified time. The RUNLIMIT command provides ways to\n" + " limit execution.\n\n" + "++RUNLIMIT n {CYCLES|MICROSECONDS|SECONDS|MINUTES|HOURS}\n" + "++NORUNLIMIT\n\n" + " Equivalently:\n\n" + "++SET RUNLIMIT n {CYCLES|MICROSECONDS|SECONDS|MINUTES|HOURS}\n" + "++SET NORUNLIMIT\n\n" + " The run limit state can be examined with:\n\n" + "++SHOW RUNLIMIT\n\n" + " If the units of the run limit are not specified, the default units are\n" + " cycles. Once an execution run limit has beenn reached, any subsequent\n" + " GO, RUN, CONTINUE, STEP or BOOT commands will cause the simulator to\n" + " exit. A previously defined RUNLIMIT can be cleared with the NORUNLIMIT\n" + " command or the establishment of a new run limit.\n" /***************** 80 character line width template *************************/ "2Connecting and Disconnecting Devices\n" " Except for main memory and network devices, units are simulated as\n" @@ -1485,6 +1539,7 @@ static const char simh_help[] = "+sh{ow} clocks show calibrated timer information\n" "+sh{ow} throttle show throttle info\n" "+sh{ow} on show on condition actions\n" + "+sh{ow} runlimit show execution limit states\n" "+h{elp} show displays the device specific show commands\n" "++++++++ available\n" #define HLP_SHOW_CONFIG "*Commands SHOW" @@ -1510,6 +1565,7 @@ static const char simh_help[] = #define HLP_SHOW_VIDEO "*Commands SHOW" #define HLP_SHOW_CLOCKS "*Commands SHOW" #define HLP_SHOW_ON "*Commands SHOW" +#define HLP_SHOW_RUNLIMIT "*Commands SHOW" #define HLP_SHOW_SEND "*Commands SHOW" #define HLP_SHOW_EXPECT "*Commands SHOW" #define HLP_HELP "*Commands HELP" @@ -1802,6 +1858,8 @@ static const char simh_help[] = " Invalid remote console command\n" "5 AMBREG\n" " Ambiguous register\n" + "5 RUNTIME\n" + " Run time limit exhausted\n" #define HLP_SHIFT "*Commands Executing_Command_Files SHIFT" "3SHIFT\n" "++shift shift the command file's positional parameters\n" @@ -2061,15 +2119,11 @@ static const char simh_help[] = " as a regular expression applied to the output data stream. This regular\n" " expression may contain parentheses delimited sub-groups.\n\n" /***************** 80 character line width template *************************/ -#if defined (HAVE_PCREPOSIX_H) +#if defined (HAVE_PCRE_H) " The syntax of the regular expressions available are those supported by\n" " the Perl Compatible Regular Expression package (aka PCRE). As the name\n" " implies, the syntax is generally the same as Perl regular expressions.\n" " See http://perldoc.perl.org/perlre.html for more details\n" -#elif defined (HAVE_REGEX_H) - " The syntax of the regular expressions available are those supported by\n" - " your local system's Regular Expression library using the Extended POSIX\n" - " Regular Expressiona\n" #else " Regular expression support is not currently available on your environment.\n" " This simulator could use regular expression support provided by the\n" @@ -2393,6 +2447,8 @@ static CTAB cmd_table[] = { #if defined(USE_SIM_VIDEO) { "SCREENSHOT", &screenshot_cmd,0, HLP_SCREENSHOT, NULL, NULL }, #endif + { "RUNLIMIT", &runlimit_cmd, 1, HLP_RUNLIMIT, NULL, NULL }, + { "NORUNLIMIT", &runlimit_cmd, 0, HLP_RUNLIMIT, NULL, NULL }, { NULL, NULL, 0, NULL, NULL, NULL } }; @@ -2425,6 +2481,8 @@ static CTAB set_glob_tab[] = { { "QUIET", &set_quiet, 1, HLP_SET_QUIET }, { "NOQUIET", &set_quiet, 0, HLP_SET_QUIET }, { "PROMPT", &set_prompt, 0, HLP_SET_PROMPT }, + { "RUNLIMIT", &set_runlimit, 1, HLP_RUNLIMIT }, + { "NORUNLIMIT", &set_runlimit, 0, HLP_RUNLIMIT }, { NULL, NULL, 0 } }; @@ -2478,6 +2536,7 @@ static SHTAB show_glob_tab[] = { { "SEND", &sim_show_send, 0, HLP_SHOW_SEND }, { "EXPECT", &sim_show_expect, 0, HLP_SHOW_EXPECT }, { "ON", &show_on, 0, HLP_SHOW_ON }, + { "RUNLIMIT", &show_runlimit, 0, HLP_SHOW_RUNLIMIT }, { NULL, NULL, 0 } }; @@ -2600,6 +2659,7 @@ sim_register_internal_device (&sim_scp_dev); sim_register_internal_device (&sim_expect_dev); sim_register_internal_device (&sim_step_dev); sim_register_internal_device (&sim_flush_dev); +sim_register_internal_device (&sim_runlimit_dev); if ((stat = sim_ttinit ()) != SCPE_OK) { fprintf (stderr, "Fatal terminal initialization error\n%s\n", @@ -5898,15 +5958,22 @@ if (flag) { #undef S_str #undef S_xstr #endif +#endif +#if defined (SIM_BUILD_TOOL) +#define S_xstr(a) S_str(a) +#define S_str(a) #a + fprintf (st, "\n Build Tool: %s", S_xstr(SIM_BUILD_TOOL)); +#undef S_str +#undef S_xstr +#else + fprintf (st, "\n Build Tool: undefined (probably cmake)"); #endif fprintf (st, "\n Memory Access: %s Endian", sim_end ? "Little" : "Big"); fprintf (st, "\n Memory Pointer Size: %d bits", (int)sizeof(dptr)*8); fprintf (st, "\n %s", sim_toffset_64 ? "Large File (>2GB) support" : "No Large File support"); fprintf (st, "\n SDL Video support: %s", vid_version()); -#if defined (HAVE_PCREPOSIX_H) +#if defined (HAVE_PCRE_H) fprintf (st, "\n PCRE RegEx (Version %s) support for EXPECT commands", pcre_version()); -#elif defined (HAVE_REGEX_H) - fprintf (st, "\n RegEx support for EXPECT commands"); #else fprintf (st, "\n No RegEx support for EXPECT commands"); #endif @@ -6054,7 +6121,6 @@ t_stat show_queue (FILE *st, DEVICE *dnotused, UNIT *unotused, int32 flag, CONST { DEVICE *dptr; UNIT *uptr; -int32 accum; MEMFILE buf; memset (&buf, 0, sizeof (buf)); @@ -6069,7 +6135,6 @@ else { fprintf (st, "%s event queue status, time = %.0f, executing %s instructions/sec\n", sim_name, sim_time, sim_fmt_numeric (inst_per_sec)); - accum = 0; for (uptr = sim_clock_queue; uptr != QUEUE_LIST_END; uptr = uptr->next) { if (uptr == &sim_step_unit) fprintf (st, " Step timer"); @@ -6085,16 +6150,15 @@ else { else fprintf (st, " Unknown"); if (inst_per_sec != 0.0) - tim = sim_fmt_secs(((accum + uptr->time) / sim_timer_inst_per_sec ()) + (uptr->usecs_remaining / 1000000.0)); + tim = sim_fmt_secs(((_sim_activate_queue_time (uptr) - 1) / sim_timer_inst_per_sec ()) + (uptr->usecs_remaining / 1000000.0)); if (uptr->usecs_remaining) - fprintf (st, " at %d plus %.0f usecs%s%s%s%s\n", accum + uptr->time, uptr->usecs_remaining, + fprintf (st, " at %d plus %.0f usecs%s%s%s%s\n", _sim_activate_queue_time (uptr) - 1, uptr->usecs_remaining, (*tim) ? " (" : "", tim, (*tim) ? " total)" : "", (uptr->flags & UNIT_IDLE) ? " (Idle capable)" : ""); else - fprintf (st, " at %d%s%s%s%s\n", accum + uptr->time, + fprintf (st, " at %d%s%s%s%s\n", _sim_activate_queue_time (uptr) - 1, (*tim) ? " (" : "", tim, (*tim) ? ")" : "", (uptr->flags & UNIT_IDLE) ? " (Idle capable)" : ""); - accum = accum + uptr->time; } } sim_show_clock_queues (st, dnotused, unotused, flag, cptr); @@ -6824,6 +6888,108 @@ if (dptr->reset != NULL) else return SCPE_OK; } +t_stat runlimit_cmd (int32 flag, CONST char *cptr) +{ +char gbuf[CBUFSIZE]; +int32 num; +t_stat r; +double usec_factor = 1.0; + +GET_SWITCHES (cptr); /* get switches */ +if (0 == flag) { + if (*cptr) + return sim_messagef (SCPE_ARG, "NORUNLIMIT expects no arguments: %s\n", cptr); + sim_runlimit = 0; + sim_runlimit_switches = 0; + sim_runlimit_enabled = FALSE; + sim_cancel (&sim_runlimit_unit); + return SCPE_OK; + } + +cptr = get_glyph (cptr, gbuf, 0); /* get next glyph */ +num = (int32) get_uint (gbuf, 10, INT_MAX, &r); +if ((r != SCPE_OK) || (num == 0)) /* error? */ + return sim_messagef (SCPE_ARG, "Invalid argument: %s\n", gbuf); +cptr = get_glyph (cptr, gbuf, 0); /* get next glyph */ +if ((gbuf[0] == '\0') || + (MATCH_CMD (gbuf, "CYCLES") == 0)) + sim_switches &= ~SWMASK ('T'); +else { + int i; + struct { + const char *name; + double usec_factor; + } time_units[] = { + {"MICROSECONDS", 1.0}, + {"USECONDS", 1.0}, + {"SECONDS", 1000000.0}, + {"MINUTES", 60*1000000.0}, + {"HOURS", 60*60*1000000.0}, + {NULL, 0.0}}; + + for (i=0; time_units[i].name; i++) { + if (MATCH_CMD (gbuf, time_units[i].name) == 0) { + sim_switches |= SWMASK ('T'); + usec_factor = time_units[i].usec_factor; + break; + } + } + if (time_units[i].name == NULL) + return sim_messagef (SCPE_2MARG, "Too many arguments: %s %s\n", gbuf, cptr); + } +if (*cptr) + return sim_messagef (SCPE_2MARG, "Too many arguments: %s\n", cptr); +sim_runlimit_enabled = TRUE; +sim_cancel (&sim_runlimit_unit); +sim_runlimit_switches = sim_switches; +if (sim_runlimit_switches & SWMASK ('T')) { + sim_runlimit_d_initial = sim_runlimit_d = num * usec_factor; + return sim_activate_after_d (&sim_runlimit_unit, sim_runlimit_d); + } +else { + sim_runlimit_initial = sim_runlimit = num; + return sim_activate (&sim_runlimit_unit, sim_runlimit); + } +} + +t_stat set_runlimit (int32 flag, CONST char *cptr) +{ +return runlimit_cmd (flag, cptr); +} + +t_stat show_runlimit (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, CONST char *cptr) +{ +if (sim_runlimit_enabled) { + if (sim_runlimit_switches & SWMASK ('T')) { + double inst_per_sec = sim_timer_inst_per_sec (); + + if (sim_runlimit_d_initial != sim_runlimit_d) { + fprintf (st, "%s initially, ", sim_fmt_secs (sim_runlimit_d_initial / 1000000.0)); + if (sim_is_active (&sim_runlimit_unit)) + fprintf (st, "and %s remaining\n", sim_fmt_secs (sim_runlimit_d / 1000000.0)); + else + fprintf (st, "expired now\n"); + } + else + fprintf (st, "%s\n", sim_fmt_secs (sim_runlimit_d_initial / 1000000.0)); + } + else { + if (sim_runlimit_initial != sim_runlimit) { + fprintf (st, "%d cycles initially, ", sim_runlimit_initial); + if (sim_is_active (&sim_runlimit_unit)) + fprintf (st, "and %d cycles remaining\n", sim_activate_time (&sim_runlimit_unit)); + else + fprintf (st, "expired now\n"); + } + else + fprintf (st, "%d cycles\n", sim_runlimit_initial); + } + } +else + fprintf (st, "Run Limit Disabled\n"); +return SCPE_OK; +} + /* Reset devices start..end Inputs: @@ -7947,6 +8113,11 @@ t_stat r; DEVICE *dptr; UNIT *uptr; +if (sim_runlimit_enabled && /* If the run limit has been hit? */ + (!sim_is_active (&sim_runlimit_unit))) { + sim_messagef (SCPE_RUNTIME, "Execution limit exceeded, can't proceed. Exiting...\n"); + exit (SCPE_RUNTIME); /* Execution can't proceed */ + } GET_SWITCHES (cptr); /* get switches */ sim_step = 0; if ((flag == RU_RUN) || (flag == RU_GO)) { /* run or go */ @@ -8165,6 +8336,13 @@ if ((SCPE_BARE_STATUS(r) == SCPE_STOP) && sigterm_received) r = SCPE_SIGTERM; +if (sim_runlimit_enabled) { + if (sim_runlimit_switches & SWMASK ('T')) + sim_runlimit_d = sim_activate_time_usecs (&sim_runlimit_unit); + else + sim_runlimit = sim_activate_time (&sim_runlimit_unit) - 1; + } + if ((SCPE_BARE_STATUS(r) == SCPE_STOP) && /* WRU exit from sim_instr() */ (sim_on_actions[sim_do_depth][SCPE_STOP] == NULL) &&/* without a handler for a STOP condition */ (sim_on_actions[sim_do_depth][0] == NULL)) @@ -8295,6 +8473,14 @@ t_stat step_svc (UNIT *uptr) return SCPE_STEP; } +/* Unit service for run for timeout, originally scheduled by RUNFOR n command + Return runlimit timeout SCP code, will cause simulation to stop */ + +t_stat runlimit_svc (UNIT *uptr) +{ +return SCPE_RUNTIME; +} + /* Unit service to facilitate expect matching to stop simulation. Return expect SCP code, will cause simulation to stop */ @@ -10890,13 +11076,14 @@ do { } AIO_EVENT_COMPLETE(uptr, reason); bare_reason = SCPE_BARE_STATUS (reason); - if ((bare_reason != SCPE_OK) && /* Provide context for unexpected errors */ - (bare_reason >= SCPE_BASE) && - (bare_reason != SCPE_EXPECT) && - (bare_reason != SCPE_REMOTE) && - (bare_reason != SCPE_MTRLNT) && - (bare_reason != SCPE_STOP) && - (bare_reason != SCPE_STEP) && + if ((bare_reason != SCPE_OK) && /* Provide context for unexpected errors */ + (bare_reason >= SCPE_BASE) && + (bare_reason != SCPE_EXPECT) && + (bare_reason != SCPE_REMOTE) && + (bare_reason != SCPE_MTRLNT) && + (bare_reason != SCPE_STOP) && + (bare_reason != SCPE_STEP) && + (bare_reason != SCPE_RUNTIME) && (bare_reason != SCPE_EXIT)) sim_messagef (reason, "\nUnexpected internal error while processing event for %s which returned %d - %s\n", sim_uname (uptr), reason, sim_error_text (reason)); } while ((reason == SCPE_OK) && @@ -11136,7 +11323,7 @@ return (((uptr->next) || AIO_IS_ACTIVE(uptr) || ((uptr->dynflags & UNIT_TMR_UNIT result = absolute activation time + 1, 0 if inactive */ -int32 _sim_activate_time (UNIT *uptr) +int32 _sim_activate_queue_time (UNIT *uptr) { UNIT *cptr; int32 accum; @@ -11150,11 +11337,20 @@ for (cptr = sim_clock_queue; cptr != QUEUE_LIST_END; cptr = cptr->next) { else accum = accum + cptr->time; if (cptr == uptr) - return accum + 1 + (int32)((uptr->usecs_remaining * sim_timer_inst_per_sec ()) / 1000000.0); + return accum + 1; } return 0; } +int32 _sim_activate_time (UNIT *uptr) +{ +int32 accum = _sim_activate_queue_time (uptr); + +if (accum) + return accum + (int32)((uptr->usecs_remaining * sim_timer_inst_per_sec ()) / 1000000.0); +return 0; +} + int32 sim_activate_time (UNIT *uptr) { int32 accum; @@ -11977,13 +12173,13 @@ if (switches & EXP_TYP_REGEX) { memcpy (match_buf, match+1, strlen(match)-2); /* extract string without surrounding quotes */ match_buf[strlen(match)-2] = '\0'; - re = pcre_compile (match_buf, (switches & EXP_TYP_REGEX_I) ? PCRE_CASELESS : 0, &errmsg, &erroffset, NULL); + re = pcre_compile ((char *)match_buf, (switches & EXP_TYP_REGEX_I) ? PCRE_CASELESS : 0, &errmsg, &erroffset, NULL); if (re == NULL) { sim_messagef (SCPE_ARG, "Regular Expression Error: %s\n", errmsg); free (match_buf); return SCPE_ARG|SCPE_NOMESSAGE; } - (void)pcre_fullinfo(re, NULL, PCRE_INFO_CAPTURECOUNT, &re_nsub); + (void)pcre_fullinfo(re, NULL, PCRE_INFO_CAPTURECOUNT, &re_nsub); sim_debug (exp->dbit, exp->dptr, "Expect Regular Expression: \"%s\" has %d sub expressions\n", match_buf, re_nsub); pcre_free (re); } diff --git a/scp.h b/scp.h index 6b07009..ae7b5b2 100644 --- a/scp.h +++ b/scp.h @@ -116,6 +116,7 @@ t_stat spawn_cmd (int32 flag, CONST char *ptr); t_stat echo_cmd (int32 flag, CONST char *ptr); t_stat echof_cmd (int32 flag, CONST char *ptr); t_stat debug_cmd (int32 flag, CONST char *ptr); +t_stat runlimit_cmd (int32 flag, CONST char *ptr); /* Allow compiler to help validate printf style format arguments */ #if !defined __GNUC__ @@ -141,6 +142,7 @@ t_stat _sim_activate_after_abs (UNIT *uptr, double usecs_walltime); t_stat sim_cancel (UNIT *uptr); t_bool sim_is_active (UNIT *uptr); int32 sim_activate_time (UNIT *uptr); +int32 _sim_activate_queue_time (UNIT *uptr); int32 _sim_activate_time (UNIT *uptr); double sim_activate_time_usecs (UNIT *uptr); t_stat sim_run_boot_prep (int32 flag); diff --git a/sim_defs.h b/sim_defs.h index f68d0a6..a90eb2d 100644 --- a/sim_defs.h +++ b/sim_defs.h @@ -413,8 +413,9 @@ typedef uint32 t_addr; #define SCPE_INVEXPR (SCPE_BASE + 47) /* invalid expression */ #define SCPE_SIGTERM (SCPE_BASE + 48) /* SIGTERM has been received */ #define SCPE_FSSIZE (SCPE_BASE + 49) /* File System size larger than disk size */ +#define SCPE_RUNTIME (SCPE_BASE + 50) /* Run Time Limit Exhausted */ -#define SCPE_MAX_ERR (SCPE_BASE + 49) /* Maximum SCPE Error Value */ +#define SCPE_MAX_ERR (SCPE_BASE + 50) /* Maximum SCPE Error Value */ #define SCPE_KFLAG 0x10000000 /* tti data flag */ #define SCPE_BREAK 0x20000000 /* tti break flag */ #define SCPE_NOMESSAGE 0x40000000 /* message display supression flag */