<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Win32s version tour&#8230;	</title>
	<atom:link href="https://virtuallyfun.com/2011/04/04/win32s-version-tour/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Sat, 05 Apr 2025 10:53:54 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>
		By: Martinus J.D.		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-334157</link>

		<dc:creator><![CDATA[Martinus J.D.]]></dc:creator>
		<pubDate>Sun, 16 Jul 2023 18:00:49 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-334157</guid>

					<description><![CDATA[MatchCad 4.0 is available on Winworldpc
https://winworldpc.com/product/mathcad/40]]></description>
			<content:encoded><![CDATA[<p>MatchCad 4.0 is available on Winworldpc<br />
<a href="https://winworldpc.com/product/mathcad/40" rel="nofollow ugc">https://winworldpc.com/product/mathcad/40</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Roy		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-317304</link>

		<dc:creator><![CDATA[Roy]]></dc:creator>
		<pubDate>Sat, 31 Dec 2022 09:51:28 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-317304</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-56516&quot;&gt;Jon S.&lt;/a&gt;.

BTW the page you posted had I patch of 1.30 for running QEMU/etc.
http://old-dos.ru/index.php?page=files&#038;mode=files&#038;do=show&#038;id=1170#31076]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-56516">Jon S.</a>.</p>
<p>BTW the page you posted had I patch of 1.30 for running QEMU/etc.<br />
<a href="http://old-dos.ru/index.php?page=files&#038;mode=files&#038;do=show&#038;id=1170#31076" rel="nofollow ugc">http://old-dos.ru/index.php?page=files&#038;mode=files&#038;do=show&#038;id=1170#31076</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: neozeed		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-195213</link>

		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 13 May 2018 02:36:39 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-195213</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-195206&quot;&gt;malxau&lt;/a&gt;.

It&#039;s part of Visual C++ 1.0 for Windows NT, there is a MSVC32S directory, which yes does contain command line tools for explicitly targeting Win32s.

It includes Pharlap TNT, to let you run them directly on MS-DOS or under a DPMI host like Windows 3.1.  You can find a copy if you want to check it out on &lt;a href=&quot;https://winworldpc.com/product/visual-c/1x&quot; rel=&quot;nofollow&quot;&gt;WinWorld PC&lt;/a&gt; if you want to check out the Microsoft Visual C++ 1.0 for NT distribution.  Obviously it&#039;ll work best from a MS-DOS based machine/VM with Windows 3.1  I&#039;m pretty sure that the difference in tools between the Win32s &amp; Win32 (NT) versions is simply that the Win32s have all been stubbed and tagged with Pharlap TNT.

There were compilers that actually ran on Windows 3.0 and Windows 3.1, QuickC for Windows 1.0 was my favorite compiler of the era as it was on a mere 4 disks, and included support for Windows, &amp; MS-DOS.  A long long while ago &lt;a href=&quot;https://virtuallyfun.com/wordpress/2010/02/07/16bit-fortran/&quot;&gt;I had used it to build the F2C (Fortran to C) compiler&lt;/a&gt;, and all the components of it&#039;s support library, but just glued the lib &amp; exe directly together, which works just fine...   Although by the time NT 3.1 had finally shipped, I had picked up and moved to Watcom C/C++ 10.0 which offered a far more rich target environment than the Microsoft compilers.

I was surprised that more people didn&#039;t track Win32/Win32s, as it was incredible to finally move into the 32bit era, if even by a Windows extender.  Granted Watcom had one that worked for Windows 3.0 although those pre 10.0 versions were very expensive.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-195206">malxau</a>.</p>
<p>It&#8217;s part of Visual C++ 1.0 for Windows NT, there is a MSVC32S directory, which yes does contain command line tools for explicitly targeting Win32s.</p>
<p>It includes Pharlap TNT, to let you run them directly on MS-DOS or under a DPMI host like Windows 3.1.  You can find a copy if you want to check it out on <a href="https://winworldpc.com/product/visual-c/1x" rel="nofollow">WinWorld PC</a> if you want to check out the Microsoft Visual C++ 1.0 for NT distribution.  Obviously it&#8217;ll work best from a MS-DOS based machine/VM with Windows 3.1  I&#8217;m pretty sure that the difference in tools between the Win32s &#038; Win32 (NT) versions is simply that the Win32s have all been stubbed and tagged with Pharlap TNT.</p>
<p>There were compilers that actually ran on Windows 3.0 and Windows 3.1, QuickC for Windows 1.0 was my favorite compiler of the era as it was on a mere 4 disks, and included support for Windows, &#038; MS-DOS.  A long long while ago <a href="https://virtuallyfun.com/wordpress/2010/02/07/16bit-fortran/">I had used it to build the F2C (Fortran to C) compiler</a>, and all the components of it&#8217;s support library, but just glued the lib &#038; exe directly together, which works just fine&#8230;   Although by the time NT 3.1 had finally shipped, I had picked up and moved to Watcom C/C++ 10.0 which offered a far more rich target environment than the Microsoft compilers.</p>
<p>I was surprised that more people didn&#8217;t track Win32/Win32s, as it was incredible to finally move into the 32bit era, if even by a Windows extender.  Granted Watcom had one that worked for Windows 3.0 although those pre 10.0 versions were very expensive.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: malxau		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-195206</link>

		<dc:creator><![CDATA[malxau]]></dc:creator>
		<pubDate>Sat, 12 May 2018 23:41:36 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-195206</guid>

					<description><![CDATA[I&#039;d read this comment about Win32s 1.1 including compilers before, and went out to take a closer look.

Obviously development tools have historically shipped with Win32s development components.  These aren&#039;t really part of Win32s (they&#039;re not redistributable), they&#039;re part of the development tools.  The screenshot above was presumably &quot;Visual C++ Win32s components&quot;, and the idea that Visual C++ includes a compiler is somewhat less shocking than Win32s including a compiler.

The thing that was a bit strange in this to me is that the Win32 SDK for NT 3.1 includes support for Win32s 1.1, but includes an NT-only version of C/C++ 8.0 (and some other Win32 development bits like later releases.)  Visual C++ 1.1 32 bit edition included support for Win32s 1.1, and includes C/C++ 8.0, but these binaries are special hybrids - they&#039;re still PE binaries but they are also linked against Phar-Lap such that they can execute on DOS (presumably a chunk of the initial code is a run-time linker that resolves Win32 exports to shim versions that communicate with DOS.)  It&#039;d be nice to have access to that layer generically to allow for 3.1 hosted command line tools that are source compatible with Win32, but I don&#039;t think that ever happened.  (That said, I&#039;ve never really messed around with Phar-Lap to see what it can do.)

Because the whole point of Win32s was to ensure that identical binaries could run on 3.1, these compilers when coupled with the exact same headers and libs as the NT compilers become functional on 3.1. So just to confirm, did your copy of this also come from Visual C++ 32-bit 1.1?

Note though that the compilers really can&#039;t be Win32s, because it didn&#039;t have any command prompt support, because 3.1 had no concept of a command line Windows process, only DOS processes.  And for the same reason, binaries generated from the compilers can&#039;t execute from the DOS window, so compiling and executing code becomes clumsy.

As far as I can tell, only a single release did this (Visual C++ 2.0 just seems to go back to pure PE binaries.)  I never had the packaging for 1.1 32 bit, only the CD, but I&#039;m curious how this was messaged to customers.  2.0 and later included 16 bit versions of Visual C++ for 16 bit development; it looks like 1.1 started life with a goal of creating 32 bit binaries on either 3.1 or NT, and somewhere along the line the IDE became NT only, and the resulting fully functional toolchain on 16 bit de-emphasised.  Although the CD layout doesn&#039;t show it, the 3.1 support is really just a subset of the exact same tools as the NT support (just fewer files.)  Today NT feels like a much better development host if only because its &quot;true&quot; command prompt support meant it could support arbitrary window sizes with a buffer as opposed to 3.1&#039;s 80x25 emulation of VGA hardware rendered into a window, and NT&#039;s ability to execute Win32 programs from its command line, etc.

One other detail I noticed is that Win32s doesn&#039;t appear to enforce minimum OS version.  In hindsight it&#039;d seem natural for Win32s 1.1 to only try to execute 3.10 binaries, and 1.2 to execute 3.10 or 3.50 binaries, etc.  But the consequence of this is from Win 3.1 it&#039;s possible to generate binaries Win32s 1.1 binaries stamped as 4.0 and give them a native Win95 appearance (on 95) while still functioning on 3.1.  These binaries won&#039;t run on NT 3.1 or 3.5, but the 3.1+95 scenario is still interesting.  On a related note, 95 shipped with a few (16-bit) tools where it re-stamps the version field of the binary so that they appear 95 like when run from 95 but can also run from its 3.1-based installer, which is an interesting path to produce some truly &quot;run anywhere&quot; code.

Nonetheless, this is another entry in the long list of &quot;if I had this at the time and knew what to do with it, it would have been really useful.&quot;  If I could go back in a time machine and in 1993 generate true 32 bit binaries that I could develop from 3.1 that target 3.1 but seamlessly migrated to 95 it&#039;d be super cool.  Today I&#039;m not sure I&#039;d ever want to use 3.1 as a 32 bit development host given the clear superiority of NT for the task and that it runs better on today&#039;s hardware and emulators, so this becomes yet another historical footnote.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d read this comment about Win32s 1.1 including compilers before, and went out to take a closer look.</p>
<p>Obviously development tools have historically shipped with Win32s development components.  These aren&#8217;t really part of Win32s (they&#8217;re not redistributable), they&#8217;re part of the development tools.  The screenshot above was presumably &#8220;Visual C++ Win32s components&#8221;, and the idea that Visual C++ includes a compiler is somewhat less shocking than Win32s including a compiler.</p>
<p>The thing that was a bit strange in this to me is that the Win32 SDK for NT 3.1 includes support for Win32s 1.1, but includes an NT-only version of C/C++ 8.0 (and some other Win32 development bits like later releases.)  Visual C++ 1.1 32 bit edition included support for Win32s 1.1, and includes C/C++ 8.0, but these binaries are special hybrids &#8211; they&#8217;re still PE binaries but they are also linked against Phar-Lap such that they can execute on DOS (presumably a chunk of the initial code is a run-time linker that resolves Win32 exports to shim versions that communicate with DOS.)  It&#8217;d be nice to have access to that layer generically to allow for 3.1 hosted command line tools that are source compatible with Win32, but I don&#8217;t think that ever happened.  (That said, I&#8217;ve never really messed around with Phar-Lap to see what it can do.)</p>
<p>Because the whole point of Win32s was to ensure that identical binaries could run on 3.1, these compilers when coupled with the exact same headers and libs as the NT compilers become functional on 3.1. So just to confirm, did your copy of this also come from Visual C++ 32-bit 1.1?</p>
<p>Note though that the compilers really can&#8217;t be Win32s, because it didn&#8217;t have any command prompt support, because 3.1 had no concept of a command line Windows process, only DOS processes.  And for the same reason, binaries generated from the compilers can&#8217;t execute from the DOS window, so compiling and executing code becomes clumsy.</p>
<p>As far as I can tell, only a single release did this (Visual C++ 2.0 just seems to go back to pure PE binaries.)  I never had the packaging for 1.1 32 bit, only the CD, but I&#8217;m curious how this was messaged to customers.  2.0 and later included 16 bit versions of Visual C++ for 16 bit development; it looks like 1.1 started life with a goal of creating 32 bit binaries on either 3.1 or NT, and somewhere along the line the IDE became NT only, and the resulting fully functional toolchain on 16 bit de-emphasised.  Although the CD layout doesn&#8217;t show it, the 3.1 support is really just a subset of the exact same tools as the NT support (just fewer files.)  Today NT feels like a much better development host if only because its &#8220;true&#8221; command prompt support meant it could support arbitrary window sizes with a buffer as opposed to 3.1&#8217;s 80&#215;25 emulation of VGA hardware rendered into a window, and NT&#8217;s ability to execute Win32 programs from its command line, etc.</p>
<p>One other detail I noticed is that Win32s doesn&#8217;t appear to enforce minimum OS version.  In hindsight it&#8217;d seem natural for Win32s 1.1 to only try to execute 3.10 binaries, and 1.2 to execute 3.10 or 3.50 binaries, etc.  But the consequence of this is from Win 3.1 it&#8217;s possible to generate binaries Win32s 1.1 binaries stamped as 4.0 and give them a native Win95 appearance (on 95) while still functioning on 3.1.  These binaries won&#8217;t run on NT 3.1 or 3.5, but the 3.1+95 scenario is still interesting.  On a related note, 95 shipped with a few (16-bit) tools where it re-stamps the version field of the binary so that they appear 95 like when run from 95 but can also run from its 3.1-based installer, which is an interesting path to produce some truly &#8220;run anywhere&#8221; code.</p>
<p>Nonetheless, this is another entry in the long list of &#8220;if I had this at the time and knew what to do with it, it would have been really useful.&#8221;  If I could go back in a time machine and in 1993 generate true 32 bit binaries that I could develop from 3.1 that target 3.1 but seamlessly migrated to 95 it&#8217;d be super cool.  Today I&#8217;m not sure I&#8217;d ever want to use 3.1 as a 32 bit development host given the clear superiority of NT for the task and that it runs better on today&#8217;s hardware and emulators, so this becomes yet another historical footnote.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jon S.		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-56516</link>

		<dc:creator><![CDATA[Jon S.]]></dc:creator>
		<pubDate>Mon, 17 Mar 2014 04:30:40 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-56516</guid>

					<description><![CDATA[You can get many different builds here:

http://old-dos.ru/files/file_1170.html

The very first build (mentioned in this article) - you can find by looking at W32S.386 - Win32S Version 0.0.32 Oct 08 1992 14:46:13-&quot;HAIFABLD&quot; Win32S Device  (Version 1.0)...W32S_DDB]]></description>
			<content:encoded><![CDATA[<p>You can get many different builds here:</p>
<p><a href="http://old-dos.ru/files/file_1170.html" rel="nofollow ugc">http://old-dos.ru/files/file_1170.html</a></p>
<p>The very first build (mentioned in this article) &#8211; you can find by looking at W32S.386 &#8211; Win32S Version 0.0.32 Oct 08 1992 14:46:13-&#8220;HAIFABLD&#8221; Win32S Device  (Version 1.0)&#8230;W32S_DDB</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yushatak		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-52234</link>

		<dc:creator><![CDATA[Yushatak]]></dc:creator>
		<pubDate>Mon, 06 Jan 2014 14:24:23 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-52234</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-40482&quot;&gt;David&lt;/a&gt;.

Share it, don&#039;t just taunt us! &#062;_&#062;]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-40482">David</a>.</p>
<p>Share it, don&#8217;t just taunt us! &gt;_&gt;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: David		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-40482</link>

		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sun, 07 Jul 2013 14:33:55 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-40482</guid>

					<description><![CDATA[Hi!

I just recently got my hands on MathCAD 4.0 that you mentioned and it includes Win32s 1.0.61 beta... ;)

Regards]]></description>
			<content:encoded><![CDATA[<p>Hi!</p>
<p>I just recently got my hands on MathCAD 4.0 that you mentioned and it includes Win32s 1.0.61 beta&#8230; 😉</p>
<p>Regards</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John S.		</title>
		<link>https://virtuallyfun.com/2011/04/04/win32s-version-tour/comment-page-1/#comment-37336</link>

		<dc:creator><![CDATA[John S.]]></dc:creator>
		<pubDate>Tue, 30 Apr 2013 23:57:41 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=409#comment-37336</guid>

					<description><![CDATA[Thanks for your research.
Have you looked at the old papa site?

There&#039;s a mirror here:
ftp://ftp.dk.netbsd.org/.m/mirrors1/Archived/papa.indstate.edu/winsock/Misc_Utils/Win32+TCPIP/

Losts of old. scronky stuff there.]]></description>
			<content:encoded><![CDATA[<p>Thanks for your research.<br />
Have you looked at the old papa site?</p>
<p>There&#8217;s a mirror here:<br />
<a href="ftp://ftp.dk.netbsd.org/.m/mirrors1/Archived/papa.indstate.edu/winsock/Misc_Utils/Win32+TCPIP/" rel="ugc">ftp://ftp.dk.netbsd.org/.m/mirrors1/Archived/papa.indstate.edu/winsock/Misc_Utils/Win32+TCPIP/</a></p>
<p>Losts of old. scronky stuff there.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
