<?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>javascript &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Mon, 14 Apr 2025 16:51:11 +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>Getting Graylog onto the internet</title>
		<link>https://virtuallyfun.com/2024/02/15/getting-graylog-onto-the-internet/</link>
					<comments>https://virtuallyfun.com/2024/02/15/getting-graylog-onto-the-internet/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 15 Feb 2024 15:30:34 +0000</pubDate>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13957</guid>

					<description><![CDATA[A while back I had made a small post about getting Graylog running on Windows. It was fun, as it&#8217;s just JAVA so you know it should be portable, and other than some weird disk access thing it does seem &#8230; <a href="https://virtuallyfun.com/2024/02/15/getting-graylog-onto-the-internet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A while back I had made a small post about getting <a href="https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/" target="_blank" rel="noreferrer noopener">Graylog running on Windows</a>.  It was fun, as it&#8217;s just JAVA so you know it should be portable, and other than some weird disk access thing it does seem to run fine.</p>



<p class="wp-block-paragraph">Of course, the next step is to create a dashboard to replace what I used on wp-statistics, as it was crashing taking up 100% of my CPU, and exceeding PHP&#8217;s 12GB of RAM per process limit.  You know things are messed up when I&#8217;m replacing you with not one, but 2 Java apps! (Graylog &amp; Opensearch).</p>



<figure class="wp-block-image size-large"><a href="/https/virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard.png" target="_blank" rel="noreferrer noopener"><img fetchpriority="high" decoding="async" width="1024" height="508" src="/https/virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard-1024x508.png" alt="" class="wp-image-13958" srcset="https://virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard-1024x508.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard-300x149.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard-768x381.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard-1536x762.png 1536w, https://virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard-500x248.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/02/graylog-dashboard.png 1866w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">magical dashboard</figcaption></figure>



<p class="wp-block-paragraph">It&#8217;s by no means perfect, but the guide <a href="https://graylog.org/post/how-to-set-up-graylog-geoip-configuration/" target="_blank" rel="noreferrer noopener">How to se -up graylog geoip configuration</a>, is all around great to have.  The rest of it is me learning how to do aggregate searches, and simple lists, to see latest hits, 404&#8217;s and count the pages and build a graph.</p>



<p class="wp-block-paragraph">Again, this is all good, now for the real question, how to get this onto the Internet?!</p>



<p class="wp-block-paragraph">The firs thing to do is enable cors.. It&#8217;s for being on the internet! </p>



<pre class="wp-block-code"><code>http_enable_cors = true</code></pre>



<p class="wp-block-paragraph">Next enable the external URI name</p>



<pre class="wp-block-code"><code>http_external_uri = https://dash.board.com/</code></pre>



<p class="wp-block-paragraph">And now the changes I had to make in my haproxy config</p>



<pre class="wp-block-code"><code>frontend http-in
        acl host_graylog hdr(host) -i dash.board.com
        http-request set-uri %&#91;path,regsub(/api/api,/api)] if host_graylog
        use_backend graylog if host_graylog

backend graylog
        option forwardfor
        http-request add-header X-Forwarded-Host %&#91;req.hdr(host)]

        acl bad_ct path_end .js
        http-response set-header Content-Type application/javascript if bad_ct

        http-request set-header X-Graylog-Server-URL http://192.168.33.5:9000
        server graylog 192.168.23.33:9000 maxconn 20 check</code></pre>



<p class="wp-block-paragraph">I kind of wish I saved the logs while going crazy but YES for some reason it&#8217;ll try to reference itself as /api/api.  I don&#8217;t know why, so I had to do some uri regex to fix that.  Neat!</p>



<p class="wp-block-paragraph">Next for some reason Graylog responds that all .js (javascript) files are actually text.  Chrome doesn&#8217;t allow that to work, so yes you need to set the content type header to &#8220;application/javascript&#8221; for Chrome to be happy.</p>



<p class="wp-block-paragraph">I had wasted over an hour with this and couldn&#8217;t get it working.  So, I walked away for a few hours, and it suddenly was working. I think Cloudflare was doing some caching against it.</p>



<p class="wp-block-paragraph">This is probably too terse to be really useful, and I lost all the pages I was reading about setting stuff in haproxy as I was doing that incognito. Oops. I picked this config out of fragments from five other people&#8217;s stuff.  There is other considerations to host it on a subdirectory of a public site, but I just wanted to K.I.S.S.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/02/15/getting-graylog-onto-the-internet/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>It was 25 years ago today</title>
		<link>https://virtuallyfun.com/2020/08/25/it-was-25-years-ago-today/</link>
					<comments>https://virtuallyfun.com/2020/08/25/it-was-25-years-ago-today/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 25 Aug 2020 05:14:10 +0000</pubDate>
				<category><![CDATA[80386]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Windows 95]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10453</guid>

					<description><![CDATA[32bit computing arrived to the masses. Although it&#8217;s incredibly frail by modern standards, Windows 95 did deliver on the promises of OS/2. Depending on your apps, and drivers of course. Although OS/2 did have int13.sys to pass disk calls to &#8230; <a href="https://virtuallyfun.com/2020/08/25/it-was-25-years-ago-today/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="498" height="284" src="https://virtuallyfun.com/wp-content/uploads/2020/08/welcome-to-95.png" alt="" class="wp-image-10454" srcset="https://virtuallyfun.com/wp-content/uploads/2020/08/welcome-to-95.png 498w, https://virtuallyfun.com/wp-content/uploads/2020/08/welcome-to-95-300x171.png 300w" sizes="(max-width: 498px) 100vw, 498px" /></figure></div>



<p class="wp-block-paragraph">32bit computing arrived to the masses.  Although it&#8217;s incredibly frail by modern standards, Windows 95 did deliver on the promises of OS/2.  Depending on your apps, and drivers of course. Although OS/2 did have int13.sys to pass disk calls to a special v86 machine which then used the disk BIOS to make disk access possible, Microsoft and IBM stopped short there, not going all the way letting OS/2 use MS-DOS device drivers.  Windows 95, however could.</p>



<p class="wp-block-paragraph">This was always the winning strategy of Windows, is that it relied on the incredible OEM driver support for MS-DOS.  Of course this would also be a catastrophic weakness.  From my personal experience being able to leverage ancient MS-DOS drivers also helped squeeze as much as possible out of existing hardware.  Case in point, the NDIS2 drivers for the AT&amp;T Starlan 1mbit cards worked fine under Windows 95, additionally you could lost just the lower level drivers, and 95 could then load it&#8217;s protocols on top of that stack allowing you to have a TCP/IP network over that 1mbit Starlan stack letting you telnet into your 3b2 (or setup SAMBA, and doing file/print sharing).</p>



<figure class="wp-block-image size-large"><img decoding="async" width="724" height="460" src="https://virtuallyfun.com/wp-content/uploads/2020/08/95s-biggest-flaw.png" alt="" class="wp-image-10456" srcset="https://virtuallyfun.com/wp-content/uploads/2020/08/95s-biggest-flaw.png 724w, https://virtuallyfun.com/wp-content/uploads/2020/08/95s-biggest-flaw-300x191.png 300w, https://virtuallyfun.com/wp-content/uploads/2020/08/95s-biggest-flaw-472x300.png 472w" sizes="(max-width: 724px) 100vw, 724px" /></figure>



<p class="wp-block-paragraph">If anything the biggest flaw of Windows 95 was not installing TCP/IP by default.  However unlike many OS&#8217;s of the time, Windows 95 did include LAN and dialup stacks.  There was plenty great about OS/2, but it&#8217;s refusal to integrate networking into the operating system hamstrung things like named pipes, peer, and larger apps, as you would have to buy and license a stack of stuff to bring OS/2 up to where it should be, while NT and 95 were complete out of the box.</p>



<p class="wp-block-paragraph">Windows 95 was an excellent bridge OS for the era, until OEMs finally got around to writing drivers for Windows NT.  Once the mainstream could finally take that leap, and leave MS-DOS far behind.  But that didn&#8217;t really happen until Windows XP.</p>



<figure class="wp-block-image size-large"><a href="https://copy.sh/v86/?profile=windows95"><img loading="lazy" decoding="async" width="1024" height="773" src="https://virtuallyfun.com/wp-content/uploads/2020/08/95-desktop-1024x773.png" alt="" class="wp-image-10455" srcset="https://virtuallyfun.com/wp-content/uploads/2020/08/95-desktop-1024x773.png 1024w, https://virtuallyfun.com/wp-content/uploads/2020/08/95-desktop-300x226.png 300w, https://virtuallyfun.com/wp-content/uploads/2020/08/95-desktop-768x580.png 768w, https://virtuallyfun.com/wp-content/uploads/2020/08/95-desktop-398x300.png 398w, https://virtuallyfun.com/wp-content/uploads/2020/08/95-desktop.png 1035w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">That being said, the favorite thing is to run <a href="https://copy.sh/v86/?profile=windows95">Windows 95 in a browser</a>.  I found <a href="https://copy.sh/v86/">https://copy.sh/v86/</a> the fastest and best, as it loads a short 6MB compressed core image, and you are instantly teleported to the 95 desktop.</p>



<p class="wp-block-paragraph">Try it out, play some solitaire and enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2020/08/25/it-was-25-years-ago-today/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Hypnospace Outlaw</title>
		<link>https://virtuallyfun.com/2019/03/23/hypnospace-outlaw/</link>
					<comments>https://virtuallyfun.com/2019/03/23/hypnospace-outlaw/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 23 Mar 2019 13:56:23 +0000</pubDate>
				<category><![CDATA[games]]></category>
		<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=9291</guid>

					<description><![CDATA[It&#8217;s an interesting twist on the typical point &#38; click adventure game. How so? Well simply put it&#8217;s all based on web technology! With a big emphasis on that late 90&#8217;s vibe! Complete with &#8216;desktop pets&#8217; animated GIFs, blinking text, &#8230; <a href="https://virtuallyfun.com/2019/03/23/hypnospace-outlaw/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img loading="lazy" decoding="async" width="962" height="541" src="https://virtuallyfun.com/wp-content/uploads/2019/03/Hypnospace-Outlaw.png" alt="" class="wp-image-9292" srcset="https://virtuallyfun.com/wp-content/uploads/2019/03/Hypnospace-Outlaw.png 962w, https://virtuallyfun.com/wp-content/uploads/2019/03/Hypnospace-Outlaw-300x169.png 300w, https://virtuallyfun.com/wp-content/uploads/2019/03/Hypnospace-Outlaw-768x432.png 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /><figcaption>Hypnos desktop</figcaption></figure>



<p class="wp-block-paragraph">It&#8217;s an interesting twist on the typical point &amp; click adventure game.  How so?  Well simply put it&#8217;s all based on web technology!  With a big emphasis on that late 90&#8217;s vibe!  Complete with &#8216;desktop pets&#8217; animated GIFs, blinking text, and embedded MIDI (and even more sophisticated music).</p>



<p class="wp-block-paragraph">While it&#8217;s obviously not real, the entire &#8216;web&#8217; is stored locally (even in it&#8217;s own lore), it&#8217;s still fun to dig around in.</p>



<p class="wp-block-paragraph">You play as an &#8220;Enforcer&#8221; basically it&#8217;s like back to the AOL days of walled gardens being patrolled by unpaid volunteers.  Look for banned content and flag it appropriately.  As the game progresses things go off the rails, near riots, helicopter crashes, amputations, culminating in a Y2K crash that kills people.</p>



<p class="wp-block-paragraph">I totally missed out on this being a crowdfunded thing, and found out from Steam recommendations of all things.</p>



<p class="wp-block-paragraph">Even for the aesthetic alone, I think it&#8217;s worth it.  Some of the game play is too much wrapped up into it&#8217;s own lore, so paying attention is kind of important.</p>



<iframe loading="lazy" id="steam" src="https://store.steampowered.com/widget/844590/" frameborder="0" width="570" height="190"></iframe>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2019/03/23/hypnospace-outlaw/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Run Windows 2000 in your browser!</title>
		<link>https://virtuallyfun.com/2017/12/03/run-windows-2000-in-your-browser/</link>
					<comments>https://virtuallyfun.com/2017/12/03/run-windows-2000-in-your-browser/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 03 Dec 2017 02:42:26 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[random updates]]></category>
		<category><![CDATA[Windows 2000]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7881</guid>

					<description><![CDATA[You can check it out here: https://bellard.org/jslinux/index.html For me it took 5 minutes and about 25MB to boot to the UI.  I didn&#8217;t see anything about making your own disk images, so looks like it&#8217;s locked to FreeDOS, Linux and &#8230; <a href="https://virtuallyfun.com/2017/12/03/run-windows-2000-in-your-browser/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>You can check it out here: <a href="https://bellard.org/jslinux/index.html">https://bellard.org/jslinux/index.html</a></p>
<p><a href="https://virtuallyfun.com/wp-content/uploads/2017/12/Windows-2000-in-JSLinux.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-7883" src="https://virtuallyfun.com/wp-content/uploads/2017/12/Windows-2000-in-JSLinux.png" alt="" width="2126" height="1700" /></a></p>
<p>For me it took 5 minutes and about 25MB to boot to the UI.  I didn&#8217;t see anything about making your own disk images, so looks like it&#8217;s locked to FreeDOS, Linux and Windows 2000.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/12/03/run-windows-2000-in-your-browser/feed/</wfw:commentRss>
			<slash:comments>42</slash:comments>
		
		
			</item>
		<item>
		<title>BoxedWine</title>
		<link>https://virtuallyfun.com/2017/10/19/boxedwine/</link>
					<comments>https://virtuallyfun.com/2017/10/19/boxedwine/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 18 Oct 2017 18:18:24 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Wine]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7727</guid>

					<description><![CDATA[I got a tip in another post about this fantastical project, boxedwine!Â  It&#8217;s Wine + a 386 processor emulator, and it&#8217;s been targeted to SDL.Â  What does this mean? Wine on Windows! I went ahead with one of the oldest &#8230; <a href="https://virtuallyfun.com/2017/10/19/boxedwine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_7728" style="width: 710px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/WineEnthu_BoxedWine_5512FR-700x461.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7728" class="size-full wp-image-7728" src="https://virtuallyfun.com/wp-content/uploads/2017/10/WineEnthu_BoxedWine_5512FR-700x461.jpg" alt="" width="700" height="461" /></a><p id="caption-attachment-7728" class="wp-caption-text">Not this kind!</p></div></p>
<p>I got a tip in another post about this fantastical project, <a href="http://boxedwine.sourceforge.net">boxedwine</a>!Â  It&#8217;s Wine + a 386 processor emulator, and it&#8217;s been targeted to SDL.Â  What does this mean? Wine on Windows!</p>
<p><div id="attachment_7729" style="width: 812px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/BoxedWine-running-SimEarth.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7729" class="size-full wp-image-7729" src="https://virtuallyfun.com/wp-content/uploads/2017/10/BoxedWine-running-SimEarth.png" alt="" width="802" height="632" /></a><p id="caption-attachment-7729" class="wp-caption-text">Sim Earth for Windows 3.0</p></div></p>
<p>I went ahead with one of the oldest Windows games I have around, SimEarth, for Windows 3.0.Â  I don&#8217;t have Balance of Power, although I guess I may procure a copy one day.Â  Anyways it&#8217;s Windows in it&#8217;s 1990 glory 16bit, 286 protected mode, and sure as heck won&#8217;t run on Win64.Â  Oh sure you can run this on <a href="https://archive.org/details/win3_SIMEARTH">MS-DOS + Windows</a>, but where is the fun in that?</p>
<p>Now that&#8217;s all good fun, sure Wine can run stuff, sure, but it&#8217;s still wine.Â  Well remember all that noise about android running Wine?Â  Yeah, well here we go.</p>
<p><div id="attachment_7730" style="width: 649px" class="wp-caption aligncenter"><a href="http://boxedwine.sourceforge.net/b4/boxedwine.html?app=chomp&amp;p=CHOMP.EXE"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7730" class="wp-image-7730 size-full" src="https://virtuallyfun.com/wp-content/uploads/2017/10/chomp-in-javascript.png" alt="" width="639" height="508" /></a><p id="caption-attachment-7730" class="wp-caption-text">Wine + x86 emulation +SDL in javascript!</p></div></p>
<p>Here we go.Â  <a href="http://boxedwine.sourceforge.net/b4/games.html">Games</a>, and the <a href="https://sourceforge.net/projects/boxedwine/">BoxedWine project page</a>.Â  Â And yes, it can run stuff like Quake 2, and other far more intense applications.Â  Just like Wine.Â  It&#8217;s really great stuff, check it out, if only in a browser.</p>
<p>If you want to run ancient Win16 stuff in a pinch, it may actually run.Â  I had issues with win87em.dll stuff, but just like Wine it&#8217;s a moving window of compatibility.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/10/19/boxedwine/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Microsoft C KnowledgeBase articles online</title>
		<link>https://virtuallyfun.com/2017/10/17/microsoft-c-knowledgebase-articles-online/</link>
					<comments>https://virtuallyfun.com/2017/10/17/microsoft-c-knowledgebase-articles-online/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 17 Oct 2017 10:45:37 +0000</pubDate>
				<category><![CDATA[cdroms]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[QEMU]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7718</guid>

					<description><![CDATA[It&#8217;s weird I was discussing putting this online in a more human readable format, and then Jeff Parsons over at the incredible full system emulation in javascript site, pcjs.org just did it. As you may or not be aware of, Microsoft &#8230; <a href="https://virtuallyfun.com/2017/10/17/microsoft-c-knowledgebase-articles-online/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_7719" style="width: 594px" class="wp-caption aligncenter"><a href="https://books.google.com.hk/books?id=pMnJ2MkrjNgC&amp;pg=PA213&amp;dq=%22Microsoft+Programmer%27s+Library%22&amp;hl=en&amp;sa=X&amp;ved=0ahUKEwig2fnqu_fWAhUDG5QKHbBbAY4Q6AEIKjAB#v=onepage&amp;q&amp;f=false"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7719" class="wp-image-7719 size-large" src="https://virtuallyfun.com/wp-content/uploads/2017/10/Microsoft-Programmers-Library-1024x550.png" alt="" width="584" height="314" /></a><p id="caption-attachment-7719" class="wp-caption-text">PC Mag, January 1989</p></div></p>
<p>It&#8217;s weird I was discussing putting this online in a more human readable format, and then Jeff<a href="http://twitter.com/jeffpar"> Parsons</a> over at the incredible full system emulation in javascript site, <a href="https://www.pcjs.org/">pcjs.org</a> just did it.</p>
<p>As you may or not be aware of, Microsoft hit it big as a computer languages company, before they added operating systems into it&#8217;s portfolio.  And for some weird reason after the whole OS/2 divorce thing, someone decided that everything that had been painfully learned in the earlier eras should just be expunged from history.  Which is a real shame to anyone interested in Basic, Fortran, Pascal, C and MASM.  Years ago I had gone through the steps of extracting the text the only way I could figure out easily, by writing a <a href="https://virtuallyfun.com/wordpress/2012/07/05/2133/">simple TSR that would dump the contents of the text video buffer, and write it to a file, then press the page down key, and keep repeating the process.</a> The end result being that I had then dumped the MSPL aka the Microsoft Programmer&#8217;s Library.  I had put the text into an archive, aptly named <a href="http://vpsland.superglobalmegacorp.com/install/OS2/OS2_1.x/Microsoft_Programmers_Library.7z">Microsoft_Programmers_Library.7z</a>, and pretty much used grep whenever I wanted any information and left it at that&#8230;</p>
<p>It&#8217;s really cool to see it slowly transitioning to more useful information.  You can read Jeff&#8217;s article <a href="https://www.pcjs.org/blog/2017/10/13/">Corporations Are Crappy Archivists</a> about his quest for seemingly simple information about ancient Microsoft mice, and the archive of <a href="https://www.pcjs.org/pubs/pc/reference/microsoft/kb/">KB&#8217;s for Microsoft C</a>.</p>
<p>One thing that is annoying is that information on CD from the late 1980&#8217;s seems to be darned near impossible to find.  I know that each generation of machines until about 2005 was exponentially larger than the previous one (post 2007 we hit the iThing world, along with most machines being &#8216;good enough&#8217; for day-to-day usage).  I know this ad may seem insane, but Microsoft really was trying to push people to CD distributions.  As we all know that internet thing didn&#8217;t quite tickle their fancy.    Did they ever put resources like this online?  Like on BIX or Compuserve?  It seems like an ideal resource.  But I was a kid, and didn&#8217;t have that kind of money.</p>
<p><div id="attachment_7722" style="width: 594px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/Microsoft-CD-advert.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7722" class="wp-image-7722 size-large" src="https://virtuallyfun.com/wp-content/uploads/2017/10/Microsoft-CD-advert-733x1024.jpg" alt="" width="584" height="816" /></a><p id="caption-attachment-7722" class="wp-caption-text">Awesome CD-ROM collection and drive, starting at a mere $899!</p></div></p>
<p>So in the interest of a bad idea, here is <a href="https://virtuallyfun.com/mspl/">MSPL</a>, aka qemu/curses in action.</p>
<p><div id="attachment_7724" style="width: 727px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/mspl/"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7724" class="size-full wp-image-7724" src="https://virtuallyfun.com/wp-content/uploads/2017/10/MSPL-Inside-OS2-in-a-browser.png" alt="" width="717" height="616" /></a><p id="caption-attachment-7724" class="wp-caption-text">Oh my god, what I have I done!?</p></div></p>
<p>Well as an addendum I thought it&#8217;d be cool to put MSPL online, via <a href="https://github.com/shellinabox/shellinabox">shellinabox</a>.  First off I needed a 5MB MS-DOS disk, basically enough MS-DOS too boot up, run smartdrive, idle and the CD-ROM driver, along with the minimal MSPL install.  And to button it up, I added a <a href="https://www.experts-exchange.com/questions/10283364/Automatic-MSDOS-boot.html">reboot.com</a> from the autoexec, so when you exit it&#8217;ll reboot the VM.  Great.</p>
<p>The reboot command was input via debug, as it&#8217;ll let you assemble code directly.  Although it isn&#8217;t a MACRO assembler, so you have to know exactly what you are doing.</p>
<p style="padding-left: 30px;">DEBUG RESET.COM<br />
A<br />
XOR AX, AX<br />
NOT AX<br />
PUSH AX<br />
NOT AX<br />
PUSH AX<br />
RETF<br />
(return on a line by itself)<br />
RCX<br />
9<br />
W<br />
Q</p>
<p>And with that saved, now I have to setup Qemu.  Since I&#8217;m taking the shellinabox approach that means I need something text mode, and I was thinking this was light weight. Qemu has a curses output so that&#8217;ll work.  I set it up to use qcow2 and a backing store image so that way every forked user doesn&#8217;t eat 5MB of disk space, it&#8217;s more like 100kb.</p>
<p style="padding-left: 30px;">#!/bin/sh<br />
set -m<br />
PID=$$<br />
mkdir /tmp/$PID<br />
cd /tmp/$PID<br />
qemu-img create -f qcow2 -b /usr/local/mspl/MSPL.qcow2 MSPL.qcow2<br />
qemu-system-i386 -m 4 -cpu 486 -hda MSPL.qcow2 -cdrom /usr/local/mspl/Microsoft-Programers-Library-v1.3.iso -curses -no-reboot<br />
cd /tmp<br />
rm -rf /tmp/$PID</p>
<p>Then to tie it into shell in a box, it&#8217;ll just need the flag:</p>
<p style="padding-left: 30px;">-s /mspl:nobody:nogroup:/:/usr/local/bin/mspl.sh</p>
<p>and this will run it as nobody and kick off the above bash script.  Now that&#8217;s great and all, but what about stale/abandoned sessions?  I wrote this quick script to clean them up.</p>
<p style="padding-left: 30px;">#!/bin/bash</p>
<p style="padding-left: 30px;">FIND=&#8221;find /tmp -type d -regextype sed -regex &#8216;.*/[0-9]*&#8217; -mmin +30 | sed &#8216;s/\/tmp\///&#8217;&gt;/tmp/kill_out.txt&#8221;<br />
eval $FIND<br />
while read process; do</p>
<p style="padding-left: 60px;">KILL=&#8221;kill -9 ${process}&#8221;<br />
eval $KILL<br />
RMDIR=&#8221;rm -rf /tmp/${process}&#8221;<br />
eval $RMDIR</p>
<p style="padding-left: 30px;">done &lt; /tmp/kill_out.txt<br />
rm -rf /tmp/kill_out.txt</p>
<p>So it&#8217;ll find numerical directories that are at least 30 minutes old, kill them and remove their directory.  Probably very dangerous to run, but it&#8217;s isolated so Im not too worried.  Then just have root add that script to its crontab, and run it every minute, and it&#8217;ll kill the old stuff hanging around.</p>
<p>I&#8217;ll add a video later on how to use MSPL via this setup.  And maybe I&#8217;ll rig something to have RDP access as well, depending on how I&#8217;m feeling.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/10/17/microsoft-c-knowledgebase-articles-online/feed/</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>8 bit boy &#038; JS-DOS</title>
		<link>https://virtuallyfun.com/2017/10/15/8-bit-boy-js-dos/</link>
					<comments>https://virtuallyfun.com/2017/10/15/8-bit-boy-js-dos/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 15 Oct 2017 10:52:55 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7707</guid>

					<description><![CDATA[A long while ago I had combined both 8bit boy &#38; a JAVA port of DOSBox for a run in your browser extravaganza featuring a Russian version of Windows/386 and tetris (along with other Russian adapted games).Â  But time moves &#8230; <a href="https://virtuallyfun.com/2017/10/15/8-bit-boy-js-dos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="http://8bitboy.popforge.de"><img loading="lazy" decoding="async" class="aligncenter wp-image-7708 size-full" src="https://virtuallyfun.com/wp-content/uploads/2017/10/8-bit-boy.png" alt="" width="556" height="153" /></a>A long while ago I had combined both <a href="http://8bitboy.popforge.de">8bit boy</a> &amp; a JAVA port of DOSBox for a run in your browser extravaganza featuring a Russian version of Windows/386 and tetris (along with other Russian adapted games).Â  But time moves on, and flash apps fall out of favor, and well Oracle did their thing and Java is basically dead in the browser.Â  I had been trying to go with a javascript solution for a while, but <a href="https://js-dos.com">js-dos</a>Â looks better than the last few iterations.</p>
<p>However I haven&#8217;t figured out how to boot into a disk image, and attempting to loop to loop causes it to hang.Â  So I&#8217;m stuck with a simple zip of tetris and using the newer 8bit boy javascript port to hammer out some MOD&#8217;s of various theme music.Â  It&#8217;s not perfect but it&#8217;s better than being dead, which is where it was before this.</p>
<p><a href="http://vpsland.superglobalmegacorp.com/jdosbox/win21russian.html">You can see it here</a>.</p>
<p>I though this same tech would be a great way to take my <a href="https://virtuallyfun.com/2017/10/08/gcc-1-27-ms-dos/">GCC 1.27 build of DooM</a>, and shove it in DOSBox and get it out into the world.Â  Although its far too slow for me, but it could be this crap laptop.Â  (my new one should be here in 7 days, but I have to travel again in 5&#8230;..).Â  I had also updated my <a href="https://sourceforge.net/projects/crossdjgppv1/">DJGPP cross project</a> to include 1.27, and rename the v1 as gcc_v139 to at least reflect what it is.</p>
<p><a href="http://vpsland.superglobalmegacorp.com/jdosbox/doom_gcc127.html">You can check out this super early GCC compiled version of DooM here</a>.</p>
<p>I&#8217;ll have to try to convert over all I can.Â  I hated having all this stuff basically configured, but then thanks to SUN going bust, and Oracle being Oracle it all got screwed over.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/10/15/8-bit-boy-js-dos/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>NetHack in your browser via Moxie CPU</title>
		<link>https://virtuallyfun.com/2017/09/14/nethack-browser-via-moxie-cpu/</link>
					<comments>https://virtuallyfun.com/2017/09/14/nethack-browser-via-moxie-cpu/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 14 Sep 2017 06:26:33 +0000</pubDate>
				<category><![CDATA[gcc]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nethack]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=4728</guid>

					<description><![CDATA[I saw this many years ago, but for some reason never finished writing about this. Moxie was a virtual CPU designed to be as simple as possible for the GNU toolchain to target. Perhaps one of the more interesting things &#8230; <a href="https://virtuallyfun.com/2017/09/14/nethack-browser-via-moxie-cpu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I saw this many years ago, but for some reason never finished writing about this. <a href="http://moxielogic.org/blog/">Moxie</a> was a virtual CPU designed to be as simple as possible for the GNU toolchain to target.</p>



<p class="wp-block-paragraph">Perhaps one of the more interesting things was a port of RTEMS to the Moxie CPU, and a port of Nethack to that architecture. And of course, there was a javascript simulator environment allowing me to easily embed it into this post.</p>



<canvas id="tty" class="screen" width="640" height="384">
                        Terminal uses canvas
                    </canvas>

<script src="/https/virtuallyfun.com/moxie/terminal.js"></script>

<script src="/https/virtuallyfun.com/moxie/terminal-input.js"></script>

<script src="/https/virtuallyfun.com/moxie/moxie.js"></script>

<script src="/https/virtuallyfun.com/moxie/nethack.js"></script>



<p class="wp-block-paragraph">So yes, it&#8217;s a virtual CPU, OS &amp; Game, running in java-script and on the page.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/09/14/nethack-browser-via-moxie-cpu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Multiplayer Macintosh Plus via Javascript/</title>
		<link>https://virtuallyfun.com/2017/05/24/multiplayer-macintosh-plus-via-javascript/</link>
					<comments>https://virtuallyfun.com/2017/05/24/multiplayer-macintosh-plus-via-javascript/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 24 May 2017 00:29:47 +0000</pubDate>
				<category><![CDATA[68000]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[m68k]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7132</guid>

					<description><![CDATA[I found this fun pageÂ over onÂ retroweb.maclab.orgÂ  What is interesting is that it encorporates PeerJS and WebRTC to allow for a virtual network, letting you play multiplayer AppleTalk. Â Just enable the network, and scan for other users. It&#8217;s pretty cool, in &#8230; <a href="https://virtuallyfun.com/2017/05/24/multiplayer-macintosh-plus-via-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I found this fun pageÂ over onÂ <a href="http://retroweb.maclab.org/articles/Online-Games.html">retroweb.maclab.org</a>Â  What is interesting is that it encorporates PeerJS and WebRTC to allow for a virtual network, letting you play multiplayer AppleTalk. Â Just enable the network, and scan for other users.</p>
<p>It&#8217;s pretty cool, in a zero config kind of way!</p>
<p><div id="attachment_7135" style="width: 1172px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/05/MacPCE-AppleTalk-whos-there.gif"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7135" class="size-full wp-image-7135" src="https://virtuallyfun.com/wp-content/uploads/2017/05/MacPCE-AppleTalk-whos-there.gif" alt="" width="1162" height="935" /></a><p id="caption-attachment-7135" class="wp-caption-text">PCE-MacPlus</p></div></p>
<p>And for coolness it&#8217;ll embed in a snazzy picture of a Mac Plus. Â Although you can magnify the screen, so you don&#8217;t have to squint so much.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/05/24/multiplayer-macintosh-plus-via-javascript/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Cool PDP-1 emulator: Ironic Computer Space Simulator</title>
		<link>https://virtuallyfun.com/2016/11/04/cool-pdp-1-emulator-ironic-computer-space-simulator/</link>
					<comments>https://virtuallyfun.com/2016/11/04/cool-pdp-1-emulator-ironic-computer-space-simulator/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 03 Nov 2016 16:59:38 +0000</pubDate>
				<category><![CDATA[Digitial]]></category>
		<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=6582</guid>

					<description><![CDATA[I saw this PDP-1 emulator being mentioned on reddit, and it&#8217;s certainly worth a moment to check out! Â Written in javascript it offers a cool HTML5 CRT like screen to play spacewar! on. http://www.masswerk.at/spacewar/ &#160; And there is a wealth &#8230; <a href="https://virtuallyfun.com/2016/11/04/cool-pdp-1-emulator-ironic-computer-space-simulator/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_6583" style="width: 1119px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2016/11/snow.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6583" class="size-full wp-image-6583" src="https://virtuallyfun.com/wp-content/uploads/2016/11/snow.png" alt="Snow" width="1109" height="873" /></a><p id="caption-attachment-6583" class="wp-caption-text">Snow</p></div></p>
<p>I saw this PDP-1 emulator being mentioned on <a href="https://www.reddit.com/r/retrobattlestations/comments/5ax2oe/ironic_computer_space_simulator_for_the_dec_pdp1/">reddit</a>, and it&#8217;s certainly worth a moment to check out! Â Written in javascript it offers a cool HTML5 CRT like screen to play <a href="https://en.wikipedia.org/wiki/Spacewar!">spacewar!</a> on.</p>
<p><a href="http://www.masswerk.at/spacewar/">http://www.masswerk.at/spacewar/</a></p>
<p>&nbsp;</p>
<p>And there is a wealth of information over on <a href="http://www.masswerk.at/rc2016/10/">their blog here</a>.</p>
<p>Enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2016/11/04/cool-pdp-1-emulator-ironic-computer-space-simulator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
