{"id":14364,"date":"2026-07-01T02:00:00","date_gmt":"2026-07-01T06:00:00","guid":{"rendered":"https:\/\/www.both.org\/?p=14364"},"modified":"2026-07-01T00:19:37","modified_gmt":"2026-07-01T04:19:37","slug":"a-look-back-freedos-alpha-5","status":"publish","type":"post","link":"https:\/\/www.both.org\/?p=14364","title":{"rendered":"A look back: FreeDOS Alpha 5"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"14364\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">    <\/span>\r\n<\/div><\/div>\n<p class=\"wp-block-paragraph\">In 1994, several of us got together around a neat idea: <em>Let&#8217;s create our own version of DOS, and give away the source code.<\/em> That became the <a href=\"https:\/\/www.freedos.org\/\">FreeDOS Project<\/a>, which just reached it&#8217;s <a href=\"https:\/\/www.both.org\/?p=14240\">32-year anniversary<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To celebrate the FreeDOS anniversary, I shared some early releases of the FreeDOS distribution, available from the FreeDOS Files Archive at Ibiblio. Download the <a href=\"https:\/\/www.ibiblio.org\/pub\/micro\/pc-stuff\/freedos\/files\/distributions\/pre-1.0\/alpha5\/\">FreeDOS Alpha5<\/a> and <a href=\"https:\/\/www.ibiblio.org\/pub\/micro\/pc-stuff\/freedos\/files\/distributions\/pre-1.0\/beta1\/\">FreeDOS Beta1<\/a> if you&#8217;d like to see where it all started.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A step back in time<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s explore the FreeDOS Alpha5 distribution, released in December 1997. Back then, FreeDOS was actually known as &#8220;Free-DOS&#8221; (with a hyphen). This is due to some history: when I first announced the project in 1994, I called it &#8220;PD-DOS&#8221; because I assumed <em>giving away the source code<\/em> was the same as <em>public domain<\/em>. But others pointed out that because we used the GNU General Public License, the project was actually <em>Free software<\/em>, so I quickly renamed it &#8220;Free-DOS&#8221; after a few weeks. We dropped the hyphen several years later, around the time that Pat Villani published his book, <a href=\"https:\/\/www.routledge.com\/FreeDOS-Kernel-An-MS-DOS-Emulator-for-Platform-Independence-amp-Embedded-System-Development\/Villani\/p\/book\/9780879304362\">The FreeDOS Kernel<\/a> in 1996. To avoid confusing the FreeDOS Project name <em>as we spell it now<\/em>, I&#8217;ll refer to this distribution simply as &#8220;Alpha5.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As you might guess from the &#8220;alpha&#8221; name, the Alpha5 distribution was incomplete. It was really a collection of tools, although it did include a very early version of Pat Villani&#8217;s FreeDOS Kernel (named &#8220;DOS-C&#8221; because most of it had been written in the C programming language).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Most significantly, this early release didn&#8217;t reproduce all of the &#8220;classic DOS&#8221; commands. Some of the commands we included in Alpha5 were <em>workalike<\/em> to classic DOS, but with different usage or (sometimes) different program names. For example, Alpha5 included commands like <em>Assign<\/em>, <em>Attrib<\/em>, <em>Chkdsk<\/em>, <em>Comp<\/em>, <em>Deltree<\/em>, <em>Format<\/em>, <em>Fdisk<\/em>, <em>Find<\/em>, <em>Label<\/em>, <em>Mode<\/em>, <em>More<\/em>, <em>Move<\/em>, <em>Sort<\/em>, <em>Subst<\/em>, <em>Tree<\/em>, and <em>Verify<\/em> but was missing others like <em>Append<\/em>, <em>Choice<\/em>, <em>Edit<\/em>, <em>Edlin<\/em>, <em>Help<\/em>, and <em>Print<\/em>. Some commands were actually extensions to classic DOS commands including <em>Bwbasic<\/em> (a BASIC programming environment), <em>Clsx<\/em> (like <em>Cls<\/em>, but with colors), and <em>Fdformat<\/em> (a future replacement for <em>Format<\/em>). Interestingly, the FreeDOS <em>Command<\/em> shell (version 0.60) didn&#8217;t include many internal commands; <em>Command<\/em> provided <em>CD<\/em> and <em>Dir<\/em> to navigate the system, but other commands like <em>Cls<\/em>, <em>Copy<\/em>, <em>Del<\/em>, <em>Mkdir<\/em>, <em>Rmdir<\/em>, <em>Pause<\/em>, <em>Date<\/em>, <em>Time<\/em>, and <em>Type<\/em> were external programs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Alpha5 distribution also included a few other useful utilities, like <em>FD<\/em> (FreeDOS Diagnostics, to provide basic system information), <em>FFF<\/em> (Fast File Find, to locate files on the hard disk), <em>Fin<\/em> (FreeDOS file information, to display details about files), <em>Fips<\/em> (a program to split disk partitions), <em>PG<\/em> (a file viewer), and <em>Spool<\/em> (a background print spooler, very handy for dot matrix printers). We also provided several command line tools that modern Linux users may recognize, including <em>Man<\/em> (a replacement for Help, based on the Unix <strong>man<\/strong> command), <em>Nro<\/em> (similar to <strong>nroff<\/strong>), <em>Tee<\/em>, <em>Touch<\/em>, <em>Unix2dos<\/em>, <em>Unzip<\/em>, and <em>Zip<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But despite its incomplete nature, this early FreeDOS version showed a lot of promise.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installing Alpha5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We provided the Alpha5 distribution as a collection of six zip files, which you extracted to six floppy disks: Base-1, Drivers-1, Editors-1, Lang-1, Source-1, and Source-2. Only <em>Base<\/em> and <em>Drivers<\/em> were required; the others were optional. Alpha5 did not provide a boot floppy. Instead, you had to start with a minimal DOS environment on your system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The installer was a simple program that I based off the <a href=\"https:\/\/www.both.org\/?p=11375\">SLS Linux<\/a> installer. This scrolled from the bottom of the screen, and provided simple prompts. First, you selected which disk sets you wanted to install and where you wanted to install FreeDOS, then the installer prompted you to insert each floppy into the drive before it unzipped each package to the hard drive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s look at the installation process for the Alpha5 distribution. In this session where I install from <code>A:<\/code> and install to <code>C:\\DOS<\/code>, I&#8217;ve answered <code>y<\/code> to install the editors and programming languages, but <code>n<\/code> to <em>not<\/em> install the source code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- Free-DOS Install --\n----------------------------------------------------------------------\n\nSTOP!  READ THIS!\n=================\n\nIf you downloaded the FreeDOS Distribution in separate zip files,\nfirst make sure that you unzipped the files onto separate floppies\nbefore you run this Install program.  YOU CANNOT USE THE ZIP FILES AS\nPROVIDED ON MANY FREEDOS DISTRIBUTION SITES.\n\nAlso, please run the Install program from a directory on your hard\ndisk, and not from a boot floppy, at least in version 1.x.  Otherwise,\nthe Install program will not be able to find the UNZIP program that it\nneeds to extract the distribution packages.  (This will be fixed in\nversion 2.0).\n\n----------------------------------------------------------------------\n\nCopyright (C) 1997, James Hall &lt;jhall1@isd.net>\nThis is free software.  See the file COPYING for details.\n\nInstall from what path? <strong>A:<\/strong>\nInstall files to what path? <strong>C:\\DOS<\/strong>\n\n\nYou are about to install these disk series:\nBASE DRIVERS EDITORS GAMES LANG SOURCE APPS\n\nThe install program will now let you install these disk series.  With\neach series, you will be able to choose which to install and which to\nskip.  Each disk series consists of several package files.  You can\nalso select which individual packages to install and which to skip.\nNote that some disk series and package files may already be selected\nfor you.\n\nPress y to continue, or q to quit: <strong>y<\/strong>\n\nBASE: Basic files for the Free-DOS distributions.  Includes Tim\nBASE: Norman's COMMAND.COM, and Pat Villani's Free-DOS Kernel.  You\nBASE: will want to install this series.\nBASE &#91;REQUIRED]\n\n\nDRIVERS: Device drivers for Free-DOS.  This includes ANSI.SYS and\nDRIVERS: other SYS files.\nDRIVERS &#91;REQUIRED]\n\n\nEDITORS: Editors that are associated with the Free-DOS Project, such\nEDITORS: as Freemacs 1.6d.\nEDITORS &#91;OPTIONAL]\nInstall series EDITORS? &#91;yn] <strong>y<\/strong>\n\nGAMES: Games that run under Free-DOS.  DOOM runs under the current\nGAMES: Free-DOS kernel.\nGAMES &#91;SKIPPED]\n\n\nLANG: Compilers and other languages.  This includes the Micro-C\nLANG: compiler, Arrow Assembler, VAL linker, and the Bywater BASIC\nLANG: environment.\nLANG &#91;OPTIONAL]\nInstall series LANG? &#91;yn] <strong>y<\/strong>\n\nSOURCE: Source to all the Free-DOS programs.  This can get pretty\nSOURCE: large, so you should not install it unless you plan to\nSOURCE: contribute to the Free-DOS project.\nSOURCE &#91;OPTIONAL]\nInstall series SOURCE? &#91;yn] <strong>n<\/strong>\n\nAPPS: Applications for Free-DOS, but not editors.  Some application\nAPPS: packages may include shareware.\nAPPS &#91;SKIPPED]\n\n\nInstalling the software ...\n\n\n>> Installing series BASE &lt;&lt;\n\ninstalling 'BASE-1'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2026and so on for the rest of the installation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You may have noticed that the installer advertised that it would also install the <em>Apps<\/em> and <em>Games<\/em> disk sets. We didn&#8217;t actually provide these disk sets in Alpha5. I left these entries as &#8220;placeholders&#8221; for a future distribution that might include these; they were skipped during the installation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exploring Alpha5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After installing Alpha5, you had to create your own <code>CONFIG.SYS<\/code> to load the new <em>Command<\/em> shell. Since I installed to <code>C:\\DOS<\/code>, I created this <code>CONFIG.SYS<\/code> file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHELL=C:\\DOS\\BIN\\COMMAND.COM<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On more modern versions of FreeDOS, you would usually add <code>\/P<\/code> to the end of the line, to make the shell a <em>permanent<\/em> shell. However, this early implementation did not support the <code>\/P<\/code> command line option. Note that if you type the <em>Exit<\/em> command, the shell will exit and you will need to type the full path to the shell to go back to the command line.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After making this change, I rebooted my virtual machine and was greeted with this welcome message before my first DOS prompt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>License:\n This program is free software; you can redistribute it and\/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation; either version 2 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program; if not, write to the Free Software\n Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\nFreeDOS Command Line Interface version 0.60\n\ndeveloped by: Tim Norman\n              Matt Rains\n              Evan Jeffrey\n              Steffen Kaiser\n              Oliver Mueller\nC:\\&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Interestingly, this early shell didn&#8217;t read from <code>AUTOEXEC.BAT<\/code> at startup. Every time you boot the system, you would also need to set the <code>PATH<\/code> variable so the shell could find common external commands like <em>Type<\/em> or <em>More<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\&gt;set PATH=C:\\DOS\\BIN<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">File organization<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Alpha5 distribution had a fairly simple directory tree, which you can view with the <code>tree<\/code> command. This displays each directory and subdirectory using graphical line-drawing characters, making it easy to see how your files are organized:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\&gt;tree dos\n\nDirectory PATH listing for Volume ALPHA5\nC:.\n\u251c\u2500\u2500\u2500BIN\n\u251c\u2500\u2500\u2500HELP\n\u251c\u2500\u2500\u2500DOC\n\u2502   \u251c\u2500\u2500\u2500COMMAND\n\u2502   \u251c\u2500\u2500\u2500FREEDOS\n\u2502   \u251c\u2500\u2500\u2500EMACS16D\n\u2502   \u251c\u2500\u2500\u2500TERSE\n\u2502   \u251c\u2500\u2500\u2500MC314\n\u2502   \u2514\u2500\u2500\u2500VAL\n\u251c\u2500\u2500\u2500EMACS\n\u251c\u2500\u2500\u2500TERSE\n\u2514\u2500\u2500\u2500CC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">From the beginning, we used a directory structure inspired by Unix, with some variations. Note that binaries (EXE, COM, and SYS programs) are in the <code>bin<\/code> directory, Help documentation is in the <code>help<\/code> directory, and other program documentation in the <code>doc<\/code> directory. We also installed <a href=\"https:\/\/www.both.org\/?p=12986\">Freemacs<\/a> (an editor similar to GNU Emacs) in the <code>emacs<\/code> directory, Terse (a much simpler editor) in the <code>terse<\/code> directory, and the Micro-C compiler, Val linker, and other compiler tools in the <code>cc<\/code> directory.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Finding files<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Most of the other DOS commands work as you&#8217;d expect, but let&#8217;s look at a few of the extensions. One handy utility was <em>Fast File Find<\/em> to find lost files. Let&#8217;s say you know there&#8217;s a file <em>somewhere<\/em> on your system called <em>Val<\/em>, but you don&#8217;t know where it&#8217;s located. Just type <code>fff<\/code> plus the filename, and the program will scan your hard disk and print all possible matches.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this case, <em>Val<\/em> is the name of a linker program, used when compiling programs. If you installed the <em>Lang<\/em> disk set, Alpha5 installs <em>Val<\/em> in the <code>\\DOS\\CC<\/code> directory, plus a help file in the <code>\\DOS\\HELP<\/code> directory and documentation in the <code>\\DOS\\DOC<\/code> directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\&gt;fff val\n\nFast File Find: val\nC:\\DOS\\HELP\nVAL.HLP\n\nC:\\DOS\\DOC\\VAL\nVAL.DOC\n\nC:\\DOS\\CC\nVAL.EXE\n\n3 files found.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Editing with Terse<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Terse editor was a rewrite of the TED editor, and was fairly easy to use. It presented a rather plain user interface, and used <em>Alt<\/em> key combinations for various commands, like <em>Alt-q<\/em> to quit or <em>Alt-x<\/em> to save and exit. Start the editor with the <code>t<\/code> command:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"400\" src=\"http:\/\/www.both.org\/wp-content\/uploads\/2026\/07\/alpha5-terse.png\" alt=\"An empty editor screen with a black background and white status bar at the bottom\" class=\"wp-image-14361\"\/><figcaption class=\"wp-element-caption\">The Terse editor<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you needed help using the editor, Terse kept a &#8220;Press F1 for help&#8221; prompt in the lower left corner of the screen. Tapping the <em>F1<\/em> key displayed a list of possible editor commands.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"400\" src=\"http:\/\/www.both.org\/wp-content\/uploads\/2026\/07\/alpha5-terse-f1.png\" alt=\"White text on a black background, showing helpful text about a program\" class=\"wp-image-14362\"\/><figcaption class=\"wp-element-caption\">The Terse help screen<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Viewing files in PG<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The traditional way to display files in DOS is to use the <em>Type<\/em> or <em>More<\/em> commands, but FreeDOS also included the <code>pg<\/code> program. Short for &#8220;Page,&#8221; this displayed the contents of a file to the screen and allowed you navigate backwards and forwards in the file.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"392\" src=\"http:\/\/www.both.org\/wp-content\/uploads\/2026\/07\/alpha5-pg.png\" alt=\"black screen with purple banner and cyan text, showing a &quot;hello world&quot; program\" class=\"wp-image-14363\"\/><figcaption class=\"wp-element-caption\">Viewing a file in PG<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Try the FreeDOS Alpha5 distribution<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s more to explore in the Alpha5 distribution. Install it on your own and take a step back in time to the early days of FreeDOS. As you use the system, keep in mind that this was very much an <em>alpha<\/em> release, so things will not work the way you expect them to, and many tools may have bugs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing to know is that the <code>dir<\/code> command displays files in a way you will find very unfamiliar. Files and directories were displayed in a sorted list, but with attributes on the left and the file size on the right:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\DOS\\BIN&gt;dir\n\nd-  .                      &lt;dir&gt;\nd-  ..                     &lt;dir&gt;\n--  ASSIGN.COM             12280\n--  ATTRIB.COM              3880\n--  SYS.EXE                12160\n--  BITDISK.EXE            10311\n--  RESTORRB.EXE           13398\n--  BIN2C.EXE              14040\n--  RUNDOWN.EXE              615\n--  EXE2BIN.EXE            22472\n--  BUFFERP.COM             2190\n--  DB.COM                 12702\n--  FDXMS.SYS               2240\n--  TDMOUNT.BTM             4047\n--  BOOT.BIN                 512\n--  BOOT1440.BIN             512\n--  BOOT360.BIN              512\n--  BOOT720.BIN              512\n--  IPL.SYS               115104\n--  C_LOCK.COM              3834\n&#91;press any key to continue]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">With these caveats, it&#8217;s interesting to explore the Alpha5 distribution. Check it out to see what you can do, and to see where it all started.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Take a step back in time to this early release from the FreeDOS Project.<\/p>\n","protected":false},"author":33,"featured_media":3514,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[340,106],"tags":[267,316],"class_list":["post-14364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-freedos","category-history","tag-freedos","tag-history"],"modified_by":"Jim Hall","_links":{"self":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/14364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14364"}],"version-history":[{"count":9,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/14364\/revisions"}],"predecessor-version":[{"id":14373,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/posts\/14364\/revisions\/14373"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=\/wp\/v2\/media\/3514"}],"wp:attachment":[{"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.both.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}