<?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>disk images &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/disk-images/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Mon, 06 Apr 2026 09:18:00 +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>Running back to 2002 (the hard way)</title>
		<link>https://virtuallyfun.com/2026/04/06/running-back-to-2002-the-hard-way/</link>
					<comments>https://virtuallyfun.com/2026/04/06/running-back-to-2002-the-hard-way/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 09:18:00 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[hard disks]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[powerpc]]></category>
		<category><![CDATA[QEMU]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=15663</guid>

					<description><![CDATA[This honestly should have been much easier. Or maybe I’ve just forgotten how absolutely hostile early OS X could be. The mistake begins It started, as these things always do, with someone mentioning the PowerBook G4 Titanium. One quick eBay &#8230; <a href="https://virtuallyfun.com/2026/04/06/running-back-to-2002-the-hard-way/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2026/04/image-1.png"><img fetchpriority="high" decoding="async" width="768" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-1-768x1024.png" alt="" class="wp-image-15664" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-1-768x1024.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-1-225x300.png 225w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-1.png 820w" sizes="(max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">PowerBook G4 Titanium running OS X 10.2 &amp; Microsoft Office 2004</figcaption></figure>



<p class="wp-block-paragraph">This honestly should have been much easier.</p>



<p class="wp-block-paragraph">Or maybe I’ve just forgotten how absolutely hostile early OS X could be.</p>



<h2 class="wp-block-heading">The mistake begins</h2>



<p class="wp-block-paragraph">It started, as these things always do, with someone mentioning the <strong>PowerBook G4 Titanium</strong>. One quick eBay search later and, well £30 later I owned one.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/04/image-2.png"><img decoding="async" width="820" height="228" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-2.png" alt="" class="wp-image-15665" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-2.png 820w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-2-300x83.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-2-768x214.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-2-500x139.png 500w" sizes="(max-width: 820px) 100vw, 820px" /></a><figcaption class="wp-element-caption">“They got me.”</figcaption></figure>



<p class="wp-block-paragraph">It showed up absurdly fast (Sunday delivery? really?), in surprisingly good condition, and I already had a charger. So naturally, the <em>sensible</em> thing to do was…</p>



<p class="wp-block-paragraph">Install Tiger.<br>Which worked. Immediately. Of course it did.</p>



<h2 class="wp-block-heading">But that wasn’t good enough</h2>



<p class="wp-block-paragraph">Tiger is fine. Great, even.</p>



<p class="wp-block-paragraph">But it’s not <em>Jaguar</em>.</p>



<p class="wp-block-paragraph">10.2 was always my favorite early OS X, that weird in-between era where it still felt experimental but usable. And according to basically everything online, early Titanium PowerBooks should run it.</p>



<p class="wp-block-paragraph">So I grabbed a cheap “reproduction” 10.2 CD set.</p>



<p class="wp-block-paragraph">And this is where everything went wrong.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/04/image-3.png"><img decoding="async" width="820" height="615" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-3.png" alt="" class="wp-image-15666" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-3.png 820w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-3-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-3-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-3-400x300.png 400w" sizes="(max-width: 820px) 100vw, 820px" /></a><figcaption class="wp-element-caption">Kernel panic</figcaption></figure>



<p class="wp-block-paragraph">Not a great start.</p>



<p class="wp-block-paragraph">At first glance it looks like some kind of network address corruption, but in reality it’s just the kernel screaming because something is <em>very</em> wrong at a hardware level.</p>



<p class="wp-block-paragraph">Time to go verbose.</p>



<h2 class="wp-block-heading">Welcome back to Open Firmware</h2>



<p class="wp-block-paragraph">You can’t just hold <code>C</code> and <code>Cmd+V</code> like a normal person.</p>



<p class="wp-block-paragraph">No, this is 2002.</p>



<p class="wp-block-paragraph">So into Open Firmware we go:</p>



<pre class="wp-block-preformatted">boot cd:,\\:tbxi -v</pre>



<p class="wp-block-paragraph">Now we get actual output… and a much clearer failure.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/04/image-4.png"><img loading="lazy" decoding="async" width="820" height="615" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-4.png" alt="" class="wp-image-15667" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-4.png 820w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-4-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-4-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-4-400x300.png 400w" sizes="auto, (max-width: 820px) 100vw, 820px" /></a><figcaption class="wp-element-caption">Kernel panic in the FireWire driver</figcaption></figure>



<h2 class="wp-block-heading">FireWire: the red herring</h2>



<p class="wp-block-paragraph">The panic traces back to:</p>



<pre class="wp-block-preformatted">com.apple.driver.AppleFWOHCI</pre>



<p class="wp-block-paragraph">Ah yes — FireWire.</p>



<p class="wp-block-paragraph">Because of course it is.</p>



<p class="wp-block-paragraph">So the obvious thing to do is disable it from Open Firmware:</p>



<pre class="wp-block-preformatted">dev /pci@f4000000/firewire<br>" disabled" encode-string " status" property</pre>



<p class="wp-block-paragraph">And… it works.</p>



<p class="wp-block-paragraph">Kind of.</p>



<p class="wp-block-paragraph">The system gets further. No panic. Progress!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/04/image-5.png"><img loading="lazy" decoding="async" width="820" height="615" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-5.png" alt="" class="wp-image-15668" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-5.png 820w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-5-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-5-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-5-400x300.png 400w" sizes="auto, (max-width: 820px) 100vw, 820px" /></a><figcaption class="wp-element-caption">The &#8216;stop sign&#8217; meaning this OS isn&#8217;t supported on this Mac</figcaption></figure>



<h2 class="wp-block-heading">And then: the stop sign</h2>



<p class="wp-block-paragraph">Instead of a crash, we now get a <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6ab.png" alt="🚫" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">The classic “this OS is not supported on this Mac” symbol.</p>



<p class="wp-block-paragraph">Which is when it finally clicks:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">This machine is a <strong>PowerBook3,5 (867MHz)</strong><br>And <strong>10.2.0 predates it</strong></p>
</blockquote>



<p class="wp-block-paragraph">So no, this was never going to work.</p>



<p class="wp-block-paragraph">The FireWire panic wasn’t the root problem; it was just the first thing new enough hardware broke.</p>



<h2 class="wp-block-heading">At this point, a normal person would stop</h2>



<p class="wp-block-paragraph">I did not stop.</p>



<h2 class="wp-block-heading">If Apple won’t build it, we will</h2>



<p class="wp-block-paragraph">If 10.2.0 won’t run, then clearly the answer is:</p>



<ul class="wp-block-list">
<li>build a <strong>10.2.8 install manually</strong></li>



<li>using <strong>QEMU</strong></li>



<li>on a completely different machine</li>



<li>then sneak it onto the laptop</li>
</ul>



<p class="wp-block-paragraph">Perfectly reasonable.</p>



<h2 class="wp-block-heading">Building Jaguar in exile</h2>



<p class="wp-block-paragraph">QEMU can emulate a G4 well enough to:</p>



<ol class="wp-block-list">
<li>Install Tiger</li>



<li>Install Jaguar</li>



<li>Update Jaguar → <strong>10.2.8</strong></li>
</ol>



<p class="wp-block-paragraph">Something like:</p>



<pre class="wp-block-preformatted">qemu-system-ppc \<br>  -M mac99 \<br>  -cpu G4 \<br>  -m 512 \<br>  -drive file=macosx_6gb.vmdk \<br>  -boot c</pre>



<p class="wp-block-paragraph">From there:</p>



<ul class="wp-block-list">
<li>swap disks around</li>



<li>update Jaguar</li>



<li>boot back into Tiger</li>



<li>use Disk Utility to create a compressed image</li>
</ul>



<p class="wp-block-paragraph">Eventually producing:</p>



<pre class="wp-block-preformatted">osx-10.2.8.dmg</pre>



<h2 class="wp-block-heading">Of course it&#8217;s not that easy!</h2>



<p class="wp-block-paragraph">First off is to get ISO images.  I actually started this process with the Tiger I already have in hand.  To grab an ISO under macOS 26 it&#8217;s a simple command:</p>



<pre class="wp-block-preformatted">hdiutil convert /dev/disk4 -format UDTO -o OSX_Tiger_10.5.iso</pre>



<p class="wp-block-paragraph">And about 20 minutes of the DVD drive spinning around I got my ISO image. </p>



<pre class="wp-block-preformatted"> % file OSX_Tiger_10.5.iso <br>OSX_Tiger_10.5.iso: Apple Driver Map, blocksize 512, blockcount 5531738, devtype 0, devid 0, driver count 1, contains[@0x200]: Apple Partition Map, map block count 4, start block 1, block count 63, name Apple, type Apple_partition_map, valid, allocated, contains[@0x400]: Apple Partition Map, map block count 4, start block 64, block count 8, name Macintosh, type Apple_Driver_ATAPI, boot arguments DMMY, valid, allocated, real driver, chain driver, contains[@0x600]: Apple Partition Map, map block count 4, start block 72, block count 5531656, name Mac_OS_X, type Apple_HFS, boot arguments goon, valid, allocated, readable, writable, mount at startup, contains[@0x800]: Apple Partition Map, map block count 4, start block 5531728, block count 10, type Apple_Free</pre>



<p class="wp-block-paragraph">Now to run it under qemu:</p>



<pre class="wp-block-preformatted">qemu-system-ppc \<br>    -L pc-bios \<br>    -M mac99,via=pmu \<br>    -cpu G4 \<br>    -m 512 \<br>    -prom-env 'auto-boot?=true' \<br>    -prom-env 'boot-args=-v' \<br>    -drive file=tiger.iso,media=cdrom,format=raw \<br>    -drive file=macosx_6gb.vmdk,format=vmdk,cache=unsafe \<br>    -boot d \<br>    -net none \<br>    -no-reboot</pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="632" src="https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-9.41.23-AM.png" alt="" class="wp-image-15673" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-9.41.23-AM.png 802w, https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-9.41.23-AM-300x236.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-9.41.23-AM-768x605.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-9.41.23-AM-381x300.png 381w" sizes="auto, (max-width: 802px) 100vw, 802px" /><figcaption class="wp-element-caption">Tiger on QEMU / OS X Tahoe 26.4</figcaption></figure>



<p class="wp-block-paragraph">And in a minute or so on my mac mini running &#8220;QEMU emulator version 10.1.2&#8221; from homebrew I was up and running. yay. I don&#8217;t need or care about audio/networking as this is just to get a PowerPC OS up and running, using the media I have in hand.  Bring up the disk util, partition the VMDK, the install the OS. You&#8217;ve probably seen/done it a dozen times so nothing to really see here.</p>



<p class="wp-block-paragraph">Once my 10.2 reproduction media arrive, I went through the hardware boot to only find out that 10.2.0 just won&#8217;t run on my PowerBook G4.  This is where we use the emulation route.  Could I simply grab an ISO using hdiutil?</p>



<p class="wp-block-paragraph"><strong>NO</strong></p>



<p class="wp-block-paragraph">Of course not. Why would it work?  It comes down to the older versions of OS X being very MacOS 9 style disks, which hdiutil simply will not grab. You end up with meaningless data.  What about &#8216;dd&#8217; on /dev/disk4? /dev/rdisk4?  did you set bs=2048? YES YES YES&#8230; none worked.</p>



<p class="wp-block-paragraph">So back in homebrew I got the cdrutils from Joerg Schilling which gives me the readcd command, which finally let me grab the ISO&#8217;s </p>



<pre class="wp-block-preformatted">% file OSX_Jaguar_10.2-disc1.iso<br>OSX_Jaguar_10.2-disc1.iso: Apple Driver Map, blocksize 2048, blockcount 331264, devtype 1, devid 1, driver count 4, contains[@0x200]: Apple Partition Map, map block count 10, start block 1, block count 63, name Apple, type Apple_partition_map, valid, allocated, in use, readable, contains[@0x400]: Apple Partition Map, map block count 10, start block 64, block count 56, name Macintosh, type Apple_Driver43, boot arguments ptDR, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, contains[@0x600]: Apple Partition Map, map block count 10, start block 120, block count 140, name Macintosh, type Apple_Driver43_CD, boot arguments CDrv, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, contains[@0x800]: Apple Partition Map, map block count 10, start block 0, block count 0, type Apple_Void, contains[@0xA00]: Apple Partition Map, map block count 10, start block 260, block count 56, name Macintosh, type Apple_Driver_ATAPI, boot arguments ptDR, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, contains[@0xC00]: Apple Partition Map, map block count 10, start block 316, block count 140, name Macintosh, type Apple_Driver_ATAPI, boot arguments ATPI, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, contains[@0xE00]: Apple Partition Map, map block count 10, start block 456, block count 512, name Patch Partition, type Apple_Patches, valid, contains[@0x1000]: Apple Partition Map, map block count 10, start block 0, block count 0, type Apple_Void</pre>



<p class="wp-block-paragraph">As you can see it&#8217;s a lot of partitions, and various bits that it&#8217;s expecting.  Kind of annoying that the system utils cannot grab these kinds of images, but in the end we got there.</p>



<p class="wp-block-paragraph">Naturally, Jaguar has to be run differently as it&#8217;s just more tied to older hardware:</p>



<pre class="wp-block-preformatted">qemu-system-ppc \<br>-machine mac99 \<br>-cpu G4 -m 1G \<br>-name "Mac OS X 10.2" \<br>-hda "macosx_6gb.vmdk" \<br>-cdrom "OSX_Jaguar_10.2-disc1.iso" \<br>-device pci-ohci,id=usb1 \<br>-device usb-mouse,bus=usb1.0 \<br>-device usb-kbd,bus=usb-bus.0 \<br>-device usb-audio,bus=usb1.0,audiodev=audio \<br>-audiodev id=audio,driver=coreaudio \<br>-device sungem,netdev=network \<br>-netdev id=network,type=user \<br>-no-reboot \<br>-accel tcg \<br>-boot d</pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="801" height="627" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-7.png" alt="" class="wp-image-15674" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-7.png 801w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-7-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-7-768x601.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-7-383x300.png 383w" sizes="auto, (max-width: 801px) 100vw, 801px" /><figcaption class="wp-element-caption">Jaguar installer</figcaption></figure>



<p class="wp-block-paragraph">The next catch is that the diskutil just hangs partitioning the hard disk. I&#8217;ve no idea why.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="456" height="172" src="https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-05-at-10.45.28-AM.png" alt="" class="wp-image-15675" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-05-at-10.45.28-AM.png 456w, https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-05-at-10.45.28-AM-300x113.png 300w" sizes="auto, (max-width: 456px) 100vw, 456px" /><figcaption class="wp-element-caption">It just currently hangs forever on 10.2</figcaption></figure>



<p class="wp-block-paragraph">So, the solution is to boot back into Tiger, add a second disk, partition it there, and then use that disk in the Jaguar boot.  After that it installs just fine.  I enabled the sound and network just to setup NTP so at least my image isn&#8217;t too stuck in 2002.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="756" height="497" src="https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-10.05.21-AM.png" alt="" class="wp-image-15676" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-10.05.21-AM.png 756w, https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-10.05.21-AM-300x197.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/Screenshot-2026-04-06-at-10.05.21-AM-456x300.png 456w" sizes="auto, (max-width: 756px) 100vw, 756px" /></figure>



<p class="wp-block-paragraph">Oh, one trick I found out decades too late, is that you can cloverQ the named registration, so you don&#8217;t have to make up bogus phone numbers and a semi valid mailing address.  I didn&#8217;t know is that, it&#8217;ll just kick you to the account creation screen, and you are good to go!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="808" height="632" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-8.png" alt="" class="wp-image-15677" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-8.png 808w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-8-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-8-768x601.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-8-384x300.png 384w" sizes="auto, (max-width: 808px) 100vw, 808px" /><figcaption class="wp-element-caption">OS X 10.2.0 installed into QEMU</figcaption></figure>



<p class="wp-block-paragraph">After that it&#8217;s just a matter of running the 10.2.8 combination patch, to bring the VM up to 10.2.8</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="623" height="444" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-9.png" alt="" class="wp-image-15678" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-9.png 623w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-9-300x214.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-9-421x300.png 421w" sizes="auto, (max-width: 623px) 100vw, 623px" /><figcaption class="wp-element-caption">10.2.8 Combo update</figcaption></figure>



<p class="wp-block-paragraph">From there the final hurdel is to create a RAW disk image to transfer the Tiger diskutil &#8216;disk image&#8217; to.  This way you can easily mount the RAW image by renaming the extension to .dmg and OS X (thankfully) still supprots HFS+ so you can simply use finder or &#8216;cp&#8217; to copy off the compressed disk image onto a USB drive, and now we are ready to image the PowerBook using our updated OS X Jaguar!<br></p>



<h2 class="wp-block-heading">The USB betrayal</h2>



<p class="wp-block-paragraph">Naturally, the Tiger installer refused to mount USB.</p>



<p class="wp-block-paragraph">Because of course it did.</p>



<h2 class="wp-block-heading">The final workaround</h2>



<p class="wp-block-paragraph">So instead:</p>



<ol class="wp-block-list">
<li>Repartition internal disk
<ul class="wp-block-list">
<li>small staging partition (~4GB)</li>



<li>main target partition (remainder of the disk)</li>
</ul>
</li>



<li>Install Tiger (again)</li>



<li>Copy <code>10.2.8.dmg</code> to staging partition</li>



<li>Boot Tiger installer</li>



<li>Use Disk Utility → <strong>Restore image onto main partition</strong></li>
</ol>



<p class="wp-block-paragraph">And finally…</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2026/04/image-6.png"><img loading="lazy" decoding="async" width="768" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2026/04/image-6-768x1024.png" alt="" class="wp-image-15669" srcset="https://virtuallyfun.com/wp-content/uploads/2026/04/image-6-768x1024.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-6-225x300.png 225w, https://virtuallyfun.com/wp-content/uploads/2026/04/image-6.png 820w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">10.2.8 running on the PowerBook G4</figcaption></figure>



<h2 class="wp-block-heading">Success</h2>



<p class="wp-block-paragraph">Jaguar 10.2.8.</p>



<p class="wp-block-paragraph">On a machine that absolutely refused to run 10.2.0.</p>



<p class="wp-block-paragraph">With Office 2004, because why not.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Lessons learned</h2>



<ul class="wp-block-list">
<li>Early OS X is <strong>tightly hardware-bound</strong>, not just “older”</li>



<li>Kernel panics are often <strong>symptoms, not causes</strong></li>



<li>FireWire was innocent (this time)</li>



<li>USB support in installers was… optimistic</li>
</ul>



<p class="wp-block-paragraph">And most importantly:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Just because you <em>can</em> reconstruct a historically accurate install pipeline via emulation and disk imaging…<br>doesn’t mean you should.</p>
</blockquote>



<h2 class="wp-block-heading">The obvious solution (that I ignored)</h2>



<p class="wp-block-paragraph">A single FireWire cable.</p>



<p class="wp-block-paragraph">Target Disk Mode.</p>



<p class="wp-block-paragraph">Done in 20 minutes, by using my B&amp;W G3 PowerMac that is currently running Windows NT, but it wouldn&#8217;t matter as I could just hold option and select the FireWire target disk to boot to/from as it&#8217;ll happily boot/install 10.2.0 without a hitch.  It being a G3 makes no difference as the same kernel works on G3/G4 processors.</p>



<h2 class="wp-block-heading">But where’s the fun in that?</h2>



<p class="wp-block-paragraph">For those brave enough to get to the end of the post, I uploaded all my <a href="https://archive.org/details/osx-jaguar-10.2-2disc">Jaguar images onto archive.org</a>.  I&#8217;m sure it&#8217;s been preserved before, but since I was in the mood, I also uploaded <a href="https://archive.org/details/microsoft-office-2004_202604">Office 2004</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2026/04/06/running-back-to-2002-the-hard-way/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Expanding Windows drives</title>
		<link>https://virtuallyfun.com/2025/01/29/expanding-windows-drives/</link>
					<comments>https://virtuallyfun.com/2025/01/29/expanding-windows-drives/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 29 Jan 2025 22:16:35 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[hard disks]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14901</guid>

					<description><![CDATA[Granted this isn&#8217;t fun. But it&#8217;s virtual. We live in an era of exciting expandable disks! first off start with a full disk. That&#8217;s great. In this case the host was proxmox. It doesn&#8217;t matter. You apparently have to shut &#8230; <a href="https://virtuallyfun.com/2025/01/29/expanding-windows-drives/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Granted this isn&#8217;t fun.  But it&#8217;s virtual.  We live in an era of exciting expandable disks!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="160" src="https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475.jpg" alt="" class="wp-image-14900" srcset="https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475.jpg 800w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475-300x60.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475-768x154.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475-500x100.jpg 500w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">first off start with a full disk.  That&#8217;s great.  In this case the host was proxmox.  It doesn&#8217;t matter.  You apparently have to shut down the VM to expand the disk.  Other virtualizers don&#8217;t need that.  But whatever.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="127" src="https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595381606.jpg" alt="" class="wp-image-14899" srcset="https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595381606.jpg 800w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595381606-300x48.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595381606-768x122.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595381606-500x79.jpg 500w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">now for the predictable fun.  That recovery partition is in the way.  Not sure why NTFS needs to be contiguous but here we are.</p>



<p class="wp-block-paragraph">So now we are stuck.  You Google how to expand NTFS drive, how to move recovery partition, how to make disk bigger!!  All in vain as everyone is pushing these nifty partition mover programs that don&#8217;t run on server.  Do you just nuke the partition and hope for the best?</p>



<p class="wp-block-paragraph">No, we can back it up, delete it, expand our disk and recreate it!</p>



<p class="wp-block-paragraph">Capture the partition</p>



<pre class="wp-block-code"><code>Dism /Capture-Image /ImageFile:C:\my-system-partition.wim /CaptureDir:S:\ /Name:"My system partition"</code></pre>



<pre class="wp-block-code"><code>Microsoft DiskPart version 10.0.19041.3636

Copyright (C) Microsoft Corporation.
On computer: KOMPUTER

DISKPART&gt; list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          250 GB   200 GB

DISKPART&gt; select disk 0

Disk 0 is now the selected disk.

DISKPART&gt; list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Primary             50 MB  1024 KB
  Partition 2    Primary             49 GB    51 MB
  Partition 3    Recovery           522 MB    49 GB

DISKPART&gt; select partition 3

Partition 3 is now the selected partition.

DISKPART&gt; delete partition OVERRIDE

DiskPart successfully deleted the selected partition.</code></pre>



<p class="wp-block-paragraph">restore the partition</p>



<pre class="wp-block-code"><code>dism /Apply-Image /ImageFile:c:\my-system-partition.wim /Index:1 /ApplyDir:w:\</code></pre>



<p class="wp-block-paragraph">Then tag the partition back to being a Recovery partition.</p>



<pre class="wp-block-code"><code>DISKPART&gt; list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Primary             50 MB  1024 KB
  Partition 2    Primary            249 GB    51 MB
  Partition 3    Primary            600 MB   249 GB

DISKPART&gt; select partition 3

Partition 3 is now the selected partition.

DISKPART&gt; set id=27

DiskPart successfully set the partition ID.

DISKPART&gt; list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Primary             50 MB  1024 KB
  Partition 2    Primary            249 GB    51 MB
* Partition 3    Recovery           600 MB   249 GB

DISKPART&gt;</code></pre>



<p class="wp-block-paragraph">depending on the version the command may fail setting type 27, so try:</p>



<pre class="wp-block-code"><code>set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" </code></pre>



<p class="wp-block-paragraph">and there we go!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="160" src="https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475.jpg" alt="" class="wp-image-14900" srcset="https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475.jpg 800w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475-300x60.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475-768x154.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/09/tmp_1726595287475-500x100.jpg 500w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">One big happy drive! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f389.png" alt="🎉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2025/01/29/expanding-windows-drives/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Two things that really annoy me!</title>
		<link>https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/</link>
					<comments>https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 14 Jun 2024 08:36:19 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[random updates]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14540</guid>

					<description><![CDATA[Moving homes. again. First off, I got a new VPS to house this on, size wise, I&#8217;d just plain outgrown the old one, even with SquashFS. Over on lowend box, I had spotted this one: LuxVPS It&#8217;s not an AD, &#8230; <a href="https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Moving homes. again.</h2>



<p class="wp-block-paragraph">First off, I got a new VPS to house this on, size wise, I&#8217;d just plain outgrown the old one, even with <a href="https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/" target="_blank" rel="noreferrer noopener">SquashFS</a>. Over on <a href="https://lowendbox.com/" target="_blank" rel="noreferrer noopener">lowend box</a>, I had spotted this one: <a href="https://luxvps.net/" target="_blank" rel="noreferrer noopener">LuxVPS</a></p>



<figure class="wp-block-image size-full"><a href="https://lowendbox.com/blog/happy-birthday-luxvps-now-lets-cut-the-cake-on-these-celebration-deals-and-giveaway-%f0%9f%a5%b3/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="704" height="199" src="https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps.png" alt="" class="wp-image-14541" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps.png 704w, https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps-300x85.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps-500x141.png 500w" sizes="auto, (max-width: 704px) 100vw, 704px" /></a></figure>



<p class="wp-block-paragraph">It&#8217;s not an AD, just thought the pricing seemed pretty good for 5€.  One of the nice things about converting so much of my data to SquashFS is that moving single files is WAY easier to deal with!</p>



<h2 class="wp-block-heading">Mice in my 1970&#8217;s teletype text editor?!</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1.png" alt="" class="wp-image-14542" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1-300x300.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1-768x768.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Using Mice with a 1970&#8217;s text editor</figcaption></figure>



<p class="wp-block-paragraph">But editing text files had me facing off some feature of VIM I&#8217;d somehow not dealt with that Debian 11 set by default, and that is mouse integration!</p>



<p class="wp-block-paragraph"><strong>CAN YOU BELIVE IT?</strong></p>



<p class="wp-block-paragraph">Somewhere out there, is people who use a mouse with a VI clone.&nbsp;</p>



<p class="wp-block-paragraph">It bares repeating</p>



<p class="wp-block-paragraph"><strong>SOMEONE THINKS YOU NEED A MOUSE TO USE VI.</strong></p>



<p class="wp-block-paragraph">So much so, it&#8217;s the system default.</p>



<p class="wp-block-paragraph"><strong>G</strong>ood lor<strong>d</strong>.</p>



<p class="wp-block-paragraph">The fix is to edit /etc/vim/vimrc:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>set mouse=
set ttymouse=</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Problem solved.  Obviously, I&#8217;m not going to remember this, but now I can right click/paste the way G&#8217;d intended it!</p>



<h2 class="wp-block-heading">Stale encryption</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3.png" alt="" class="wp-image-14543" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3-300x300.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3-768x768.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Old rusty locks</figcaption></figure>



<p class="wp-block-paragraph">The next source of annoyance is the ancient <a href="https://www.stunnel.org/">stunnel</a> 4.17 that I use for <a href="https://altavista.superglobalmegacorp.com/altavista">altavista.superglobalmegacorp.com</a>.  I&#8217;m kind of trapped with this setup as it needs to be a 32bit &#8216;workstation&#8217; OS, and I don&#8217;t want to run something as heavy as XP or Vista when NT 4.0 is more than enough.  Anyways OpenSSL won&#8217;t talk to this ancient encryption, throwing this error trying to do a connection with &#8220;openssl s_client -connect 192.168.23.6:443&#8221;:</p>



<pre class="wp-block-code"><code>error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
Unable to establish SSL connection.</code></pre>



<p class="wp-block-paragraph">The fix, thanks to <a href="https://stackoverflow.com/users/2868801/dave-thompson-085">dave_thompson_085</a> is simple enough.</p>



<p class="wp-block-paragraph">Basically, modify /etc/ssl/openssl.conf and place this at the top:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>openssl_conf = default_conf
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">then place this at the bottom:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>&#91; default_conf ]

ssl_conf = ssl_sect

&#91;ssl_sect]

system_default = ssl_default_sect

&#91;ssl_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Now when I connect to stunnel, I can verify that I am indeed using ancient crap level security:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>New, SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 19D20D30E0026E8417E00402DE939E90770D4658C3A9CFE4DB4E5F2A5454DE9D
    Session-ID-ctx:
    Master-Key: 498C648E77E9B9C944A8B1D16242240A161A05A087881C6AD300718DD9B8C443EA12FB76440B666B7C6634A7E7DBE9D5
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1718352960
    Timeout   : 7200 (sec)
    Verify return code: 10 (certificate has expired)
    Extended master secret: no
---
DONE</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">I don&#8217;t care about the encryption, I could as a matter of fact just run without it, as I only need the reverse proxy aspect of it, to make the AltaVista web server accessible over the LAN/WAN/INTERNET.  It&#8217;s all fronted with CloudFlare so from the end use POV it&#8217;s all encrypted anyways</p>



<h2 class="wp-block-heading">A rainbow of happiness</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4.png" alt="" class="wp-image-14544" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4-300x300.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4-768x768.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Sunshine &amp; rainbows!</figcaption></figure>



<p class="wp-block-paragraph">Another nice side benefit of this SquashFS setup is that I can forever rebase the disks as the content never changes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>#!/bin/bash
# rebase the disk
rm /usr/local/vm/AltaVista/altavista-c.vmdk
rm /usr/local/vm/AltaVista/altavista-d.vmdk
rm /usr/local/vm/AltaVista/altavista-u.vmdk

qemu-img create -f vmdk -b /usr/local/vmdk/AltaVista_C/altavista-c.vmdk -F vmdk /usr/local/vm/AltaVista/altavista-c.vmdk
qemu-img create -f vmdk -b /usr/local/vmdk/AltaVista_D/altavista-d.vmdk -F vmdk /usr/local/vm/AltaVista/altavista-d.vmdk
qemu-img create -f vmdk -b /usr/local/vmdk/AltaVista_U/altavista-u.vmdk -F vmdk /usr/local/vm/AltaVista/altavista-u.vmdk

qemu-system-i386 -vga std -cpu pentium -m 64 \
        -vnc 192.168.23.1:6 \
        -net none  \
        -hda /usr/local/vm/AltaVista/altavista-c.vmdk \
        -hdb /usr/local/vm/AltaVista/altavista-d.vmdk \
        -hdd /usr/local/vm/AltaVista/altavista-u.vmdk \
        -device pcnet,netdev=alta,mac=5a:00:11:55:22:22  \
        -netdev tap,ifname=tap6,id=alta,script=/usr/local/vm/AltaVista/alta-up,downscript=/usr/local/vm/AltaVista/alta-down</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">One thing is for sure, it makes hosting AltaVista a bit easier to deal with.  And for the sake of archiving, I uploaded a pre-loaded &amp; indexed dataset <a href="https://archive.org/details/altavista-preloaded_squashfs">Altavista Pre-Loaded (squashfs)</a>.  I found that you can just copy the databases into a new VM, as long as you keep the drive letters the same as your source.  So luckily, I had kept the OS on C:, installed AltaVista on D: with all the usenet posts on U:.  Even better, for those strapped for space, you don&#8217;t technically need the U: drive, if you just want to search.  Of course, you probably do want to look at them, <a href="https://virtuallyfun.com/2016/04/21/fun-with-apache-mod_proxy-mod_rewrite-stunnel-and-altavista-personal-search/" target="_blank" rel="noreferrer noopener">but we&#8217;ve gone down this road before</a>.  And we know where it leads.</p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2014/10/Screen-Shot-2014-10-29-at-10.06.14-PM.png" alt="" class="wp-image-4698"/><figcaption class="wp-element-caption">Index All the things!</figcaption></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Squeezing the bytes out of webhosting &#038; Linux with SquashFS &#038; Overlay</title>
		<link>https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/</link>
					<comments>https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 11 Jun 2024 08:50:42 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14529</guid>

					<description><![CDATA[It&#8217;s a problem that we will all face sooner or later in shared environments, running out of disk space. Back in the old days we would just run stacker and be done with it, but what on earth can we &#8230; <a href="https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        29G   27G  2.1G  93% /</code></pre>



<p class="wp-block-paragraph">It&#8217;s a problem that we will all face sooner or later in shared environments, running out of disk space.  Back in the old days we would just run stacker and be done with it, but what on earth can we do in this modern age?</p>



<p class="wp-block-paragraph">Well, there is squashfs which is great at creating ultra-compressed read-only filesystems!  Well, that is great, but it is READ-ONLY after all, so that is going to suck right?  Well thanks to the magic of file system overlays, we can compress our website, and get the much-needed COW (Copy on Write) to another directory giving us the best of both worlds.  It&#8217;s a common thing in many live CD&#8217;s or any seemingly appliance-based OS where you have a hardened read-only OS core that a user cannot delete/infect but gives the appearance of allowing you to update files.  Well, that&#8217;s all nice but how do you do it manually?</p>



<p class="wp-block-paragraph">The first thing I did was shut down Apache so I could get a clean compress of my web document root:  mksquashfs is pretty easy to use, and in a few minutes of downtime I was able to create a read-only version of my blog&#8217;s filesystem.  (NOTE that this doesn&#8217;t include the database! so anyone wanting to quick &amp; easily archive WordPress, remember there is always more than just the files!).</p>



<pre class="wp-block-code"><code>root@ukweb:/srv/www/blog# mksquashfs . /usr/local/blog.sqshfs
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /usr/local/blog.sqshfs, block size 131072.
&#91;===================================================================================================-] 67497/67497 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments,
        compressed xattrs, compressed ids
        duplicates are removed
Filesystem size 4604333.36 Kbytes (4496.42 Mbytes)
        82.78% of uncompressed filesystem size (5562424.58 Kbytes)
Inode table size 480413 bytes (469.15 Kbytes)
        33.86% of uncompressed inode table size (1418977 bytes)
Directory table size 430607 bytes (420.51 Kbytes)
        32.31% of uncompressed directory table size (1332573 bytes)
Number of duplicate files found 519
Number of inodes 38856
Number of files 32640
Number of fragments 7872
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 6216
Number of ids (unique uids + gids) 2
Number of uids 2
        www-data (33)
        root (0)
Number of gids 2
        www-data (33)
        root (0)</code></pre>



<p class="wp-block-paragraph">Before compression the blog sat at 5.6GB worth of space.  After compressing, it now sits at 4.4GB.  Not that awesome, but not that bad either!  the blog.sqshfs file can be easily mounted on the command-line like this:</p>



<pre class="wp-block-code"><code>mount -o loop /usr/local/blog.sqshfs /srv/www/blog</code></pre>



<p class="wp-block-paragraph">And it mounted up just fine, and astonishingly the blog worked.  Although it being a read-only filesystem means that I cannot upload new content so all the media would be frozen in time, just as I would no-longer be able to make any updates to the pluggins or the software.</p>



<p class="wp-block-paragraph">Enter the overlayfs, which lets you specify an &#8216;upper&#8217; and &#8216;lower&#8217; level for your filesystem where you can have a read-only lower level, and a read-write upper level.  Perfect!</p>



<p class="wp-block-paragraph">I moved the blog read-only mount to /srv/www/blog-ro created a blog-tmp &amp; blog-rw directories as well and mounted up in overlay mode like this:</p>



<pre class="wp-block-code"><code>mount -t overlay -o lowerdir=/srv/www/blog-ro,upperdir=/srv/www/blog-rw,workdir=/srv/www/blog-tmp overlay /srv/www/blog</code></pre>



<p class="wp-block-paragraph">You&#8217;ll notice that despite all the documentation mentioning overlayfs, along with all the posts, as of Linux 5.15 it&#8217;s now called overlay.</p>



<pre class="wp-block-code"><code>root@ukweb:/lib/modules/5.15.0-101-generic/kernel/fs/overlayfs# ls<br>overlay.ko</code></pre>



<p class="wp-block-paragraph">At least that was easy enough to find.</p>



<p class="wp-block-paragraph">But you might say, THATS ALL MANUAL!  How on earth are you going to deal with a reboot? rc.local?!</p>



<p class="wp-block-paragraph">Well, you <em>could</em> but /etc/fstab is much easier!</p>



<pre class="wp-block-code"><code>/usr/local/blog.sqshfs /srv/www/blog-ro squashfs ro,defaults 0 0
overlay /srv/www/blog overlay defaults,lowerdir=/srv/www/blog-ro,upperdir=/srv/www/blog-rw,workdir=/srv/www/blog-tmp 0 2</code></pre>



<p class="wp-block-paragraph">And just like that, I now have a read-only version of the blog data, in a single easy to backup file, along with writes going to a much more manageable directory for updates.</p>



<p class="wp-block-paragraph">I guess I should add that for sites that use caching, you&#8217;ll want to purge the wp-content/cache directory as it&#8217;ll become stale, and there really is no point having a read only version of the chache.</p>



<p class="wp-block-paragraph">If you can see this, then clearly the site is working!</p>



<p class="wp-block-paragraph"><strong>**UPDATE</strong></p>



<p class="wp-block-paragraph">So I do have a qemu image piggy-backing on my VPS that runs the <a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">Apache on NT 3.1 (superglobalmegacorp.com)</a> site.  It&#8217;s not very complicated, just NT 3.1 with my terrible <a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">apache</a> site.  Content doesn&#8217;t change, it&#8217;s a &#8220;just because I can&#8221; thing.</p>



<p class="wp-block-paragraph">So you can happily shut down the VM, and in this case I&#8217;m using VMDK&#8217;s but it really doesn&#8217;t matter, I just like having a more neutral container if I want to move stuff around.  Just squash the VMDK by itself into a new squash fs file:</p>



<pre class="wp-block-code"><code># mksquashfs nt31as.vmdk /usr/local/vmdk/NT31_AdvancedServer.vmdk.squashfs
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /usr/local/vmdk/NT31_AdvancedServer.vmdk.squashfs, block size 131072.
&#91;=====================================================================================================-] 1390/1390 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments,
        compressed xattrs, compressed ids
        duplicates are removed
Filesystem size 72383.38 Kbytes (70.69 Mbytes)
        40.68% of uncompressed filesystem size (177925.66 Kbytes)
Inode table size 3918 bytes (3.83 Kbytes)
        69.64% of uncompressed inode table size (5626 bytes)
Directory table size 31 bytes (0.03 Kbytes)
        93.94% of uncompressed directory table size (33 bytes)
Number of duplicate files found 0
Number of inodes 2
Number of files 1
Number of fragments 0
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of ids (unique uids + gids) 1
Number of uids 1
        root (0)
Number of gids 1
        root (0)</code></pre>



<p class="wp-block-paragraph">The disk image went from 174MB to 71MB.  Not bad!</p>



<p class="wp-block-paragraph">Next, setup a mount point in /etc/fstab</p>



<pre class="wp-block-code"><code>/usr/local/sqshfs/NT31_AdvancedServer.vmdk.squashfs /usr/local/vmdk/NT31_AdvancedServer squashfs ro,defaults 0 0</code></pre>



<p class="wp-block-paragraph">Now we create the backing file to point to the original VMDK where all write operations will take place.  And of course this means that the site can be reverted very quickly if something goes wrong.</p>



<pre class="wp-block-code"><code>qemu-img create -f vmdk -b /usr/local/vmdk/NT31_AdvancedServer/nt31as.vmdk -F vmdk nt31as.vmdk</code></pre>



<figure class="wp-block-image size-full"><a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2.png" alt="" class="wp-image-14538" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></a><figcaption class="wp-element-caption">Windows NT 3.1 with compressed backing store VMDK</figcaption></figure>



<p class="wp-block-paragraph">And just like that, we&#8217;ve now up and running!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rebuilding Darwin from source: Part 2 Building the kernel</title>
		<link>https://virtuallyfun.com/2024/04/23/rebuilding-darwin-from-source-part-2-building-the-kernel/</link>
					<comments>https://virtuallyfun.com/2024/04/23/rebuilding-darwin-from-source-part-2-building-the-kernel/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 23 Apr 2024 23:16:16 +0000</pubDate>
				<category><![CDATA[Darwin]]></category>
		<category><![CDATA[disk images]]></category>
		<category><![CDATA[NeXTSTEP]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14358</guid>

					<description><![CDATA[Re-creating the steps from 7 years ago the first phase was to build the Darwin kernel. Like everything else, once you know what is involved, it&#8217;s not all that difficult. But as always finding out the steps to get there &#8230; <a href="https://virtuallyfun.com/2024/04/23/rebuilding-darwin-from-source-part-2-building-the-kernel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Re-creating the steps from 7 years ago the first phase was to build the Darwin kernel.  Like everything else, once you know what is involved, it&#8217;s not all that difficult. But as always finding out the steps to get there is half the fun!</p>



<p class="wp-block-paragraph">I&#8217;m going to assume if you want to follow along, that you&#8217;ve completed the <a href="https://virtuallyfun.com/2024/04/22/rebuilding-darwin-from-source-part-1-qemu/" target="_blank" rel="noreferrer noopener">first part of this exercise</a>, and you have a Rhapsody DR 2 system up and running.  Due to some issues I&#8217;ve had with creating a lot of files &amp; filesystem corruption, we are going to create and add two more disks to the system. On Qemu we need to add them via the CLI:</p>



<pre class="wp-block-code"><code>qemu-img create -f vmdk source.vmdk 8G<br>qemu-img create -f vmdk scratch.vmdk 8G</code></pre>



<p class="wp-block-paragraph">Adding them to the command line gives us something like this:</p>



<pre class="wp-block-code"><code>qemu -L pc-bios -m 512 ^
-k en-us ^
-rhapsodymouse ^
-hda rhapsody.vmdk ^
-hdb source.vmdk ^
-hdd scratch.vmdk ^
-cdrom darwin-builder-04-23-2024.iso ^
-fda nic.flp ^
-net nic,model=ne2k_pci,vlan=1 ^
-net socket,udp=127.0.0.1:5001,remote=127.0.0.1:5000,vlan=1 ^
-boot c ^
%1 %2 %3 %4 %5 %6 %7</code></pre>



<p class="wp-block-paragraph">Additionally you&#8217;ll also need to download the current &#8216;darwin builder&#8217; ISO that I&#8217;ve put up on <a href="https://sourceforge.net/projects/aapl-darwin/files/Revived/" target="_blank" rel="noreferrer noopener">sourceforge</a>. As of today it is <a href="https://sourceforge.net/projects/aapl-darwin/files/Revived/darwin-builder-04-23-2024.iso/download" target="_blank" rel="noreferrer noopener">darwin-builder-04-23-2024.iso</a></p>



<p class="wp-block-paragraph">Step one is to boot into single user mode.  As we need to prep &amp; format the disks under Darwin before the system starts up.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="722" height="427" src="/wp-content/uploads/2024/04/rhapsody-phase1-01.png" alt="" class="wp-image-14359" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-01.png 722w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-01-300x177.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-01-500x296.png 500w" sizes="auto, (max-width: 722px) 100vw, 722px" /></figure>



<p class="wp-block-paragraph">We need to check the hard disk, and then create the device names for the third hard disk.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="507" src="/wp-content/uploads/2024/04/rhapsody-phase1-02.png" alt="" class="wp-image-14360" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-02.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-02-300x237.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-02-380x300.png 380w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<pre class="wp-block-code"><code>fsck -y /dev/rhd0a
mount -w /
cd /dev
./MAKEDEV hd2</code></pre>



<p class="wp-block-paragraph">Now we need to run the &#8216;disk&#8217; command which will abstract the whole volume creation.  There are numerous flags, but we don&#8217;t need all that many.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="507" src="/wp-content/uploads/2024/04/rhapsody-phase1-03.png" alt="" class="wp-image-14361" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-03.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-03-300x237.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-03-380x300.png 380w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<pre class="wp-block-code"><code>disk -i -l 'src' /dev/rhd1a<br>disk -i -l 'scratch' /dev/rhd2a</code></pre>



<p class="wp-block-paragraph">The output scrolls off the screen, so I didn&#8217;t capture it, but you&#8217;ll see all the inodes being created, it&#8217;s a lot of output!</p>



<p class="wp-block-paragraph">With the disks created, we can now shut down the VM</p>



<pre class="wp-block-code"><code>shutdown -h now</code></pre>



<p class="wp-block-paragraph">and then restart Qemu, and let it boot up normally.  We&#8217;ll get to the login screen, login as the root user.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="627" src="/wp-content/uploads/2024/04/rhapsody-phase1-04.png" alt="" class="wp-image-14362" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-04.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-04-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-04-768x600.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-04-384x300.png 384w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>



<p class="wp-block-paragraph">The first thing I&#8217;d recommend is to drag the Terminal.app from /System/Administration to the desktop to make it easier to get to.  Rhapsody, unlike NeXTSTEP &amp; OPENSTEP doesn&#8217;t have any dock, as the goal back then was to make Rhapsody look and feel more like Platinum MacOS.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="627" src="/wp-content/uploads/2024/04/rhapsody-phase1-05.png" alt="" class="wp-image-14363" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-05.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-05-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-05-768x600.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-05-384x300.png 384w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>



<p class="wp-block-paragraph">The next thing to do is to make the system very insecure by allowing remote root logins.  It&#8217;s just easier to deal with.  You could use sed or just copy the one I provided from the CD-ROM.  </p>



<pre class="wp-block-code"><code>cp /source/ttys /etc</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="627" src="/wp-content/uploads/2024/04/rhapsody-phase1-06.png" alt="" class="wp-image-14364" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-06.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-06-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-06-768x600.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-phase1-06-384x300.png 384w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>



<p class="wp-block-paragraph">And with that in place, its easy enough to telnet into the VM so you can copy/paste stuff in and out with ease!</p>



<p class="wp-block-paragraph">You should now be able to verify that all 3 disks are mounted:</p>



<pre class="wp-block-code"><code># mount | grep hd.a
/dev/hd0a on / (local)
/dev/hd1a on /src (local)
/dev/hd2a on /scratch (local)</code></pre>



<p class="wp-block-paragraph">From here it should be very simple to kick off the build process:</p>



<pre class="wp-block-code"><code>/source/phase1.sh</code></pre>



<p class="wp-block-paragraph">And this will kick off the build, recreating all the fun steps I&#8217;d gone through so many years ago.  These projects now are building in the following order:</p>



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



<li>driverkit-139.1-1</li>



<li>cc-798</li>



<li>bootstrap_cmds-1</li>



<li>objc-1</li>
</ul>



<p class="wp-block-paragraph">The first phase of the script will unpack both the kernel &amp; driverkit and install their respective header files into the OS.  NeXT a bunch of symlinks are created to link the system to the driverkit.  Next I decided to build the ObjectiveC compiler from 10.0, hoping it&#8217;s more bugfixed and slightly more optimized than what was available back in 1999.  Building the compiler is a little involved, as a good GCC tradition is to be cross compiled first, then re-compile itself with itself, then do that again and verify that the 3rd recompile outputs the same as the second one.  Yes it&#8217;s a thing. Yes it&#8217;s slow.  Yes you are lucky to live in the future, this was really painful back in the day.</p>



<p class="wp-block-paragraph">With the kernel compiled, we can then compile the bootstrap commands, and the objectiveC runtime that is used by the kernel.  Nothing too exciting here.</p>



<p class="wp-block-paragraph">DriverKit however&#8230;.</p>



<p class="wp-block-paragraph">The PCMCIA code was not included in any of the 0.x Darwins, so for laptop enthusiasts you are basically SOL.  As a matter of fact, a lot of weird stuff was pruned out, that either could be &#8216;touched&#8217; or borrowed from the PowerPC port and massaged into place.  Luckily I had at least figured out a simple fix for PCIKernBus.h so at least PCI works.</p>



<p class="wp-block-paragraph">Likewise for the kernel, there was some guessing on the EISA config, which also overlaps ISA, along with having to remove the PCMCIA cardbus .. bus.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="644" height="507" src="/wp-content/uploads/2024/04/rhapsody-apm-crash.png" alt="" class="wp-image-14371" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-apm-crash.png 644w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-apm-crash-300x236.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-apm-crash-381x300.png 381w" sizes="auto, (max-width: 644px) 100vw, 644px" /><figcaption class="wp-element-caption">APM crash</figcaption></figure>



<p class="wp-block-paragraph">I had issues with the APM (Advanced Power Management), another laptopisim I suspect. I had to amputate that.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://github.com/neozeed/Darwin_0.1/blob/e02df2480e6e5b0193fdce53f6431f892c09878c/kernel/machdep/i386/i386_init.c#L281"><img loading="lazy" decoding="async" width="447" height="240" src="/wp-content/uploads/2024/04/cpu-detect-is-a-hack.png" alt="" class="wp-image-14392" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/cpu-detect-is-a-hack.png 447w, https://virtuallyfun.com/wp-content/uploads/2024/04/cpu-detect-is-a-hack-300x161.png 300w" sizes="auto, (max-width: 447px) 100vw, 447px" /></a><figcaption class="wp-element-caption">for testing purposes</figcaption></figure>
</div>


<p class="wp-block-paragraph">Naturally the cpuid code is broken much like early NT (I wonder if both were contributed by intel?), so it doesn&#8217;t detect any half way modern Pentium processors correctly which causes it to fall all the way back to the i386, which unfortunately, Rhapsody is compiled as 486 (remember NeXTSTEP had fat binaries allowing you to recompile for different processors and ship a single binary that can be &#8216;lipo&#8217;d into the appropriate one for the host).  So being degraded to a 386 means nothing works.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="644" height="507" src="/wp-content/uploads/2024/04/rhapsody-bad-cpu-type.png" alt="" class="wp-image-14372" srcset="https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-bad-cpu-type.png 644w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-bad-cpu-type-300x236.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/04/rhapsody-bad-cpu-type-381x300.png 381w" sizes="auto, (max-width: 644px) 100vw, 644px" /><figcaption class="wp-element-caption">bad CPU type in library!</figcaption></figure>



<p class="wp-block-paragraph">yay.</p>



<p class="wp-block-paragraph">Luckily patching the cpuid was pretty simple just force it always to be a Pentium.  It is 1999 afterall.</p>



<p class="wp-block-paragraph">I&#8217;ve done my best to make this a single script to run, and all being well you&#8217;ll get something that looks like errors, but it should be fine?!</p>



<pre class="wp-block-code"><code>System/Library/Frameworks/System.framework/Versions/B/Headers/bsd/i386/table.h
System/Library/Frameworks/System.framework/Versions/B/Headers/bsd/i386/types.h
System/Library/Frameworks/System.framework/Versions/B/Headers/bsd/i386/user.h
System/Library/Frameworks/System.framework/Versions/B/Headers/bsd/i386/vmparam.h
private/
private/dev/
private/dev/MAKEDEV
private/tftpboot/
private/tftpboot/mach_kernel
mach_kernel
tar: private/dev: Could not change access and modification times: Permission denied
tar: private/dev: Cannot change mode to 0755: Permission denied
tar: private/dev: Cannot chown to uid 0 gid 0: Permission denied
tar: Error exit delayed from previous errors</code></pre>



<p class="wp-block-paragraph">A quick look around shows that there is tgz files indicating that things have been compiled.  I did backup the old original kernel as &#8220;rhapsody-gcc.tgz&#8221; in case you ever need it.  Can&#8217;t imagine why but who knows?</p>



<pre class="wp-block-code"><code>qemu:13# ls -l /usr/src/*.tgz
-rw-r--r--  1 root  wheel   173706 Apr 23 15:25 /usr/src/bootstrap_cmds.bin.tgz
-rw-r--r--  1 root  wheel  2184460 Apr 23 15:33 /usr/src/cc-798-bin.tgz
-rw-r--r--  1 root  wheel  2747289 Apr 23 15:36 /usr/src/driverkit-kern-bin.tgz
-rw-r--r--  1 root  wheel  1264957 Apr 23 15:26 /usr/src/kernel-driverkit-hdrs.tgz
-rw-r--r--  1 root  wheel   116343 Apr 23 15:26 /usr/src/objc-bin.tgz
-rw-r--r--  1 root  wheel  2173005 Apr 23 15:26 /usr/src/rhapsody-gcc.tgz
qemu:14# ls -l /mach_kernel*
-r--r--r--  2 root  wheel  1459520 Apr 23 15:36 /mach_kernel
-r--r--r--  1 root  wheel  1404116 Apr 23 15:38 /mach_kernel-rhapsody</code></pre>



<p class="wp-block-paragraph">You should now be able to reboot into the kernel that you&#8217;d compiled!</p>



<p class="wp-block-paragraph"><a href="/2024/04/24/rebuilding-darwin-from-source-part-3-debian-makes-the-world-go-round/" target="_blank" rel="noreferrer noopener">Next up is Phase 2</a>, where we compile the tools to enter the dark magic that is the Debian build system. Yes, you read that right, Apple/NeXT was all in on Debian.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/04/23/rebuilding-darwin-from-source-part-2-building-the-kernel/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>An actual look at Microsoft OS/2 2.0</title>
		<link>https://virtuallyfun.com/2024/02/26/an-actual-look-at-microsoft-os-2-2-0/</link>
					<comments>https://virtuallyfun.com/2024/02/26/an-actual-look-at-microsoft-os-2-2-0/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 26 Feb 2024 16:43:04 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[OS/2]]></category>
		<category><![CDATA[OS/2 2.0]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14034</guid>

					<description><![CDATA[Years ago, feeling nostalgic, I had written a quick throw away thing about the old article from&#160;PC Magazine, 29th of May, 1990, detailing the coming future of Operating Systems, Microsoft OS/2 2.0. 14 year old me was blown away! This &#8230; <a href="https://virtuallyfun.com/2024/02/26/an-actual-look-at-microsoft-os-2-2-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://virtuallyfun.com/2014/05/09/a-sneak-peak-at-microsoft-os2-2-0/" target="_blank" rel="noreferrer noopener">Years ago, feeling nostalgic</a>, I had written a quick throw away thing about the old article from&nbsp;<a href="https://books.google.com.hk/books?id=FK9cQfDtQZkC&amp;lpg=PP1&amp;pg=PT391#v=onepage&amp;q&amp;f=false">PC Magazine, 29th of May, 1990</a>, detailing the coming future of Operating Systems, Microsoft OS/2 2.0.  14 year old me was blown away!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2014/05/Microsoft-OS2-2.0-beta.jpg" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="480" src="/wp-content/uploads/2024/02/Monitor_1_20240226-120629-903.png" alt="" class="wp-image-14038" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/Monitor_1_20240226-120629-903.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/02/Monitor_1_20240226-120629-903-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/Monitor_1_20240226-120629-903-400x300.png 400w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">614KB Free!  And Flight Simulator 4 in a window</figcaption></figure>



<p class="wp-block-paragraph">This release marks the last time that Microsoft would release an OS/2 beta to developers, instead with the runaway success of Windows 3.0, Microsoft would remove resources from the constrained OS/2, and refocus both on Windows 3.1, and Windows NT.</p>



<p class="wp-block-paragraph">Thanks to one of my <a href="https://www.patreon.com/virtuallyfun" target="_blank" rel="noreferrer noopener">Patrons</a> &#8211; Brian Ledbetter, the much-sought Microsoft OS/2 2.0 Pre-Release 2 is now available!  So obviously the first thing to do was to re-create the original magical screenshot.</p>



<p class="wp-block-paragraph">One thing of note is that thanks to some of the metadata left at the end of the disks we know when this disk set was made:</p>



<pre class="wp-block-code"><code>$FTIME = Wed Jun 22 09:00:56 1988
$DTIME = Tue Aug 15 07:48:10 1989
$PCTIME = Thu Apr 27 11:51:54 1989
$FREV = Wed May 31 09:17:24 1989
$DUP TIME = Fri Jul 13 16:02:27 1990</code></pre>



<p class="wp-block-paragraph">Given that the PC Magazine issue was published in May of 1990, it showcased version 6.43, shipped to devs early January of 1990, and timestamped 20/12/1989. I would speculate that it&#8217;s the Pre-Release 1.  </p>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1.jpg" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="683" src="/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1-1024x683.jpg" alt="" class="wp-image-14040" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1-1024x683.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1-300x200.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1-768x512.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1-1536x1024.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1-450x300.jpg 450w, https://virtuallyfun.com/wp-content/uploads/2024/02/Artistic-OS2-20-Pre-Release-2-SDK-artistic-scaled-1.jpg 1980w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">The OS/2 Software Development Kit</figcaption></figure>



<p class="wp-block-paragraph">This Pre-Release 2 set was made in July with the files being timestamped 01/06/1990, so physical releases every 6 months?  I guess that makes sense when you look at how many disks have to be duplicated, boxed up and sent out.  It&#8217;s one big win for digital downloads, or how Windows 10/11 can background download updates, or even entire OS updates (that are more like new installs) today.  Mailing big heavy boxes must have sucked.  And dealing with lost/damaged disks.  Also as you can see on the box, it only contains 5 1/4&#8243; disks, they didn&#8217;t even ship dual media.</p>



<p class="wp-block-paragraph">Maybe the large box is a reaction to the first Pre-Release&#8217;s 16 disks &amp; a few photocopied sheets mere 10oz.  Maybe people were displeased that they didn&#8217;t get much printed &#8216;bang&#8217; for their $2,600 &#8211; the price of the 2.0 SDK.</p>



<p class="wp-block-paragraph">The disks were dumped with <a href="https://archive.org/details/msos-2-2.0-pr-2-_5_1-4_kflux" target="_blank" rel="noreferrer noopener">Kyroflux</a>, and on several of the disks there is extra trailing information on the disks revealing data from when they were manufactured:</p>



<pre class="wp-block-code"><code>$TRACEBACK (tm) Ver 1.04
$OPER = operator
$STATION = 1
$STN LIST = 1 3 5 7 11 13 15 17 19
$WORKORDER = -1
$SYSTEM = 7
$PRODUCT = z:/product/110098449.p
$PTIME = ???
$FORMAT = /format/fmt12.f
$FTIME = Wed Jun 22 09:00:56 1988
$DRIVE = /drive/3xhd96sdsmt.d
$DTIME = Tue Aug 15 07:48:10 1989
$MODULE = /config/3xhdSDSmt.s
$MTIME = ???
$WINDOW MARGIN = 87.5%
$RETRY SETTINGS = 3,2,25
$FUNCTION = write/verify
$PRECOMP = /precomp/3xhdSDS.t
$PCTIME = Thu Apr 27 11:51:54 1989
$FREV = Wed May 31 09:17:24 1989
$DRIVESN =
$LOADERSN = 525-100-70
$DFCSN = 3402 SDSFC
$USTRING =
$TSTRING = TraceBack (tm)   (c) 1989 Trace Products All Rights Reserved.
$DUP TIME = Fri Jul 13 16:02:27 1990
$DISK NUMBER =  22 of 45
$SN = NONE</code></pre>



<p class="wp-block-paragraph">That&#8217;s right, this disk (Install 1) was manufactured on Friday the 13th!</p>



<p class="wp-block-paragraph">Running strings against the DOSKRNL reveals this string:</p>



<pre class="wp-block-code"><code>MS DOS Version 4.00 (C)Copyright 1988 Microsoft CorpLicensed Material - Property of Microsoft</code></pre>



<p class="wp-block-paragraph">Not only is it a new OS/2, but a new MS-DOS!  Neat!</p>



<pre class="wp-block-code"><code> APPEND.EXE
 ASSIGN.COM
 COMMAND.COM
 EDLIN.COM
 GRAFTABL.COM
 JOIN.EXE
 SETCOM40.EXE
 SUBST.EXE</code></pre>



<p class="wp-block-paragraph">This is *<strong>NOT</strong>* a comprehensive version of MS-DOS 4.0.  Then again anything to do with disks, you should be using OS/2.  It&#8217;s more so commands needed for working inside the virtual MS-DOS environment.  And yes, it doesn&#8217;t include any basic.</p>



<p class="wp-block-paragraph">There is built in support for EMS, and there is an XMS driver, but it&#8217;s not activated by default.  I didn&#8217;t bother trying Windows 3.0, but I did install Word for Windows, which has a runtime version of Windows 2.11</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="708" height="352" src="/wp-content/uploads/2024/02/WinWord-1.0-on-MSOS2.png" alt="" class="wp-image-14049" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/WinWord-1.0-on-MSOS2.png 708w, https://virtuallyfun.com/wp-content/uploads/2024/02/WinWord-1.0-on-MSOS2-300x149.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/WinWord-1.0-on-MSOS2-500x249.png 500w" sizes="auto, (max-width: 708px) 100vw, 708px" /><figcaption class="wp-element-caption">Windows 2.11 Runtime on OS/2</figcaption></figure>



<p class="wp-block-paragraph">Trying to run the windows executable directly gives a weird error:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="511" height="263" src="/wp-content/uploads/2024/02/SYS_0195-errors-for-running-windows-2x-apps.png" alt="" class="wp-image-14050" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/SYS_0195-errors-for-running-windows-2x-apps.png 511w, https://virtuallyfun.com/wp-content/uploads/2024/02/SYS_0195-errors-for-running-windows-2x-apps-300x154.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/SYS_0195-errors-for-running-windows-2x-apps-500x257.png 500w" sizes="auto, (max-width: 511px) 100vw, 511px" /><figcaption class="wp-element-caption">SYS0195: The operating system cannot run %1.</figcaption></figure>
</div>


<p class="wp-block-paragraph">I went ahead and installed WLO, or the Windows Libraries for OS/2, and some things do run, and many more hang the system.  I think its an issue in PM, and CAD (Control+Alt+Delete) does reboot the system.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/02/Monitor_1_20240226-152709-401.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="480" src="/wp-content/uploads/2024/02/Monitor_1_20240226-152709-401.png" alt="" class="wp-image-14052" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/Monitor_1_20240226-152709-401.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/02/Monitor_1_20240226-152709-401-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/Monitor_1_20240226-152709-401-400x300.png 400w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">WLO on Microsoft OS/2</figcaption></figure>



<p class="wp-block-paragraph">It&#8217;s a shame Microsoft couldn&#8217;t get Windows as the UI to OS/2, it certainly would have had a far more viable lifetime.  I&#8217;ve ranted about it before but <a href="https://virtuallyfun.com/2024/02/24/everyone-has-a-theory-on-why-os-2-failed-and-here-is-mine-the-ps-2-model-60/" target="_blank" rel="noreferrer noopener">IBM&#8217;s insistance of supporting the 286, releasing a $6,000 286 in 1987</a> basically ensured early OS/2 was facing the wrong direction technically, and by ignoring the existing Windows stack, it just delayed OS/2 being useful from the get-go.</p>



<p class="wp-block-paragraph">Anyways&#8230;..</p>



<p class="wp-block-paragraph">And running strings against the OS2KRNL reveals:</p>



<pre class="wp-block-code"><code>Copyright 1986 IBM Corp.
Internal revision 6.78, 90/05/09</code></pre>



<p class="wp-block-paragraph">And to further muddle the waters:</p>



<pre class="wp-block-code"><code>@(#)ldrste.c    13.125 90/05/09
@(#)ldrfixup.c  13.43 90/05/09
@(#)ldrsubr.c   13.116 90/05/09
@(#)pgset.c     13.64 90/05/01
@(#)selmgrc.c 13.76 90/05/01
@(#)vmalias.c   13.48  90/05/01
@(#)vmalloc.c   13.71 90/05/01
@(#)vmapi.c          13.50 90/05/07
@(#)vmfree.c    13.89 90/05/01
@(#)vminfo.c         13.33 90/05/01
@(#)vminit.c    13.60 90/05/01
@(#)vmshared.c 13.41 90/05/01
@(#)selkh.c 13.14 90/05/01
@(#)tklibi.c 13.42 90/05/09
@(#)inidin2.asm 1.86 90/04/27
@(#)selinit.asm 13.51 90/05/09
@(#)ldrinita.asm        13.47 90/05/09
@(#)selwrk.asm 13.51 90/05/07
@(#)vdmaa.asm         13.54 90/04/27
@(#)trap.asm    1.82 90/05/04
@(#)trap286.asm 13.43 90/05/04</code></pre>



<p class="wp-block-paragraph">If you were ever wondering what the names of the source was, here is the .c &amp; assembly:</p>



<pre class="wp-block-code"><code>dbgee.c
dbger.c
dbgwp.c
dem.c
dyndto.c
dyndtr.c
em86.c
except.c
ldrgc.c
ldrinit.c
ldrmte.c
pgage.c
pgalloc.c
pgfault.c
pgframe.c
pginit.c
pgmap.c
selini.c
semalloc.c
seminout.c
semtools.c
semverif.c
semwrkr.c
smalloc.c
smsft.c
tkinit.c
tksleep.c
tkthrd.c
vdmapi.c
vdmctrl.c
vdmm.c
vdmmasrt.c
vdmmcrt.c
vdmmem.c
vdmmheap.c
vdmmisc.c
vdmpage.c
vdmprop.c
vdmtime.c
vmbmp32.c
vmdevhlp.c
vmkrh.c
vmksh.c
vmlocate.c
vmlock.c
vmob.c
----
demfile2.asm
demioc2.asm
demnls.asm
dhrouter.asm
dynci.asm
dyndtra.asm
em86io.asm
em86misc.asm
fsinfo.asm
gshare.asm
int.asm
kmodea.asm
ldrrsrc.asm
ldrrun.asm
monhigh.asm
npx.asm
pageio.asm
pga.asm
selmap.asm
selmgra.asm
selseg.asm
sftio.asm
sicg.asm
sig.asm
tkexit1.asm
tkmisc.asm
tkwksem.asm
vdhserv.asm
vmmisc.asm
vmname.asm</code></pre>



<p class="wp-block-paragraph">Neat!</p>



<p class="wp-block-paragraph">I would imagine a lot of the v86 mode virtual device drivers came from Windows/386.  But it looks like these were all written in C? Running strings against all the virtual device drivers reveals all C?  I got zero hits for .asm</p>



<pre class="wp-block-code"><code>emm.c
emm1.c
emm2.c
emmctrl.c
vbios.c
vcmos.c
vcmosio.c
vdma.c
vdsk.c
vdskint.c
vdskio.c
vkbd.c
vkbdint.c
vkbdio.c
vkbdreq.c
vmbound.c
vmdevrq.c
vmevent.c
vmhook.c
vminit.c
vmlpen.c
vmmisc.c
vmpos.c
vmptr.c
vmrate.c
vmreset.c
vmstate.c
vmuser.c
vpic.c
vtd.c
vtdint.c
vtdio.c
vtdreq.c
xmm.c
xmmctrl.c</code></pre>



<p class="wp-block-paragraph">It&#8217;s not like any of this is ever going to see the light of day, but it&#8217;s all interesting, at least to me.</p>



<p class="wp-block-paragraph">Let&#8217;s install!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Setting up Microsoft OS/2 Pre-Release 2 build 6.78 (and compiling)" width="584" height="438" src="https://www.youtube.com/embed/jUFJ0GKJdDI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">Installing Microsoft OS/2 2.0 Beta on VMware</figcaption></figure>



<p class="wp-block-paragraph">I&#8217;ll have to update where I had found this, if it was the electronic documentation, or the one time I got to go through the printed documentation that the Microsoft version was adding True Type Fonts.  Sadly I can&#8217;t find any evidence in the binaries.</p>



<pre class="wp-block-code"><code>OS/2 System Monospace Fonts
OS/2 Courier Fonts, (c) Copyright 1988 Microsoft Corp., Portions Copyright 1985 Bitstream, Inc.
OS/2 Helvetica Fonts, (c) Copyright 1988 Microsoft Corp., Portions Copyright 1985 Bitstream, Inc.
OS/2 Times Roman Fonts, (c) Copyright 1988 Microsoft Corp., Portions Copyright 1985 Bitstream, Inc.

  "PM_Fonts"           "SYSMONO"            "C:\OS2\DLL\SYSMONO.FON"
  "PM_Fonts"           "COURIER"            "C:\OS2\DLL\COURIER.FON"
  "PM_Fonts"           "HELV"               "C:\OS2\DLL\HELV.FON"
  "PM_Fonts"           "TIMES"              "C:\OS2\DLL\TIMES.FON"</code></pre>



<p class="wp-block-paragraph">Well, that&#8217;s sad.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="738" height="197" src="/wp-content/uploads/2024/02/no-vio.png" alt="No VIO for you!" class="wp-image-13991" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/no-vio.png 738w, https://virtuallyfun.com/wp-content/uploads/2024/02/no-vio-300x80.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/no-vio-500x133.png 500w" sizes="auto, (max-width: 738px) 100vw, 738px" /><figcaption class="wp-element-caption">No VIO access from 32bit</figcaption></figure>



<p class="wp-block-paragraph">As I had touched on <a href="https://virtuallyfun.com/2024/02/23/porting-sarien-to-os-2-presentation-manager/" target="_blank" rel="noreferrer noopener">earlier</a>, These early OS/2&#8217;s have no user accessible way to call the legacy 16bit OS/2 API&#8217;s.  At best you have simple text mode stuff, anything graphical, you need to port to Presentation Manager.</p>



<p class="wp-block-paragraph">I was able to take <a href="https://virtuallyfun.com/2024/02/10/porting-gcc-to-32bit-os-2/" target="_blank" rel="noreferrer noopener">the GCC port</a> I did to OS/2 and <a href="https://archive.org/details/os2_gcc_objects_10_2_2024" target="_blank" rel="noreferrer noopener">re-link the objects</a> ,and I was correct, it ran without any changes!  I had compiled it using the December 1991 Windows NT Pre-Release&#8217;s CL386 compiler.  So far so good.</p>



<p class="wp-block-paragraph">I tried to use the 1991 compiler to build <a href="https://github.com/neozeed/sarienPM" target="_blank" rel="noreferrer noopener">Sarien</a>, and it instantly crashes.  I also tried building everything but the Presentation Manager with GCC, and again instant crash.  I was able to use the <a href="https://archive.org/details/os2ddk1.2" target="_blank" rel="noreferrer noopener">OS/2 2.1 v1.2 DDK</a>, and get a working EXE, even using /Ox (maximum optimisations!).  Clearly there is something fundamentally missing or I&#8217;m missing something fundamental.</p>



<p class="wp-block-paragraph">While there is a HPFS installable filesystem, there is no CD-ROM IFS.  Running strings against HPFS reveals this much when looking for C. There was no hits for .asm</p>



<pre class="wp-block-code"><code>execioh.c: calling strat2 with PIOH=%p
execioh.c: returned from strat2 with PIOH=%p
qdiskop.c: entered, ioh=%p lsnStrt=%lu csec=%u pbData=%p
unlckio.c:entered, pioh=%p
unlckio.c:retheaping lock handle %p</code></pre>



<p class="wp-block-paragraph">Even more strange, is that HPFS for OS/2 was still 16bit.  I had hoped that even though this is a beta, that there would be a 32bit version of the filesystem.  Sadly that kind of feature was reserved for Lan Server installs.</p>



<pre class="wp-block-code"><code>HPFS.IFS: MS-DOS executable, NE for OS/2 1.x (DLL or font)</code></pre>



<p class="wp-block-paragraph">Could you imagine shipping a 32bit filesystem to home/low/middle tier users today?  Speaking of, let&#8217;s check the rest of the C:\OS2 binaries:</p>



<pre class="wp-block-code"><code>ANSI.EXE:     MS-DOS executable, NE for OS/2 1.x (EXE)
ATTRIB.EXE:   MS-DOS executable, NE for OS/2 1.x (EXE)
BACKUP.EXE:   MS-DOS executable, NE for OS/2 1.x (EXE)
CACHE.EXE:    MS-DOS executable, NE for OS/2 1.x (EXE)
CMD.EXE:      MS-DOS executable, NE for OS/2 1.x (EXE)
CREATEDD.EXE: MS-DOS executable, NE for OS/2 1.x (EXE)
E.EXE:        MS-DOS executable, NE for OS/2 1.x (EXE)
EAUTIL.EXE:   MS-DOS executable, NE for OS/2 1.x (EXE)
FDISKPM.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
FIND.EXE:     MS-DOS executable, NE for OS/2 1.x (EXE)
HELPMSG.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
MAKEINI.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
MOVESPL.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
PATCH.EXE:    MS-DOS executable, NE for OS/2 1.x (EXE)
PICICHG.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
PICPRINT.EXE: MS-DOS executable, NE for OS/2 1.x (EXE)
PICSHOW.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
PMCPL.EXE:    MS-DOS executable, LE executable
PMEXEC.EXE:   MS-DOS executable, LE executable
PMFILE.EXE:   MS-DOS executable, LE executable
PMSHELL.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
PMSPOOL.EXE:  MS-DOS executable, LE executable
PSTAT.EXE:    MS-DOS executable, NE for OS/2 1.x (EXE)
REPLACE.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
RESTORE.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
SORT.EXE:     MS-DOS executable, NE for OS/2 1.x (EXE)
SPOOL.EXE:    MS-DOS executable, NE for OS/2 1.x (EXE)
SYSLOG.EXE:   MS-DOS executable, NE for OS/2 1.x (EXE)
TRACE.EXE:    MS-DOS executable, LE executable
TRACEFMT.EXE: MS-DOS executable, NE for OS/2 1.x (EXE)
UNPACK.EXE:   MS-DOS executable, NE for OS/2 1.x (EXE)
VIEW.EXE:     MS-DOS executable, NE for OS/2 1.x (EXE)
VIEWDOC.EXE:  MS-DOS executable, NE for OS/2 1.x (EXE)
XCOPY.EXE:    MS-DOS executable, NE for OS/2 1.x (EXE)</code></pre>



<p class="wp-block-paragraph">The vast majority of them are 16bit.  The 32bit stuff is in the defunct LE format.  This is why nothing from the GA (General Availability) versions will ever run on these betas, and why I was trying to make stuff available as linkable objects.  And yes, my <a href="https://archive.org/details/sarien-pm-6.78" target="_blank" rel="noreferrer noopener">Sarien port</a> is LE:</p>



<pre class="wp-block-code"><code><a href="https://archive.org/details/sarien-pm-6.78" target="_blank" rel="noreferrer noopener">SARIEN.EXE</a>: MS-DOS executable, LE executable</code></pre>



<p class="wp-block-paragraph">There is a LAN client disk set, so I guess you were expected to just go across the LAN.</p>



<p class="wp-block-paragraph">The SDK &amp; Toolkit for this beta <a href="https://archive.org/details/msos2-200-sdk" target="_blank" rel="noreferrer noopener">have been around for a substantial time</a>.  The big difference is that we now have binary compatibility so we can run ALL the examples, namely the Open Dialog demo.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="568" src="/wp-content/uploads/2024/02/os2-6.78-open-dialog-1024x568.png" alt="" class="wp-image-14046" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/os2-6.78-open-dialog-1024x568.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/02/os2-6.78-open-dialog-300x166.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/os2-6.78-open-dialog-768x426.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/02/os2-6.78-open-dialog-500x277.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/02/os2-6.78-open-dialog.png 1123w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Open Dialog</figcaption></figure>



<p class="wp-block-paragraph">We take this kind of thing for granted today, common controls, but back in the early 1990&#8217;s this was a surprisingly lacking from many UI&#8217;s of the time.  Since these beta DLL&#8217;s use a different format, this won&#8217;t run on the later betas, let alone the release.  So, this is for those looking for secret hidden stuff.</p>



<p class="wp-block-paragraph">Is it usable though?  Well if your workload is OS/2 applications, ABSOLUTELY.  If you want to do cute stuff on MS-DOS.. It&#8217;s all YMMV, but traditional apps seem to behave pretty well.</p>



<p class="wp-block-paragraph">It&#8217;s a shame for some reason that overall, these early OS/2 2.0 betas were not all that wide spread, as they are just so interesting!  And compared to the GA version of OS/2 2.0 these ancient versions with the 1.x Presentation Manager do feel a lot faster.  Sometimes I miss the Workplace Shell, Other times I miss the old terrible Desktop Manager with its incredible simplification.</p>



<p class="wp-block-paragraph">For those just wanting to mess with the Operating System, it really is a developer&#8217;s release so it&#8217;s pretty spartan.  Sadly there is no XGA drivers in these early betas, there is 8514/a support but I had no luck with it.  I suspect it&#8217;s probably something I had done wrong.  I should also point out, if you are using 86Box, and are using a 486DX/Pentium be sure to enable the softfloat option.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/02/86box-fpu-corruption-on-MS-OS2.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="717" height="467" src="/wp-content/uploads/2024/02/86box-fpu-corruption-on-MS-OS2.png" alt="" class="wp-image-14054" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/86box-fpu-corruption-on-MS-OS2.png 717w, https://virtuallyfun.com/wp-content/uploads/2024/02/86box-fpu-corruption-on-MS-OS2-300x195.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/86box-fpu-corruption-on-MS-OS2-461x300.png 461w" sizes="auto, (max-width: 717px) 100vw, 717px" /></a><figcaption class="wp-element-caption">FPU passthru gives major issues with MS-DOS under OS/2</figcaption></figure>



<p class="wp-block-paragraph">Maybe a math co-processor really was a hidden requirement of these early OS/2 betas?  So, <a href="https://virtuallyfun.com/2023/11/12/dont-waste-money-on-a-math-coprocessor-they-said/" target="_blank" rel="noreferrer noopener">perhaps more confirmation that buying an 80387 was <em>NOT</em> a waste of money</a>.  I should also add that when trying to compile PHOON, I did have to use /FPi87 or inline 8087 instructions, otherwise instant crash.  I had thought it was a mixed FPU mode crashing the linking of GCC+MSC code but I tried a few combinations, none of them worked.</p>



<p class="wp-block-paragraph">Once more again, I want to thank my <a href="https://www.patreon.com/virtuallyfun" target="_blank" rel="noreferrer noopener">Patrons</a> for making this possible, and a big thanks to Brian Ledbetter for being so kind to preserve this incredibly rare, and historically significant software kit.</p>



<p class="wp-block-paragraph">I&#8217;ve made my <a href="https://archive.org/details/msos-2-6.78_vmware" target="_blank" rel="noreferrer noopener">VMware image available</a>, and <a href="https://archive.org/details/msos-2-6.78_86box" target="_blank" rel="noreferrer noopener">86box.</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/02/26/an-actual-look-at-microsoft-os-2-2-0/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>so I was excited to try this protoweb thing!</title>
		<link>https://virtuallyfun.com/2024/01/15/so-i-was-excited-to-try-this-protoweb-thing/</link>
					<comments>https://virtuallyfun.com/2024/01/15/so-i-was-excited-to-try-this-protoweb-thing/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 15 Jan 2024 12:42:23 +0000</pubDate>
				<category><![CDATA[cdroms]]></category>
		<category><![CDATA[disk images]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[videos]]></category>
		<category><![CDATA[weird video formats]]></category>
		<category><![CDATA[Windows RT]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13795</guid>

					<description><![CDATA[I saw this video and I was like sold! I have this PowerMac 6400/180 so I figured this would be good. The problem was my network card was acting up so I figured instead of troubleshooting it I’ll just format &#8230; <a href="https://virtuallyfun.com/2024/01/15/so-i-was-excited-to-try-this-protoweb-thing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Protoweb - Reviving the &#039;90s Internet! (Overview &amp; Demo)" width="584" height="329" src="https://www.youtube.com/embed/1FSd-XhGLqk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">mjd -protoweb </figcaption></figure>



<p class="wp-block-paragraph">I saw this video and I was like sold!  I have this PowerMac 6400/180 so I figured this would be good.  The problem was my network card was acting up so I figured instead of troubleshooting it I’ll just format it and go from there.</p>



<p class="wp-block-paragraph">the machine is very much an Old World Macintosh, so that limits me from OS X. It&#8217;s 603ev CPU it’s not all that advanced either. I have an 8.1 ISO that I’ve been using under 68k emulation but the limit it has is old multimedia stuff ins t 68k compatible as nobody would imagine emulation putting 68k at speeds above a gigahertz. </p>



<p class="wp-block-paragraph">I went looking for a 8.6 ISO, and that is where the fun hit me again that many so-called ISO images aren’t.  Rather they are giant floppy disk images with the media headers and/or partition tables being obliterated.  As an ISO they don&#8217;t detect at all, and as a giant floppy, of course they don&#8217;t boot <a href="https://virtuallyfun.com/2023/10/23/since-there-had-been-some-confusion-on-how-to-install-macos-9-on-os-x/" target="_blank" rel="noreferrer noopener">as MacOS checks if it is on read-only</a> media.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-scaled.jpeg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-1024x768.jpeg" alt="" class="wp-image-13793" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-1024x768.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-300x225.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-768x576.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-1536x1152.jpeg 1536w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-2048x1536.jpeg 2048w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0404-400x300.jpeg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">This ISO isn&#8217;t an ISO</figcaption></figure>



<p class="wp-block-paragraph">very annoying </p>



<p class="wp-block-paragraph">I did manage to finally find one that does work however!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-scaled.jpeg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-1024x768.jpeg" alt="" class="wp-image-13790" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-1024x768.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-300x225.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-768x576.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-1536x1152.jpeg 1536w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-2048x1536.jpeg 2048w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0400-400x300.jpeg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">working ISO</figcaption></figure>



<p class="wp-block-paragraph">I forgot where I found it though.  I did save it to archive.org, since I have another 5 versions of this downloaded, none of which will boot.  <a href="https://archive.org/details/mac-os-8.6-working-iso">https://archive.org/details/mac-os-8.6-working-iso</a></p>



<p class="wp-block-paragraph">I should also add the MacOS 8.1 CD-ROM image Ive been using as again,l I have the same issue where so many are headderless &#8216;floppies&#8217; and not actual CD-ROM&#8217;s that don&#8217;t work in <a href="https://sourceforge.net/projects/cockatrice/" target="_blank" rel="noreferrer noopener">Cockatrice III</a> or an actual Mac using <a href="https://virtuallyfun.com/2023/02/19/a-wild-macintosh-plus-appears/" target="_blank" rel="noreferrer noopener">BlueSCSI</a>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="556" src="https://virtuallyfun.com/wp-content/uploads/2024/01/MacOS-8.1-installer-on-Cockatrice-III-1024x556.png" alt="" class="wp-image-13803" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/MacOS-8.1-installer-on-Cockatrice-III-1024x556.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/MacOS-8.1-installer-on-Cockatrice-III-300x163.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/MacOS-8.1-installer-on-Cockatrice-III-768x417.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/MacOS-8.1-installer-on-Cockatrice-III-500x272.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/01/MacOS-8.1-installer-on-Cockatrice-III.png 1436w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">MacOS 8.1 CD-ROM on Cockatrice III</figcaption></figure>



<p class="wp-block-paragraph">Sorry the image shows in black &amp; white, but as you can see from the CD-ROM background it is in fact booted from the CD-ROM.  You can download it from here: <a href="https://archive.org/details/mac-os-8.1-iso_202401" target="_blank" rel="noreferrer noopener">https://archive.org/details/mac-os-8.1-iso_202401</a></p>



<p class="wp-block-paragraph">In no time, I was able to get online only to find that the power Mac plugin’s seem to be unavailable for anything and unsupported.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-scaled.jpeg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-1024x768.jpeg" alt="" class="wp-image-13794" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-1024x768.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-300x225.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-768x576.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-1536x1152.jpeg 1536w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-2048x1536.jpeg 2048w, https://virtuallyfun.com/wp-content/uploads/2024/01/IMG_0401-400x300.jpeg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">old netscape website</figcaption></figure>



<p class="wp-block-paragraph">but  the rendition of the old Netscape page was a treat!</p>



<p class="wp-block-paragraph">Now I do have a Windows Surface RT tablet, and sure enough pluggin the proxy values, and YES the video site does work!</p>



<figure class="wp-block-video"><video height="720" style="aspect-ratio: 1280 / 720;" width="1280" controls src="https://virtuallyfun.com/wp-content/uploads/2024/01/out2.mp4"></video><figcaption class="wp-element-caption">Warpstream on Windows RT</figcaption></figure>



<p class="wp-block-paragraph">Very cool! So it turns out Protoweb can actually save all those old devices that work fine enough, but not fine enough for &#8216;Modern platforms&#8217;.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/01/15/so-i-was-excited-to-try-this-protoweb-thing/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		<enclosure url="http://virtuallyfun.com/wp-content/uploads/2024/01/out2.mp4" length="0" type="video/mp4" />

			</item>
		<item>
		<title>Another G5, Another SSD nightmare</title>
		<link>https://virtuallyfun.com/2023/11/10/another-g5-another-ssd-nightmare/</link>
					<comments>https://virtuallyfun.com/2023/11/10/another-g5-another-ssd-nightmare/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 10 Nov 2023 13:10:58 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[disk images]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[powerpc]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13448</guid>

					<description><![CDATA[So I got this iMac G5 with a defective display super cheap. Turns out that all these displays fail, so if you find one with a good display it&#8217;s either been RMA&#8217;d or its going to fail. and quickly. On &#8230; <a href="https://virtuallyfun.com/2023/11/10/another-g5-another-ssd-nightmare/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">So I got this iMac G5 with a defective display super cheap.  Turns out that all these displays fail, so if you find one with a good display it&#8217;s either been RMA&#8217;d or its going to fail. and quickly.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="749" src="https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-1024x749.jpg" alt="" class="wp-image-13453" srcset="https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-1024x749.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-300x220.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-768x562.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-1536x1124.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-2048x1498.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/11/g5-imac-410x300.jpg 410w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">cheap iMac G5</figcaption></figure>



<p class="wp-block-paragraph">On the back of the unit there is a video out port, so you can hook up an external monitor, and now you have a chunky G5.. minmaxie.</p>



<p class="wp-block-paragraph">Sadly the OS was a bit messed up, and had a bunch of user files, and I just wanted to do a fresh install.  And the hard disk was LOUD and slow.  Naturally I thought I&#8217;d install a SSD. I had forgotten what amazing luck I had with the Grandpa G5 back in the day, and did I just get lucky with that?</p>



<p class="wp-block-paragraph">First I got this super cheap 2-Power SSD.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="640" src="https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-1024x640.jpg" alt="" class="wp-image-13449" srcset="https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-1024x640.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-300x188.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-768x480.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-1536x960.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-2048x1281.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/11/2-power-sata-480x300.jpg 480w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">2-POWER SSD SATA SSD2041A</figcaption></figure>



<p class="wp-block-paragraph">Of course it didn&#8217;t work, nothing shows up at all.</p>



<p class="wp-block-paragraph">I had this fancy Kingston SSD, surely it&#8217;ll work?</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="701" src="https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-1024x701.jpg" alt="" class="wp-image-13451" srcset="https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-1024x701.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-300x205.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-768x525.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-1536x1051.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-2048x1401.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/11/kingston-ssd-439x300.jpg 439w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Kingston SSDNOW 300 SV300S7A</figcaption></figure>



<p class="wp-block-paragraph">NOPE, nothing from that either.</p>



<p class="wp-block-paragraph">So I went ahead and ordered the cheapest Samsung I could find.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="700" src="https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-1024x700.jpg" alt="" class="wp-image-13450" srcset="https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-1024x700.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-300x205.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-768x525.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-1536x1050.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-2048x1401.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-439x300.jpg 439w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Samsung M27PC120HAFU</figcaption></figure>



<p class="wp-block-paragraph">And yeah, whatever it is the Apple SATA controller does, that annoys all the other brands, the Samsung pulled through.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-1024x768.jpg" alt="" class="wp-image-13454" srcset="https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/11/samsung-ssd-detected-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Sucess with the Samsung PM830 SSD</figcaption></figure>



<p class="wp-block-paragraph">I did get an iMac G5 10.3 restore CD set, but sadly it didn&#8217;t want to work with this iMac.  However I did get a deal on a boxed copy of OS X Tiger.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="617" src="https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-1024x617.jpg" alt="" class="wp-image-13452" srcset="https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-1024x617.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-300x181.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-768x463.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-1536x926.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-2048x1234.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/11/OS-X-Tiger-inside-box-498x300.jpg 498w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Change the way your Mac works for you</figcaption></figure>



<p class="wp-block-paragraph">And yeah I was able to do a clean install, and patch it up.  I&#8217;m still impressed that Apple keeps stuff up like the update servers &amp; all the combined patches.  I guess one thing worth mentioning is that the WiFi wouldn&#8217;t join the home LAN at all, but the 10.4.11 patch fixed that right up.</p>



<p class="wp-block-paragraph">I should try some much newer Samsung SSD&#8217;s to see if it&#8217;s just this one generation, or are they just that much better?  Also what about NVMe/SSD bridge?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/11/10/another-g5-another-ssd-nightmare/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Installing the IBM SCSI / A &#8216;tribble&#8217; card in an IBM PS/2 model 60, using BlueSCSI, and a tale of painful lessons.</title>
		<link>https://virtuallyfun.com/2023/09/17/installing-the-ibm-scsi-a-tribble-card-in-an-ibm-ps-2-model-60-using-scsi-bluescsi-and-a-tale-of-painful-lessons/</link>
					<comments>https://virtuallyfun.com/2023/09/17/installing-the-ibm-scsi-a-tribble-card-in-an-ibm-ps-2-model-60-using-scsi-bluescsi-and-a-tale-of-painful-lessons/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 17 Sep 2023 10:56:52 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[hard disks]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IBMPC]]></category>
		<category><![CDATA[PS/2]]></category>
		<category><![CDATA[SCSI]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13204</guid>

					<description><![CDATA[As a follow up to Installing a Gotek floppy emulator, this time I&#8217;m adding something desperately needed, mass storage using a SCSI card. The machine is the 40Mb MFM based model, the cheapest option of getting a PS/2 model 60 &#8230; <a href="https://virtuallyfun.com/2023/09/17/installing-the-ibm-scsi-a-tribble-card-in-an-ibm-ps-2-model-60-using-scsi-bluescsi-and-a-tale-of-painful-lessons/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As a follow up to <a href="/2023/09/05/installing-a-gotek-floppy-emulator-in-an-ibm-ps-2-model-60/">Installing a Gotek floppy emulator</a>, this time I&#8217;m adding something desperately needed, mass storage using a SCSI card.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter.jpg"><img loading="lazy" decoding="async" width="1024" height="345" src="https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter-1024x345.jpg" alt="IBM SCSI / A adapter" class="wp-image-13212" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter-1024x345.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter-300x101.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter-768x259.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter-1536x517.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter-500x168.jpg 500w, https://virtuallyfun.com/wp-content/uploads/2023/09/first-scsia-adapter.jpg 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">IBM SCSI / A adapter</figcaption></figure>



<p class="wp-block-paragraph">The machine is the 40Mb MFM based model, the cheapest option of getting a PS/2 model 60 back in the day.  MFM hard disks are incredibly old, and sadly the eventual end point for these old disks is death.  While I had investigated a MFM disk emulator they are very costly, with <a href="https://www.drem.info/buy">prices starting at $299 USD</a>. Ouch.  However, from my Dec Alpha experiments I do have the <a href="https://bluescsi.flamelily.co.uk/v2desktopangleuk.html">BlueSCSI was available for a more reasonable £52.</a>  So all I would need was a SCSI adapter, and I&#8217;d be good to go, right?  Mostly.</p>



<p class="wp-block-paragraph">Looking at the card, you can see that it doesn&#8217;t use a standard 50 pin connector.  I guess it being the 1980s and IBM trying to re-capture the PC market by going all in with proprietary connectors, they used a <a href="https://virtuallyfun.com/wp-content/uploads/2023/09/50-pin-idc-connector-for-ibm-scsia.jpg">50 pin IDC connector</a> to attach the 50pin SCSI ribbon cable.  This would prove to be disastrous for me later on.  I initially had no luck finding an original cable, while the SCSI cards themselves seem to be plentiful on eBay.  I guess me buying 2 of them has triggered a lot of movement in the market.  Another source of concern is that the 286 is 16bit, and the card is advertised as being 32bit, but rest assured the notched middle part seems to indicate that the card is 32bit/16bit compatible.  I can attest it works in my PS/2 just fine.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445.jpeg"><img loading="lazy" decoding="async" width="1024" height="832" src="https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445-1024x832.jpeg" alt="My terrible idea + terrible soldering" class="wp-image-13213" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445-1024x832.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445-300x244.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445-768x624.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445-369x300.jpeg 369w, https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7482-scaled-e1694946320445.jpeg 1433w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">My terrible idea + terrible soldering</figcaption></figure>



<p class="wp-block-paragraph">I had decided that since I do have a bunch of jumper cables, I could just solder them directly to the card fingers.  I only have one device, so I don&#8217;t really need a ribbon cable, the BlueSCSI can emulate multiple devices, so I figured it&#8217;d be fine.  Of the 50 pins in a SCSI ribbon more than half are ground, so I figured I only needed to solder up about 25 connections, just like how Apple got away with 25 pin connections. I did tone out the pins looking for the +5v power signal, along with checking the common ground, where the flip side of the SCSI card is all ground.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-1024x768.jpg" alt="" class="wp-image-13211" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/always-25mb-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">I had connected it up, and the machine saw the blue SCSI, but for some reason it was always reading 25Mb.</p>



<p class="wp-block-paragraph">I was unable to figure out what was going on, so when I went to inspect my setup, I had seen one of the cables had disconnected.  Uh-Oh.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799.jpeg"><img loading="lazy" decoding="async" width="1024" height="576" src="https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-1024x576.jpeg" alt="Card edge fingers torn off" class="wp-image-13214" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-1024x576.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-300x169.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-768x432.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-1536x864.jpeg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-2048x1152.jpeg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/1AC927FA-0BAA-4A0B-99A8-CA5F56FEB6B6-scaled-e1694946242799-500x281.jpeg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Card edge fingers torn off</figcaption></figure>



<p class="wp-block-paragraph"> As I pulled the card out of the computer, 3 more cables had popped off, revealing that the fingers were nowhere near as strong as I had thought, and the fingers had been torn off the card.  Very sad.  The card still &#8216;works&#8217; but it&#8217;d need someone with a good eye and soldering skills to re-attach the pads, or just solder bodge wires from the test points on the card to the IDC connector.</p>



<p class="wp-block-paragraph">Obviously if I&#8217;d known the fingers were so fragile, I&#8217;d have not done this.  But I was impatient for the IDC connector to arrive (it took about a month), and I really thought I could get away with it.  So I don&#8217;t know if it matters for anyone else, but yeah it turns out these fingers are nowhere near as strong to side to side forcers as I had thought.  Also I was told &#8220;on the internet, so you know it&#8217;s true&#8221;&#8216; that various super glues are conductive, so test before you think about trying to do it live.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="838" src="https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-1024x838.jpg" alt="" class="wp-image-13205" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-1024x838.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-300x245.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-768x628.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-1536x1256.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-2048x1675.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/IBM-15F6561-SCSIA-Tribble-card-and-cable-367x300.jpg 367w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption"><strong>IBM SCSI Adapter FRU 15F6561 IBM MICROCHANNEL SCSI 32 bit MCA Card + Cable</strong></figcaption></figure>



<p class="wp-block-paragraph">And that is when this pair showed up, another SCSI card, but this time with the illusive cable.  There is something weird how the universe times things.</p>



<p class="wp-block-paragraph">So got this card &amp; cable set (If it was available 3 weeks ago, obviously I would have ordered this one as it has the ribbon!).</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-768x1024.jpg" alt="" class="wp-image-13216" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-768x1024.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-225x300.jpg 225w, https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-1152x1536.jpg 1152w, https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-1536x2048.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/blue-scsi-in-foil2-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">Where the magic happens, BlueSCSI!</figcaption></figure>



<p class="wp-block-paragraph">Not knowing much about the IBM PS/2 SCSI/A adapter, I went ahead in BlueSCSI, and setup a 380MB disk on SCSI ID 0, a 1GB disk on ID1, and a 2GB disk on ID2.  That&#8217;s when I found out that the adapter initialises the bus backwards.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-1024x768.jpg" alt="" class="wp-image-13210" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-1-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">I had thought it was a weird thing in the setup utility, so I booted up MS-DOS and ran FDISK to reveal that it really does read the ID&#8217;s backwards.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-1024x768.jpg" alt="" class="wp-image-13208" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-1-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Obviously with the BlueSCSI they are just files on a SD card, so it&#8217;s trivial to just rename them.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-1024x768.jpg" alt="" class="wp-image-13209" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-disks-backwards-2-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">I had also thought it was weird that the reference disk reads the disks being 2GB just fine, so I double up with both data disks being 2GB.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-1024x768.jpg" alt="" class="wp-image-13207" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps2-scsia-fdisk-backwards-2-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">And sure enough, MS-DOS only sees 1GB per bigger disk.  After search for a bit, it turns out that the <a href="https://www.ardent-tool.com/IBM_SCSI/SCSI-A.html">1GB limitation is a known thing</a> and newer ROMs can work around the issue.  Eagle eye&#8217;d might have noticed the first adapter had ROMs from 1990, while the second card has ROMs from 1991.  But the better ROMs come from a totally different card.  Normally I might have been annoyed, but since my disks are virtual I can just give myself 5x1GB data disks, along with that 360MB OS disk.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-1024x768.jpg" alt="" class="wp-image-13217" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/virtualize-all-the-scsi-bus-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">ALL THE DISKS!</figcaption></figure>



<p class="wp-block-paragraph">This is the best part of virtual peripherals, is that you can load out what would have been super expensive, and impractical for being era correct.  Instead, now it&#8217;s super easy, barely an inconvenience.  I can&#8217;t imagine trying to use physical disks in 2023.</p>



<p class="wp-block-paragraph">One of the reasons I kept the smaller &#8216;C&#8217; drive was to make for installing OSs a bit easier, as many older things hate &#8216;large&#8217; disks.  But being able to connect so many gives so much flexibility.</p>



<p class="wp-block-paragraph">It&#8217;s a shame the MFM hard disk emulators are a bit expensive, even with my screwup it was still cheaper to go with SCSI, and the BlueSCSI basically just works, the only weird behaviour is all on the &#8216;tribble&#8217; SCSI / A adapter.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/09/17/installing-the-ibm-scsi-a-tribble-card-in-an-ibm-ps-2-model-60-using-scsi-bluescsi-and-a-tale-of-painful-lessons/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Installing a Gotek floppy emulator in an IBM PS/2 model 60</title>
		<link>https://virtuallyfun.com/2023/09/05/installing-a-gotek-floppy-emulator-in-an-ibm-ps-2-model-60/</link>
					<comments>https://virtuallyfun.com/2023/09/05/installing-a-gotek-floppy-emulator-in-an-ibm-ps-2-model-60/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 05 Sep 2023 12:16:54 +0000</pubDate>
				<category><![CDATA[80286]]></category>
		<category><![CDATA[disk images]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[PS/2]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13194</guid>

					<description><![CDATA[Well like everything else, once you know what to do, its pretty self explanatory and easy. But until that point it&#8217;s a lot of trail and error. The PS/2 model of computers went away from the PC/XT/AT design for something &#8230; <a href="https://virtuallyfun.com/2023/09/05/installing-a-gotek-floppy-emulator-in-an-ibm-ps-2-model-60/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Well like everything else, once you know what to do, its pretty self explanatory and easy.  But until that point it&#8217;s a lot of trail and error.</p>



<p class="wp-block-paragraph">The PS/2 model of computers went away from the PC/XT/AT design for something that would be more toolless and allow for more automation in the building &amp; assembling of these machines.  That means they removed loose wiring where possible to give not only great airflow, but an overall clean aesthetic to the PS/2 build. What this also means is that the old 34pin floppy ribbon will not do.</p>



<p class="wp-block-paragraph">The PS/2 version uses and edge connection and integrates the 5v/12v power rails into the interface.  You can try to add an old floppy to the mix, but there is 5 pins that need to be held high through a resistor pack to get an old floppy drive working.  I didn&#8217;t want to fight it that much so instead I ordered an adapter from <a href="https://www.ebay.co.uk/itm/304451554612">eBay</a>, being sold by <a href="https://www.ebay.co.uk/usr/markgm">markgm</a>.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/Edge-to-34-pin-IDC-floppy-adapter-for-IBM-PS2-3.5-disk-Gotek-emulator-1024x461-1.jpg"><img loading="lazy" decoding="async" width="1024" height="461" src="https://virtuallyfun.com/wp-content/uploads/2023/09/Edge-to-34-pin-IDC-floppy-adapter-for-IBM-PS2-3.5-disk-Gotek-emulator-1024x461-1.jpg" alt="" class="wp-image-13200" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/Edge-to-34-pin-IDC-floppy-adapter-for-IBM-PS2-3.5-disk-Gotek-emulator-1024x461-1.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/Edge-to-34-pin-IDC-floppy-adapter-for-IBM-PS2-3.5-disk-Gotek-emulator-1024x461-1-300x135.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/Edge-to-34-pin-IDC-floppy-adapter-for-IBM-PS2-3.5-disk-Gotek-emulator-1024x461-1-768x346.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/Edge-to-34-pin-IDC-floppy-adapter-for-IBM-PS2-3.5-disk-Gotek-emulator-1024x461-1-500x225.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Yes I don&#8217;t know what is up with the shipping either.</figcaption></figure>



<p class="wp-block-paragraph">After much trial and error I found</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="452" src="https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup-1024x452.jpg" alt="" class="wp-image-13196" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup-1024x452.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup-300x132.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup-768x339.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup-1536x678.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup-500x221.jpg 500w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-internals-closeup.jpg 1696w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">After a lot of trial and error I found jumpering it for S0 was what worked.  While I had read that JC was also needed, it just didn&#8217;t work when I tried.  S0 puts the gotek into the first floppy position, in the older PC/XT/AT&#8217;s they jumper every drive as S1, but have a twist in the cable to negate it on the primary position.</p>



<p class="wp-block-paragraph">The other catch is that it absolutely required a <a href="https://github.com/keirf/FlashFloppy/wiki/FF.CFG-Configuration-File" data-type="link" data-id="https://github.com/keirf/FlashFloppy/wiki/FF.CFG-Configuration-File">FF.cfg</a> file</p>



<pre class="wp-block-preformatted">interface = ibmpc-hdout
host=pc-dos</pre>



<p class="wp-block-paragraph">Even though so many other systems didn&#8217;t need it, mine sure did. And Obviously I flashed my drive to the latest version of <a href="https://github.com/keirf/flashfloppy">flashfloppy</a> (<a href="https://github.com/keirf/flashfloppy/releases/tag/v3.41">3.41</a> as of now.).  That also meant checking the processor type, which, is simple enough to check by opening it up, and setting your camera to maximum zoom.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="942" src="https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-AT32F415-processor-1024x942.jpg" alt="" class="wp-image-13193" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-AT32F415-processor-1024x942.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-AT32F415-processor-300x276.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-AT32F415-processor-768x707.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-AT32F415-processor-326x300.jpg 326w, https://virtuallyfun.com/wp-content/uploads/2023/09/Gotek-AT32F415-processor.jpg 1125w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gotek AT32F415 processor</figcaption></figure>



<p class="wp-block-paragraph">Or checking the gallery of microcontrollers in the various Gotek&#8217;s.  The prices have shot up dramatically over the last few years for unknown reasons, so they switched to from the ST to the AT line or similar processors.</p>



<p class="wp-block-paragraph">Can&#8217;t say I blame them.</p>



<p class="wp-block-paragraph">So with the drive updated, and config file loaded, along with a disk image, it finally booted up!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-1024x768.jpg" alt="" class="wp-image-13188" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ibm-ps2-model-60-booted-reference-disk-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">First boot!</figcaption></figure>



<p class="wp-block-paragraph">And with that in place I was able to boot the reference disk, and setup the system. The inside is a bit ugly but, I wanted to get this thing fully loaded, so I picked up an 80287-10.</p>



<p class="wp-block-paragraph">One interesting thing about the PS/2 line of machines is that the 286&#8217;s could run their math coprocessors in synch.  The IBM-5170/AT ran it asynchronously at 2/3rds the clock value.  I would have imagined they convinced someone somewhere how at big step up from a 6Mhz 80286 &amp; 4mhz 80287 to get into a PS/2 model 50/60 with a blistering 10Mhz 80286/287.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-1024x768.jpg" alt="" class="wp-image-13197" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_112920472_iOS-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph"> Happily the 80287-10 I had gotten from <a href="https://www.ebay.co.uk/usr/fractal2015">fractal2015</a>, worked just fine.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-1024x768.jpg" alt="" class="wp-image-13198" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/20230905_114419370_iOS-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Wow. awesome.</p>



<p class="wp-block-paragraph">I&#8217;m waiting still for some cables to hook up the bluepill to the SCSI card, and the memory card, so I can run meaningful applications like SimCity for Windows, and OS/2.</p>



<figure class="wp-block-video"><video height="720" style="aspect-ratio: 1280 / 720;" width="1280" controls src="https://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7467.mp4"></video><figcaption class="wp-element-caption">PS/2 60 playing battletech, from a gotek emulated floppy</figcaption></figure>



<p class="wp-block-paragraph">In the meantime I can do simple stuff from floppy.  I&#8217;m still trying to keep an eye out for either an ethernet card, or a Token Ring card &amp; MAU, along with cisco cards to at least let me use NetBEUI.</p>



<p class="wp-block-paragraph">But for anyone else needing a solid answer on how to get the Gotek working with an IBM PS/2 model 60, here you go!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/09/05/installing-a-gotek-floppy-emulator-in-an-ibm-ps-2-model-60/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="http://virtuallyfun.com/wp-content/uploads/2023/09/IMG_7467.mp4" length="0" type="video/mp4" />

			</item>
	</channel>
</rss>
