<?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: Examining Windows 1.0 HELLO.C	</title>
	<atom:link href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Sun, 09 Aug 2020 01:45:11 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>
		By: Michael Casadevall		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256981</link>

		<dc:creator><![CDATA[Michael Casadevall]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 01:45:11 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256981</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256845&quot;&gt;Richard B&lt;/a&gt;.

Oooh, neat. I&#039;ve been told OpenWatcom can actually produce the correct format binaries, but its headers are just too new to actually get something working, combined with sheer magic in the vanilla Windows C library that just makes it hard.

I do wonder if those early MSC disks will ever show up ...]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256845">Richard B</a>.</p>
<p>Oooh, neat. I&#8217;ve been told OpenWatcom can actually produce the correct format binaries, but its headers are just too new to actually get something working, combined with sheer magic in the vanilla Windows C library that just makes it hard.</p>
<p>I do wonder if those early MSC disks will ever show up &#8230;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Richard B		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256845</link>

		<dc:creator><![CDATA[Richard B]]></dc:creator>
		<pubDate>Sat, 08 Aug 2020 00:20:39 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256845</guid>

					<description><![CDATA[Figured people on this post would appreciate this - compiling apps on the much earlier Windows 1 alpha builds - https://www.betaarchive.com/forum/viewtopic.php?f=59&#038;t=41648]]></description>
			<content:encoded><![CDATA[<p>Figured people on this post would appreciate this &#8211; compiling apps on the much earlier Windows 1 alpha builds &#8211; <a href="https://www.betaarchive.com/forum/viewtopic.php?f=59&#038;t=41648" rel="nofollow ugc">https://www.betaarchive.com/forum/viewtopic.php?f=59&#038;t=41648</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michael Casadevall		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256207</link>

		<dc:creator><![CDATA[Michael Casadevall]]></dc:creator>
		<pubDate>Sat, 30 May 2020 11:33:15 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256207</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256191&quot;&gt;Fernando&lt;/a&gt;.

There are days where it pays to drink coffee before answering the question &#062;.&#060;;

What I was thinking of anything that covers up WinMain, requiring to get the cmdline via GetCommandLine()]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256191">Fernando</a>.</p>
<p>There are days where it pays to drink coffee before answering the question &gt;.&lt;;</p>
<p>What I was thinking of anything that covers up WinMain, requiring to get the cmdline via GetCommandLine()</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Fernando		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256191</link>

		<dc:creator><![CDATA[Fernando]]></dc:creator>
		<pubDate>Wed, 27 May 2020 21:26:56 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256191</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256187&quot;&gt;Michael Casadevall&lt;/a&gt;.

You have the answer in front of you. In WinMain, the parameter &quot;LPSTR lpszCmdLine;&quot; is a Long Pointer to a Strtring terminanted in null that returns the command line.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256187">Michael Casadevall</a>.</p>
<p>You have the answer in front of you. In WinMain, the parameter &#8220;LPSTR lpszCmdLine;&#8221; is a Long Pointer to a Strtring terminanted in null that returns the command line.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michael Casadevall		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256187</link>

		<dc:creator><![CDATA[Michael Casadevall]]></dc:creator>
		<pubDate>Wed, 27 May 2020 07:56:35 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256187</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256182&quot;&gt;John Elliott&lt;/a&gt;.

That might be true with hand written assembly or Pascal applications. I used MSC4.0 for this and didn&#039;t modify any of the source code or resulting binaries aside from the MARK command.

I&#039;d actually expect that behavior though from the few programs that were shipped as Windows runtime like PageMaker which simply included a stripped down Windows 1.0 on the disk. I&#039;d have to check the VM, the headers and the docs, but I&#039;m not certain if Win 1.0 has the concept of CLI switches or the APIs to handle them.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256182">John Elliott</a>.</p>
<p>That might be true with hand written assembly or Pascal applications. I used MSC4.0 for this and didn&#8217;t modify any of the source code or resulting binaries aside from the MARK command.</p>
<p>I&#8217;d actually expect that behavior though from the few programs that were shipped as Windows runtime like PageMaker which simply included a stripped down Windows 1.0 on the disk. I&#8217;d have to check the VM, the headers and the docs, but I&#8217;m not certain if Win 1.0 has the concept of CLI switches or the APIs to handle them.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John Elliott		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256182</link>

		<dc:creator><![CDATA[John Elliott]]></dc:creator>
		<pubDate>Tue, 26 May 2020 20:46:06 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256182</guid>

					<description><![CDATA[If my memory serves, one source of errors trying to run some Windows 1.x/2.x apps in protected mode was that the initial prologue code would try to access the word at ES:2Ch (which in a DOS program would be the environment segment). It never actually did anything with the word having read it, and if that instruction was NOPped out the application would start up without the error.]]></description>
			<content:encoded><![CDATA[<p>If my memory serves, one source of errors trying to run some Windows 1.x/2.x apps in protected mode was that the initial prologue code would try to access the word at ES:2Ch (which in a DOS program would be the environment segment). It never actually did anything with the word having read it, and if that instruction was NOPped out the application would start up without the error.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: crazyc		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256163</link>

		<dc:creator><![CDATA[crazyc]]></dc:creator>
		<pubDate>Sat, 23 May 2020 12:57:07 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256163</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256159&quot;&gt;Michaael A Casadevall&lt;/a&gt;.

Seems my recollection is wrong as Fixds says that windows does fix the function prolog when the data segment moves which makes sense otherwise every exported function would require makeprocinstance.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256159">Michaael A Casadevall</a>.</p>
<p>Seems my recollection is wrong as Fixds says that windows does fix the function prolog when the data segment moves which makes sense otherwise every exported function would require makeprocinstance.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michaael A Casadevall		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256159</link>

		<dc:creator><![CDATA[Michaael A Casadevall]]></dc:creator>
		<pubDate>Sat, 23 May 2020 03:18:40 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256159</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256158&quot;&gt;crazyc&lt;/a&gt;.

I&#039;d have to dig into the SDK documents, but anything declared as EXPORT (aka, old __dllexport) should automatically get registered; a lot of documents I read state that MakeProcInstance isn&#039;t required in that case. You are right that DLLs on 16-bit Windows are a *special* beast though. 

Granted, you might still need to MakeProcInstance there if you&#039;re calling a non-exported symbol.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256158">crazyc</a>.</p>
<p>I&#8217;d have to dig into the SDK documents, but anything declared as EXPORT (aka, old __dllexport) should automatically get registered; a lot of documents I read state that MakeProcInstance isn&#8217;t required in that case. You are right that DLLs on 16-bit Windows are a *special* beast though. </p>
<p>Granted, you might still need to MakeProcInstance there if you&#8217;re calling a non-exported symbol.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: crazyc		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256158</link>

		<dc:creator><![CDATA[crazyc]]></dc:creator>
		<pubDate>Sat, 23 May 2020 03:03:05 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256158</guid>

					<description><![CDATA[MakeProcInstance is required in one case, DLLs in real mode.  If their data segments are movable they can disappear if they are relocated.  In protected mode they&#039;re selectors so they can just set ds as a fixup directly when the DLL is loaded.]]></description>
			<content:encoded><![CDATA[<p>MakeProcInstance is required in one case, DLLs in real mode.  If their data segments are movable they can disappear if they are relocated.  In protected mode they&#8217;re selectors so they can just set ds as a fixup directly when the DLL is loaded.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michael Casadevall		</title>
		<link>https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256156</link>

		<dc:creator><![CDATA[Michael Casadevall]]></dc:creator>
		<pubDate>Fri, 22 May 2020 19:09:28 +0000</pubDate>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10276#comment-256156</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256151&quot;&gt;Chris M.&lt;/a&gt;.

WineVDM is an add-on software. I&#039;m aware of it, but one could write add-on software to run OS/2 applications under Linux (Twine project). This is what Windows 32-bit does out of the box. I do think the reasoning on removing NTVDM is kinda poor, but I did want to demonstrate this compatibility was like with what you get in the box.

I also don&#039;t count resource conversion because again because it&#039;s conceptually no different than hex editing and replacing components of the original software. Both of these things are legit ways to run old Windows software, but the point here was demonstrating what worked as is.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://virtuallyfun.com/2020/05/22/examining-windows-1-0-hello-c/comment-page-1/#comment-256151">Chris M.</a>.</p>
<p>WineVDM is an add-on software. I&#8217;m aware of it, but one could write add-on software to run OS/2 applications under Linux (Twine project). This is what Windows 32-bit does out of the box. I do think the reasoning on removing NTVDM is kinda poor, but I did want to demonstrate this compatibility was like with what you get in the box.</p>
<p>I also don&#8217;t count resource conversion because again because it&#8217;s conceptually no different than hex editing and replacing components of the original software. Both of these things are legit ways to run old Windows software, but the point here was demonstrating what worked as is.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
