<?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>Resurrected Entertainment &#187; DOS</title>
	<atom:link href="http://www.resurrected-entertainment.com/category/dos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.resurrected-entertainment.com</link>
	<description>It's not dead until you take it outside and bury it</description>
	<lastBuildDate>Thu, 07 Jan 2010 16:41:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Black Art of 3D Game Programming</title>
		<link>http://www.resurrected-entertainment.com/2009/09/20/black-art-of-3d-game-programming/</link>
		<comments>http://www.resurrected-entertainment.com/2009/09/20/black-art-of-3d-game-programming/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 04:13:03 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[DOS]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Graphics]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/?p=193</guid>
		<description><![CDATA[ So you're an aspiring game writer, now what are you going to do about it? You could get a job as a summer intern at a local game company and work for free doing all sorts of tedious tasks no one else wants to do. Or you could hit eBay and do yourself a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Black Art of 3D Game Programming" src="http://www.resurrected-entertainment.com/wp-content/uploads/2009/09/black_art_3d_game_programming.jpg" alt="Black Art of 3D Game Programming" width="150" height="193" /> So you're an aspiring game writer, now what are you going to do about it? You <em>could</em> get a job as a summer intern at a local game company and work for free doing all sorts of tedious tasks no one else wants to do. Or you could hit eBay and do yourself a huge favor and find this text. Before you write back about the publication date, yes it was published in 1995. No, it does not talk about OpenGL or DirectX. Phew, now that we have that out of the way, let's talk about what this book can teach you.</p>
<p>This book's greatest strength is how it dabbles in a number of good topics without being totally useless. A number of texts provide a lot of information about too many topics, while not providing enough material to do something fun or useful. That exercise is often left to the reader. Ha! A book like that in my house will pay a little visit to the recycling bin or get banished to the library, never to be read again. Other books tend to steam roll over you with too much theory of the mathematical kind. While I'm all for roots and quadratics, aspiring young programmers wanting the enter the field of game development shouldn't necessarily want to go whole hog on their first book.</p>
<p>That being said, they will need some basic skills to get started, and matrix math is a fundamental skill for playing around in 3D. Fortunately for the junior programmer, it's not the most difficult skill to learn. One of the black arts the book teaches you is how to master 2D and 3D transformations using matrix algebra. It doesn't go into quaternions for gimble-lock free rotations, but since the reader is probably just starting out, it doesn't really matter either. They will be able to make do without all of the fancy topics getting in the way of actually learning something useful.</p>
<p>The book does show its age in some chapters where the topic of conversation is how to take control of various video modes, but I think it's still a worth while read. You can still do this kind of programming if your recreational operating system of choice is FreeDOS or some other version of DOS, even on a modern PC. You could even use Windows 95 or 98 for that matter, just get it to boot using the version of DOS which ships with all of that GUI crap. Trust me, you'll be better off in the long run, plus you can wow your friends with your amazing latch register skillz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2009/09/20/black-art-of-3d-game-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DOOM II: Let the obsession begin. Again.</title>
		<link>http://www.resurrected-entertainment.com/2008/12/23/doom-ii-let-the-obsession-begin-again/</link>
		<comments>http://www.resurrected-entertainment.com/2008/12/23/doom-ii-let-the-obsession-begin-again/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 18:23:24 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Reflections]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/?p=148</guid>
		<description><![CDATA[[Taken from the back of the box]
The wait is over. In your hot little hands, you hold the biggest, baddest Doom ever - DOOM II: Hell on Earth! This time, the entire forces of the netherworld have overrun Earth. To save her, you must descend into the stygian depths of Hell itself!
Battle mightier, nastier, deadlier demons [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Helvetica;"><span style="text-shadow: rgba(0, 0, 0, 0.329412) 1px -1px;">[Taken from the back of the box]</span></span></p>
<p>The wait is over. In your hot little hands, you hold the biggest, baddest Doom ever - <em>DOOM II: Hell on Earth!</em> This time, the entire forces of the netherworld have overrun Earth. To save her, you must descend into the stygian depths of Hell itself!</p>
<p>Battle mightier, nastier, deadlier demons and monsters. Use more powerful weapons. Survive more mind-blowing explosions and more of the bloodiest, fiercest, most awesome blastfest ever!</p>
<p>The 3-D modeling and texture bit-mapping technologies push the envelope out to the max. The graphics, animation, sound effects and gameplay are so virtually realistic, they're unbelievable!</p>
<p>Play DOOM II solo, with two people over a modem, or with up to four players over a LAN (supporting IPX protocol). No matter which way you choose, get ready for adrenaline-pumping, action-packed excitement that's sure to give your heart a real workout.</p>
<p>It must be tough to keep reading - what with your hands trembling in shear anticipation. So we'll stop talking now to let you take this box to the counter.</p>
<p>DOOM II. It's time to get obsessed again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2008/12/23/doom-ii-let-the-obsession-begin-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TheDRAW!</title>
		<link>http://www.resurrected-entertainment.com/2008/07/18/thedraw/</link>
		<comments>http://www.resurrected-entertainment.com/2008/07/18/thedraw/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 17:42:27 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Reflections]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/?p=77</guid>
		<description><![CDATA[There are two ways to render graphics in DOS. The first involves setting the desired graphics mode and then drawing pixels on the screen via the BIOS or writing directly to video memory (an interesting topic by itself); the second method involves staying in text mode and drawing pictures with the standard set of ASCII [...]]]></description>
			<content:encoded><![CDATA[<p>There are two ways to render graphics in DOS. The first involves setting the desired graphics mode and then drawing pixels on the screen via the BIOS or writing directly to video memory (an interesting topic by itself); the second method involves staying in text mode and drawing pictures with the standard set of ASCII or IBM's Extended ASCII characters (thanks to <a title="Telecom Corner" href="http://telecom.tbi.net/" target="_blank">Telecom Corner</a> for the chart).</p>
<p style="text-align: center;"><a title="Extended Character Set" rel="thumbnail" href="http://www.resurrected-entertainment.com/res/graphics/blog/extended-ascii-ibm-full.png"><img class="aligncenter" title="IBMs Extended ASCII Character Set" src="http://www.resurrected-entertainment.com/res/graphics/blog/extended-ascii-ibm-full-thumb.png" alt="IBMS Extended ASCII" width="200" height="227" /></a></p>
<p>While scripting batch files, you can also make use of ANSI escape sequences to control the cursor, display coloured or blinking text, etc. In case your interested, DOS requires an ANSI driver in order to translate these escape sequences. These escape sequences are non-intuitive and look something like this:</p>
<p><code>ESC[=5;7h</code></p>
<p>Ahh. Isn't it cute? Many people have been discreetly killed for creating less offensive syntax than that. In addition to the regular set of ASCII characters which can be used in creative and artistic ways to produce a recognizable picture, using the set of extended ASCII characters provides an easy way to draw connected lines within the grid of displayable characters. When creating your picture keep in mind the screen size, since this is dependent on the video mode (some video modes can display more rows and columns).</p>
<p><a href="http://www.resurrected-entertainment.com/res/downloads/thedraw/tdraw463.zip"><img class="alignleft" title="TheDRAW" src="http://www.resurrected-entertainment.com/res/graphics/blog/thedraw_title_thumb.png" alt="TheDRAW Title Screen" width="150" height="100" />TheDRAW</a> was written by Ian E. Davis and was last released in October of 1993. It is a program which allows you to paint a picture or create an animation using these special characters and ANSI attributes. It's not like painting individual pixels, you are limited by the set of characters available. However, this hasn't stopped ASCII artists from creating fantastic content. The most stunning examples I found were on Bulletin Board Systems. They were often themed according to design of the on-line system. Using TheDRAW, these pictures could be exported as ANSI-compliant or ASCII text files, or as header files to be used in other programming languages. There are a number of small tools available for translating these files into other formats used by other languages.</p>
<p>TheDRAW package is bundled with a utility called TheGrab which can take an screen shot of a running program. It's not your typical screen shot utility which takes snap shots of any graphics screen. This program works only for text mode screens and will output a file in ANSI, ASCII, COM, or TheDRAW format files. Be wary of using this memory resident utility under DOSBox 0.72 as it will crash and force you to end your session.</p>
<p>Last but not least, TheDRAW package is bundled with a utility for creating your own fonts to be used in TheDRAW paint program. This is without a doubt one of my favourite features and makes creating screens a breeze. There are many fonts available in the wide, wide world so have fun.</p>
<p>All of these features are thuroughly explained in the documentation and in-program help. Many of my programs took on a more professional and fun look because of this drawing tool; although I think I went overboard in some cases. I still find it the best tool available for doing this sort of work in DOS, although I'm sure many of you may prefer other software such as <a href="http://www.resurrected-entertainment.com/res/downloads/aciddraw/adraw125.zip">AcidDRAW</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2008/07/18/thedraw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vinyl Goddess on YouTube</title>
		<link>http://www.resurrected-entertainment.com/2008/05/12/vinyl-goddes-on-youtube/</link>
		<comments>http://www.resurrected-entertainment.com/2008/05/12/vinyl-goddes-on-youtube/#comments</comments>
		<pubDate>Mon, 12 May 2008 23:43:40 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Retro]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/2008/05/12/vinyl-goddes-on-youtube/</guid>
		<description><![CDATA[If you've been wondering how to get all those bonuses, or if you've been itching to try the game but would like a little demo first, check it out in all its poorly encoded glory. I just positively love the music in this game; I should make a CD or something...
]]></description>
			<content:encoded><![CDATA[<p>If you've been wondering how to get all those bonuses, or if you've been itching to try the game but would like a little demo first, check it out in all its <a href="http://www.youtube.com/watch?v=GpqR47af-A4" title="Vinyl Goddess From Mars" target="_blank">poorly encoded glory</a>. I just positively love the music in this game; I should make a CD or something...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2008/05/12/vinyl-goddes-on-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Software with DOSBox?</title>
		<link>http://www.resurrected-entertainment.com/2008/05/12/building-software-with-dosbox/</link>
		<comments>http://www.resurrected-entertainment.com/2008/05/12/building-software-with-dosbox/#comments</comments>
		<pubDate>Mon, 12 May 2008 19:46:18 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/2008/05/12/building-software-with-dosbox/</guid>
		<description><![CDATA[I have written about DOSBox in the past and I have nothing but good things to say about it. It's a great project whose people continue to push for greater compatibility, speed and functionality. Over the weekend, I tried to use DOSBox as a development environment for compiling DOS applications using the DJGPP 32-bit compiler [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.resurrected-entertainment.com/res/graphics/blog/dosbox1.png" alt="DOSBox Logo" class="alignleft" />I have written about DOSBox in the past and I have nothing but good things to say about it. It's a great project whose people continue to push for greater compatibility, speed and functionality. Over the weekend, I tried to use DOSBox as a development environment for compiling DOS applications using the DJGPP 32-bit compiler and associated development suite such as RHIDE, Allegro, GRX libraries, etc.</p>
<p>Sadly, it didn't work out so well since a number of common tools simply didn't function that well in v0.72. I'm not terribly disappointed, since the emulator takes forever to compile a project in its environment, and wouldn't be suiteable for long term development. I'm raising the issues here in case anyone tries to use DOSBox in the same way.</p>
<p>First, let's talk about what did work. DJGPP for starters. It works just fine; albeit, the compilation and linking process does take a while. Some might argue that this is all you need to develop a project, and while that might technically be true, it certainly doesn't work out for anyone trying build something more than a "Hello World!" application.</p>
<p>So, what didn't work? Well, I tried four different editors: edit (the one which ships with your MS-DOS operating system), TDE (Thomson-Davis Editor - one of my favourites), MEL (Multi-Edit Lite - another great little editor), and RHIDE (the development environment which you can install alongside DJGPP). I didn't try VI/VIM, but I might sometime later just because I'm curious.</p>
<p>First out of the gates, Edit simply wasn't suitable in an environment where tab characters are important. It simply replaces them with spaces and continues on its way. Too bad since the editor is simple and to the point. Although, it really isn't a good solution since it lacks one of the most basic development features like syntax highlighting.</p>
<p>DJGPP makefiles will not tolerate spaces when there should be tab characters. No, it's not being quirky, it's in the POSIX standard after all but it doesn't make it any less annoying. So, the solution is to switch to an editor which respects tab characters and does not try to convert them to nasty spaces. So I jumped to a more sophisticated editor: TDE. Sadly, I was let down again, due to a bug (could be within TDE or DOSBox) where the cursor was not visible while using the editor. It was a little like fumbling in the dark trying to find that blasted light switch.</p>
<p>After some research I found MEL, so I installed it and tried it out. The editor was well laid out, the cursor showed up, and it respected my tab characters. Super, finally something I can use! Alas, I soon discovered that our relationship would never last. You see, MEL doesn't use tab characters out of the box, you need to turn it on through one of the configuration dialogs. No problem, right? Well, it doesn't seem to remember the setting once you save it, so you need to set it every... single... time you load the editor. Hrrmph.</p>
<p>"Well, it's time to bring out the big guns!" I thought. I had used RHIDE in previous development projects and found the environment quite enjoyable for the larger ones. I typed in the command to fire it up and... whammo! Congratulations, it's a bouncing baby SEGFAULT. Sigh. I don't know about you, but four editors is enough experimentation for one day. If you find an editor which works well and meets my humble requirements, please post it in the comments.</p>
<p>Anything missing which should be added? Well, you'll certainly want to add in some basic DOS utilities such as XCOPY, DELTREE, ATTRIB, and what not. It will make your life much easier. It would also be great for DOSBox to incorporate a configuration reload command, so you don't need to exit the emulator in order to reload the preferences file. For now, I'm going to use one of my older development boxes for this software project, and stick with DOSBox to run my games.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2008/05/12/building-software-with-dosbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TheDraw for DOS</title>
		<link>http://www.resurrected-entertainment.com/2008/03/10/thedraw-for-dos/</link>
		<comments>http://www.resurrected-entertainment.com/2008/03/10/thedraw-for-dos/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 02:21:49 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/2008/03/10/thedraw-for-dos/</guid>
		<description><![CDATA[There are two ways to display graphics in DOS. The  first involves getting out of text mode and setting the desired graphics mode and then drawing pixels on the screen via the BIOS or writing directly to video memory; the second method involves drawing with the set of ASCII or extended ASCII characters. You [...]]]></description>
			<content:encoded><![CDATA[<p>There are two ways to display graphics in DOS. The  first involves getting out of text mode and setting the desired graphics mode and then drawing pixels on the screen via the BIOS or writing directly to video memory; the second method involves drawing with the set of ASCII or extended ASCII characters. You can also make use of ANSI escape sequences to control the cursor, display coloured or blinking text, etc. DOS requires an ANSI driver in order to translate these escape sequences. These character codes are non-intuitive and look something like this: <code>ESC[=5;7h</code>. I swear my cat coughed up a fur ball which looked exactly like that the other day.</p>
<p>The set of extended ASCII characters provides an easy way to draw connected lines within the grid of displayable characters. This grid changes in size depending on the video mode set. With the default video mode in DOS, the dimensions of this grid is usually 80 characters wide by 25 characters high and covers the entire screen. Naturally, these characters can be connected to form anything from boxes to mazes. It's how all those menus and dialogs are drawn when using a program like <a href="http://www.resurrected-entertainment.com/2007/12/05/qbasic/">QBasic</a>.</p>
<p>TheDRAW is a program which allows you to paint a picture using a variety of special characters. It's not like painting individual pixels, you are limited by the set of characters available. However, this hasn't stopped ASCII artists from creating fantastic content. The most stunning examples I found were on Bulletin Board Systems which used them to attract new and repeat visitors alike. The ANSI art found on those systems were often themed according to design of the on-line system or the whim of the system operator. Using TheDRAW, these pictures could be exported as ANSI-compliant or ASCII text files, or as header files to be used in other programming languages. There are a number of small tools available for translating these files into other formats used by other programming languages.</p>
<p><img class="centered" src="http://www.resurrected-entertainment.com/res/graphics/blog/thedraw_ansi1.png" alt="ANSI art drawn using the TheDRAW" /></p>
<p>Many of my programs in QuickBasic took on a more professional and uniform look because of this spectacular drawing tool. I still find it the best tool available for doing this sort of work in DOS, although I'm sure many of you may prefer other programs.</p>
<p>When I began to write software using <a href="http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1205201405&sr=8-1">The C Programming Language</a>, I used TheDRAW to create a title screen in a number of small programs (the concept of a <em>splash screen</em> hadn't been introduced yet). Although most dialogs and windows I used were crafted in code using a custom built user interface library, the more complex dialogs were created using this application. To allow for input or interaction, the fields were marked by a special character, followed by a small series of alpha-numeric characters. These markers would be found by the interface library and the characters following the marker would correspond to a header file which linked the "names" to constants and then to user interface controls and data structures. </p>
<p>The output from TheDRAW was compressed and archived in a separate resource file to keep them from being easily pillaged by unworthy scavengers. I'm not an artist so it may have been overkill.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2008/03/10/thedraw-for-dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS-DOS</title>
		<link>http://www.resurrected-entertainment.com/2007/11/27/ms-dos/</link>
		<comments>http://www.resurrected-entertainment.com/2007/11/27/ms-dos/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 14:23:38 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Reflections]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/2007/11/27/ms-dos/</guid>
		<description><![CDATA[Despite Tandy's DeskMate application which tried to handle a number of disk and application related functions, MS-DOS (Microsoft Disk Operating System) was the actual operating system on which Deskmate needed to operate. I had experience with an earlier version of Microsoft's DOS which I used at school; I believe the versions were 2.0 and 1.25. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.resurrected-entertainment.com/res/graphics/blog/msdos1.png" title="MS-DOS Logo" class='alignleft' alt="MS-DOS Logo" />Despite Tandy's DeskMate application which tried to handle a number of disk and application related functions, MS-DOS (Microsoft Disk Operating System) was the actual operating system on which Deskmate needed to operate. I had experience with an earlier version of Microsoft's DOS which I used at school; I believe the versions were 2.0 and 1.25. Unlike today where hard drives are common place and often taken for granted, the machines in the lab could only boot by way of 5 1/4" floppy diskettes which contained the operating system. I believe the Tandy computer came with MS-DOS 3.42 and it was pre-installed on the hard drive. This was so much better than booting from a floppy, and I quickly assimilated as many commands as I could, since the school never gave me the time I wanted on the machine or the resources. Even with the aid of a text book, there were a few commands which took me a while to grasp, like COMMAND.COM or DEBUG.COM. My understanding of these wouldn't completely solidify until I started programming in lower level languages like C and assembly language. I was also introduced to Microsoft's shell scripts which they called Batch files. With the addition of extra software on the system, these scripts could actually become fairly sophisticated. Before I moved on to greener pastures and more flexible user interfaces, my system had sophisticated menus and launchers which helped my family out when they wanted to use the machine (it wasn't often, but it did happen).</p>
<p>Version 5 was a much more refined operating system and contained powerful commands and programs like QBasic. It also featured a memory manager which allowed software to access all of that wonderful new memory that you may have been fortunate enough to acquire. Although it was included in MS-DOS Version 4, I believe the DOSSHELL command's popularity spiked in Version 5. This was a program which was intended as a graphical replacement to the dull COMMAND.COM shell. It introduced a feature called <em>task swapping</em> which allowed you to load more than one program but only run one of them at a time;  unlike multitasking which appears to run more than one program at the same time. Also, DOSSHELL could not load more programs than your memory would allow since it did not have a paging mechanism. Naturally, all of these benefits conflicted with the new versions of Windows which did exactly the same thing <em>only better</em>, and was soon relegated to a supplemental disk in future releases before being dropped entirely.</p>
<p>Version 6 introduced the much feared DELTREE command. DELTREE was a command which could recursively remove directories and files; it was so feared because new or untrained users would presumably delete their entire operating system accidently. If this was indeed a problem, I think they should have modified the program to make it more difficult to accidently trash your operating system by adding extra prompts and warnings for example, since it is a very useful command in some circumstances. Despite its notoriety, it was a fairly simple command as far as software goes, and the void was soon filled by programmers who released new versions on the Internet which did exactly the same thing only better; I wrote a utility to replace it as well but mine displayed a user interface if you specified the right command option.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2007/11/27/ms-dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft LAN Manager</title>
		<link>http://www.resurrected-entertainment.com/2007/07/25/microsoft-lan-manager/</link>
		<comments>http://www.resurrected-entertainment.com/2007/07/25/microsoft-lan-manager/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 16:15:45 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/2007/07/25/microsoft-lan-manager/</guid>
		<description><![CDATA[After I had finished assembling my RetroBox, I was forced to to make a decision on what operating system to use. I chose to go with Windows 98 because I needed to be able to access my network. I also wanted to be able to boot into a DOS shell, but I didn't want to [...]]]></description>
			<content:encoded><![CDATA[<p>After I had finished assembling my RetroBox, I was forced to to make a decision on what operating system to use. I chose to go with Windows 98 because I needed to be able to access my network. I also wanted to be able to boot into a DOS shell, but I didn't want to dual-boot the machine. By writing a few options into the <code>CONFIG.SYS</code> and <code>AUTOEXEC.BAT</code> files, the user is presented with a small set of choices which may drop them into the shell. When I need to access files on my network or if I want to print something, I choose an option which boots me into Windows. My RetroBox is not a terribly fast beast, and it takes a while to boot and log-in.</p>
<p>To help alleviate this problem, I installed Microsoft LAN Manager in my DOS environment. Now I can access my network files and print through the network with ease. The process was a little frustrating and your experience may vary. I am providing this information, just in case you're considering tossing the whole project and moving to Tibet to become a monk (if you're already a monk living in Tibet, then you may be considering moving to Canada to become a Mountie).</p>
<p>The very first step would be to obtain a network card. For compatibility reasons, a popular 10/100 Mb card would be optimal. I have <a href="http://www.resurrected-entertainment.com/res/text/mslanman/cards.txt" title="Compatible Ethernet Cards" target="_blank">compiled a list</a> of network card drivers which are bundled with Microsoft LAN Manager (which I will now be calling LAN Man to save some typing). Even if your network card is not on the list (mine wasn't), you may still be able to obtain a driver from the company's web site. My card is a D-Link 835TX and the earliest driver posted on the website was for Windows 98. After decompressing the file, however, I found a driver specifically for LAN Man which saved me from having to create a custom NIF file. I will explain how LAN Man uses these files a little later.</p>
<p>Once the physical card is installed, unpack your installation and run <code>SETUP.EXE</code> to get started. For many people, the setup process should be pain-free. My setup was not so problem free, however. I suppose it was due to the fact that I was running the Windows 98 shell, and not a pure MS-DOS, PC-DOS, or FreeDOS installation. I believe the root of the problem stemmed from the fact that the Windows 98 shell doesn't like the '$' wildcard. If you take a look at the <code>SETUP.INF</code> file, you'll notice a number of files ending in the dollar sign. Within the file, a program like NetBEUI would be referenced like this:</p>
<p><code>DRIVERS\PROTOCOL\NETBEUI\NETBEUI.ex$</code></p>
<p>Under MS-DOS, this would match the file <code>NETBEUI.EX_</code>. Under the Windows 98 shell, it does not seem to match it at all, so the installer complains that it cannot find the file. What I did to correct this problem was to simply change the wildcard to the '_' character and presto! The installer was able to see the file and continue with the installation.</p>
<p>Because my card was not on the list of available drivers, I needed to add it to the list myself, which meant making an entry in the <code>SETUP.INF</code> file so it could find the driver files (<code>&lt;DRIVER NAME&gt;.DOS</code> and <code>PROTOCOL.INI</code>) and the Network Information File (NIF). After making an additional entry in the <code>SETUP.INF</code> file and copying the files to the right locations (under <code>DRIVERS\ETHERNET),</code> the setup program correctly enumerated the card name and I was able to select it from the installation menu.</p>
<p>After these changes, the install carried on happily, but complained at the very end that it could not find the "NETWKSTA." file. There is no "NETWKSTA" file; it's just a directory. This is the eight-character directory shorthand for Network Work Station. I don't know why it was complaining, but it's an important program and needs to be installed so you can use network resources like shared files and printers. This is also easily corrected after completing the installation. Just copy the file:</p>
<p><code>\MSLANMAN.DOS\NETWKSTA\NETWKSTA.500</code> to<br />
<code>\MSLANMAN.DOS\NETPROG\NETWKSTA.EXE.</code></p>
<p>Don't copy it from the CD-ROM, because that file is compressed and won't run. That file will end in an underscore, so it won't match the name I listed above.</p>
<p>During the network setup portion of the installer, if you choose to use DHCP then you don't need to specify an IP address or sub-net mask. For log-in credentials, just supply a user name without a password if you don't have an MS LAN Manager or Windows NT authentication service setup. When it asks you for a domain name and you don't know what that means, just enter in a dummy name or leave it blank (I didn't try leaving it blank, the installer may refuse to continue). One item to keep in mind: a Windows domain is not the same thing as a work-group, but I used my work-group name anyway since I knew it wouldn't matter. Eventually, if I choose to setup a domain, I will change the domain name at that time.</p>
<p>After moving the commands inserted into my <code>CONFIG.SYS</code> and <code>AUTOEXEC.BAT</code> files around to suit my own taste, I rebooted the machine and ran the <code>NET.EXE</code> program. Using this software, I could enter the UNC path to one of my machines:</p>
<p><code>\\MACHINE1</code></p>
<p>Go to the view menu and select "View available network resources". It will present you with a dialog which will allow you to assign a shared folder to a local resource like a drive letter. I was able to read and write (provided the permissions are set appropriately on the share) to the folder using the new drive letter (F: in this case).</p>
<p>Please note: you won't be able to mount a printer or a shared folder if the share name is greater than eight characters! It will simply complain that it cannot find the network resource.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2007/07/25/microsoft-lan-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Dirty with DOS DOOM</title>
		<link>http://www.resurrected-entertainment.com/2007/07/15/getting-dirty-with-dos-doom/</link>
		<comments>http://www.resurrected-entertainment.com/2007/07/15/getting-dirty-with-dos-doom/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 02:53:37 +0000</pubDate>
		<dc:creator>Mr. Robot</dc:creator>
				<category><![CDATA[DOS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Retro]]></category>

		<guid isPermaLink="false">http://www.resurrected-entertainment.com/2007/07/15/getting-dirty-with-dos-doom/</guid>
		<description><![CDATA[The story behind the source code release goes something like this: In December of 1997, id Software released the source code for Doom to much fan fare and adulation. After only a few short weeks, web sites starting popping up and modified (or modded) versions started appear on bulletin board systems. Before the source code [...]]]></description>
			<content:encoded><![CDATA[<p>The story behind the source code release goes something like this: In December of 1997, id Software released the source code for Doom to much fan fare and adulation. After only a few short weeks, web sites starting popping up and modified (or modded) versions started appear on bulletin board systems. Before the source code was even released, their were already tools available for modifying the existing graphics and levels, or for creating your own levels, on the Internet. These tools operated on the storage format for the game's resources, which included maps, graphics, sound effects, etc. These resource files were called .WAD or .IWAD files. WAD does not stand for anything in particular, but you could choose to think of it like a wad of gum after eating a burrito. It contains all sort of unrelated bits in it, like green pepper and cheese, but together they form a chewy and cohesive whole. Yummy.</p>
<p>Modification to the actual game engine allows for much greater control over how the game operates. Despite this new found ability, many programmers or modders chose to leave the original code base intact, in order to give their users the freedom to play the older levels designed by the master's at id Software. I believe this should be an important creed for any aspiring Doom hacker to follow, as it will allow your audience to experience the many thousands of levels available for immediate download. Just in case your levels fail to impress your core audience, such as Mother.</p>
<p>This project is intended to document what you need in order to build the DOSDoom (another port of Doom) source code on your machine. We chose to use DOSDoom, instead of the original code base, because the original requires a fair amount of modification to get it building with the available development tools and environments on an MS-DOS compatible machine. This brings me to my next point, you're going to need a compatible DOS operating system installed somewhere in your house, if you want to compile this project; Windows 95 actually works quite well too as they are basically one and the same in many respects. As a trusty member of the classic gaming community, I trust this shouldn't be a problem for those of you who are still reading.</p>
<p>DOSDoom brings a nice set of options to your exisiting Doom game. Features like mouse support, the "look" feature, CD audio, alpha blending, custom resolutions, and a whole lot more! Trust me, when you're finished setting it up, you'll think it's almost like a new game.</p>
<p>Ok, first things first, you're going to need the <a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/dd653src.zip">source code</a>. It also helps to have a <a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/dd0653b.zip">pre-built</a> copy of DOSDoom on hand for comparison, and a chance to try it out just for fun. Personally, I love this version of Doom and will typically opt to play it over the original; unless we're talking about the Playstation port, then we could be persuaded switch platforms for a while, or the <a href="http://www.resurrected-entertainment.com/2007/04/12/mac-osx-doom-legacy/">Mac OS X port</a> I wrote about a while ago. Of course, before either version will work, you need an original version of Doom. Please respect copyright laws and get yourself a <a href="http://www.idsoftware.com/games/doom/doom%2Dcollectors/">legal copy</a>; it's not that expensive when you consider what you're getting in return. Now would be a good time to unzip the pre-built copy of DOSDoom into your Doom game directory.</p>
<p>For those of you who weren't born with a debugger in your bonnet, there's a few pieces you need to have in place before you start unpacking the source code for DOSDoom. First, you need to understand the process by which program code gets transformed into something you can actually use. However, we're not going to write yet another treatise on "How To Program In Such And Such A Language," although for your reference, the core programming technologies used in this project are called <em><a href="http://cm.bell-labs.com/cm/cs/cbook/">C</a></em> and <em><a href="http://www.drpaulcarter.com/pcasm/index.php">Assembly Language</a></em>. Learning to become a programmer is an iteresting but terribly long ordeal. I don't recommend it unless you're planning on making it a serious hobby or even a profession. Choose to play the game instead, you'll probably be happier.</p>
<p>Since you're still reading this article, I think it's fair to assume that you're mildly interested in the topics presented thus far, so let's get a few terms under our belt before we begin. There is one general phase which must take place before you can use the source code provided and that phase is called compilation. A compiler is a tool used for translating source code which has been written in a high-level language, such as the <em>C</em> programming language, into a lower-level language more suitable for native execution within the hardware environment you are using. From a software development perspective, writing a good compiler is one of the most difficult and rewarding experiences a programmer could choose to undertake. However, simply using a compiler is usually no more difficult than learning any other moderately complex tool. Yes, there are usually a plethora of options and fancy doodads available for any aspiring geek, but many of them are rarely used and can be ignored most of the time. The compiler used for this project is part of a free development environment called <a href="http://www.delorie.com/djgpp/">DJGPP</a>. DJGPP was primarily constructed by a man named DJ Delorie with plenty of help from the open source community. It contains numerous utilities, including a DOS port of the <a href="http://gcc.gnu.org/">GNU GCC Compiler Collection</a>.</p>
<p><em>Assembly Language</em>, on the other hand, is much less abstract and tends to be a lot closer to a machine's level of understanding. This source code does not need to be rigorously compiled and students of computer science will often write simple assemblers for course projects. Instead, Assembly is translated into machine language almost directly. Depending on the software used, "almost" can vary from assembler to assembler. DOSDoom's source code contains only a couple of assembly language modules and can safely be ignored unless you're planning on making low-level modifications to the game's rendering engine. For this project, we'll be using GCC's assembler called GAS for all of our assembly needs. There is one item we wanted to mention when using GAS assembly code: it does not follow Intel's coding conventions for instruction mnemonics, it uses the AT&T style instead. For a great book on coding for the Linux platform (which typically uses GCC as the default compiler/assembler toolkit), pick up a copy of Professional Assembly Language by Richard Blum (ISBN: 0-7645-7901-0).</p>
<p>Now that we're all a little familiar with the basic process, here is the complete list of packages needed in order to compile DOSDoom:</p>
<ul>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/alleg31.zip">Allegro Game Library v3.1</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/gcc281b.zip">GNU Compiler Collection v2.8.1</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/bnu281b.zip">GNU Assembler & Toolkit v2.8.1</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/mak3791b.zip">Make v3.79.1</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/djdev202.zip">DJGPP Development Kit v2.02</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/mlp107b.zip">DJ File Packer v1.07</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/rhide15b.zip">RHIDE v1.5</a></li>
<li><a href="http://www.resurrected-entertainment.com/res/downloads/dosdoom/csdpmi5b.zip">CSDPMI v5.0</a></li>
</ul>
<p>Now what are these extra packages all about anyway, eh? They're all required too, except for RHIDE which is a nifty Integrated Development Environment (IDE) very much like Borland's early C/C++ IDE, and the DJ File Packer which is used to shrink the size of the resulting executable into something more manageable. The DPMI server is required by every 32-bit protected-mode application (in this case it's DOSDoom) for DOS and gets launched automatically by the client application - just make sure it's available via the <code>PATH</code> environment variable or in the applications home directory. The item listed only as <a href="http://www.gnu.org/software/make/">Make</a> is a set of tools used to easily build applications by managing their dependencies; although the syntax used to create Make files is anything but intuitive. Last, but certainly not least is the <a href="http://www.talula.demon.co.uk/allegro/readme.html">Allegro Game Library</a> originally written by Shawn Hargreaves. Allegro is used to fill some of the gaps left by id Software when they released the source code for Doom. It's a great library and can save you loads of time when you're trying to write an application. All of these tools or libraries are relatively complex and deserve your attention if you want to make any useful contributions to this code base.</p>
<p>All but the last package, CSDPMI, must be unzipped into the same directory; CSDPMI goes into the Doom game directory instead. To help illustrate where everything goes, here's a look at our build directory:</p>
<p><code>contrib<br />
allegro<br />
bin<br />
doc<br />
gnu<br />
include<br />
info<br />
lib<br />
man<br />
manifest<br />
projects<br />
share<br />
tmp</code></p>
<p>Once the packages have been decompressed, modify the DJGPP.BAT file to suit your own directory organization. For example, my batch file looks like this:</p>
<p><code>@echo off<br />
set PATH=c:\source\dosdoom\djgpp\bin;%PATH%<br />
set DJGPP=c:\source\dosdoom\djgpp\djgpp.env<br />
</code></p>
<p>Execute the batch file whenever you open a new console window (when using Windows 95), or after you've booted into DOS. Now, open the file under the Allegro directory and find a file named makefile. Remove the bit of text "<code>-Werror</code>" from the file using your favourite text editor. This is a compiler option which will halt the compilation process when a compiler warning is encountered; normally, it's not a bad idea, but for the sake of simplicity we'll remove it for now. The next step is to build the Allegro library by typing the command <code>make</code>.</p>
<p>Depending on the speed of your machine, the compilation process may take a while and you'll see several messages displayed on screen. If you downloaded everything from this web site, you should experience no errors (provided you removed the compiler option mentioned above); although a few compiler warnings will make their appearance now and then. Once the Allegro library has been built, you should now enter your DOSDoom source code directory and type <code>make</code> again. This will build your DOSDoom executable file. You'll need to copy this file (<code><dosdoom directory>/obj/dosdoom.exe</code>) into your Doom game folder (where the main executable file doom.exe is found) . Run the file <code>dosdoom.exe</code> and enjoy!</p>
<p>Remember: When making modifications to DOSDoom, please acknowledge all of the contributors who have made DOSDoom into what it is today. Without the tireless efforts from these people, you would have a lot of work on your plate before you even got started implementing your own vision of what you want Doom to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.resurrected-entertainment.com/2007/07/15/getting-dirty-with-dos-doom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
