<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Visual C++ toolkit 2003 &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/visual-c-toolkit-2003/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Sun, 11 Feb 2024 09:23:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Targeting OS/2 with Visual Studio 2003</title>
		<link>https://virtuallyfun.com/2024/02/11/targeting-os-2-with-visual-studio-2003/</link>
					<comments>https://virtuallyfun.com/2024/02/11/targeting-os-2-with-visual-studio-2003/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 11 Feb 2024 09:08:22 +0000</pubDate>
				<category><![CDATA[assembly]]></category>
		<category><![CDATA[OS/2 2.0]]></category>
		<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[Visual C++ toolkit 2003]]></category>
		<category><![CDATA[Visual Studio 2003]]></category>
		<category><![CDATA[Watcom C++]]></category>
		<category><![CDATA[Win32]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13926</guid>

					<description><![CDATA[No, it&#8217;s not a typo. This is a long-winded post, but the short version is that I found a working combination to get the C compiler from Visual Studio 2003 targeting OS/2. Once I&#8217;d learned how C compilers are a &#8230; <a href="https://virtuallyfun.com/2024/02/11/targeting-os-2-with-visual-studio-2003/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/02/syneys-idea-of-visual-c-for-os2.jpg"><img fetchpriority="high" decoding="async" width="1024" height="1024" src="/wp-content/uploads/2024/02/syneys-idea-of-visual-c-for-os2.jpg" alt="" class="wp-image-13931" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/syneys-idea-of-visual-c-for-os2.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/02/syneys-idea-of-visual-c-for-os2-300x300.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/syneys-idea-of-visual-c-for-os2-150x150.jpg 150w, https://virtuallyfun.com/wp-content/uploads/2024/02/syneys-idea-of-visual-c-for-os2-768x768.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Sydney&#8217;s idea of what Visual C++ for OS/2 should look like</figcaption></figure>



<p class="wp-block-paragraph">No, it&#8217;s not a typo.</p>



<p class="wp-block-paragraph">This is a long-winded post, but the short version is that I found a working combination to get the C compiler from Visual Studio 2003 targeting OS/2.</p>



<p class="wp-block-paragraph">Once I&#8217;d learned how C compilers are a collection of programs working in concert, I&#8217;d always wanted to force Microsoft C to work in that fashion, however it is born to be a compiler that integrates everything but linking. There has been a &#8220;/Fa&#8221; or output assembly option, but I&#8217;ve never gotten it to do anything useful.  I&#8217;m not that much into assembly but it seemed insurmountable.</p>



<p class="wp-block-paragraph">But for some reason this time things were different.</p>



<p class="wp-block-paragraph">This time I used:</p>



<p class="wp-block-paragraph"><strong>Microsoft (R) Macro Assembler Version 6.11</strong></p>



<p class="wp-block-paragraph">After the great divorce and the rise of Windows NT, Microsoft had shifted from the OMF format to COFF.  However somewhere buried in their old tools it still supports it, namely MASM.  For example, if I try to run LINK386 (the OS/2 Linker) against output from Visual C++ 2003 I get his</p>



<pre class="wp-block-code"><code>abandon.obj :  fatal error L1101: invalid object module
 Object file offset: 1  Record type: 4c</code></pre>



<p class="wp-block-paragraph">However if I output to assembly and then have MASM assemble that, and try the linker, I&#8217;m bombarded with errors like this:</p>



<pre class="wp-block-code"><code>warp.obj(warp.asm) :  error L2025: __real@4059000000000000 : symbol defined more than once
warp.obj(warp.asm) :  error L2029: '__ftol2' : unresolved external</code></pre>



<p class="wp-block-paragraph">If I was smart I&#8217;d have given up, there is pages and pages of this stuff.  But I&#8217;m not smart, so instead I decided to something different, and use SED, the stream editor, and try to patch out the errors.</p>



<p class="wp-block-paragraph">The ftol2 call is for newer CPU&#8217;s and any OS/2 library won&#8217;t have it.  But instead of binary editing symbols we can replace the ftol2 with ftol with this simple line:</p>



<pre class="wp-block-code"><code> sed -e 's/_ftol2/_ftol/g'</code></pre>



<p class="wp-block-paragraph">For some reason Visual C++ likes to make all it&#8217;s reals &#8220;public&#8221; meaning there can only be one, but yet there is so many.  Why not comment them all out?</p>



<pre class="wp-block-code"><code>sed -e 's/PUBLIC\t__real@/;PUBLIC\t__real@/g'</code></pre>



<p class="wp-block-paragraph">And there are various other annoying things, but again they can be all patched out.  Just as the older Windows 1991 Pre-release compilers also have weird syntax that MASM doesn&#8217;t understand.</p>



<pre class="wp-block-code"><code>astro.asm(59): error A2138: invalid data initializer</code></pre>



<p class="wp-block-paragraph">which goes into how Microsoft C used to initialize floating point constants:</p>



<pre class="wp-block-code"><code>CONST   SEGMENT  DWORD USE32 PUBLIC 'CONST'
$T20000         DQ      0a0ce51293ee845c8r    ; 1.157407407407407E-05
$T20001         DQ      0bffffd3441429ec5r    ; 2440587.499999667
CONST      ENDS</code></pre>



<p class="wp-block-paragraph">while I found that the C compiler in Xenix 386 initialises them like this:</p>



<pre class="wp-block-code"><code>$T20000         DQ      0a0ce51293ee845c8h    ; 1.157407407407407E-05
$T20001         DQ      0bffffd3441429ec5h    ; 2440587.499999667</code></pre>



<p class="wp-block-paragraph">This one was a little hard for me as I&#8217;m not a sed expert, but I did figure out how to mark the section, and then to replace it</p>



<pre class="wp-block-code"><code>sed -e "s/DQ\t&#91;0-9a-f]<em>r/&amp;XMMMMMMX/g" $</em>.a1 |  sed -e "s/rXMMMMMMX/H/g"</code></pre>



<p class="wp-block-paragraph">And so on.  At the moment my &#8216;mangle&#8217; script is now this:</p>



<pre class="wp-block-code"><code>.c.obj:
        $(CC) $(INC) $(OPT) $(DEBUG) /c /Fa$*.a $*.c
        wsl sed -e 's/FLAT://g' $*.a &gt; $*.a1
        wsl sed -e "s/DQ\t&#91;0-9a-f]*r/&amp;XMMMMMMX/g" $*.a1 \
        | wsl sed -e "s/rXMMMMMMX/H/g" \
        | wsl sed -e 's/call \t\&#91;/call DWORD PTR\&#91;/g' \
        | wsl sed -e 's/PUBLIC\t__real@/;PUBLIC\t__real@/g' \
        | wsl sed -e 's/_ftol2/_ftol/g' &gt; $*.asm
        ml /c $*.asm
        del $*.a $*.a1 $*.asm</code></pre>



<p class="wp-block-paragraph">This allows me to plug it into a Makefile, so I only have to edit it in one place.</p>



<p class="wp-block-paragraph">Not surprisingly, this allows the LINK from Visual C++ 1.0 to link the MASM generated object files and get a native Win32 executable.  Even from the oldest compiler I have from the Microsoft OS/2 2.00 Beta 2 SDK from 1989!</p>



<p class="wp-block-paragraph">But now that we have the C compilers being able to output to something we can edit and force into a Win32, there is a few more things and suddenly:</p>



<pre class="wp-block-code"><code>        C:\cl386-research\bin\13.10.6030\cl386 /u /w /G3 /O  /c /Faphoon.a phoon.c
C:\cl386-research\bin\13.10.6030\CL386.EXE: warning: invoking C:\cl386-research\bin\13.10.6030\CL.EXE
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

phoon.c
        wsl sed -e 's/FLAT://g' phoon.a &gt; phoon.a1
        wsl sed -e "s/DQ\t&#91;0-9a-f]*r/&amp;XMMMMMMX/g" phoon.a1  | wsl sed -e "s/rXMMMMMMX/H/g"  | wsl sed -e 's/call \t\&#91;/call DWORD PTR\&#91;/g'  | wsl sed -e 's/PUBLIC\t__real@/;PUBLIC\t__real@/g'  | wsl sed -e 's/_ftol2/_ftol/g' &gt; phoon.asm
        ml /c phoon.asm
Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993.  All rights reserved.

 Assembling: phoon.asm
        del phoon.a phoon.a1 phoon.asm
        msdos286 run286 C:\cl386-research\bin\ddk12\LINK386.EXE @phoon.lnk

Operating System/2 Linear Executable Linker
Version 2.01.012 Nov 02 1993
Copyright (C) IBM Corporation 1988-1993.
Copyright (C) Microsoft Corp. 1988-1993.
 All rights reserved.

Object Modules &#91;.obj]: astro.obj date_p.obj phoon.obj
Run File &#91;astro.exe]: phoon2 /NOE /NOI /NOD:OLDNAMES
List File &#91;nul.map]: nul.map
Libraries &#91;.lib]: ..\..\lib2\libc.lib +
Libraries &#91;.lib]: ..\..\lib2\os2386.lib
Definitions File &#91;nul.def]: nul.def;
LINK386 :  warning L4071: application type not specified; assuming WINDOWCOMPAT</code></pre>



<p class="wp-block-paragraph">I know it&#8217;s a bit of a word salad, but the key thing here is that using Visual C++ 2003&#8217;s compiler (version 13.10.6030), and outputting to assembly that we can edit, we can then use MASM to build objects that surprisingly LINK386 version 2.01.012 will link with.  I suspect this has to do with device drivers, and probably the majority of the OS/2 operating system.</p>



<p class="wp-block-paragraph">Anways, we&#8217;ve done the incredible, using the same object files, we made both a Win32 application, and an OS/2 application!</p>



<pre class="wp-block-code"><code>phoon-13.10.6030.exe: PE32 executable (console) Intel 80386, for MS Windows<br>phoon2.exe: MS-DOS executable, LX for OS/2 (console) i80386</code></pre>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/02/phoon-on-os2-compiled-by-visual-cplus-plus-2003.png"><img decoding="async" width="802" height="633" src="/wp-content/uploads/2024/02/phoon-on-os2-compiled-by-visual-cplus-plus-2003.png" alt="" class="wp-image-13927" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/phoon-on-os2-compiled-by-visual-cplus-plus-2003.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/02/phoon-on-os2-compiled-by-visual-cplus-plus-2003-300x237.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/phoon-on-os2-compiled-by-visual-cplus-plus-2003-768x606.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/02/phoon-on-os2-compiled-by-visual-cplus-plus-2003-380x300.png 380w" sizes="(max-width: 802px) 100vw, 802px" /></a><figcaption class="wp-element-caption">Phoon compiled by Visual C++ 2003 on OS/2 2.00</figcaption></figure>



<p class="wp-block-paragraph">Incidentally Happy CNY!</p>



<p class="wp-block-paragraph">Obviously, this is <em>VERY</em> cool stuff.</p>



<p class="wp-block-paragraph">I know the next question is do we have to rely on a 16bit linker?  How about Watcom?</p>



<pre class="wp-block-code"><code>C:\cl386-research\proj\trek&gt;wlink @trek.wlk
WATCOM Linker Version 10.0
Copyright by WATCOM International Corp. 1985, 1994. All rights reserved.
WATCOM is a trademark of WATCOM International Corp.
loading object files
searching libraries
Warning(1008): cannot open LIBC.lib : No such file or directory
Warning(1008): cannot open OLDNAMES.lib : No such file or directory
creating an OS/2 32-bit executable
</code></pre>



<p class="wp-block-paragraph">Ignore the warnings and <strong><em>YES</em></strong> <em>we can</em> Link from something much newer &amp; 32bit!  In this example I linked the old TREK game, also built with Visual C++ 2003.  The response file looks lke:</p>



<pre class="wp-block-code"><code>SYS os2v2
NAME trek2w
FILE abandon.obj,attack.obj,autover.obj,capture.obj,cgetc.obj,checkcond.obj
FILE check_out.obj,compkl.obj,computer.obj,damage.obj,damaged.obj,dcrept.obj
FILE destruct.obj,dock.obj,dumpgame.obj,dumpme.obj,dumpssradio.obj,events.obj
FILE externs.obj,getcodi.obj,getpar.obj,help.obj,impulse.obj,initquad.obj
FILE kill.obj,klmove.obj,lose.obj,lrscan.obj,main.OBJ,move.obj
FILE nova.obj,nullsleep.obj,out.obj,phaser.obj,play.obj,ram.obj
FILE ranf.obj,rest.obj,schedule.obj,score.obj,setup.obj,setwarp.obj
FILE shield.obj,snova.obj,srscan.obj,systemname.obj,torped.obj,utility.obj
FILE visual.obj,warp.obj,win.obj
LIBR ..\..\lib2\LIBC.LIB
LIBR ..\..\lib2\OS2386.LIB</code></pre>



<p class="wp-block-paragraph">It&#8217;s probably needing additional stack space, maybe some other stuff, or resources, maybe how to flag it&#8217;s windowing compatible.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/02/watcom-linked-trek.png" target="_blank" rel="noreferrer noopener"><img decoding="async" width="770" height="412" src="/wp-content/uploads/2024/02/watcom-linked-trek.png" alt="" class="wp-image-13928" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/watcom-linked-trek.png 770w, https://virtuallyfun.com/wp-content/uploads/2024/02/watcom-linked-trek-300x161.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/watcom-linked-trek-768x411.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/02/watcom-linked-trek-500x268.png 500w" sizes="(max-width: 770px) 100vw, 770px" /></a><figcaption class="wp-element-caption">TREK built by Visual C++ 2003, and Linked using Watcom C/C++ 10.0</figcaption></figure>



<p class="wp-block-paragraph">How do I get started, if I dare?!  First download and unpack <a href="https://archive.org/details/cl386-research-v2">cl386-research-v2</a>.  Ideally on the root of your C: drive, because why not?</p>



<p class="wp-block-paragraph">run the &#8216;env&#8217; command to set your environment up. Its pretty complicated but in the proj directly there is currently:</p>



<p class="wp-block-paragraph"><strong>*NOTE</strong> that I do use <strong>SED</strong> scripts, I have it set to use Linux in the WSL package.<br>I tried some Win32 sed but it didn&#8217;t work. So you need <strong>WSL</strong> or a working sed!</p>



<ul class="wp-block-list">
<li>bench</li>



<li>doom</li>



<li>info</li>



<li>phoon</li>



<li>trek</li>



<li>(<a href="https://github.com/neozeed/cl386-research" target="_blank" rel="noreferrer noopener">more stuff being added or updated on github</a>)</li>
</ul>



<p class="wp-block-paragraph">you can then go into each directory and run</p>



<pre class="wp-block-code"><code>make os2</code></pre>



<p class="wp-block-paragraph">and it&#8217;ll compile populate a floppy and launch the emulator</p>



<p class="wp-block-paragraph">Its all good fun.</p>



<p class="wp-block-paragraph">Read the Makefiles to configure a compiler, how to run it, and if you need to mangle the assembly. The 32bit new stuff needs to be mangled, the older stuff almost always works with just compile.</p>



<pre class="wp-block-code"><code># Version 6.00.054      1989
# https://archive.org/details/os-2-cd-rom_202401
PLATFORM = ddksrc</code></pre>



<p class="wp-block-paragraph">In this case it&#8217;ll select the platform from the &#8216;ddksdk&#8217; release. The next is if the compiler is OS/2 based or native win32. Basically 73g / windows 95 &amp; below are native Win32.</p>



<p class="wp-block-paragraph">In the above example we comment out the dos extended cross</p>



<pre class="wp-block-code"><code># dos exteded cross
CC =  $(EMU) $(DOSX) $(CL386ROOT)\$(PLATFORM)\cl386
# native CC
# CC =  $(CL386ROOT)\$(PLATFORM)\cl386</code></pre>



<p class="wp-block-paragraph">Next is the mangle strategy. In this case it&#8217;s an ancient OS/2 (like) compile so<br>try un commenting the &#8216;just compile&#8217; line</p>



<pre class="wp-block-code"><code># must include ONLY ONE strategey..
# for OS/2 it must have been assembled my MASM 6.11

include ..\-justcompile.mak
#include ..\-mangleassembly.mak
#include ..\-plainassembly.mak</code></pre>



<p class="wp-block-paragraph">save the makefile, and run</p>



<pre class="wp-block-code"><code>nmake os2</code></pre>



<p class="wp-block-paragraph">You can just close the emulator as after each run it&#8217;ll unpack a hard disk image, so nothing will be lost. or saved. It&#8217;s just for testing.  You may need to periodically clean the floppy drive, as that is the only way to transfer stuff in and out of the VM.</p>



<p class="wp-block-paragraph">What versions of CL386 have I found?  Well, it&#8217;s quite a few, although I know I&#8217;m missing quite a few.  </p>



<pre class="wp-block-code"><code>== c386 ============================
Microsoft C 5 386 Compiler

Microsoft C 5.2 286/386 Compiler -- Driver

@(#)C Compiler Apr 19 1990 11:48:30

Copyright (c) Microsoft Corp
1984-1989. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 1.00.075
Quick C Compiler Version 2.00.000
1.00.075

== ddk12 ============================

C 6.00 (Alpha) Aug 24 1990 19:12:31

Copyright (c) Microsoft Corp
1984-1989. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 6.00.054
Quick C Compiler Version 2.00.000
6.00.054

== ddk20 ============================

C 6.00 (Alpha) Aug 16 1990 23:04:06

Copyright (c) Microsoft Corp
1984-1989. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 6.00.054
Quick C Compiler Version 2.00.000
6.00.054

== ddksrc ============================

C 6.00 (Alpha) Aug 24 1990 19:21:49

Copyright (c) Microsoft Corp
1984-1989. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 6.00.054
Quick C Compiler Version 2.00.000
6.00.054

== nt-sep ============================

@(#)C Compiler 6.00 Feb 06 1991 17:15:19
@(#)C Compiler 6.00 May 13 1991 23:54:12
@(#)C Compiler 6.00 Jun 03 1991 15:16:22


Copyright (c) Microsoft Corp
1984-1991. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 6.00.077
Quick C Compiler Version 2.00.000
6.00.077

== nt-oct ============================

@(#)C Compiler 6.00 Jun 03 1991 15:16:22
@(#)C Compiler 6.00 Jun 13 1991 22:07:23
@(#)C Compiler 6.00 Oct 10 1991 00:42:24

Copyright (c) Microsoft Corp
1984-1991. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 6.00.080
Quick C Compiler Version 2.00.000
6.00.080

== nt-dec ============================
@(#)C Compiler 6.00 Jun 03 1991 15:16:22
@(#)C Compiler 6.00 Jun 13 1991 22:07:23
@(#)C Compiler 6.00 Oct 10 1991 00:42:24

Copyright (c) Microsoft Corp
1984-1991. All rights reserved.
  (press &lt;return&gt; to continue)
Microsoft 386 C Compiler. Version 6.00.081
Quick C Compiler Version 2.00.000
6.00.081

== 73g  ============================
1984-1993. All rights reserved.
Copyright (c) Microsoft Corp
8.00.3200
32-bit C/C++ Optimizing Compiler Version
Microsoft (R)


== msvc32s ============================

Microsoft 8.00.0000 - Copyright (C) 1986-1993 Microsoft Corp.
Microsoft 8.00.0000 - Copyright (C) 1986-1993 Microsoft Corp.
@(#) Microsoft C/C++ 32 bits x86 Compiler Version 8.00.XXXX

8.00.000

== 13.10.6030 ============================

Microsoft (R) C/C++ Compiler Version 13.10.6030
From my install of Visual Studio 2003 Enterprise</code></pre>



<p class="wp-block-paragraph">As you can see many of these earlier OS/2 compilers report the same versions but are in fact different builds on the inside.  I suspect Microsoft had to support one version, and an Alpha version of version 6 is as good as it got.  I would have imagined there were internal 32bit versions of 6 or 7, but I haven&#8217;t seen them.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="960" height="609" src="/wp-content/uploads/2024/02/trek_3.gif" alt="" class="wp-image-13936"/><figcaption class="wp-element-caption">Compiling and running TREK</figcaption></figure>



<p class="wp-block-paragraph">Hopefully this gives some idea of how I tried to made a probably too modular build system to try all kinds of different compilers.  I might have to see if it&#8217;s possible to run the tools from the 1992 versions of Windows NT in this setup, perhaps they are interesting as well.</p>



<p class="wp-block-paragraph">One thing in my <a href="https://virtuallyfun.com/2024/02/10/porting-gcc-to-32bit-os-2/" target="_blank" rel="noreferrer noopener">porting GCC to OS/2 experience</a> is that the usability of the C compilers from 1991 were dramatically better than what Microsoft had given IBM at the time of the divorce.  No doubt the upcoming NTOS/2 project was placing a bigger demand on the tools team.</p>



<p class="wp-block-paragraph">If anyone has any access to other &#8216;cl386&#8217; compilers, or early OS/2 2.00 stuff, please let me know!  I&#8217;d love to do build/tests and see if my idea of distributing objects &#8216;just works&#8217;!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/02/11/targeting-os-2-with-visual-studio-2003/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Visual C++ Toolkit 2003</title>
		<link>https://virtuallyfun.com/2016/09/17/visual-c-toolkit-2003/</link>
					<comments>https://virtuallyfun.com/2016/09/17/visual-c-toolkit-2003/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 17 Sep 2016 05:24:00 +0000</pubDate>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[Visual C++ toolkit 2003]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=6412</guid>

					<description><![CDATA[For those 2-3 people still searching for this thing, it&#8217;s the old &#8216;free&#8217; CLI C++ compiler from Visual Studio .NET 2003. Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3052 for 80&#215;86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. Although &#8230; <a href="https://virtuallyfun.com/2016/09/17/visual-c-toolkit-2003/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>For those 2-3 people still searching for this thing, it&#8217;s the old &#8216;free&#8217; CLI C++ compiler from Visual Studio .NET 2003.</p>
<p style="padding-left: 30px;">Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3052 for 80&#215;86<br />
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.</p>
<p>Although Visual C++ .NET 2003 SP1 gives you a later version of the compiler&#8230;</p>
<p style="padding-left: 30px;">Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80&#215;86<br />
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.</p>
<p>I&#8217;m not sure if you can service pack this toolkit.</p>
<p>You can download it from my site asÂ <a href="http://vpsland.superglobalmegacorp.com/install/Windows2003-i386/VCToolkitSetup.exe">VCToolkitSetup.exe</a></p>
<p>For anyone who wants to run this under newer versions of Windows as I know I can&#8217;t install it on Windows 8 or 10, I installed it on my Windows XP x64 machine, and uploaded it here asÂ <a href="http://vpsland.superglobalmegacorp.com/install/Windows2003-i386/vc2003toolkit.7z">vc2003toolkit.7z</a></p>
<p>By the time this came out, Microsoft had started to admit that they had lost serious ground to GCC, as for years they had neglected the low end $99 market that they had dominated during their fights with Borland in the QuickC vs TurboC days. Â Once Borland had withdrawn from the market, Microsoft felt no need to compete and this left plenty of time forÂ GNU tools to take hold in the marketplace. Â This was a stopgap reaction as a prelude to the Visual Studio Express that would happen in 2005 onward.</p>
<p>Elsewhere I&#8217;ve been able to find an old <a href="http://vpsland.superglobalmegacorp.com/install/Visual%20Studio%202005%20Express/5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img">Windows 2003 SP1 Platform SDK image</a>, it should certainly let this compiler build far more interesting things. Â Although unless you really need 2003, you really ought to look at newer stuff. Â Unless you like really old stuff, then as a reminder the Win32s 1.1 SDK includes the version 8.00 compiler from 1993 as well. Â You can download it from here:Â <a href="http://vpsland.superglobalmegacorp.com/install/Windows3.1/win32s/win32s-1.1-build-88-msvc32sdev.7z">win32s-1.1-build-88-msvc32sdev.7zÂ </a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2016/09/17/visual-c-toolkit-2003/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>SDL 1.2.15 not working with Visual Studio 2003 (2002, 6, 97..)</title>
		<link>https://virtuallyfun.com/2014/06/24/sdl-1-2-15-not-working-with-visual-studio-2003-2002-6-97/</link>
					<comments>https://virtuallyfun.com/2014/06/24/sdl-1-2-15-not-working-with-visual-studio-2003-2002-6-97/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 24 Jun 2014 05:36:48 +0000</pubDate>
				<category><![CDATA[SDL]]></category>
		<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[Visual C++ toolkit 2003]]></category>
		<category><![CDATA[Visual Studio 2003]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=4329</guid>

					<description><![CDATA[Well yeah fun errors like this: SDL &#8220;error LNK2001: unresolved external symbol __alloca_probe_16&#8221; What gives? well the binary kit was built using 2005 (I guess) something higher. Download and link againstÂ SDL-devel-1.2.13-VC6.zip and all will be happy. Â I suppose you could &#8230; <a href="https://virtuallyfun.com/2014/06/24/sdl-1-2-15-not-working-with-visual-studio-2003-2002-6-97/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Well yeah fun errors like this:</p>
<p style="padding-left: 30px;">SDL &#8220;error LNK2001: unresolved external symbol __alloca_probe_16&#8221;</p>
<p>What gives? well the binary kit was built using 2005 (I guess) something higher.</p>
<p>Download and link againstÂ <a href="http://www.libsdl.org/release/SDL-devel-1.2.13-VC6.zip">SDL-devel-1.2.13-VC6.zip</a> and all will be happy. Â I suppose you could build the source yourself, but who&#8217;s got time for that?</p>
<p>And remember to set your project to use the Multi Threaded DLL libc, otherwise you&#8217;ll get errors like this:</p>
<p style="padding-left: 30px;">LNK2005: __isctype already defined in LIBCMT.lib(isctype.obj)<br />
LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)</p>
<p>Ok?</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2014/06/24/sdl-1-2-15-not-working-with-visual-studio-2003-2002-6-97/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SimH 3.8 is out!</title>
		<link>https://virtuallyfun.com/2008/07/11/simh-3-8-is-out/</link>
					<comments>https://virtuallyfun.com/2008/07/11/simh-3-8-is-out/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 11 Jul 2008 15:55:00 +0000</pubDate>
				<category><![CDATA[SIMH]]></category>
		<category><![CDATA[Visual C++ toolkit 2003]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=72</guid>

					<description><![CDATA[A new version of SIMH has been released! You can check it out here. I&#8217;ve been on the road so no new compiles of it just yet, but I&#8217;ll do what I can. At the moment I&#8217;m on an old &#8230; <a href="https://virtuallyfun.com/2008/07/11/simh-3-8-is-out/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>A new version of SIMH has been released!</p>
<p>You can check it out <a href="http://simh.trailing-edge.com/">here</a>.  I&#8217;ve been on the road so no new compiles of it just yet, but I&#8217;ll do what I can.</p>
<p>At the moment I&#8217;m on an old computer that Visual C++ express 2008 is out of the question on running.  A while ago there was the Microsoft Visual C++ Toolkit 2003, which has been nearly impossible to track down until I found its real name was  VCToolkitSetup.exe</p>
<p>Using filewatcher, I managed to score a copy!</p>
<p><a href="http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html">Check file watcher:</a></p>
<p>I&#8217;ve just downloaded it, so I have no idea how much other stuff I need to get to get it going, but I&#8217;m thinking a VC 2003 build of the exe&#8217;s along with HX DOS for the MS-DOS users ought to  provide a good solution.  <a href="http://www.japheth.de/HX.html">HX DOS</a> is awesome as it does what Pharlap TNT did back in the day, but it does more!  And it&#8217;s free, no insane fee schedules like Pharlap TNT had&#8230; Frankly Pharlap slit their own throats by making their product so expensive.  If it had been CHEAP/Free to developers, and cheap for distribution odds are nobody would be running windows&#8230;</p>
<p>Anyways for whatever reason, I get people downloading the MS-DOS builds of simh, and I figure this will make a good compromise as they can run the same build as everyone else.  Looking at <a href="http://www.bgnett.no/~giva/watt-doc/a01372.html">this refrence</a> It should be possible to write a network driver using the old packet interface to have simh on MS-DOS live on the network&#8230;  I&#8217;m not sure if I&#8217;ll actually do it, as I don&#8217;t know if people would want it&#8230; But then I&#8217;m still amazed that there are MS-DOS downloads from <a href="http://downloads.sourceforge.net/simh/simh-3.7-3_msdos-exe.zip?modtime=1189045727&#038;big_mirror=0">sourceforge</a>&#8230;  22 of them, and I swear it&#8217;s not me!</p>
<p>Also I spotted <a href="http://homepage1.nifty.com/kazubon/progdoc/poor/vctoolkit.html">this</a> while it&#8217;s in Japanese I think it has some kind of guide and some simple examples of a &#8216;text mode&#8217; windows program&#8230; It may be a good thing for some ancient windows/Windows CE simh stuff&#8230;</p>
<p>Just a thought at the moment, I can&#8217;t promise much.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2008/07/11/simh-3-8-is-out/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
