---------------------
| Table of Contents |
---------------------

        1.0  Why DOS?
        1.1  Why assembly?
        1.2  Why NASM?
        1.3  Why free?
        1.4  Why bother?

        2.0  Requirements
        2.1  Screen Shot
        2.2  Help Screen
        2.3  Features/Usage
        2.4  Wishful Thinking

        3.0  Archive List
        3.1  Converting to Other Assemblers
        3.2  Reassembling

        4.0  Program Status
        4.1  Acknowledgments
        4.2  Contact Info
        4.3  History

-----------------
| 1.0  Why DOS? |
-----------------

        With the arrival of Win95/98, DOS has lost most of it's
        commercial viability. So what? Many people still use DOS for
        lots of stuff, especially now that most DOS software is free
        (and sadly, the same isn't quite true for Windows). Besides,
        in many ways, DOS is the simplest way to get your point across,
        especially when you want your program to work with older DOS
        computers. Why not Linux? You're asking the wrong guy.

----------------------
| 1.1  Why assembly? |
----------------------

        1). it's fast, even on slower computers
        2). you know exactly what's going on
        3). there are quite a few free assemblers
        4). the program is small, making it a
            faster download
        5). it's often the language of choice
            for DOS lovers (although it definitely
            makes development much slower)

------------------
| 1.2  Why NASM? |
------------------

        The Netwide Assembler (NASM) is a great free assembler. Ever
        since 0.94, when macros were introduced, I began using it. It
        has quickly gained popularity with many users, mainly because of
        it's many output formats, portability, and free ANSI C source.
        Every version base of this program was written or at least
        converted to work with NASM. I know NASM is the best, but
        if, for some reason, you want to reassemble this with another
        assembler, see the converting section below. I've ignored using
        macros or local labels just for this purpose.

        By the way, I'm using 0.97 to assemble this, but 0.98 is
        expected any day now. Here's the latest concerning NASM 0.98:


From:           	Jules <jules@acris.demon.co.uk>
Subject:        	Re: NASM 0.98 release date (if ever)
To:             	anthonyw@dibbs.net (Tony Williams)
Date sent:      	Wed, 3 Feb 1999 17:25:54 +0000 (GMT)
Copies to:      	clax86@geocities.com

I've been having a few requests like this recently, so I'm sending
this reply to c.l.a.x86 as well as to the original author, just to let
people know in general.

> I know you're busy, I know NASM takes hours upon hours of work, 
> but I can't find anyone who knows anything about the upcoming (?) 
> release of 0.98. If you please, kindly sum up in a sentence or two 
> what the current status is. 

The current status is this:

- There have been a few reports of bugs in the latest pre-release
  version. I am currently looking for fixes to these.

- A few documentation updates are required.

- Some changes need merging into the main line source code

- I would like to include more example code. This means writing some
  more example code. I'll probably include some interesting things (eg
  the boot-loader from my pet OS project), as well as the more usual
  boring examples!

As for when the release will be, its hard to predict when I'll have
time. I have a lot of commitments at the moment (working 8am-8pm most
days) so its hard to find the time to finish it off.

Sorry about the delay.

Jules

------------------
| 1.3  Why Free? |
------------------

        Look at the emulation scene: if you want something accomplished,
        you'll need help. And you can't get that with money. Five years
        ago, no one would've even imagined MAME ever becoming reality.
        But, it happened. MAME probably supports 1,000 or more games
        and several platforms because someone was smart enough to release
        the source. Even MESS, another good emulator, claims to be able
        to emulate basic PC functions. :-)

        I love free software, it's always the best. So, since this the
        best free dir lister (in my opinion), it must be free. Nagware
        never works, and shareware is almost always nagware. In fact, I
        no longer will try anything that's nagware, mainly because
        there's always a non-nagging alternative. I can only tolerate
        shareware programs which are ad-ware, no-nag shareware, or a
        reduced (i.e. "lite") version. Such programs are rare, but
        usually quite nice too (i.e. Go!Zilla or Juno). I'll be glad
        when people finally realize they can't sell everything. Or
        maybe they should realize I can't afford everything.  :-)

--------------------
| 1.4  Why bother? |
--------------------

        Because no one else did, and no one else ever will. Okay,
        well, VLA did, but their program wasn't very feature-rich.
        Plus, it's TASM-specific code was sloppy (no, not as sloppy as
        some of my earlier versions).  :-)   There are millions
        of dir listers, so why has no one ever released the source?
        If you don't release it, what will happen if your computer
        crashes? Everyone loses, and you have to start all over again.
        At worst, releasing the code will be redundant, or maybe someone
        will fix a few of your bugs. A helpful user, how horrible!  :-)

---------------------
| 2.0  Requirements |
---------------------

        You'll need the following to use this software:

        a). probably MS-DOS 2.0+ or compatible
        b). probably at least a 286
        c). a monitor capable of 80x25 textmode 3

        I have tested this extensively on a P-166 w/ Win95 (MS-DOS
        7.00). In fact, this release (2.10) is just a normal update
        with no new features. If it doesn't work, please tell me what
        DOS you're using. I can only hope DR DOS 7.02, FreeDOS
        (beta3, I believe), and DOSemu will work because I don't have
        any of them. But, I doubt I could fix any incompatibilities
        anyways.

        http://www.caldera.com    (DR DOS, free for private use)
        http://www.freedos.org    (free to all)
        http://www.dragonlinux.nu (0.75, uses UMSDOS, easy to install)

          NOTE: DragonLinux comes with PPP support but not GCC and no man
          files, so you have to setup PPP, then manually download GCC;
          it helps if you're accustomed to DJGPP and Lynx_W32.

          http://www.delorie.com/djgpp/  (DJGPP 2.02)
          http://www.nonags.com          (look under Web browsers)

--------------------
| 2.1  Screen Shot |       dw a: /i >> dirwide.txt
--------------------

a:\*.*

dirwi201.zip        21,896             dirwi202.zip        22,423             
dirwid16.zip        23,149             dirwid17.zip        13,394             
dirwid18.zip        15,364             dirwid19.zip        17,628             
dirwid20.zip        21,508             dw10.zip            4,864              
dw13.zip            6,144              dw14.zip            12,228             
dw15.zip            20,781             yo100.zip           11,003             
yo200.zip           24,188             yo210.zip           12,868             

14 items: 0 dirs; 14 files totaling 227,438 bytes
Tue Apr 20,1999 12:10am; 1,226,240 bytes free

--------------------
| 2.2  Help Screen |
--------------------

DirWide 2.10 - anthonyw@dibbs.net
Usage:  dw [*.*] [options]

/b bare mode (fname,fsize)
/d dirs only
/f files only
/h this help screen
/i misc info after listing
/l no filespec printing
/p no pausing
/r goto textmode 3 (80x25)
/s script mode (fname)
/t: print/write date and time
/u keep filenames uppercase
/v verbose file info
/z: aligning options

-----------------------
| 2.3  Features/Usage |
-----------------------

        1). multiple options are supported, either by themselves or
            following the /Z: option
        2). most options when used twice will cancel themselves out
            and can then be turned back on by an additional use
        3). /F and /D will cancel each other out, since they aren't
            meant to be used together
        4). /S, /B, and /V are not meant to be used together either, so
            only the first one typed will be used
        5). spaces are ignored completely when checking for options, but
            you can't type a slash followed by a space and then the
            letter of your option, for it will be considered part of the
            user-specified filespec
        6). the two most common errors return errorlevels to DOS
            (see TEST.BAT)
        7). some messages are non-redirectable (error messages, like the
            invalid path or no files found messages), and /T is not
            redirectable (use /T:file.txt instead)
        8). /T: will not write to any file without a .TXT extension (for
            safety reasons)
        9). when redirecting output to a file, pausing is
            automatically turned off and cannot be toggled back on by /P
        10). options can be placed before, in between, or after the
             user-inputed filespec


    N.B. "dw /z:sufl >> test.txt" will create a script which seems to
      work with certain utilities like some of those which come with
      DJGPP, but I can't seem to find any actual application for this.
      Oh well, it can't hurt.  :-)

    Examples:

        "dw /i" is the same as "dw /f /d /i" or "dw /z:fdi"
        "dw /b /f" is the same as "dw /z:dbdf"
        "dw /s /i /s" is equal to "dw /i" also
        "dw /z:bvs" is equal to "dw /b" because /B came first
        "dw c:\windows\*.mid /p >> midi.txt" doesn't need /P
        "dw /?" is the same as "dw /h" or "dw    /H"
        "dw *.exe /v /l" is the same as "dw /l /v *.exe"
        "dw /t" won't write to a file but will print the time and date
        "dw /t:blah.txt" will work but "dw /t:info.dat" will not

-------------------------
| 2.4  Wishful Thinking |
-------------------------

        a). detect hard drives larger than 2 gigs
        b). add /W: option for pseudo-redirection
        c). fix all occurences of '..\' in filespec
        d). test it with DR DOS, FreeDOS, and DOSemu
        e). test it with NASM 0.98

---------------------
| 3.0  Archive List |             ../msdos/dirutl/dirwi210.zip (Simtel)
---------------------

DIRWIDE.TXT                       documentation, ASCII textfile
DIRWIDE.EO                        Esperanto doc, ASCII textfile
DIRWIDE.ASM                       commented assembly source code
DW.COM                            MS-DOS .COM file (main program)
FILE_ID.DIZ                       short description (any BBSes left?)
TEST.BAT                          errorlevel-testing example batch file

---------------------------------------
| 3.1  Converting to Other Assemblers |
---------------------------------------

Note:  I am fairly confident that you can change the text for other
languages besides English and reassemble without incident. Even the 'am'
and 'pm' texts can be changed to something longer (e.g. 'atm'). Please
tell me if, for some strange reason, this doesn't work.

By the way, despite the fact that I've translated this document into
Esperanto, I have decided against translating the comments in the source
file too. I don't figure many people will care, though, since none of
the assemblers report messages in Esperanto. Someone care to fix that?


        1). Netwide Assembler 0.97 (NASM):
                  a). no conversion needed

        2). ArrowASM 2.00c and Val (MASM/TASM compatible)
                  a). comment out "%define offset"
                  b). comment out "%define ptr"
                  c). uncomment the "code segment" line
                  d). uncomment the "assume cs:code,ds:code,es:code"
                      line
                  e). comment out "section .text"
                  f). comment out "section .data"
                  g). comment out "section .bss"
                  h). comment out the lines with "resb"
                      (these are NASM specific)
                  i). uncomment the "db 5 dup(?)"
                      lines
                  j). uncomment "code ends" at the end
                  k). uncomment "end Start" after that

        3). Tetrabyte Macro Assembler, July 17th w/ bugfix (TMA)
                  a). follow MASM/TASM instructions above (2)
                  b). change all "EQU" to an equal sign "="
                  c). put ".data" before the first "db 5 dup(?)"
                      line

        4). A86 4.02 (A86)
                  a). follow MASM/TASM and TMA instructions
                      above (2 and 3)
                  b). change all "0b"s to "0xB"s
                  c). change all "1b"s to "1xB"s

        5). Pass32 2.4 (Pass32)
                  a). I can get it to assemble after a few modifications
                      but the result is buggy because the assembler,
                      although quite nice in itself, is apparently buggy
                      (and apparently going to be rewritten from scratch
                      eventually). So, don't try it. Or if you do try it
                      and figure out why the resulting .COM file hangs/acts
                      weird, please tell me.

---------------------
| 3.2  Reassembling |
---------------------

        You must actually have the assembler, and below are the
        homepages of the ones I've indicated. But, although ArrowASM is
        MASM 3.0 compatible, it is no longer supported. In fact, you may
        have trouble finding 2.00c, but 1.00 should work fine too. NASM,
        A86, ArrowASM 1.00 and Val, and an older version of TMA should
        be available at Simtel. I suggest you only use the latest TMA
        version (even though it's maintainer seems to have gone on
        hiatus, possibly permanently, and may not update it).

        Search http://www.filez.com if all else fails.

        http://www.simtel.net/simtel.net/msdos/asmutl.html
        ftp://ftp.simtel.net/pub/simtelnet/msdos/asmutl/

        NASM homepage   (http://www.cryogen.com/Nasm)
        ArrowASM        (http://www.freedos.org)
        TMA homepage    (http://www.devcon.net/~sven)
        A86 homepage    (http://www.eji.com)
        Pass32 homepage (http://www.geocities.com/SiliconValley/Bay/9159)

        1). nasm -o dw.com dirwide.asm
               or
            nasm -f bin -o dw.com dirwide.asm -w+orphan-labels

        2). asm dirwide;
            val /co dirwide;
            erase dirwide.obj
            ren dirwide.com dw.com

        3). tma dirwide.asm dw.com

        4). a86 +S dirwide.asm dw.com

        5). (don't bother)

-----------------------
| 4.0  Program Status |
-----------------------

        As you can probably imagine, after writing a program for so
        long, a person tends to get burnt out. Besides, I swear, I have
        no more ideas or skills to offer. I have waited a long time in
        writing this to make sure it was solidly-written and
        well-thought-out to prevent any more useless rewrites. I will
        continue to fix bugs (if possible, sheesh) and will be very
        grateful to hear of any conflicts with DOSes other than MS-DOS.

        This version, 2.10, is as strong, stable, bug free, and cleanly
        written as I could make it. It fixes a few bugs (which were
        minor and didn't become apparent until recently). In the
        future, please report any bugs or misfeatures to me that you
        find.

        It will be probably a month before Simtel gets this. Console
        yourself with the fact that it's public domain:  do anything
        you wish with it, especially including it in CD-ROMs, disks,
        web sites, snippets, with assemblers as an example program, etc.

-------------------------
| 4.1  Acknowledgements |
-------------------------

        Much thanks go out to all the programmers who have written free
        software in the past ten years and also to the web sites which
        offer such non-nagging software (NoNags) to us all. If you've
        ever received an e-mail from me thanking you for your work or
        have been linked to by me on my web site, I sincerely appreciate
        your efforts. This includes the staffs of Juno and Geocities
        (and Tripod, although my stay with them was short).

        But, more specifically (please tell me if I forgot your name):

              Thanks go out to the authors of NASM (Jules and
              Simon), ALAB (Kurt Inge Groenbech), ALINK (the other
              Anthony Williams), PMODE/Nasm (Thomas Pytel, Tuukka
              Toivonen, Ivan Tomac), TMA (Sven Klose), Dos Controller
              (Soren Kragh), DJGPP (DJ Delorie), Tutordo (Marcello
              Vinci), Pass32 (Dieter Pawelczak), Hacker's View (Eugene
              Suslikov), Hexit (Mikael Klasson), Code Edit
              (Richard Alimi), ZipCentral (Johan Savas), Locate
              (Charles Dye), SJGplay (Steve Gray), Xenu (Tilman
              Hausherr), WS_FTP LE (John A. Junod), BASM286 (Kevin
              Diggins), F-PROT (Fridrik Skulason), HelpPC (David
              Jurgens), Pegasus E-mail (David Harris), ACD (A. Merckens),
              RVS (Raymond T. Kaya), TDE (Frank Davis), T-Secure (Tsahi
              Chitin), JPTUI (Jean Pierre Delprat), MGUI (Vincenzo
              Morello), the authors of MAME, the authors of InfoZip, the
              authors of Lynx, the authors of HTMLpad, the authors of
              EZpad, the authors of Free Agent, UFO (Ed T. Toton III),
              UCALC (Daniel Corbier), NO$GMB (Martin Korth), and GoZilla
              (Aaron Ostler).  :-)


              hey Simon, I said _thanks_  :-)

---------------------
| 4.2  Contact Info |
---------------------

        I decided that having a web page was taking up too much time. I
        have already removed all the files (although with local copies
        on my hard drive), and I've deleted the account. You can still
        e-mail me if you have questions or suggestions, but I suggest
        keeping an eye on Simtel, subscribing to their software update
        notification list, or using Go!Zilla (http://www.gozilla.com).

        As far as my Juno account, I haven't used it since I acquired a
        newer computer, so I assume it's no longer active, so please
        don't send any mail there, only e-mail me below. If that e-mail
        doesn't work or you don't get a response within a week, you can
        safely assume something has happened to me, or that I've given
        up computers entirely.  :-)

        anthonyw@dibbs.net (aka, Tony)

        NOTE: I am not the same Anthony Williams who wrote ALINK. You
        may wish to try his linker instead of VAL. It can be compiled
        with DJGPP (http://www.delorie.com/djgpp/). His page is avail-
        able at the address below:

        http://www.geocities.com/SiliconValley/Network/4311 (ALINK)
        anthony_w@geocities.com (Anthony from the UK)

----------------
| 4.3  History |
----------------

early June, 1996
  - began learning ASM, read 80xxx Fidonet echo via Byte Junction BBS
late August, 1996
  - received help on finding files in a directory from Randy Turner
middle September, 1996
  - wrote a crude and inefficient dir lister
early December, 1996
  - made it all blue instead of gray, no other improvements
    - I should've used int 10h, 13h but alas....
  - this version got added into the '96 80xxx Fidonet snippets
  - that probably explains why the '96 snippets are impossible to find  :-)
    - well, actually, you can find two very horribly archaic (and poorly
      written) programs in the snippets on Simtel but this program
      greatly supercedes them in quality, so Ms. Snippets Maintainer,
      please update your archives with this instead  :-)
  - Byte Junction goes down, got on Internet middle January, 1997
  - subbed to Van Halen mailing list (http://www.vhml.com)
middle May, 1997
  - found out URL of Steel's programming page via IRC
  - installed DJGPP (thanks to Steel's nicely designed site)
2 June, 1997
  - a Georgia-based ISP (CSRA) abandons it's service in my town
    (goes bankrupt?) right after we payed the bill
21 June, 1997
  - finally get on the ISP that I suggested in the first place (DIBBS)

middle September, 1997 (YO 1.0)
  - rewrote the whole thing from scratch, still not very good

late September, 1997 (YO 2.0)
  - improved this version
  - tired of the VHML and most of it's posters
  - unsubbed from VHML because most of them are insane (ahem, Rex)
     - 14 digests a day was too much (and it wasn't even hardly about VH)
     - got a web page on Geocities (September 25th, Thursday)

middle November, 1997 (YO 2.1)
  - got frustrated at this version, made a small improvement
  - abandoned it knowing a new version from scratch would be written soon

late November, 1997 (DW 1.0)
  - rewrote the damn thing several times to the point that I could recite a
      simple dir lister from memory
  - finally, it's redirectable and much cleaner code (or so I thought)

middle January, 1998 (DW 1.3)
  - files now printed in lowercase for easier reading (only dirs are uppercase)
    - in my opinion, this is better than DOS's way of doing it
  - add time and date message at bottom of screen

early February, 1998 (DW 1.4)
  - cleaned up the code a little bit
  - fixed a weird bug I knew about but wasn't sure what was causing it
     - Prints now prints a NULL-ending string instead of a $-ending one
       (what buffoon agreed to let files use a $ in their names?)
     - used a makefile (GNU Make) to assemble it (bad idea)

middle February, 1998 (DW 1.5)
  - fixed macros to work better
  - made CRLF macro to help clean things up
  - made lots of jumps short
  - added filespec message at top of screen
  - added filespec message to "No files found" and "Invalid path" screens
  - abandoned makefile for good ol' .BAT
  - hid the cursor until printing is done to avoid flicker
  - checked for text mode 2 or 3, switches to 3 if not in either
  - renamed ESC to NULL to avoid ambiguity
  - 'dw c:\crap /n' now works just like 'dw c:\crap\*.* /n'
    - if intuitive filespec messes up, it tries the original unmodified one
  - wrote basic documentation
  - made it where it won't print volume label when doing 'dw c:\'
  - multiple options are now supported
  - /M option now supported

end of February, 1998 (DW 1.6)
  - fixed a small bug in the Scan proc
    - ('dw n:\' now works like 'dw n:')
  - implemented /V to print verbose file info
March 17, 1998
  - got the new VH album (great stuff, trust me)
April 18, 1998
  - reinstalled DJGPP (someone really needs to create an EZ-GCC for v2)
late April
  - watched the VH NewsDesk go down (and up again? huh?)
    (http://www.vhnd.com)

May 9 to May 25, 1998 (DW 1.7)
  - decided to update this abomination
  - rewrote everything from a dir lister skeleton I wrote on Friday the 13th
  - used no macros to keep it easy to convert (to MASM, A86, etc.)
  - used uninitialized space to reduce .COM file size
  - hopefully fixed filespec indicator to always have full path
    - "dw asm\test" should now tell you the full path
  - fixed leading space error
    - "dw/v" should work too
  - got rid of aligning options
    - "dw /vpi" will not work  (not really useful anyways)
  - fixed free space to correctly print according to drive being searched
    - "dw b:" should now report free space on drive b:
  - got a better bin2dec routine (written by Terje Mathiesen)
  - added commas to all numbers
  - made /I a default option
    - added "totaling --- bytes" to bottom info
      - this was extremely easy, and yet it seemed impossible at first
  - added /C (only disables commas in filesizes)
  - added /F and /D (basically, the same as "dir /a:-d" and "dir /a:d")
  - added /Z (needed it, sorta)
  - removed /M (useless anyways, don't you think?)
  - updated the documentation (well, duh)
  - probably some other stuff I can't remember

May 26 to 31, 1998 (DW 1.8)
  - recently fixed two filespec bugs
    - 'dw \stuff' should now print the correct filespec
    - 'dw ..' should now print the correct filespec as well
  - added /L  (don't print the blasted filespec)
  - updated documentation (well, of course)
  - by the way, I didn't mention before, but since 1.7, I've removed the
    part which hides the cursor
    - if you typed 'dw b:' and the drive wasn't ready, the cursor wouldn't
      be restored correctly, so I chunked that (mis)feature
  - backed up all the older versions on floppy; if you want to see an older
    version, for some demented reason, it's okay with me  :-)

sparse times in June, 1998 (DW 1.9)
  - fixed free space bug
    - it should now accurately report free space up to 2 gigs
  - no longer resets text mode to mode 3
    - if you aren't in text mode 2 or 3, it will set option /B and try
      to kludge around, but using /I when in other modes will look
      horrible :-)
      - if during your stay in the other video mode you decide to switch
        to text mode 3, just use option /T
  - filespec is now printed in all lowercase
  - /I now saves space by printing info on only two lines
  - when redirecting to a file, it should now be able to automatically
    figure this out, and therefore it will not pause the output
    - in other words, you can type "dw c:\windows /i > winfiles.txt"
      without having to worry about the /P option
  - added /M option (does not work with misc info at bottom)
    - this prints the month "Jul 04,1998" instead of "07-04-1998"
      - hopefully this will clear up any date format ambiguities
  - added /B option (prints filename and filesize only)
    - this is the same as option /V but doesn't print the filedate,
      filetime, or file attribute
  - added quotes " encapsulating of filespec
    dw "wgcb-???.*" -v      will now use 'wgcb-???.*' as filespec but
    dw wgcb-???.* -v        will not work
  - small optimizations to keep the .COM file small
    - 1.9 is only like 55 bytes bigger than 1.6, so I'm happy   :-)

July 15th to October 29th (DW 2.0)
  - began to learn some Irish (August 7th), not that that relates to
    this at all  :-)
  - reinstalled DJGPP yet again (August 27th)
  - figured out that 1.9 had one bug and one misfeature
    - the misfeature could be fixed, the bug could not (because, despite
      my efforts to keep the code clean, it became botched)
      - fixed misfeature with "dw /d /i" which printed misc info which
        wasn't needed
      - fixed bug with "dw /v" when the 15th, 16th, 17th, etc. file is
        a directory, which made it pause several times in succession
  - I realized that 2.0 would probably be expected to be a very
    well-done version with no bugs and many features...and clean code,
    of course, so I took my sweet time and now, several months later,
    it's released (soon to be uploaded to Simtel)
  - rewrote everything from scratch again except Terje Mathieson's
    bin2dec routine (which I don't want to rewrite)
    - the parser routine and all the parts of /V are majorly cleaned up
  - added timestamp option (/T:) which will only create or append to
    files with the .TXT extension (as a safety precaution)
  - added /S option (which acts just like DIR /B)
  - added /U in case you prefer all uppercase names
  - added returning of error codes 3 and 18 to DOS, so you can know via
    a batch file if the output wasn't redirected correctly
    - to help this purpose, some messages are printed via a
      non-redirectable approach to make sure the error is printed to the
      screen
    - changed /R to reset the text mode instead of acting like
      both /I and /P
    - it no longer autodetects the video mode or does anything about it
  - removed quote surrounding, so from now on, options must be preceded
    by a slash / and not a dash - (to avoid confusion)
  - /C isn't supported now because it was basically useless anyways
  - added /Z: to allow easier use of multiple options
    - "dw *.exe /z:ilpv" is easier than "dw *.exe /i /l /p /v"
      although both should work equally as well
  - made several changes in the appearance of the program
  - improved the documentation, renaming it to DIRWIDE.TXT to avoid
    confusion with Word docs (this is 100% ASCII, folks)
    - now includes Table of Contents and other useful sections

October 29th to November 6th (DW 2.01, just a maintenance version)
  - fixed a few small quirks which only presented themselves when the
    wrong usage was used
    - "dw/?" now works
    - "dw ///" no longer invents weird invalid filespecs
    - shrunk the parser routine a bit
    - filespec now reports default drive even when the filespec itself
      is invalid

December 15, 1998 to January 4, 1999 (DW 2.02, just a bugfix version)
  - took down my web page, deleted my account
  - fixed a few bugs but added no new features
    - removed the OPT_H declaration because it was useless
    - if you did a "dw /f" within an empty directory, it wouldn't report
      no files found message or the errorlevel, so I fixed that
    - "dw a:" when a: is blank now reports the correct error ("No files
      found") instead of "Invalid path"
    - added "jc short test_redir_pause" so that DOS correctly knows the
      function didn't work
      - I'm guessing this is probably needed for FreeDOS but I can't be
        sure
    - when listing directories with more than 512 files (I think), it
      would crash, so I fixed that (try "dw c:\windows\system /p /i")
  - updated the documentation somewhat
  - by the way, Merry Christmas, Happy New Year, and get ready for Mardi
    Gras! (Feb. 16, I think)  ;-)

January 4 to present (DW 2.10)
  - corrected a dumb misfeature so that now you can type "dw ///v" or
    "dw ////v" and get the same results (although you may not ever need
    this)
  - fixed an obscure misfeature which makes combinations of /I and /L in
    filespecs like "dw a: /i /l" or "dw a: /z:il" not correctly report
    free space from the disk drive
