<?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>4.2 BSD &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/4-2-bsd/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Fri, 17 Jan 2025 08:30:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>
	<item>
		<title>The Rise of Unix. The Seeds of its Fall. / A Chronicle of the Unix Wars</title>
		<link>https://virtuallyfun.com/2024/01/05/the-rise-of-unix-the-seeds-of-its-fall-a-chronicle-of-the-unix-wars/</link>
					<comments>https://virtuallyfun.com/2024/01/05/the-rise-of-unix-the-seeds-of-its-fall-a-chronicle-of-the-unix-wars/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 05 Jan 2024 09:42:29 +0000</pubDate>
				<category><![CDATA[32v]]></category>
		<category><![CDATA[386BSD]]></category>
		<category><![CDATA[4 BSD]]></category>
		<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[4.3 BSD]]></category>
		<category><![CDATA[4.3 BSD RENO]]></category>
		<category><![CDATA[80386]]></category>
		<category><![CDATA[AT&T Unix]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[i386]]></category>
		<category><![CDATA[SIMH]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[videos]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Win32]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13695</guid>

					<description><![CDATA[It&#8217;s not mine, rather it&#8217;s Asianometry&#8216;s. It&#8217;s a nice overview of the rise of Unix. I&#8217;d recommend checking it out, it&#8217;s pretty good. And of course, as I&#8217;m referenced! And part 2: A Chronicle of the Unix Wars Years ago &#8230; <a href="https://virtuallyfun.com/2024/01/05/the-rise-of-unix-the-seeds-of-its-fall-a-chronicle-of-the-unix-wars/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">It&#8217;s not mine, rather it&#8217;s <a href="https://www.youtube.com/@Asianometry">Asianometry</a>&#8216;s.  It&#8217;s a nice overview of the rise of Unix.  I&#8217;d recommend checking it out, it&#8217;s pretty good.  And of course, as I&#8217;m referenced!<a href="https://www.youtube.com/@Asianometry"></a></p>



<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 title="The Rise of Unix. The Seeds of its Fall." width="584" height="329" src="https://www.youtube.com/embed/HADp3emVABg?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">The Rise of Unix. The Seeds of its Fall.</figcaption></figure>



<p class="wp-block-paragraph">And part 2: A Chronicle of the Unix Wars</p>



<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 title="A Chronicle of the Unix Wars" width="584" height="329" src="https://www.youtube.com/embed/Ffh3DRFzRL0?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"><a href="https://www.youtube.com/watch?v=Ffh3DRFzRL0">A Chronicle of the Unix Wars (youtube.com)</a></figcaption></figure>



<p class="wp-block-paragraph">Years ago I had tried to make these old OS&#8217;s accessible to the masses with a simple windows installer where you could click &amp; run these ancient artifacts.  Say 4.2BSD.</p>



<p class="wp-block-paragraph"><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.3%20Beta%201/BSD4.2-install-0.3.exe/download">Download BSD4.2-install-0.3.exe (Ancient UNIX/BSD emulation on Windows) (sourceforge.net)</a></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="649" src="https://virtuallyfun.com/wp-content/uploads/2024/01/install-4.2BSD-on-windows-1024x649.png" alt="" class="wp-image-13696" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/install-4.2BSD-on-windows-1024x649.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/install-4.2BSD-on-windows-300x190.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/install-4.2BSD-on-windows-768x487.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/install-4.2BSD-on-windows-473x300.png 473w, https://virtuallyfun.com/wp-content/uploads/2024/01/install-4.2BSD-on-windows.png 1305w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Installing should be pretty straight forward, I just put the license as a click through and accept defaults.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="622" src="https://virtuallyfun.com/wp-content/uploads/2024/01/booted-into-4.2BSD-1024x622.png" alt="" class="wp-image-13697" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/booted-into-4.2BSD-1024x622.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/booted-into-4.2BSD-300x182.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/booted-into-4.2BSD-768x466.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/booted-into-4.2BSD-494x300.png 494w, https://virtuallyfun.com/wp-content/uploads/2024/01/booted-into-4.2BSD.png 1031w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Starting BSD via &#8216;RUN BSD42&#8217; and the emulator will fire up, and being up a console program (Tera Term) giving you the console access.  Windows will probably warn you that it requested network access.  This will allow you to access the VAX over the network, including being able to telnet into the VAX via &#8216;Attach a PTY&#8217; which will spawn another Tera Term, prompting you to login.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="822" height="427" src="https://virtuallyfun.com/wp-content/uploads/2024/01/attach-a-ptty.png" alt="" class="wp-image-13698" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/attach-a-ptty.png 822w, https://virtuallyfun.com/wp-content/uploads/2024/01/attach-a-ptty-300x156.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/attach-a-ptty-768x399.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/attach-a-ptty-500x260.png 500w" sizes="auto, (max-width: 822px) 100vw, 822px" /><figcaption class="wp-element-caption">telnettting into the VAX</figcaption></figure>



<p class="wp-block-paragraph">You can login as root, there is no password, and now you are up and running your virtual VAX with 4.2BSD!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-items.png"><img loading="lazy" decoding="async" width="748" height="652" src="https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-items.png" alt="" class="wp-image-13699" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-items.png 748w, https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-items-300x261.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-items-344x300.png 344w" sizes="auto, (max-width: 748px) 100vw, 748px" /></a><figcaption class="wp-element-caption">All the items</figcaption></figure>



<p class="wp-block-paragraph">I converted many of the old documents into PDF&#8217;s so you may want to start with the Beginners guide to Unix.  I thought this was a great way to bring a complex system to the masses, but I&#8217;m not sure if I succeded.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats.png"><img loading="lazy" decoding="async" width="1024" height="488" src="https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats-1024x488.png" alt="" class="wp-image-13700" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats-1024x488.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats-300x143.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats-768x366.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats-500x238.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/01/4.2BSD-download-stats.png 1171w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">776 downloads</figcaption></figure>



<p class="wp-block-paragraph">As it sits now, since 2007 it&#8217;s had 776 downloads.  I&#8217;d never really gotten any feedback so I&#8217;d hoped it got at least a few people launched into the bewildering world of ancient Unix.  Of course I tried to make many more packages but I&#8217;d been unsure if any of them went anywhere.  It&#8217;s why I found these videos so interesting as at least the image artifacts got used for something!</p>



<p class="wp-block-paragraph">But in the off hand, maybe this can encourage some Unix curious into a larger world.</p>



<p class="wp-block-paragraph">Other downloads in the same scope are:</p>



<ul class="wp-block-list">
<li><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.3%20Beta%201/Research-unixv1-0.3.exe/download">Research-unixv1</a></li>



<li><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.3%20Beta%201/unix32v-0.3.exe/download">unix32v</a></li>



<li><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.3%20Beta%201/BSD4.3-install-0.3.exe/download">BSD4.3</a></li>



<li><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4/4.3BSD-Uwisc-install-0.4.exe/download">4.3BSD-Uwisc</a></li>



<li><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.3%20Beta%201/BSD4.3-Reno-installer-0.3.exe/download">BSD4.3-Reno</a></li>



<li><a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4/386BSD-0.1.exe/download">386BSD-0.1</a></li>
</ul>



<p class="wp-block-paragraph">Enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/01/05/the-rise-of-unix-the-seeds-of-its-fall-a-chronicle-of-the-unix-wars/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Re-visiting the SUN-2 emulator: Adding SLiRP!</title>
		<link>https://virtuallyfun.com/2020/08/21/re-visiting-the-sun-2-emulator-adding-slirp/</link>
					<comments>https://virtuallyfun.com/2020/08/21/re-visiting-the-sun-2-emulator-adding-slirp/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 21 Aug 2020 16:55:06 +0000</pubDate>
				<category><![CDATA[4 BSD]]></category>
		<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[68000]]></category>
		<category><![CDATA[m68k]]></category>
		<category><![CDATA[SLiRP]]></category>
		<category><![CDATA[SUN]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10445</guid>

					<description><![CDATA[While I&#8217;ve covered Brad Parker (lisper)&#8217;s &#8216;emulator-sun-2&#8216; before, booting into SunOS isn&#8217;t anything that new. However, with the latest updates, from github, adding in a prior botched attempt, and some messing around, and finally, I got it to ping at &#8230; <a href="https://virtuallyfun.com/2020/08/21/re-visiting-the-sun-2-emulator-adding-slirp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">While I&#8217;ve covered <a href="http://www.heeltoe.com/">Brad Parker</a> (<a href="https://github.com/lisper">lisper</a>)&#8217;s &#8216;<a href="https://github.com/lisper/emulator-sun-2">emulator-sun-2</a>&#8216; <a href="/wordpress/2020/02/16/emulator-sun-2/">before</a>, booting into SunOS isn&#8217;t anything that new.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="936" src="https://virtuallyfun.com/wp-content/uploads/2020/08/SUN2-emulator-booting-SunOS-2-1024x936.png" alt="" class="wp-image-10446" srcset="https://virtuallyfun.com/wp-content/uploads/2020/08/SUN2-emulator-booting-SunOS-2-1024x936.png 1024w, https://virtuallyfun.com/wp-content/uploads/2020/08/SUN2-emulator-booting-SunOS-2-300x274.png 300w, https://virtuallyfun.com/wp-content/uploads/2020/08/SUN2-emulator-booting-SunOS-2-768x702.png 768w, https://virtuallyfun.com/wp-content/uploads/2020/08/SUN2-emulator-booting-SunOS-2-328x300.png 328w, https://virtuallyfun.com/wp-content/uploads/2020/08/SUN2-emulator-booting-SunOS-2.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">However, with the latest updates, from <a href="https://github.com/lisper/emulator-sun-2">github</a>, adding in a prior botched attempt, and some messing around, and finally, I got it to ping at first, then it was a matter of where to place the &#8216;slirp tick&#8217;.  I first though putting it on the interface poll was a good spot, but for some reason the machine causes a deadlock/stall on boot before the PROM can even initialize.  I&#8217;m not sure why.  Searching further I found a good timer portion and injected the code.  And sure enough I was greeted with the login banner:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="979" height="512" src="https://virtuallyfun.com/wp-content/uploads/2020/08/Telnet-into-SunOS-2.png" alt="" class="wp-image-10447" srcset="https://virtuallyfun.com/wp-content/uploads/2020/08/Telnet-into-SunOS-2.png 979w, https://virtuallyfun.com/wp-content/uploads/2020/08/Telnet-into-SunOS-2-300x157.png 300w, https://virtuallyfun.com/wp-content/uploads/2020/08/Telnet-into-SunOS-2-768x402.png 768w, https://virtuallyfun.com/wp-content/uploads/2020/08/Telnet-into-SunOS-2-500x261.png 500w" sizes="auto, (max-width: 979px) 100vw, 979px" /></figure>



<p class="wp-block-paragraph">I&#8217;ve been able to paste in about 100kb of a uuencoded tar file, and it didn&#8217;t lock the VM, and I was able to uudecode it, and actually build the source (<a href="/wordpress/2014/12/15/tracking-down-the-infotaskforce-from-1987/">Infotaskforce &#8217;87 if anyone cares</a>).  So I&#8217;m at the point I think it&#8217;s stable enough to shove into the world, although I guess until I revisit it again.</p>



<p class="wp-block-paragraph">You can download it on sourceforge: <a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4/sun2.zip/download">sun2.zip</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2020/08/21/re-visiting-the-sun-2-emulator-adding-slirp/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>emulator-sun-2</title>
		<link>https://virtuallyfun.com/2020/02/16/emulator-sun-2/</link>
					<comments>https://virtuallyfun.com/2020/02/16/emulator-sun-2/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 16 Feb 2020 17:28:03 +0000</pubDate>
				<category><![CDATA[4 BSD]]></category>
		<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[68000]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[m68k]]></category>
		<category><![CDATA[SUN]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10112</guid>

					<description><![CDATA[Since I was playing with the 68000 based GCC &#8217;87 I know it was going to be more geared to SUN workstations, certainly of the early 80&#8217;s vintage as they would be the most &#8216;affordable/cheap/donated&#8217; to FSF (Or so I&#8217;d &#8230; <a href="https://virtuallyfun.com/2020/02/16/emulator-sun-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="572" height="596" src="https://virtuallyfun.com/wp-content/uploads/2020/02/SUN-2-workstation.jpg" alt="" class="wp-image-10113" srcset="https://virtuallyfun.com/wp-content/uploads/2020/02/SUN-2-workstation.jpg 572w, https://virtuallyfun.com/wp-content/uploads/2020/02/SUN-2-workstation-288x300.jpg 288w" sizes="auto, (max-width: 572px) 100vw, 572px" /></figure>



<p class="wp-block-paragraph">Since I was playing with the <a href="https://virtuallyfun.com/wordpress/2020/02/13/gcc-from-87-on-the-68000/">68000 based GCC &#8217;87</a> I know it was going to be more geared to SUN workstations, certainly of the early 80&#8217;s vintage as they would be the most &#8216;affordable/cheap/donated&#8217; to FSF (Or so I&#8217;d imagine).</p>



<p class="wp-block-paragraph">Naturally the go to emulator is <a href="/wordpress/2019/05/13/running-tme-on-linux-subsystem-for-windows-v1/">TME</a>, however this time while searching around for the install scripts and stuff I found <a href="https://github.com/lisper">lisper</a>&#8216;s (<a href="http://www.heeltoe.com/">heeltoe.com</a>) <a href="https://github.com/lisper/emulator-sun-2">emulator-sun-2</a>, a greatly cut down and SUN-2 focused emulator that emphasizes ease of use.</p>



<p class="wp-block-paragraph">Wait, what? SUN-2, and ease of use?  Why yes, not only that, as it uses SDL 1.2 it also means it&#8217;s much easier to compile.  After an hour of messing around with it, I had it running on Windows.  After a few minutes I had it running on my ARM based Acer NovaGO.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="952" src="https://virtuallyfun.com/wp-content/uploads/2020/02/SUN2-emulator-1024x952.png" alt="" class="wp-image-10114" srcset="https://virtuallyfun.com/wp-content/uploads/2020/02/SUN2-emulator-1024x952.png 1024w, https://virtuallyfun.com/wp-content/uploads/2020/02/SUN2-emulator-300x279.png 300w, https://virtuallyfun.com/wp-content/uploads/2020/02/SUN2-emulator-768x714.png 768w, https://virtuallyfun.com/wp-content/uploads/2020/02/SUN2-emulator-323x300.png 323w, https://virtuallyfun.com/wp-content/uploads/2020/02/SUN2-emulator.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">At it&#8217;s core is the m68k 68010 emulation from <a href="https://github.com/kstenerud">Karl Stenerud</a>&#8216;s <a href="https://github.com/kstenerud/Musashi">Musashi</a> core which is a great choice for the SUN-2 as it&#8217;s a 68010 based machine. Some fun notes from <a href="http://web.cuzuco.com/~cuzuco/sun2/">web.cuzuco.com/~cuzuco/sun2/</a> include:</p>



<ul class="wp-block-list"><li>CPU is a Motorola 68010 running at 10MHz</li><li>Maximum physical memory is 4 Megabytes</li><li>Maximum virtual memory is 16 Megabytes</li><li>All I/O is via a Multibus (an Intel design)</li><li>Main disk is a&nbsp;SMD, the largest size is 380Mbyte</li><li>Has a SCSI adapter, but the disk is slow and small (42Mbyte)</li><li>Sun was just finishing&nbsp;NFS</li><li>alludes to future&nbsp;AT&amp;T&nbsp;UNIX System VI and VII</li><li>Display supported dual heads and a resolution of 1152&#215;900</li><li>List price as tested: $44,900</li><li>Sun was still private, had 400 employees and sold 1500 units</li></ul>



<p class="wp-block-paragraph">You can read about the debut of the SUN-2 in the <a href="https://archive.org/details/Unix_World_Vol01_05.pdf/page/n85/mode/2up">UNIX/WORLD Magazine, VOlume 1, Number 5 dated October 1984 in archive.org</a>.  It starts on page 86.</p>



<p class="wp-block-paragraph">I started to integrate <a href="https://github.com/sigurbjornl">sigurbjornl&#8217;s</a> <a href="https://github.com/sigurbjornl/emulator-sun-2">patches</a> for networking but I think I need to work through SunOS 2.0&#8217;s weird VAX 4.2BSD arp issues (anyone have the source code to SunOS 2.0?!).  I&#8217;ll probably update it with UDP or some fixed ARP thing to remove that or just let the SUN-2 talk to a VAX with 4.2BSD so they can be weird, together.</p>



<p class="wp-block-paragraph">I&#8217;m also pretty sure my old <a href="https://sourceforge.net/projects/cockatrice/">Cockatrice III</a> sort of debugged SLiRP thing broke the packed structs to let it work properly when compiled with Microsoft C, so I&#8217;ll have to break down and either try to fix that, or update and borrow the vastly updated SLiRP from SIMH.</p>



<p class="wp-block-paragraph">For Windows users who want to play along the bundle is on the terribly named page &#8220;<a href="https://sourceforge.net/projects/bsd42/">Ancient UNIX/BSD emulation on Windows</a>&#8221; as <a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4/SUN2.zip/download">SUN2.zip</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2020/02/16/emulator-sun-2/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
			</item>
		<item>
		<title>Running TME on Linux Subsystem for Windows (v1?)</title>
		<link>https://virtuallyfun.com/2019/05/13/running-tme-on-linux-subsystem-for-windows-v1/</link>
					<comments>https://virtuallyfun.com/2019/05/13/running-tme-on-linux-subsystem-for-windows-v1/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 13 May 2019 16:05:17 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[68000]]></category>
		<category><![CDATA[SUN]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=9464</guid>

					<description><![CDATA[I know in all the trade news everyone is excited that the newest Linux Subsystem for Windows will provide a native kernel. I would imagine it&#8217;s going to run along the lines of containers which means using the Hyper-V stuff. &#8230; <a href="https://virtuallyfun.com/2019/05/13/running-tme-on-linux-subsystem-for-windows-v1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I know in all the trade news everyone is excited that the newest Linux Subsystem for Windows will provide a native kernel.  I would imagine it&#8217;s going to run along the lines of containers which means using the Hyper-V stuff.  So good bye VMWare?</p>



<p class="wp-block-paragraph">Anyways I want to run SunOS 2.0 which means no graphics are needed, but what I do need is a pty.  I&#8217;m a n00b so I don&#8217;t know how to generate them myself, but I did see that I can piggyback on a ssh session.  So first you need to enable &amp; run sshd, which <a href="https://kb.novaordis.com/index.php/OpenSSH_sshd_on_Windows_Subsystem_for_Linux">instructions are here</a>, Although with Ubuntu 18.02 LTS <a href="https://gist.github.com/dentechy/de2be62b55cfd234681921d5a8b6be11">there is further steps listed here</a>. If everything is okay, you can SSH into your Windows machine, getting the Linux subsystem.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/05/ssh-into-Linux-subsystem-for-Windows.png" alt="" class="wp-image-9465" srcset="https://virtuallyfun.com/wp-content/uploads/2019/05/ssh-into-Linux-subsystem-for-Windows.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/05/ssh-into-Linux-subsystem-for-Windows-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></figure>



<p class="wp-block-paragraph">Some notes on building:</p>



<p class="wp-block-paragraph">First let&#8217;s get the emulator and patches for SunOS 2</p>



<code>wget http://people.csail.mit.edu/fredette/tme/tme-0.8.tar.gz
tar -zxvf tme-0.8.tar.gz
wget http://www.heeltoe.com/download/sun2/diffs-20111125
cd tme-0.8
patch -p1 < ../diffs-20111125</code>



<p class="wp-block-paragraph">Using GCC 5 or 7 (probably everything post version 3, the -Werror will cause building TME to error out.</p>



<p class="wp-block-paragraph">I just removed the following block from configure</p>



<code>if test "x$enable_warnings" = "xyes" -a "x$GCC" = "xyes"; then
  CFLAGS="${CFLAGS-} -Wundef -Wall -Werror"
  CXXFLAGS="${CXXFLAGS-} -W"
fi</code>



<p class="wp-block-paragraph">Now you can run configure &amp; make.  I follow the general wisdom, which involves disabling shared libraries.  Otherwise you can play with the dynamic linker. Yuck.</p>



<code>sh configure --disable-shared
make</code>



<p class="wp-block-paragraph">It doesn't like to build in parallel, so be prepared to wait.</p>



<p class="wp-block-paragraph">And yes, building fb-xlat-auto.c &amp; fb.c does take a long while.  Also make sure to have bison &amp; flex installed.</p>



<p class="wp-block-paragraph">Using Debian 9/GCC 6.3.0 I do get a bomb compiling module.c</p>



<code>module.c: In function 'tme_module_init':
module.c:93:3: error: 'lt_preloaded_symbols' undeclared (first use in this function)
   LTDL_SET_PRELOADED_SYMBOLS();</code>



<p class="wp-block-paragraph">In this case I just copy the definition from libltdl/ltdl.h and put it into module.c  It'll complain about it being a duplicate, but it'll compile.  I don't understand that either.</p>



<p class="wp-block-paragraph">Now we need to set the variable LTDL_LIBRARY_PATH to pickup the config for each hardware component.</p>



<code>export LTDL_LIBRARY_PATH=$HOME/tme-0.8</code>



<p class="wp-block-paragraph">Ok and now let's get ready to install SunOS 2.0</p>



<code>$ mkdir sunos2
cd
cd sunos2/
wget https://web.archive.org/web/20060720001131/http://www.soupwizard.com/sun2/sunos/sunos_2.0_sun2.tar.gz
tar -zxvf sunos_2.0_sun2.tar.gz
mv sunos-2.0-sun2/tape1 .
wget http://people.csail.mit.edu/fredette/tme/sun2-multi-rev-R.bin
perl $HOME/tme-0.8/machine/sun/tme-sun-idprom 2/120 8:0:20:02:02:02 &gt; my-sun2-idprom.bin</code>



<p class="wp-block-paragraph">Now we can configure the emulator.  One thing to take note of is what pts device has been created once you SSH'd into Windows.</p>



<code>$ ls -l /dev/pts/
total 0
crw--w---- 1 jsteve tty  136, 0 May 13 15:08 0
c--------- 1 root   root   5, 2 May 13 10:47 ptmx</code>



<p class="wp-block-paragraph">So in this case it's /dev/pts/0 for me, as I'm the first (and only) thing connected.</p>



<p class="wp-block-paragraph">Now you need to edit the config.  This is the one that I'm using:</p>



<code>mainbus0: tme/machine/sun2 multibus my-sun2-idprom.bin
cpu0 at mainbus0: tme/ic/m68010
obio0 at mainbus0 obio: tme/generic/bus size 8MB
obmem0 at mainbus0 obmem: tme/generic/bus size 16MB
ram0 at obmem0 addr 0x0: tme/host/posix/memory ram 4MB
rom0 at obmem0 addr 0xef0000: tme/host/posix/memory rom sun2-multi-rev-R.bin
rom0 at obmem0 addr 0xef8000
clock0 at obio0 addr 0x2800: tme/machine/sun2/clock
tod0 at obio0 addr 0x3800: tme/machine/sun2/tod
zs0 at obio0 addr 0x2000 ipl 6: tme/machine/sun2/zs
mbio0 at mainbus0 mbio: tme/generic/bus size 8MB
mbmem0: tme/generic/bus size 8MB
mainbus0 mbmem at mbmem0 addr 0x00000
sc0 at mbmem0 addr 0x80000 ipl 2: tme/bus/multibus/sun-sc
scsibus0 at sc0: tme/scsi/bus
console0 at zs0 channel A: tme/host/posix/serial device /dev/pts/0 break-carats
sd0 at scsibus0: tme/scsi/disk id 0 type acb4000
disk0 at sd0: tme/host/posix/disk file my-sun2-disk.img
st0 at scsibus0: tme/scsi/tape id 4 type emulex-mt02
tape0 at st0: tme/host/posix/tape
command tape0 load tape1/01  tape1/02  tape1/03  tape1/04  tape1/05 tape1/06  tape1/07  tape1/08  tape1/09  tape1/10
command mainbus0 power up</code>



<p class="wp-block-paragraph">Now we are almost ready!  Create a 1GB disk image with dd:</p>



<code>dd if=/dev/zero of=my-sun2-disk.img bs=1M count=1024</code>



<p class="wp-block-paragraph">Now we are ready to go.  From the ssh connection just type in 'cat &gt; /dev/pts/0' and now everything we type in will be on the console.  Now from a normal bash session type in '$HOME/tme-0.8/tmesh/tmesh SUN2-MULTIBUS'  If everything goes well the bootpromp text will pop up on your SSH session.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/05/SUN-2-bootrom-on-Linux-Subsystem-for-Windows.png" alt="" class="wp-image-9468" srcset="https://virtuallyfun.com/wp-content/uploads/2019/05/SUN-2-bootrom-on-Linux-Subsystem-for-Windows.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/05/SUN-2-bootrom-on-Linux-Subsystem-for-Windows-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption>SUN-2/120 on Windows!</figcaption></figure>



<p class="wp-block-paragraph">And if everything has gone right, we are now at the firmware prompt, ready to install SunOS 2.0!</p>



<p class="wp-block-paragraph">Instructions  from <a href="https://web.archive.org/web/20120410064426/http://www.retrocomputinggeek.com/retrowiki/TmeSun2SunOS2">retrocomputinggeek.com</a> gives a pretty good walk through of configuring a 1GB disk, and the installation.  Although as a hint use the -as flags when booting SunOS for the install.  And after booting the miniroot, follow <a href="http://www.heeltoe.com/index.php?n=Retro.Sun2Booting">the instructions on heeltoe</a> regarding doing the 1st tape of the install.</p>



<code>>b st()
Boot: st(0,0,0)
Boot: sd(0,0,1)vmunix -as
Size: 368640+57344+66652 bytes
Sun UNIX 4.2 Release 2.0 (GENERIC) #1: Mon May 20 15:32:06 PDT 1985
Copyright (c) 1985 by Sun Microsystems, Inc.
mem = 4096K (0x400000)
avail mem = 3575808
Ethernet address = 8:0:20:2:2:2
sc0 at mbmem 80000 pri 2
sd0 at sc0 slave 0
sd0: <TME1G cyl 14700 alt 2 hd 7 sec 15>
sd1 at sc0 slave 1
st0 at sc0 slave 32
zs0 at virtual eec800 pri 3
pi0 at virtual ee2000
root device? sd0*
using 100 buffers containing 366592 bytes of main memory
#</code>



<p class="wp-block-paragraph">After that it's a matter of working out which tar file goes where.  Is there even an install process?  I just untarred the rest of the tapes in the /usr directory.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/05/SunOS-2.0-login.png" alt="" class="wp-image-9483" srcset="https://virtuallyfun.com/wp-content/uploads/2019/05/SunOS-2.0-login.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/05/SunOS-2.0-login-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></figure>



<p class="wp-block-paragraph">For the impatient, <a href="https://vpsland.superglobalmegacorp.com/install/SUN/tme-0.8-linux-x86_64_bin.tar.gz">tme-0.8-linux-x86_64_bin.tar.gz</a> and  <br><a href="https://vpsland.superglobalmegacorp.com/install/SUN/tme-0.8-SunOS-2.0.tar.gz">tme-0.8-SunOS-2.0.tar.gz</a>.  As always read the 404 page. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2019/05/13/running-tme-on-linux-subsystem-for-windows-v1/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>4.2BSD TCP/IP networking</title>
		<link>https://virtuallyfun.com/2017/11/03/4-2bsd-tcpip-networking/</link>
					<comments>https://virtuallyfun.com/2017/11/03/4-2bsd-tcpip-networking/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 02 Nov 2017 18:45:25 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[SIMH]]></category>
		<category><![CDATA[VAX]]></category>
		<category><![CDATA[VAX 11/780]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7749</guid>

					<description><![CDATA[I got this note from Â Allen Garvin, that details his adventure in taking a stock 4.2BSD VAX image, getting it running on SIMH, and turning on the network stack. Although 4.2 may have had security issues, (R Morris), and had &#8230; <a href="https://virtuallyfun.com/2017/11/03/4-2bsd-tcpip-networking/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I got this note from Â <cite class="comment-author">Allen Garvin</cite>, that details his adventure in taking a stock 4.2BSD VAX image, getting it running on SIMH, and turning on the network stack.</p>
<p>Although 4.2 may have <a href="https://pdos.csail.mit.edu/~rtm/papers/117-abstract.html">had security issues</a>, (R Morris), and had some clear issues <a href="https://utcc.utoronto.ca/~cks/space/blog/unix/SubnetsAndEarlyUnixIPv4">with scaling</a>. Along with a whole host of other issues.Â  Naturally if you want something more &#8216;robust&#8217; on modern networks, you&#8217;ll want 4.3BSD which corrected quite a number of issues.</p>
<p>You can read about itÂ <a href="http://plover.net/~agarvin/4.2bsd.html">over on his blog</a>.Â  It&#8217;s very good with step by step instructions, goes over retrieving the NIC driver, re-building the kernel, and getting it operational on our LAN.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/11/03/4-2bsd-tcpip-networking/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Building and using GCC 0.9 aka the first public version</title>
		<link>https://virtuallyfun.com/2016/12/01/building-using-gcc-0-90-aka-first-public-version/</link>
					<comments>https://virtuallyfun.com/2016/12/01/building-using-gcc-0-90-aka-first-public-version/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 30 Nov 2016 17:16:32 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[VAX]]></category>
		<category><![CDATA[VAX 11/780]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=6653</guid>

					<description><![CDATA[In my quest for old software, I&#8217;ve seen this file in multiple searches, gcc-0.9.tar.bz2, which is the first version of GCC! article from virtuallyfun.superglobalmegacorp.com From the original announcement:  Date: Sun, 22 Mar 87 10:56:56 EST From: rms (Richard M. Stallman) &#8230; <a href="https://virtuallyfun.com/2016/12/01/building-using-gcc-0-90-aka-first-public-version/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>In my quest for old software, I&#8217;ve seen this file in multiple searches, <a href="http://ftp.vim.org/languages/gcc/old-releases/gcc-1/gcc-0.9.tar.bz2">gcc-0.9.tar.bz2</a>, which is the first version of GCC!</p>
<h3><em>article from <a href="https://virtuallyfun.com">virtuallyfun.superglobalmegacorp.com</a></em></h3>
<p><div id="attachment_6654" style="width: 669px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2016/12/gcc-0.9-VAX-on-4.2-BSD.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6654" class="size-full wp-image-6654" src="https://virtuallyfun.com/wp-content/uploads/2016/12/gcc-0.9-VAX-on-4.2-BSD.png" alt="GCC 0.9 on SIMH VAX / 4.2BSD" width="659" height="342" /></a><p id="caption-attachment-6654" class="wp-caption-text">GCC 0.9 on SIMH VAX / 4.2BSD</p></div></p>
<h1>From the <a href="https://groups.google.com/forum/#!topic/mod.compilers/ynAVuwR7dPw">original announcement</a>:</h1>
<p style="padding-left: 30px;"> Date: Sun, 22 Mar 87 10:56:56 EST<br />
From: rms (Richard M. Stallman)</p>
<p style="padding-left: 30px;">   The GNU C compiler is now available for ftp from the file<br />
/u2/emacs/gcc.tar on <a href="http://prep.ai.mit.edu/" target="_blank" rel="nofollow noopener noreferrer">prep.ai.mit.edu</a>.  This includes machine<br />
descriptions for vax and sun, 60 pages of documentation on writing<br />
machine descriptions (internals.texinfo, internals.dvi and Info<br />
file internals).</p>
<p style="padding-left: 30px;">   This also contains the ANSI standard (Nov 86) C preprocessor and 30<br />
pages of reference manual for it.</p>
<p style="padding-left: 30px;">   This compiler compiles itself correctly on the 68020 and did so<br />
recently on the vax.  It recently compiled Emacs correctly on the<br />
68020, and has also compiled tex-in-C and Kyoto Common Lisp.<br />
However, it probably still has numerous bugs that I hope you will<br />
find for me.</p>
<p style="padding-left: 30px;">   I will be away for a month, so bugs reported now will not be<br />
handled until then.</p>
<p style="padding-left: 30px;">   If you can&#8217;t ftp, you can order a compiler beta-test tape from the<br />
Free Software Foundation for $150 (plus 5% sales tax in<br />
Massachusetts, or plus $15 overseas if you want air mail).</p>
<p style="padding-left: 30px;">Free Software Foundation<br />
1000 Mass Ave<br />
Cambridge, MA  02138</p>
<p style="padding-left: 30px;">[tapes are generally in Unix tar format.  If you have other needs,<br />
write to the above address, and ask if they can be met. -len]</p>
<p>And indeed, the files are dated 22/03/1987 making this the first public release of GCC.</p>
<p>GNU CC is a fairly portable optimizing C compiler intended for<br />
machines with 32-bit words that have several registers and address<br />
memory in terms of 8-bit bytes.  It supports full ANSI standard C, not<br />
including libraries (which we do not consider to be part of a<br />
compiler).<br />
Currently we have working machine descriptions for the Vax and for<br />
the 68000/68020 (including 68881 support).<br />
Optimizations performed by GNU CC include:</p>
<ul>
<li>Invariant code motion out of loops.</li>
<li>Common subexpression elimination.</li>
<li>Automatic register packing (register declarations are unnecessary<br />
and ignored).</li>
<li>Constant propagation and elimination of consequent dead code.</li>
<li>Copy propagation.</li>
<li>Elimination of dead stores.</li>
<li>Jump optimization including cross-jumping.</li>
<li>Delaying of stack adjustments after function calls.</li>
<li>Arithmetic performed in subword types when appropriate.</li>
<li>Many local optimizations.</li>
</ul>
<p>GNU CC runs about as fast as PCC.<br />
Most of the optimizations are machine-independent or controlled by a<br />
machine description.  GNU CC takes advantage of all the 68020<br />
addressing modes that we can see how to make the Sun assembler<br />
assemble.  Debugging output for DBX is available whether you request<br />
optimization or not.</p>
<p>Seeing as 4.3BSD didn&#8217;t ship until 1988, I went ahead and set out to build this on <a href="https://sourceforge.net/projects/bsd42/">4.2BSD</a>. The first stumbling block I hit is that GCC needs bison.  The oldest version of bison I have is 1.25 which honestly is just too new!  However in the same location as GCC is this file <a href="https://ftp.mirrorservice.org/sites/sources.redhat.com/pub/gcc/old-releases/gcc-1/gnu1988.tar.bz2">gnu1988.tar.bz2</a> which contains all of the current GNU software of 1988!  And what is on that tape?</p>
<ul>
<li>bison-1.00</li>
<li>gcc-1.21</li>
<li>gdb-2.5.1</li>
<li>gplusplus-1.21</li>
<li>libgplusplus</li>
</ul>
<p>So this is probably as old as it is going to get, so I downloaded and went to compile bison, however getopt is a missing call!  A creative search found <a href="http://mirrors.ctan.org/dviware/umddvi/lib/getopt.c">getopt.c</a> (<a href="https://virtuallyfun.com/wp-content/uploads/2019/11/getopt.c">local mirror</a>) and even better PCC liked it enough to get a running bison so I could then configure GCC.</p>
<p>Configuring GCC is a manual process, but not too involved:</p>
<ul>
<li>Make a symbolic link from file `config.h&#8217; to the top-level<br />
config file for the machine you are using. Its name should be<br />
`config-MACHINE.h&#8217;. This file is responsible for<br />
defining information about the host machine. It includes<br />
`tm.h&#8217;.</li>
<li>Make a symbolic link from `tm.h&#8217; to the machine-description<br />
macro file for your machine (its name should be<br />
`tm-MACHINE.h&#8217;).</li>
<li>Make a symbolic link from `md&#8217; to the<br />
machine description pattern file (its name should be<br />
`MACHINE.md&#8217;)</li>
<li>Make a symbolic link from<br />
`aux-output.c&#8217; to the output-subroutine file for your machine<br />
(its name should be `MACHINE-output.c&#8217;).Make sure the Bison parser generator is installed.Build the compiler. Just type `make&#8217; in the compiler directory.</li>
</ul>
<p>And in a minute I had GCC compiled.  I ran it with -v and got this output:</p>
<p style="padding-left: 30px;"># gcc -v<br />
ld /lib/crt0.o -lc<br />
Undefined:<br />
_main</p>
<p>It really is nowhere near as featured as 1.21 that is for sure!  So time to do a simple hello world program:</p>
<p style="padding-left: 30px;"># cat hello.c<br />
#include &lt;stdio.h&gt;<br />
void main(){<br />
printf(&#8220;GCC 0.9 in action!\n&#8221;);<br />
}<br />
# gcc -v hello.c -o hello<br />
cpp -Dvax hello.c /tmp/cc002050.cpp<br />
cc1 /tmp/cc002050.cpp -quiet -dumpbase hello.c -noreg -o /tmp/cc002050.s<br />
as -o hello.o /tmp/cc002050.s<br />
ld -o hello /lib/crt0.o hello.o -lc<br />
# ./hello<br />
GCC 0.9 in action!</p>
<p>And there we go!</p>
<p>I don&#8217;t know why, but I haven&#8217;t seen anything about anyone actually running GCC 0.9.  Or even where or how they found this &#8216;lost&#8217; file. Â Let alone anyone even building or running it in 2016.</p>
<p>For anyone who wants to try, SIMH tape files of the binaries are here:</p>
<ul>
<li><a href="https://sourceforge.net/projects/bsd42/files/Package%20Tapes/4.2%20BSD/bison-1.00.binary.BSD-4.2.tap.bz2/download">bison-1.00.binary.BSD-4.2.tap.bz2</a></li>
<li><a href="https://sourceforge.net/projects/bsd42/files/Package%20Tapes/4.2%20BSD/gcc-0.9.binary.BSD-4.2.tap.bz2/download">gcc-0.9.binary.BSD-4.2.tap.bz2</a></li>
</ul>
<p>And of course source tapes are <a href="https://sourceforge.net/projects/bsd42/files/Package%20Tapes/Source%20Code/">here</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2016/12/01/building-using-gcc-0-90-aka-first-public-version/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Hack 1.0 preliminary version</title>
		<link>https://virtuallyfun.com/2014/10/28/hack-1-0-preliminary-version/</link>
					<comments>https://virtuallyfun.com/2014/10/28/hack-1-0-preliminary-version/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 28 Oct 2014 05:43:24 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[nethack]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=4689</guid>

					<description><![CDATA[The source code to Hack was posted onto usenet back in December of 1984: From: play@mcvax.UUCP (funhouse) Newsgroups: net.games,net.sources Subject: Hack sources posted Message-ID: &#60;6238@mcvax.UUCP&#62; Date: Mon, 17-Dec-84 09:11:48 EST Article-I.D.: mcvax.6238 Posted: Mon Dec 17 09:11:48 1984 Date-Received: Tue, &#8230; <a href="https://virtuallyfun.com/2014/10/28/hack-1-0-preliminary-version/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>The source code to Hack was posted onto usenet back in December of 1984:</p>
<pre>From: play@mcvax.UUCP (funhouse)
Newsgroups: net.games,net.sources
Subject: Hack sources posted
Message-ID: &lt;6238@mcvax.UUCP&gt;
Date: Mon, 17-Dec-84 09:11:48 EST
Article-I.D.: mcvax.6238
Posted: Mon Dec 17 09:11:48 1984
Date-Received: Tue, 18-Dec-84 07:04:44 EST
Organization: CWI, Amsterdam
Lines: 20
Xref: watmath net.games:1303 net.sources:2185

I will post the sources for Hack to net.sources.
They come in 10 parts; the total source is slightly over 400kbyte.

Hack is a game resembling rogue (but much richer than the versions
of rogue I have had access to).

The game runs on all machines with sufficient address space:
$ ls -l /usr/games/HACK
-rws--x--x  1 play       159744 Nov 10 19:09 /usr/games/HACK
$ size /usr/games/HACK
text	data	bss	dec	hex
106496	34816	29264	170576	29a50
but if you are unfortunate enough to have a backward C compiler
(without structure assignments or bitfields or functions returning
structures or with only 6 significant chars to an identifier)
then you'll have to work to get this running.

I am happy with mail, but will be abroad the next four weeks.

Good Luck &amp; Happy Hacking !</pre>
<p>Oddly enough the full source code to Hack had been lost. Â Even the <a href="http://nethackwiki.com/mediawiki/index.php?title=Hack_1.0&amp;oldid=71751">Nethack Wiki</a> didn&#8217;t have the full source code, although thanks to the <a href="http://utzoo.superglobalmegacorp.com/">UTZOO archives</a> byÂ Henry Spencer, I was able to look through enough of the tapes since I had the date and subject in hand, and I was able to pull out the entire thing.</p>
<p><div id="attachment_4691" style="width: 687px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2014/10/hack-1.0-preliminary-version-from-December-17-1984.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4691" class="size-full wp-image-4691" src="https://virtuallyfun.com/wp-content/uploads/2014/10/hack-1.0-preliminary-version-from-December-17-1984.png" alt="hack 1.0 preliminary version" width="677" height="350" /></a><p id="caption-attachment-4691" class="wp-caption-text">hack 1.0 preliminary version</p></div></p>
<p>I&#8217;ve added a <a href="http://sourceforge.net/projects/bsd42/files/Package%20Tapes/Source%20Code/Hack%201.0%20preliminary%20version.tap.bz2/download">package tape for SIMH</a>, as it builds and runs on 4.2 BSD out of the box.</p>
<p>It&#8217;s really cool to have saved this from the digital dumpster, although it was there all along. Â And thanks to others for at least pointing out that part of it was missing or I&#8217;d never even look.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2014/10/28/hack-1-0-preliminary-version/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>25 years of GCC!</title>
		<link>https://virtuallyfun.com/2012/03/23/25-years-of-gcc/</link>
					<comments>https://virtuallyfun.com/2012/03/23/25-years-of-gcc/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 23 Mar 2012 05:18:22 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[68000]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[VAX]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=1901</guid>

					<description><![CDATA[In 1987 the first announcement went out that Stallman had introduced perhaps the most importantÂ pieceÂ of GNU software ever: Â GCC. I haven&#8217;t been able to locate the 1.0 release or even the 0.9 beta (*Edit as an update, yes I&#8217;ve found &#8230; <a href="https://virtuallyfun.com/2012/03/23/25-years-of-gcc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>In 1987 the <a href="http://groups.google.com/group/mod.compilers/msg/1b3f30d88eab88f8?pli=1">first announcement</a> went out that Stallman had introduced perhaps the most importantÂ pieceÂ of GNU software ever: Â GCC.</p>
<p>I haven&#8217;t been able to locate the 1.0 release or even the 0.9 beta (<strong>*</strong>Edit <a href="https://virtuallyfun.com/2016/12/01/building-using-gcc-0-90-aka-first-public-version/">as an update, yes I&#8217;ve found it, and installed it!</a>), as close as I could find was 1.21 from May 1st, 1988. Even at this time, GCC supported the following CPUs:</p>
<ul>
<li>m68k</li>
<li>ns23k</li>
<li>spur</li>
<li>vax</li>
</ul>
<div><span style="font-size: small;">Amazingly GCC at this point is pretty snappy, and very ANSI compliant unlike PCC. Â At this point it still relies on native assemblers, linkers, librarians it still was prettyÂ versatile. Back then there was no auto configuration tools you have to link configuration scripts by hand but even on VAX BSD it builds somewhat straightforward (providing you read the documentation)..</span></div>
<div></div>
<div>
<p><div id="attachment_1904" style="width: 662px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2012/03/gcc-121.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1904" class="size-full wp-image-1904 " title="gcc 121" src="https://virtuallyfun.com/wp-content/uploads/2012/03/gcc-121.png" alt="" width="652" height="339" /></a><p id="caption-attachment-1904" class="wp-caption-text">GCC 1.21 on 4.2 BSD</p></div></p>
</div>
<p>I don&#8217;t know if it serves any practical value but I went ahead and built a <a href="http://sourceforge.net/projects/bsd42/files/Package%20Tapes/Source%20Code/gcc-1.21.source.tap.bz2/download">source package</a> for GCC 1.21, along with a <a href="http://sourceforge.net/projects/bsd42/files/Package%20Tapes/4.2%20BSD/gcc-1.21.binary.BSD-4.2.tap.bz2/download">4.2 BSD binary package</a>.. I suspect it&#8217;d only be an interest to a select few.. Although if anyone has 1.0 or 0.9 I&#8217;d be interested!</p>
<p>By 1991 GCC 1.40 supported not only the i386, but <a href="http://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4/linux-0.11%20qemu-0.15.0.7z/download">Linux</a> kernel.. And as they say the rest is history.</p>
<p>And finally a video summation of all the changes to GCC&#8230;</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/ZEAlhVOZ8qQ" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2012/03/23/25-years-of-gcc/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>RetroBSD!</title>
		<link>https://virtuallyfun.com/2011/08/11/retrobsd/</link>
					<comments>https://virtuallyfun.com/2011/08/11/retrobsd/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 11 Aug 2011 21:36:13 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[MIPS]]></category>
		<category><![CDATA[pdp11]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=1229</guid>

					<description><![CDATA[Wow isn&#8217;t that cool? Who needs a &#8216;basic stamp&#8217; if you can have UNIX!  Not to mention it&#8217;s from Serge Vakulenko, of DEMOS fame! From the main site: RetroBSD is a port of 2.11BSD Unix intended for embedded systems with fixed memory mapping. &#8230; <a href="https://virtuallyfun.com/2011/08/11/retrobsd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>2.11 BSD Unix for PIC32, build #826:
     Compiled 2011-08-07 by vak@Cobra.local:
     /Volumes/Users/vak/Project/retrobsd/trunk/sys/pic32/compile
phys mem  = 128 kbytes
user mem  = 96 kbytes
root dev  = (0,0)
root size = 16384 kbytes
swap size = 2048 kbytes
standard daemons: update.
Sun Aug  7 16:47:45 PST 2011

2.11 BSD UNIX (pic32) (console)

login: root
Password:
Welcome to RetroBSD!
# _</code></pre>



<p class="wp-block-paragraph">Wow isn&#8217;t that cool? Who needs a &#8216;basic stamp&#8217; if you can have UNIX!  Not to mention it&#8217;s from <a href="https://plus.google.com/110426728912748300178/posts">Serge Vakulenko</a>, of <a href="https://virtuallyfun.com/?p=437">DEMOS fame</a>!</p>



<p class="wp-block-paragraph">From <a href="http://code.google.com/p/retrobsd/wiki/About">the main site</a>:</p>



<p class="wp-block-paragraph">RetroBSD is a port of <a href="http://en.wikipedia.org/wiki/Bsd" rel="nofollow">2.11BSD</a> Unix intended for embedded systems with fixed memory mapping. The current target is <a href="http://www.microchip.com/en_US/family/pic32/" rel="nofollow">Microchip PIC32</a>microcontroller with 128 kbytes of RAM and 512 kbytes of Flash. PIC32 processor has <a href="http://www.mips.com/products/cores/32-64-bit-cores/mips32-m4k/" rel="nofollow">MIPS M4K</a> architecture, executable data memory and flexible RAM partitioning between user and kernel modes.</p>



<p class="wp-block-paragraph">Main features:</p>



<ul class="wp-block-list">
<li>Small resource requirements. RetroBSD requires only 128 kbytes of RAM to be up and running user applications.</li>



<li>Memory protection. Kernel memory is fully protected from user application using hardware mechanisms.</li>



<li>Open functionality. Usually, user application is fixed in Flash memory &#8211; but in case of RetroBSD, any number of applications could be placed into SD card, and run as required.</li>



<li>Real multitasking. Standard POSIX API is implemented (fork, exec, wait4 etc).</li>



<li>Development system on-board. It is possible to have C compiler in the system, and to recompile the user application (or the whole operating system) when needed.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2011/08/11/retrobsd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>BSD 4.2 on SIMH</title>
		<link>https://virtuallyfun.com/2010/12/23/bsd-4-2-on-simh/</link>
					<comments>https://virtuallyfun.com/2010/12/23/bsd-4-2-on-simh/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 24 Dec 2010 04:27:00 +0000</pubDate>
				<category><![CDATA[4.2 BSD]]></category>
		<category><![CDATA[SIMH]]></category>
		<category><![CDATA[Windows CE]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=324</guid>

					<description><![CDATA[On Windows CE 3.0 on Qemu &#8230;. The era of Pocket Unix is at hand. Even better, once I copied in a 4.2 disk from my 4.2 BSD on Windows project&#8230; it boots multiuser! For the brave, or insane my &#8230; <a href="https://virtuallyfun.com/2010/12/23/bsd-4-2-on-simh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="https://virtuallyfun.com/wp-content/uploads/2010/12/BSD-4.2-on-Windows-CE-3.0.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1291" title="BSD 4.2 on Windows CE 3.0" src="https://virtuallyfun.com/wp-content/uploads/2010/12/BSD-4.2-on-Windows-CE-3.0.jpg" alt="" width="803" height="625" /></a><br />
On Windows CE 3.0 on Qemu &#8230;.</p>
<p>The era of Pocket Unix is at hand.</p>
<p>Even better, once I copied in a 4.2 disk from my <a href="https://sourceforge.net/projects/bsd42/">4.2 BSD on Windows project</a>&#8230; it boots multiuser!</p>
<p><a href="https://virtuallyfun.com/wp-content/uploads/2010/12/BSD-4.2-multiuser-on-CE.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1292" title="BSD 4.2 multiuser on CE" src="https://virtuallyfun.com/wp-content/uploads/2010/12/BSD-4.2-multiuser-on-CE.jpg" alt="" width="801" height="621" /></a></p>
<p>For the brave, or insane my exe&#8217;s are <a href="https://archive.org/download/wince_vpsland_archive/bootvax.zip">here</a>&#8230; <a href="https://archive.org/download/wince_vpsland_archive">source to follow</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2010/12/23/bsd-4-2-on-simh/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
