Virtual PC and Ancient IDEs: Part 1 - Setting up Virtual PC

As mentioned in my previous post I have set up a 17 inch PowerBook G4 for Python, Objective-C and C++ development. One of my newfound time-sinks-that-brings-me-joy is setting up old Windows environments and installing very old IDEs. Examples include Visual C++ 6, Borland Delphi 7 and most recently PalmOS IDEs. I thought to myself, why not set up VirtualPC on my PowerBook and see how viable it would be? That is what I will cover here in this post. My ultimate goal is to set up a Windows 98 virtual PC and a Windows 2000 virtual PC then set up the IDEs on both virtual PCs. This will be a good way to compare performance between the two OSs under Microsoft Virtual PC.

Setting up Microsoft Virtual PC was fairly straight forward. I grabbed the Virtual PC 7.02 installer, 7.03 updater and the modified networking kext from the Macintosh Garden. Installing Virtual PC 7.02 and then updating it to version 7.03 was a simple software install. Now onto the Now onto the quirk. As pointed out at the Macintosh Garden, if Virtual PC is left as is on Mac OS Leopard, a kext icon will appear on your dock and bounce up and down while Virtual PC is running. I copied over the modified kext to /Library/Extensions as instructed. When I opened Virtual PC after doing this, Virtual PC said "The software necessary to run Virtual PC for Mac is either missing or is installed incorrectly" and then repaired itself, reverting the kext at /Library/Extensions back to its original state. I opened the original and the modified kexts to see if I could see any differences between the two. I found that the modified kext's info.plist had two extra lines.

Here is the original info.plist...

<plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>VirtualPCNetworking1040</string> <key>CFBundleGetInfoString</key> <string>7.0.3 (070613), &#169; 2005 Microsoft Corporation. All rights reserved.</string> <key>CFBundleIdentifier</key> <string>com.microsoft.VirtualPC.Networking.1040</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>Virtual PC Networking</string> <key>CFBundlePackageType</key> <string>KEXT</string> <key>CFBundleShortVersionString</key> <string>7.0.3</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>7.0.3</string> <key>OSBundleLibraries</key> <dict> <key>com.apple.kpi.bsd</key> <string>8.0.0b2</string> <key>com.apple.kpi.libkern</key> <string>8.0.0b2</string> <key>com.apple.kpi.mach</key> <string>8.0.0b2</string> </dict> </dict> </plist>

Here is the modified info.plist...

<plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>VirtualPCNetworking1040</string> <key>CFBundleGetInfoString</key> <string>7.0.3 (070613), &#169; 2005 Microsoft Corporation. All rights reserved.</string> <key>CFBundleIdentifier</key> <string>com.microsoft.VirtualPC.Networking.1040</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>Virtual PC Networking</string> <key>CFBundlePackageType</key> <string>KEXT</string> <key>CFBundleShortVersionString</key> <string>7.0.3</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>7.0.3</string> <key>OSBundleLibraries</key> <dict> <key>com.apple.kpi.bsd</key> <string>8.0.0b2</string> <key>com.apple.kpi.libkern</key> <string>8.0.0b2</string> <key>com.apple.kpi.mach</key> <string>8.0.0b2</string> </dict> <key>LSUIElement</key> <string>1</string> </dict> </plist>

I opened the original kext in Text Wrangler, navigated to info.plist and added the two additional lines after the nested/inner dict block. Text Wrangler notified me that I did not have the privilege to modify this file. It asked for my password and saved the file after I authenticated. I was then able to open Virtual PC without being asked to repair my install or watch the white Lego jump up and down on the dock.

At this point I was able to make virtual PCs and install OSs on them. I made one for Windows 98 and Windows 2000. After the Windows installs completed, I installed the virtual PC additions for both virtual machines. This is done by clicking the PC menu then clicking the Install or Update Additions option.

This is a good stopping point. I wanted to share my experience with the kext quirk and what I had to do to fix it. As I set up the IDEs on these two virtual PCs I will share my findings and takes here.

As always, thank you for reading. Have fun!

5 comments:

  1. Brilliant! That kext bug has been annoying me for so long now in VP7.

    ReplyDelete
  2. Awesome post!

    Just a heads up... I changed the published date to today, because Blogger seems to post things now by the date the draft was started, which was Sept. 27, so it had buried this post where some would certainly miss it.

    ReplyDelete
  3. Great stuff, the quality of the blog is increading a lot with this kind of information.

    ReplyDelete
  4. Happy to help! The bouncing lego was annoying.

    Thank you for fixing the date. I had written it prior to moving and had never gotten around to publishing it.

    I am glad you are enjoying the content Alberto. It is good to be back.

    ReplyDelete