Merge pull request #45 from linuxuser27/support2017
authorPhil Burk <philburk@mobileer.com>
Sun, 15 Apr 2018 19:41:33 +0000 (12:41 -0700)
committerGitHub <noreply@github.com>
Sun, 15 Apr 2018 19:41:33 +0000 (12:41 -0700)
Support VS 2017

.gitignore
build/win32/vs2017/pforth.sln [new file with mode: 0644]
build/win32/vs2017/pforth_main.vcxproj [new file with mode: 0644]
build/win32/vs2017/pforth_main.vcxproj.filters [new file with mode: 0644]
csrc/pf_inner.c
csrc/pf_save.c
csrc/pfinnrfp.h

index 1f0c8f9..a20f893 100644 (file)
@@ -4,4 +4,7 @@ build/unix/pfdicdat.h
 build/unix/pforth
 build/unix/pforth.dic
 build/unix/pforth_standalone
 build/unix/pforth
 build/unix/pforth.dic
 build/unix/pforth_standalone
+build/win32/**/.vs
+build/win32/**/Debug
+build/win32/**/Release
 fth/fatest1.txt
 fth/fatest1.txt
diff --git a/build/win32/vs2017/pforth.sln b/build/win32/vs2017/pforth.sln
new file mode 100644 (file)
index 0000000..3e19d6a
--- /dev/null
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2010
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pforth_main", "pforth_main.vcxproj", "{58B76DB8-1985-4B8A-8E71-C012D8F0C518}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Win32 = Debug|Win32
+               Release|Win32 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {58B76DB8-1985-4B8A-8E71-C012D8F0C518}.Debug|Win32.ActiveCfg = Debug|Win32
+               {58B76DB8-1985-4B8A-8E71-C012D8F0C518}.Debug|Win32.Build.0 = Debug|Win32
+               {58B76DB8-1985-4B8A-8E71-C012D8F0C518}.Release|Win32.ActiveCfg = Release|Win32
+               {58B76DB8-1985-4B8A-8E71-C012D8F0C518}.Release|Win32.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {4FCA3FD0-0EBB-4534-9A49-51A638D09B2F}
+       EndGlobalSection
+EndGlobal
diff --git a/build/win32/vs2017/pforth_main.vcxproj b/build/win32/vs2017/pforth_main.vcxproj
new file mode 100644 (file)
index 0000000..ca50ca4
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{58B76DB8-1985-4B8A-8E71-C012D8F0C518}</ProjectGuid>
+    <RootNamespace>pforth_main</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+    <TargetName>pforth</TargetName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>15.0.27130.2010</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\..\..\fth\</OutDir>
+    <IntDir>$(Configuration)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\..\..\fth\</OutDir>
+    <IntDir>$(Configuration)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PF_SUPPORT_FP;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader />
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PF_SUPPORT_FP;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PrecompiledHeader />
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\csrc\pfcompil.c" />
+    <ClCompile Include="..\..\..\csrc\pfcustom.c" />
+    <ClCompile Include="..\..\..\csrc\pf_cglue.c" />
+    <ClCompile Include="..\..\..\csrc\pf_clib.c" />
+    <ClCompile Include="..\..\..\csrc\pf_core.c" />
+    <ClCompile Include="..\..\..\csrc\pf_inner.c" />
+    <ClCompile Include="..\..\..\csrc\pf_io.c" />
+    <ClCompile Include="..\..\..\csrc\pf_io_none.c" />
+    <ClCompile Include="..\..\..\csrc\pf_main.c" />
+    <ClCompile Include="..\..\..\csrc\pf_mem.c" />
+    <ClCompile Include="..\..\..\csrc\pf_save.c" />
+    <ClCompile Include="..\..\..\csrc\pf_text.c" />
+    <ClCompile Include="..\..\..\csrc\pf_words.c" />
+    <ClCompile Include="..\..\..\csrc\stdio\pf_fileio_stdio.c" />
+    <ClCompile Include="..\..\..\csrc\win32_console\pf_io_win32_console.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\csrc\pfcompfp.h" />
+    <ClInclude Include="..\..\..\csrc\pfcompil.h" />
+    <ClInclude Include="..\..\..\csrc\pfdicdat.h" />
+    <ClInclude Include="..\..\..\csrc\pfdicdat_arm.h" />
+    <ClInclude Include="..\..\..\csrc\pfinnrfp.h" />
+    <ClInclude Include="..\..\..\csrc\pforth.h" />
+    <ClInclude Include="..\..\..\csrc\pf_all.h" />
+    <ClInclude Include="..\..\..\csrc\pf_cglue.h" />
+    <ClInclude Include="..\..\..\csrc\pf_clib.h" />
+    <ClInclude Include="..\..\..\csrc\pf_core.h" />
+    <ClInclude Include="..\..\..\csrc\pf_float.h" />
+    <ClInclude Include="..\..\..\csrc\pf_guts.h" />
+    <ClInclude Include="..\..\..\csrc\pf_host.h" />
+    <ClInclude Include="..\..\..\csrc\pf_inc1.h" />
+    <ClInclude Include="..\..\..\csrc\pf_io.h" />
+    <ClInclude Include="..\..\..\csrc\pf_mem.h" />
+    <ClInclude Include="..\..\..\csrc\pf_save.h" />
+    <ClInclude Include="..\..\..\csrc\pf_text.h" />
+    <ClInclude Include="..\..\..\csrc\pf_types.h" />
+    <ClInclude Include="..\..\..\csrc\pf_win32.h" />
+    <ClInclude Include="..\..\..\csrc\pf_words.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/build/win32/vs2017/pforth_main.vcxproj.filters b/build/win32/vs2017/pforth_main.vcxproj.filters
new file mode 100644 (file)
index 0000000..2f6b984
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <ClCompile Include="..\..\..\csrc\pf_cglue.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_clib.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_core.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\stdio\pf_fileio_stdio.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_inner.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_io.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_io_none.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\win32_console\pf_io_win32_console.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_mem.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_main.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_save.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_text.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pf_words.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pfcompil.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\csrc\pfcustom.c">
+      <Filter>Source</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\csrc\pf_all.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_cglue.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_clib.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_core.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_float.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_guts.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_host.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_inc1.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_io.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_mem.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_save.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_text.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_types.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_win32.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pf_words.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pfcompfp.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pfcompil.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pfdicdat_arm.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pfdicdat.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pfinnrfp.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\csrc\pforth.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <Filter Include="Include">
+      <UniqueIdentifier>{6711f4b0-6d8c-4641-8260-e6d2c953bd3b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source">
+      <UniqueIdentifier>{298706eb-f166-4f0b-8404-a52c3fdf5d21}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+</Project>
\ No newline at end of file
index 2e5aac6..295ee55 100644 (file)
@@ -750,8 +750,8 @@ DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
 /* Calculate product sign: */
                 sg = ((cell_t)(ahi ^ bhi) < 0);
 /* Take absolute values and reduce to um* */
 /* Calculate product sign: */
                 sg = ((cell_t)(ahi ^ bhi) < 0);
 /* Take absolute values and reduce to um* */
-                if ((cell_t)ahi < 0) ahi = (ucell_t)(-ahi);
-                if ((cell_t)bhi < 0) bhi = (ucell_t)(-bhi);
+                if ((cell_t)ahi < 0) ahi = (ucell_t)(-(cell_t)ahi);
+                if ((cell_t)bhi < 0) bhi = (ucell_t)(-(cell_t)bhi);
 
 /* Break into hi and lo 16 bit parts. */
                 alo = LOWER_HALF(ahi);
 
 /* Break into hi and lo 16 bit parts. */
                 alo = LOWER_HALF(ahi);
index 455b847..03f4ce8 100644 (file)
@@ -459,7 +459,7 @@ cell_t ffSaveForth( const char *FileName, ExecToken EntryPoint, cell_t NameSize,
         NameSize = QUADUP(NameSize);  /* Align */
         if( NameSize > 0 )
         {
         NameSize = QUADUP(NameSize);  /* Align */
         if( NameSize > 0 )
         {
-            NameSize = MAX( NameSize, (NameChunkSize + 1024) );
+            NameSize = MAX( (ucell_t)NameSize, (NameChunkSize + 1024) );
         }
         SD.sd_NameSize = NameSize;
     }
         }
         SD.sd_NameSize = NameSize;
     }
@@ -467,7 +467,7 @@ cell_t ffSaveForth( const char *FileName, ExecToken EntryPoint, cell_t NameSize,
 /* How much real code is there? */
     CodeChunkSize = QUADUP(relativeCodePtr);
     CodeSize = QUADUP(CodeSize);  /* Align */
 /* How much real code is there? */
     CodeChunkSize = QUADUP(relativeCodePtr);
     CodeSize = QUADUP(CodeSize);  /* Align */
-    CodeSize = MAX( CodeSize, (CodeChunkSize + 2048) );
+    CodeSize = MAX( (ucell_t)CodeSize, (CodeChunkSize + 2048) );
     SD.sd_CodeSize = CodeSize;
 
 
     SD.sd_CodeSize = CodeSize;
 
 
index 6e2c628..ec476f7 100644 (file)
 
     case ID_FP_FROUND:
         PUSH_TOS;
 
     case ID_FP_FROUND:
         PUSH_TOS;
-        TOS = fp_round(FP_TOS);
+        TOS = (cell_t)fp_round(FP_TOS);
         M_FP_DROP;
         break;
 
         M_FP_DROP;
         break;