<?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>Ciaran&#039;s Random Writings &#187; Games</title>
	<atom:link href="http://ciarang.com/posts/category/software/games/feed" rel="self" type="application/rss+xml" />
	<link>http://ciarang.com</link>
	<description>Random things I&#039;ve written about stuff</description>
	<lastBuildDate>Thu, 02 Feb 2012 17:46:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>George Iwanow</title>
		<link>http://ciarang.com/posts/george-iwano</link>
		<comments>http://ciarang.com/posts/george-iwano#comments</comments>
		<pubDate>Thu, 07 Aug 2008 18:30:08 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/?p=293</guid>
		<description><![CDATA[Last week I found myself hand-assembling some 80&#215;86 opcodes, for reasons I won&#8217;t to go into today, and I was reminded of George Iwanow. George was a character and a half, and an excellent programmer, who sadly passed away many years ago. Amongst other things, he was largely responsible for the Spectrum versions of The [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I found myself hand-assembling some 80&#215;86 opcodes, for reasons I won&#8217;t to go into today, and I was reminded of George Iwanow. George was a character and a half, and an excellent programmer, who sadly passed away many years ago. Amongst other things, he was largely responsible for the Spectrum versions of The Empire Strikes Back and Fighter Bomber.</p>
<p>I could tell George-stories all day long, but I&#8217;ll restrict myself to the one that brought back the memory &#8211; the job interview&#8230;</p>
<p><span id="more-293"></span></p>
<p>The scene, an office building in Leeds which by coincidence housed both the legendary <a href="http://www.crashonline.org.uk/29/realtime.htm">Realtime Games Software</a> and upstarts <a href="http://www.crashonline.org.uk/64/bomber.htm">Vektor Grafix</a>. Quite a large coincidence given that Realtime were well known for 3D Starstrike, an unofficial clone of the Star Wars arcade machine, while Vektor Grafix had just completed the official Atari-licensed conversion of the same.</p>
<p>It was at the door of Vektor Grafix that what can only be described as the third Blues Brother arrived, complete with dark suit and sunglasses. This was George and he played bass guitar, but rather than wanting to put the band back together he was selling out to the man and had come about the job. It quickly became apparent that he knew his stuff, and he also demonstrated some very complex circuit board design software he&#8217;d written, so he moved straight on to the coding test which had been hastily invented the day before. If I remember correctly, it was along the lines of &#8220;here&#8217;s some font data, here&#8217;s some text, render it to the screen.&#8221;</p>
<p>We sat George down in front of the development system of the day, which was an Amstrad PC1512 running an cross-assembler called <a href="http://www.glaister.com/History/Andy/Andy%20History.htm">PDS</a> and hooked up via some custom hardware to the innards of a <a href="http://en.wikipedia.org/wiki/Sinclair_ZX_Spectrum">Spectrum</a>.</p>
<p>&#8220;I just type it in here, do I?&#8221; asked George, somewhat bemused.</p>
<p>&#8220;Yes,&#8221; we answered, and off he went. Type turned out to be probably too strong a word, but nonetheless George set off typing &#8211; by which I mean alternately peering at the screen through the sunglasses and peering at the keyboard through the sunglasses while prodding a key with his index finger. This (or something like it) appeared on the PC screen&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">17,0,64,33,...</pre></div></div>

<p>&#8220;Whoa there,&#8221; I said, recognising Z80 opcodes (in decimal, of all things). &#8220;It&#8217;s an assembler, you can actually type the assembly language.&#8221;</p>
<p>&#8220;Wow, really? That&#8217;s amazing.&#8221; Off he went again&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">LD DE,&amp;4000
LD HL,...</pre></div></div>

<p>The resulting program worked of course. It&#8217;s probably worth pointing out that knowing the opcodes (and associated instruction timings) was not all that unusual in those days, but when we realised that he&#8217;d developed the circuit board design software he&#8217;d demonstrated using nothing but a stream of decimal opcodes, we were blown away.</p>
<p>Anyway, it&#8217;s not a plaque on a park bench (or one of those ghastly football shirt and flowers tied to a lamppost things that seem to be all the rage these days) but for what it&#8217;s worth this is my memorial to George.</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/george-iwano/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It Crashes</title>
		<link>http://ciarang.com/posts/it-crashes</link>
		<comments>http://ciarang.com/posts/it-crashes#comments</comments>
		<pubDate>Wed, 16 Apr 2008 22:08:05 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/posts/it-crashes/</guid>
		<description><![CDATA[Any software developer will be able to tell tales of bug reports that don&#8217;t give enough information to reproduce the problem. My all-time favourite said just this: &#8220;When you take off from the aircraft carrier in the F4 Phantom, it crashes.&#8221; Not an unusual scenario &#8211; a complex flight-sim written entirely in 80&#215;86 assembler tends [...]]]></description>
			<content:encoded><![CDATA[<p>Any software developer will be able to tell tales of bug reports that don&#8217;t give enough information to reproduce the problem. My all-time favourite said just this: &#8220;When you take off from the aircraft carrier in the F4 Phantom, it crashes.&#8221; Not an unusual scenario &#8211; a complex flight-sim written entirely in 80&#215;86 assembler tends to either work perfectly, or crash.</p>
<p><span id="more-205"></span></p>
<p>Since it was back in the days before internets, emails and bug databases, this list that included this particular bug report arrived, as was customary, by trans-Atlantic fax. What with timezone differences and costs of international calls in those days, the best course of action was to try and find the problem given the limited information.</p>
<p>After much testing and poring over the rendering code, the flight logic code, the cockpit code and anything else that could possibly be involved, we were no nearer a solution and finally had to give in and enter the dreaded &#8216;request more information&#8217; cycle. How reproducible is this problem? &#8220;It happens every time.&#8221; Every time? We&#8217;ve done this hundreds of times, it never crashes here. Try it on a different machine? Cockpit view? External view? Try it in VGA mode? Turn the sound off? &#8220;Nope, no matter what, it always crashes.&#8221;</p>
<p>Eventually it turned out that the software wasn&#8217;t crashing at all. The plane was crashing, straight off the end of the carrier deck and into the sea. The resolution to the &#8216;bug&#8217;? Don&#8217;t attempt a short take-off with the air brake on.</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/it-crashes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Mario Bros in Javascript</title>
		<link>http://ciarang.com/posts/super-mario-bros-in-javascript</link>
		<comments>http://ciarang.com/posts/super-mario-bros-in-javascript#comments</comments>
		<pubDate>Thu, 10 Apr 2008 16:35:37 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/posts/super-mario-bros-in-javascript/</guid>
		<description><![CDATA[This excellent piece of work raised a smile &#8211; the first level of Super Mario Bros implemented very neatly in Javascript. It&#8217;s 35K for the whole lot, compressed down to 14K. For comparison, the small screenshot in the article is 24K!]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html">This excellent piece of work</a> raised a smile &#8211; the first level of Super Mario Bros implemented very neatly in Javascript. It&#8217;s 35K for the whole lot, compressed down to 14K. For comparison, the small screenshot in the article is 24K!</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/super-mario-bros-in-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hardwar Odds and Ends</title>
		<link>http://ciarang.com/posts/hardwar-odds-and-ends</link>
		<comments>http://ciarang.com/posts/hardwar-odds-and-ends#comments</comments>
		<pubDate>Fri, 18 Jan 2008 18:44:47 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Hardwar]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/posts/hardwar-odds-and-ends/</guid>
		<description><![CDATA[I managed to catch up with a few requests for Hardwar technical information this evening. Various updates can be found in the usual place. I still have a few in the queue, so if I didn&#8217;t get round to yours, send it again. More than once if you&#8217;re in a hurry! As the screenshot (click [...]]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin-left:10px;margin-top:10px;"><a href='http://ciarang.com/wp-content/uploads/2008/01/refmax.png' title='RefMax screenshot'><img src='http://ciarang.com/wp-content/uploads/2008/01/refmax.thumbnail.png' alt='RefMax screenshot' /></a></div>
<p>I managed to catch up with a few requests for Hardwar technical information this evening. Various updates can be found in <a href="http://ciarang.com/hardwar/hwtech">the usual place</a>. I still have a few in the queue, so if I didn&#8217;t get round to yours, send it again. More than once if you&#8217;re in a hurry!</p>
<p>As the screenshot (click for full size) shows, I&#8217;ve also managed to compile a working version of RefMax, which was used to edit the 3D models, terrain, etc. Although progress has been made before editing and creating models without this by converting the game data to different formats, several people expressed an interest in getting hold of &#8216;the real thing&#8217;. It seems to work fine with the data you can extract from the game resource files. I&#8217;ll upload a copy when I&#8217;ve put together some basic instructions for setting it up and using it, but if anyone is keen to try it, let me know and it will encourage me to get round to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/hardwar-odds-and-ends/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eating my own dog food</title>
		<link>http://ciarang.com/posts/eating-my-own-dog-food</link>
		<comments>http://ciarang.com/posts/eating-my-own-dog-food#comments</comments>
		<pubDate>Mon, 16 Jul 2007 21:03:00 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[DRM]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/index.php/archives/77</guid>
		<description><![CDATA[Fortunately I haven&#8217;t really been eating dog food, I&#8217;m talking metaphorically. It started when I &#8216;accidentally&#8217; purchased an Amiga 500 on Ebay for a fiver, and found that the only Amiga software I had in the house was a still-shrinkwrapped copy of one of my own games, a flight sim called Dogfight &#8211; 80 Years [...]]]></description>
			<content:encoded><![CDATA[<p>Fortunately I haven&#8217;t really been <a href="http://en.wikipedia.org/wiki/Eat_one's_own_dog_food">eating dog food</a>, I&#8217;m talking metaphorically. It started when I &#8216;accidentally&#8217; purchased an Amiga 500 on Ebay for a fiver, and found that the only Amiga software I had in the house was a still-shrinkwrapped copy of one of my own games, a flight sim called <em>Dogfight &#8211; 80 Years of Aerial Warfare</em>. (In the US it was called <em>Air Duel</em> I think)</p>
<p>The first thing I was hit with was the &#8216;<a href="http://www.defectivebydesign.org">DRM</a>&#8216;, in the form of a &#8220;please enter 12 from page 47, paragraph 3 of the manual&#8221; question. A classic way to irritate your paying customers repeatedly, while the so-called pirates (arrrrr!) get off scot free. Of course, these days far more devious and dastardly schemes sail the high seas, but it did remind me of various other similar copy-protection fiascos I should be ashamed to have been involved in, so I&#8217;ll probably write more about them another day.</p>
<p>The next realisation was that it was really a PC game, shoehorned onto the Amiga, and really needing at least an A1200 rather than the comparitively sluggish A500. It did keep me amused for an hour or so, but all in all it wasn&#8217;t a very rewarding experience. Like most (but not all) old games, the memory is better than the reality, and probably best left that way. Suffice to say the game, and manual, have gone back in the box and will probably stay there for a long time.</p>
<p>In fact, until I get hold of some software, the Amiga is going back in the box as well, to sit in the loft with the countless other old computers.</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/eating-my-own-dog-food/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Hardwar Trailer</title>
		<link>http://ciarang.com/posts/new-hardwar-trailer</link>
		<comments>http://ciarang.com/posts/new-hardwar-trailer#comments</comments>
		<pubDate>Mon, 26 Feb 2007 18:41:00 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Hardwar]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/index.php/archives/54</guid>
		<description><![CDATA[It isn&#8217;t every day you see a new trailer for a game you released over nine years ago but that&#8217;s what just happened. It&#8217;s made entirely from cut-ups of the game video and in-game action, with a Paint It Black thrown into the soundtrack thrown in for good measure. It&#8217;s good to see some effort [...]]]></description>
			<content:encoded><![CDATA[<p>It isn&#8217;t every day you see a new trailer for a game you released over nine years ago but that&#8217;s what just happened. It&#8217;s made entirely from cut-ups of the game video and in-game action, with a Paint It Black thrown into the soundtrack thrown in for good measure. It&#8217;s good to see some effort going into the marketing at last, even if it&#8217;s by the fans, nearly a decade too late. <img src='http://ciarang.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>There&#8217;s a lo-res version on YouTube <a href="http://www.youtube.com/watch?v=3sbMvmkg8Og" class="broken_link">here</a>. I haven&#8217;t got a proper one yet.</p>
<p>I tried to get YouTube to find me more Hardwar-related videos but it got stuck on the idea of hardware and there doesn&#8217;t seem to be any way to tell it to find the exact word.</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/new-hardwar-trailer/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PC Star Wars</title>
		<link>http://ciarang.com/posts/pc-star-wars</link>
		<comments>http://ciarang.com/posts/pc-star-wars#comments</comments>
		<pubDate>Thu, 16 Nov 2006 09:03:00 +0000</pubDate>
		<dc:creator>CiaranG</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.ciarang.com/index.php/archives/41</guid>
		<description><![CDATA[Digging around in some old archived data, I came across the source code for the PC (DOS) version of Star Wars, which consists of about 750K of ASM files -&#160; quite a lot more than I&#8217;d have guessed at. A couple of the other files indicate that this is a copy of the source we [...]]]></description>
			<content:encoded><![CDATA[<div style="width: 200px; float: right; margin-left: 15px; margin-bottom: 15px;"><img width="200" height="125" border="0" alt="" src="http://ciarang.com/wp-content/uploads/2007/09/starwars.png" /></div>
<p>Digging around in some old archived data, I came across the source code for the PC (DOS) version of Star Wars, which consists of about 750K of ASM files -&nbsp; quite a lot more than I&#8217;d have guessed at. A couple of the other files indicate that this is a copy of the source we brought back from California after working on the final testing over there, so it&#8217;s definitely the &#8216;latest&#8217; version. There&#8217;s also a compiled EXE, but unsurprisingly it crashes when I try and run it under Windows XP.</p>
<p><span id="more-41"></span></p>
<p>The source makes for a very entertaining read, at least for me, bringing back a lot of memories. It&#8217;s definitely not what you&#8217;d call a fine example of software engineering, even for its time, but it did work very well. Following is a choice excerpt, featuring few comments, and a smattering of self-modifying code which appears to be more for the sake of it than for performance in this case.</p>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;">DoTrenchWalls    <span style="color: #000000; font-weight: bold;">PROC</span>    <span style="color: #000000; font-weight: bold;">NEAR</span>
&nbsp;
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">cx</span><span style="color: #339933;">,</span>TrenchWidth        <span style="color: #666666; font-style: italic;">;Draw outer walls of trench.</span>
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">cx</span><span style="color: #339933;">,</span>TrenchX
        <span style="color: #00007f; font-weight: bold;">mov</span>    Pxl<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">cx</span><span style="color: #339933;">,</span>CentreX
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>TrenchBottom
        <span style="color: #00007f; font-weight: bold;">mov</span>    Pyl<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>CentreY
        <span style="color: #00007f; font-weight: bold;">mov</span>    Sx<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Sy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    W <span style="color: #00007f;">cs</span><span style="color: #339933;">:</span>InnSy<span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    W <span style="color: #00007f;">cs</span><span style="color: #339933;">:</span>UseLaterX<span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">sub</span>    <span style="color: #00007f;">cx</span><span style="color: #339933;">,</span>CentreX
        <span style="color: #00007f; font-weight: bold;">sub</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>CentreY
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span>ZDist
        <span style="color: #00007f; font-weight: bold;">mov</span>    Pzl<span style="color: #339933;">,</span><span style="color: #00007f;">ax</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    View3d        <span style="color: #666666; font-style: italic;">; Same point in Distance</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">bx</span><span style="color: #339933;">,</span>RecursePosition
        <span style="color: #00007f; font-weight: bold;">mov</span>    ResX<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">bx</span><span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    ResY<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">bx</span><span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    Msdraw
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span><span style="color: #0000ff;">01200h</span>
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span>TrenchY
        <span style="color: #00007f; font-weight: bold;">mov</span>    Pyl<span style="color: #339933;">,</span><span style="color: #00007f;">ax</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    YView3d
        <span style="color: #00007f; font-weight: bold;">pop</span>    <span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    W <span style="color: #00007f;">cs</span><span style="color: #339933;">:</span>WasJustBufY<span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    MsDraw            <span style="color: #666666; font-style: italic;">; VertDraw.............!!!</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>Pyl
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>CentreY
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">dx</span>
UseLaterX<span style="color: #339933;">:</span>    <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #0000ff;">0FFFFh</span>      <span style="color: #666666; font-style: italic;">;self mod</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    MsDraw
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span><span style="color: #0000ff;">0</span><span style="color: #339933;">-</span>TrenchWidth
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span>TrenchX
        <span style="color: #00007f; font-weight: bold;">mov</span>    Pxl<span style="color: #339933;">,</span><span style="color: #00007f;">ax</span>
        <span style="color: #00007f; font-weight: bold;">add</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span>CentreX
        <span style="color: #00007f; font-weight: bold;">mov</span>    Sx<span style="color: #339933;">,</span><span style="color: #00007f;">ax</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    W <span style="color: #00007f;">cs</span><span style="color: #339933;">:</span>WasBufX10<span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #339933;">,</span><span style="color: #00007f;">ax</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>W <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">cs</span><span style="color: #339933;">:</span>InnSy<span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#93;</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Sy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">bx</span><span style="color: #339933;">,</span>RecursePosition
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>W ResY<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">bx</span><span style="color: #009900; font-weight: bold;">&#93;</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">ax</span><span style="color: #339933;">,</span>ZDist
        <span style="color: #00007f; font-weight: bold;">mov</span>    Pzl<span style="color: #339933;">,</span><span style="color: #00007f;">ax</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    XView3d
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    W <span style="color: #00007f;">cs</span><span style="color: #339933;">:</span>UseLater2<span style="color: #339933;">+</span><span style="color: #0000ff;">4</span><span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">push</span>    <span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    Msdraw
        <span style="color: #00007f; font-weight: bold;">pop</span>    <span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
WasJustBufY<span style="color: #339933;">:</span>    <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #0000ff;">0FFFFh</span>      <span style="color: #666666; font-style: italic;">;self mod</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    MsDraw            <span style="color: #666666; font-style: italic;">;VertDraw............!!!</span>
WasBufX10<span style="color: #339933;">:</span>    <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #0000ff;">0FFFFh</span>      <span style="color: #666666; font-style: italic;">;self mod</span>
        <span style="color: #00007f; font-weight: bold;">pop</span>    <span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    MsDraw
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">bx</span><span style="color: #339933;">,</span>RecursePosition
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">cx</span><span style="color: #339933;">,</span>W ResX<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">bx</span><span style="color: #009900; font-weight: bold;">&#93;</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Sx<span style="color: #339933;">,</span><span style="color: #00007f;">cx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    <span style="color: #00007f;">dx</span><span style="color: #339933;">,</span>W ResY<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #00007f;">bx</span><span style="color: #009900; font-weight: bold;">&#93;</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Sy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
        <span style="color: #00007f; font-weight: bold;">mov</span>    Fy<span style="color: #339933;">,</span><span style="color: #00007f;">dx</span>
UseLater2<span style="color: #339933;">:</span>    <span style="color: #00007f; font-weight: bold;">mov</span>    Fx<span style="color: #339933;">,</span><span style="color: #0000ff;">0FFFFh</span>      <span style="color: #666666; font-style: italic;">;self mod</span>
        <span style="color: #00007f; font-weight: bold;">call</span>    HorzDraw
        <span style="color: #00007f; font-weight: bold;">ret</span>
&nbsp;
DoTrenchWalls    <span style="color: #000000; font-weight: bold;">ENDP</span></pre></div></div>

<p>The question now is what to do with this blast from the past, which judging by the state of the CD it was on  (a 1998 archive of 1988 code), it was about to disappear forever since much of the rest of the contents wouldn&#8217;t read at all. I could try and get it working as is, or port the data and logic to a more modern environment, or I could re-archive it and come back to it in another 20 years. Probably the latter is the sensible option.</p>
]]></content:encoded>
			<wfw:commentRss>http://ciarang.com/posts/pc-star-wars/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

