<?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>Robert Hurst &#187; software</title>
	<atom:link href="http://robert.hurst-ri.us/tag/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.hurst-ri.us</link>
	<description>The life &#38; times of an information systems engineer</description>
	<lastBuildDate>Mon, 16 Jan 2012 19:34:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cygwin Xterm</title>
		<link>http://robert.hurst-ri.us/2011/02/21/cygwin-xterm/</link>
		<comments>http://robert.hurst-ri.us/2011/02/21/cygwin-xterm/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 13:06:18 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=948</guid>
		<description><![CDATA[One of the best features of Cygwin is its X display server.  But the default attributes for its Xterm application leaves something to be desired for modern PCs and their HD displays.  Below is my attempt to address that grievance; here&#8217;s a copy from my home directory .Xdefaults: XTerm*background:       Light Cyan XTerm*colorBD:          DarkBlue XTerm*colorBDMode:      True [...]]]></description>
			<content:encoded><![CDATA[<p>One of the best features of <a title="project web site" href="http://www.cygwin.com" target="_blank">Cygwin</a> is its X display server.  But the default attributes for its Xterm application leaves something to be desired for modern PCs and their HD displays.  Below is my attempt to address that grievance; here&#8217;s a copy from my home directory <strong>.Xdefaults</strong>:</p>
<pre>XTerm*background:       Light Cyan
XTerm*colorBD:          DarkBlue
XTerm*colorBDMode:      True
XTerm*cursorColor:      DarkSeaGreen
XTerm*font:             -*-lucidatypewriter-medium-r-normal-*-14-140-*-*-*-*-*-*
XTerm*font:             -*-lucidatypewriter-bold-r-normal-*-14-140-*-*-*-*-*-*
XTerm*foreground:       Black
XTerm*geometry:         100x40
XTerm*rightScrollBar:   True
XTerm*saveLines:        5000
XTerm*scrollBar:        True
XTerm*scrollTtyOutput:  False
XTerm*toolBar:          True
XTerm*trueType:         True</pre>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2011/02/21/cygwin-xterm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 13 running VICE and WinUAE</title>
		<link>http://robert.hurst-ri.us/2010/09/28/fedora-13-running-vice-and-winuae/</link>
		<comments>http://robert.hurst-ri.us/2010/09/28/fedora-13-running-vice-and-winuae/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 00:02:20 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=851</guid>
		<description><![CDATA[The latest release in WinUAE 2.3 pictured here running alongside the latest svn checkout in VICE 2.3.6: Nice!!]]></description>
			<content:encoded><![CDATA[<p>The latest release in WinUAE 2.3 pictured here running alongside the latest svn checkout in VICE 2.3.6:</p>
<div id="attachment_854" class="wp-caption aligncenter" style="width: 650px"><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/09/Fedora-vice-winuae1.png" rel="lightbox[851]"><img class="size-medium wp-image-854" title="Fedora - VICE - WinUAE" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/09/Fedora-vice-winuae1-640x400.png" alt="" width="640" height="400" /></a><p class="wp-caption-text">My Fedora 13 desktop</p></div>
<p>Nice!!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/09/28/fedora-13-running-vice-and-winuae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GnomeShell preview</title>
		<link>http://robert.hurst-ri.us/2010/06/11/gnomeshell-preview/</link>
		<comments>http://robert.hurst-ri.us/2010/06/11/gnomeshell-preview/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 21:21:53 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=724</guid>
		<description><![CDATA[I stumbled upon a Fedora package release named gnome-shell, which led me to its project web site.  It is easy to play from Gnome 2.30, simply invoke this from a terminal prompt: gnome-shell --replace &#8230; and the existing GNOME panel will be replaced using shell.  When done playing, simply press Ctrl-C from the terminal and [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled upon a <a title="Red Hat Fedora" href="http://www.redhat.com/Fedora/" target="_blank">Fedora</a> package release named gnome-shell, which led me to its <a title="GNOME 3" href="http://live.gnome.org/GnomeShell" target="_blank">project web site</a>.  It is easy to play from Gnome 2.30, simply invoke this from a terminal prompt:</p>
<pre>gnome-shell --replace</pre>
<p>&#8230; and the existing GNOME panel will be replaced using shell.  When done playing, simply press Ctrl-C from the terminal and you are back to your regular Metacity window manager (and then I use Compiz Fusion to reload Compiz).</p>
<p>Gnome Shell has a modern look &amp; feel about it, runs smooth and stable, but it is clearly feature incomplete.  The project has it mapped to be ready by this September.  Although the feature list for Fedora 14 (Laughlin) has not yet been published, its project schedule is fairly regular and I suspect Gnome 3 and this shell will be an integral part of that release.</p>
<p>Speaking of Compiz and modern looks, I enabled a feature in its configuration settings manager, Login/Logout, by prefixing its Logout Window matching criteria to include:</p>
<pre>(class=Gnome-session &amp; type=Dialog) |</pre>
<p>&#8230; with its fade out set to 2.0 seconds, saturation to 0.0, brightness to 75.0, and opacity to 66.6667.  That way, when I log out of my current window session, I get that &#8220;familiar&#8221; look of my session darkening and fading into the past.</p>
<p>A bug exists with Compiz in regards to customizing your mouse cursor theme &#8212; I prefer Oxygen_Zion myself, but Compiz insists on using the default, except when you open an application window, then the mouse renders in the custom theme until you travel outside its window &#8212; very annoying.  A workaround fix is to:</p>
<pre>mkdir ~/.icons/default
cat &gt; ~/.icons/default/index.theme &lt;&lt; EOD
[Icon Theme]
Name=Oxygen_Zion
Comment=Black
Inherits=Oxygen_Zion
[Desktop Entry]
Name[en_US]=index.theme
EOD</pre>
<p>&#8230; then logout / login to make the change persist.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/06/11/gnomeshell-preview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fedora 13 add-on packages</title>
		<link>http://robert.hurst-ri.us/2010/05/29/fedora-13-add-on-packages/</link>
		<comments>http://robert.hurst-ri.us/2010/05/29/fedora-13-add-on-packages/#comments</comments>
		<pubDate>Sat, 29 May 2010 22:04:01 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=687</guid>
		<description><![CDATA[After a stock Fedora 13 install, it is time to add-on packages to bolster up this lightweight and stable desktop OS. With the eye-candy afforded by Compiz-Fusion and Emerald theme manager and replacing the bottom Gnome panel with Avant Window Navigator and its docking applets, it is a simple matter of installing and some configuring [...]]]></description>
			<content:encoded><![CDATA[<p>After a stock Fedora 13 install, it is time to add-on packages to bolster up this lightweight and stable desktop OS.  With the eye-candy afforded by Compiz-Fusion and Emerald theme manager and replacing the bottom Gnome panel with Avant Window Navigator and its docking applets, it is a simple matter of installing and some configuring for your tastes.</p>
<p>Here&#8217;s a list of my favorites to start off with, which loads a rich set of games, internet, and programming stuff for <a title="SuperMICRO 8-core + 8gb" href="http://robert.hurst-ri.us/2008/02/07/new-workstation/" target="_blank">my 64-bit workstation</a>:</p>
<p style="padding-left: 30px;"><code>alacarte<br />
alsa-plugins-pulseaudio.i686<br />
anjuta<br />
anjuta-doc<br />
avant-window-navigator<br />
awn-extras-applets<br />
ballbuster<br />
ccache<br />
ClanLib<br />
ClanLib-devel<br />
codeblocks<br />
codeblocks-contrib<br />
codeblocks-contrib-libs<br />
codeblocks-libs<br />
compiz-fusion-extras-gnome<br />
compiz-fusion-gnome<br />
compiz-manager<br />
conglomerate<br />
control-center-extra<br />
cups-pdf<br />
dosbox<br />
ecj<br />
eclipse-cdt<br />
eclipse-changelog<br />
eclipse-dltk-ruby<br />
eclipse-jdt<br />
eclipse-phpeclipse<br />
eclipse-rpmstubby<br />
eclipse-shelled<br />
eclipse-subclipse<br />
emerald<br />
emerald-themes<br />
extremetuxracer<br />
fedora-packager<br />
fluid-soundfont-lite-patches<br />
fusion-icon-gtk<br />
games-menus<br />
gambas2-ide<br />
gcc<br />
gcc-c++<br />
gconf-editor<br />
ghostscript-doc<br />
glade3<br />
glest<br />
glunarclock<br />
gnome-applet-sshmenu<br />
gnome-games-extra<br />
gnome-games-extra-data<br />
gnome-hearts<br />
gnome-themes-extras<br />
gnubg<br />
gnuchess<br />
gnubversion<br />
hexedit<br />
htop<br />
intltool<br />
iptraf<br />
kernel-devel<br />
livecd-tools<br />
manedit<br />
Maelstrom<br />
meld<br />
mono-basic<br />
mono-basic-devel<br />
mono-core<br />
mono-data<br />
mono-data-sqlite<br />
mono-debugger<br />
mono-devel<br />
monodevelop<br />
monodevelop-debugger-mdb<br />
monodevelop-debugger-mdb-devel<br />
monodoc<br />
mono-extras<br />
mono-jscript<br />
mono-locale-extras<br />
mono-nat<br />
mono-nat-devel<br />
mono-tools<br />
mono-winforms<br />
mozplugger<br />
multimedia-menus<br />
ncurses-devel<br />
neverball<br />
nspluginwrapper<br />
nspluginwrapper.i686<br />
oxygen-cursor-themes<br />
oxygen-icon-theme<br />
penguin-command<br />
perl-libwww-perl<br />
preferences-menus<br />
PySolFC*<br />
revisor<br />
rogue<br />
ruby<br />
ruby-devel<br />
ruby-docs<br />
ruby-irb<br />
ruby-ri<br />
scorched3d<br />
SDL*<br />
security-menus<br />
stellarium<br />
stellarium-doc<br />
strace<br />
subversion-gnome<br />
supertuxkart<br />
timidity++<br />
wesnoth<br />
wine<br />
xmlcopyeditor<br />
xmlto<br />
xscreensaver-extras-gss<br />
xscreensaver-gl-extras-gss</code></p>
<p>Then there is adding on repositories from <a title="repository configurations" href="http://rpmfusion.org/Configuration" target="_blank">RPMFusion.org</a> for these packages:</p>
<p style="padding-left: 30px;"><code>atari++<br />
e-uae<br />
</code><code> gltron<br />
</code><code>gmameui<br />
mame<br />
mame-ldplayer<br />
mame-tools<br />
mess<br />
mess-data<br />
mess-tools<br />
mplayer<br />
mplayer-gui<br />
mplayer-tools<br />
stella<br />
vice</code></p>
<p>Next, add-on these <a title="Adobe YUM" href="http://get.adobe.com/flashplayer/otherversions/" target="_blank">Adobe essentials</a>:</p>
<p style="padding-left: 30px;"><code>AdobeReader_enu<br />
flash-plugin</code></p>
<p>&#8230; and <code><strong>yum remove totem-mozplugin</strong></code> which is totally useless and actually gets in the way of background media playing with Firefox (mp3, midi, wav, etc.)</p>
<p>To get a rich set of fonts working for Gnome, Firefox, and OpenOffice, I also like to unpack a copy of this <a title="fonts folder" href="http://robert.hurst-ri.us/files/linux/fonts.tar.gz">fonts archive</a> into my home directory folder, <strong>.fonts</strong></p>
<p>Finally, add Sun Java support for the command-line and web browser:</p>
<p style="padding-left: 30px;"><code>alternatives --install /usr/bin/java java /usr/java/latest/bin/java 20000<br />
alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 20000<br />
alternatives --install /usr/bin/javaws javaws /usr/java/latest/bin/javaws 20000<br />
alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/java/latest/jre/lib/amd64/libnpjp2.so 20000</code></p>
<p>&#8230; and don&#8217;t forget to run <code><strong>alternatives --set</strong></code> for each Java component.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/05/29/fedora-13-add-on-packages/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fedora 13 preupgrade</title>
		<link>http://robert.hurst-ri.us/2010/05/25/fedora-13-preupgrade/</link>
		<comments>http://robert.hurst-ri.us/2010/05/25/fedora-13-preupgrade/#comments</comments>
		<pubDate>Tue, 25 May 2010 17:16:25 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=682</guid>
		<description><![CDATA[A quick post that I (successfully) upgraded my Fedora 12 guest under KVM using the preupgrade script.  Just yum install preupgrade and enter preupgrade &#8220;Fedora 13 (Goddard)&#8221;.  After a download of 1217 packages (mileage may vary), it reboots to complete the upgrade process.  That part failed for me, although I was able to quickly diagnose [...]]]></description>
			<content:encoded><![CDATA[<p>A quick post that I (successfully) upgraded my Fedora 12 guest under KVM using the preupgrade script.  Just <strong>yum install preupgrade</strong> and enter <strong>preupgrade &#8220;Fedora 13 (Goddard)&#8221;</strong>.  After a download of 1217 packages (mileage may vary), it reboots to complete the upgrade process.  That part failed for me, although I was able to quickly diagnose the problem inside of <strong>/boot/grub/menu.lst</strong> &#8230; there was a missing space between the <strong>ks.cfg</strong> and <strong>stage2</strong> variable.  Another re-boot and the upgrade process completed painlessly.</p>
<p>Of noteworthy, WordPress with MySQL upgraded with no apparent issue and the external MailScanner RPM package is running unmodified.  That&#8217;s a relief.</p>
<p>One significant change for me was the placement of custom upstart files.  I had my role-playing game daemon simply defined before as <strong>/etc/event.d/rpgd</strong>, however, it now needs to be moved into <strong>/etc/init</strong> as <strong>rpgd.conf</strong>.  Go figure, but a simple <strong>mv</strong> and <strong>initctl start rpgd </strong>command later and it was up and running.</p>
<p>I suspected upgrading a minimal guest instance with few outside modifications would be fairly straightforward.  I do not believe I will go this route on the workstation and laptop, instead I will stick to the practice of backup and re-install for those bare metal needs.  Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/05/25/fedora-13-preupgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hack &amp; Slash online</title>
		<link>http://robert.hurst-ri.us/2010/05/13/hack-slash-online/</link>
		<comments>http://robert.hurst-ri.us/2010/05/13/hack-slash-online/#comments</comments>
		<pubDate>Thu, 13 May 2010 19:03:58 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=669</guid>
		<description><![CDATA[It has been over a year since this game has been available to play online.  Now that I have control over my guest web server and installed WebSVN, I decided it was time to dust off that old C code. But instead of crafting new scripts to compile it, I headed instead to a Gnome-based [...]]]></description>
			<content:encoded><![CDATA[<p>It has been over a year since this game has been available to <a title="rpgd" href="http://robert.hurst-ri.us/games/rpgd/" target="_blank">play online</a>.  Now that I have control over my guest web server and installed <a title="subversion source repository" href="https://robert.hurst-ri.us/websvn/" target="_blank">WebSVN</a>, I decided it was time to dust off that old C code.</p>
<p>But instead of crafting new scripts to compile it, I headed instead to a Gnome-based programming tool, <a title="project web site" href="http://www.anjuta.org" target="_blank">Anjuta IDE</a>.  What attracted to me most outside of the expected C source and header file management was its integrated ability to work with <a title="project web site" href="http://www.gnu.org/software/autogen/" target="_blank">autogen</a> and <a title="project web site" href="http://subversion.apache.org/" target="_blank">subversion</a>.  Autogen produces configure and makefile for multiple targets, which is useful since rpgd (aka Hack &amp; Slash) is made up of three binaries: <strong>rpgd</strong> (the service daemon), <strong>rpgclient</strong> (the user interface), and <strong>rpgweb</strong> (cgi to display player stats).</p>
<p>Now that I have the project under new IDE and version control, it should make for improved coding and debugging while maintaining the ability to compile, link, and go on multiple architectures.</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/05/13/hack-slash-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Berzerk MMX</title>
		<link>http://robert.hurst-ri.us/2010/03/05/berzerk-mmx/</link>
		<comments>http://robert.hurst-ri.us/2010/03/05/berzerk-mmx/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 12:32:56 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=418</guid>
		<description><![CDATA[Today, I release another arcade classic clone for the venerable Commodore VIC 20.  This time it is based on the 1980 Stern hit, Berzerk.  It did not take a span of 24-years to complete like Quikman possessed me, just a mere couple of months between commuter rail rides and some weekend tinkering.  Still, it came [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://robert.hurst-ri.us/images/berzerk-mmx-large1.jpg" target="_blank" rel="lightbox[418]"><img title="Startup screenshot" src="/images/berzerk-mmx-small1.jpg" alt="Startup screenshot" width="200" height="135" align="right" /></a>Today, I release another <a title="berzerk-mmx.zip" href="http://robert.hurst-ri.us/files/vic20/berzerk-mmx/berzerk-mmx.zip">arcade classic clone</a> for the venerable Commodore VIC 20.  This time it is based on the 1980 Stern hit, <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Berzerk" target="_blank">Berzerk</a>.  It did not take a span of 24-years to complete like <a title="1984 revisited" href="http://robert.hurst-ri.us/2008/10/27/quikman-1984-revisited/" target="_blank">Quikman</a> possessed me, just a mere couple of months between commuter rail rides and some weekend tinkering.  Still, it came out pretty good because of my improved software sprite stack and floor generator.</p>
<p>And I got all of it to fit with only the minimal 8kb memory expansion required for those software sprites &#8212; with BASIC reporting only 1-byte free after LOAD.  Funny how that always makes me feel good.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/LUol3yWLvRo&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="360" src="http://www.youtube.com/v/LUol3yWLvRo&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object><br />
<a href="http://www.youtube.com/watch?v=LUol3yWLvRo">Berzerk MMX on VIC= 20</a></p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/03/05/berzerk-mmx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Old Trick for a New Game for an even Older Computer</title>
		<link>http://robert.hurst-ri.us/2010/02/17/an-old-trick-for-a-new-game-for-an-even-older-computer/</link>
		<comments>http://robert.hurst-ri.us/2010/02/17/an-old-trick-for-a-new-game-for-an-even-older-computer/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 15:05:55 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=411</guid>
		<description><![CDATA[During the Amiga heyday in the early 1990s, I wrote a standalone BBS program called &#8216;Hack &#38; Slash&#8217;.  It was a port from an Apple ][ BASIC program, but heavily customized and enhanced using C and &#8220;modern&#8221; telecommunications and protocols for color, graphics, and sound. I thought I was really clever at the time writing [...]]]></description>
			<content:encoded><![CDATA[<p>During the Amiga heyday in the early 1990s, I wrote a standalone BBS program called &#8216;Hack &amp; Slash&#8217;.  It was a port from an Apple ][ BASIC program, but heavily customized and enhanced using C and &#8220;modern&#8221; telecommunications and protocols for color, graphics, and sound.</p>
<p>I thought I was really clever at the time writing my random dungeon level generator &#8212; it was my first practical use outside of a classroom to implement a recursive function.  Because the dungeon &#8216;walls&#8217; were probability driven, a function was needed to validate that every &#8217;tile&#8217; in the arbitrarily-sized dungeon floor was accessible by the hero.  Without this kind of validation, the hero would eventually find himself &#8216;trapped&#8217; on a floor with no means to escape.</p>
<p>The recursive function was simply invoked as chkroom(0,0), whereas the 0,0 passed were parameters to the starting point in the dungeon map matrix.  Upon entering each tile, a flag is cleared for that element in the matrix.  Next, a condition is checked if the tile to its right is accessible.  If it is, call chkroom() with +1 added to X.  If not, do the same condition checks for down, left, and up directions calling chkroom() passing values Y+1, X-1, and Y-1 respectively.</p>
<p>And at the conclusion of all this recursion, do a loop through the dungeon matrix to check if ALL of the flags had been cleared.  If any persist, do the dungeon regeneration and this validation again until it has passed.  The higher the frequency of random walls generated increases the pattern complexity of the floor, which exponentially increases the probability that the floor will not pass with an &#8216;all clear&#8217;.</p>
<p>Today, I am working on a port of an old arcade favorite, <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Berzerk" target="_blank">Berzerk</a>, for the Commodore VIC 20.  The playfield for the game is a fixed 3-row by 5-column matrix for each floor.  Given that the game needs to be written using 8-bit assembler, I quickly dismissed the idea that using my C algorithm to validate a floor could be feasible.  After all, VIC 20 is a relic machine running at 1mHz and limited memory of only a few thousand bytes available for the program, graphics, and sound all the while using a 256-byte system stack.  Ah, but the challenge by it all . . .</p>
<p>Generating the random walls for each floor is a simple matter, but validating that all its &#8216;rooms&#8217; are accessible was turning out to be very problematic.  Every time I thought I could solve this puzzle using bit operators (OR, AND, XOR) to assure that its rooms and corridors could not trap the hero, I would only later stumble upon an instance where even my most elaborate of schemes failed.  This was getting a bit frustrating, pun intended.</p>
<p>So I wandered back to my dungeon floor validation and decided it was so simple of an algorithm that it may be possible to translate it to assembler and still keep it within reason of the machine&#8217;s constraints.  After some writing and whittling, the resulting code turned out perfect!  It is called by simply zero-ing the starting cell (R0) and invoking CRAWL.  Here is its listing:</p>
<pre>CRAWL:
  LDX R0
  LDA MAZE,X
  CMP #$80
  BCC @fini        ; been here?
  AND #$7F         ; clear accessible bit
  STA MAZE,X

@right:
  LSR
  BCS @down        ; right wall?
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  INC R0
  JSR CRAWL        ; explore right cell
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls

@down:
  LSR
  BCS @left        ; bottom wall?
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  CLC
  ADC #5
  STA R0
  JSR CRAWL        ; explore cell below
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls

@left:
  LSR
  BCS @up
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  DEC R0
  JSR CRAWL        ; explore left cell
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls

@up:
  LSR
  BCS @fini        ; top wall?
  PHA              ;++ push walls
  LDA R0
  PHA              ;++ push cell
  SEC
  SBC #5
  STA R0
  JSR CRAWL        ; explore cell above
  PLA              ;-- pop cell
  STA R0
  PLA              ;-- pop walls
@fini:
  RTS</pre>
<p>This old dog is always happy to re-implement an old trick!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/02/17/an-old-trick-for-a-new-game-for-an-even-older-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PS3 Media Server</title>
		<link>http://robert.hurst-ri.us/2010/02/14/ps3-media-server/</link>
		<comments>http://robert.hurst-ri.us/2010/02/14/ps3-media-server/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:23:32 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=408</guid>
		<description><![CDATA[I discovered a nifty project, PMS, written in JAVA that allows my Linux (or Windows) workstation stream multimedia (music, photos, movies) to my Sony Playstation 3, hooked-up for viewing in all of its 52&#8243; HDTV glory.  It also includes several options to stream other multimedia content directly from the web, too, such as YouTube, Internet [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered a nifty project, <a title="PS3 Media Server" href="http://code.google.com/p/ps3mediaserver/" target="_blank">PMS</a>, written in JAVA that allows my Linux (or Windows) workstation stream multimedia (music, photos, movies) to my Sony Playstation 3, hooked-up for viewing in all of its 52&#8243; HDTV glory.  It also includes several options to stream other multimedia content directly from the web, too, such as YouTube, Internet Radio and TV.  Previously, I have used uShare with a lot of success, but this package is better suited for me because it was designed specifically to work with PS3, and it takes advantage of my 8-core workstation allowing HD content to stream without any loss in quality.</p>
<p>No more copying multimedia to the modest-sized PS3 internal hard disk &#8212; just point PMS to the workstation&#8217;s file directories, ISOs, etc. to share with PS3, and it is conveniently integrated and organized on the gaming console.  Will wonders never cease?</p>
<p>The PMS UI reveals a lot of options, but fortunately it comes preset with normalized values and pick-lists with human-readable adjustments.  It comes bundled with its own tsMuxeR package, but it plays best by leveraging other multimedia codecs and transcoding from the mainstream projects in MEncoder and VLC.  And there are free text entry boxes to override and enhance even the nerdiest of implementations.</p>
<p>I made this simple script to add as an Avant Window Navigator launcher item:</p>
<pre>#!/bin/sh
cd pms-linux-1.10.5
env JAVA_HOME=/usr/java/default ./PMS.sh
exit</pre>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/02/14/ps3-media-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCBM</title>
		<link>http://robert.hurst-ri.us/2010/01/03/opencbm/</link>
		<comments>http://robert.hurst-ri.us/2010/01/03/opencbm/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 18:24:43 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Pastime]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[VIC20]]></category>

		<guid isPermaLink="false">http://robert.hurst-ri.us/?p=385</guid>
		<description><![CDATA[With it freezing and snowing today, I decided to make use of the idle time by hooking up my pristine VIC-1541 floppy disk drive to my workstation and do some file archiving to real 5-1/4&#8243; media using OpenCBM under Linux. OpenCBM provides an API library and some useful command-line tools.  The following is an example [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00626.jpg" rel="lightbox[385]"><img class="size-thumbnail wp-image-386" title="VIC-1541" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00626-112x150.jpg" alt="VIC-1541 on my PC workstation" width="112" height="150" align="right" /></a>With it freezing and snowing today, I decided to make use of the idle time by hooking up my pristine <a title="Wikipedia" href="http://en.wikipedia.org/wiki/Commodore_1541" target="_blank">VIC-1541</a> floppy disk drive to <a title="Eightball Deluxe" href="http://robert.hurst-ri.us/2008/02/07/new-workstation/" target="_blank">my workstation</a> and do some file archiving to real 5-1/4&#8243; media using <a title="SourceForge" href="http://sourceforge.net/projects/opencbm/" target="_blank">OpenCBM</a> under Linux.</p>
<p>OpenCBM provides an API library and some useful command-line tools.  The following is an example of how to format and copy Commodore files to the floppy drive:</p>
<pre>$ <strong>sudo modprobe cbm</strong>

$ <strong>dmesg | tail</strong>
cbm_init: using passive (XM1541) cable (auto), irq 7
cbm: resetting devices
cbm: waiting for free bus...

$ <strong>cbmctrl detect</strong>
 8: 1540 or 1541 

$ <strong>cbmctrl command 8 "N0:VIC20 3-JAN-2010,10"</strong>
$ <strong>cbmctrl status 8</strong>
00, ok,00,00
$ <strong>cbmctrl dir 8</strong>
0 ."vic20 3-jan-2010" 10 2a
664 blocks free.
00, ok,00,00

$ <strong>cbmwrite 8 quikman+8k.prg</strong>
[Info] writing quikman+8k.prg -&gt; QUIKMAN+8K.PRG,P,W
[Info] identified a 1540 or 1541 drive
............-
[Info] 00, OK,00,00
$ <strong>cbmwrite 8 omega-fury.prg </strong>
[Info] writing omega-fury.prg -&gt; OMEGA-FURY.PRG,P,W
[Info] identified a 1540 or 1541 drive
....................\
[Info] 00, OK,00,00

$ <strong>cbmctrl dir 8</strong>
0 ."vic20 3-jan-2010" i1 2a
47   "quikman+8k.prg"   prg
76   "omega-fury.prg"   prg
541 blocks free.
00, ok,00,00</pre>
<p>Of course, I can now hook-up this drive to a real VIC 20 computer and play what&#8217;s on the diskette(s).  But for giggles, I can even use the Commodore 8-bit emulator, <a title="VICE Team" href="http://www.viceteam.org" target="_blank">VICE</a>, to test drive my floppies, for example:</p>
<pre>$ <strong>xvic -memory 8k -device8 2 +truedrive \
-keybuf 'LOAD "QUIKMAN+8K.PRG",8\0D'</strong>
...
sucessfully loaded libopencbm.so
/dev/cbm opened.
...</pre>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 394px"><a href="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00627.jpg" rel="lightbox[385]"><img class="size-medium wp-image-387  " title="VICE using real VIC-1541 floppy disk drive" src="http://robert.hurst-ri.us/blog/wp-content/uploads/2010/01/dsc00627-640x480.jpg" alt="VICE" width="384" height="288" /></a><p class="wp-caption-text">VICE 2.2 on a 24&quot; HP display</p></div>
<p>Nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://robert.hurst-ri.us/2010/01/03/opencbm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

