* Exiting to DOS
   exit_ret.com       Exit to DOS by RET to CS:0        [MS-DOS 1.0+]
   exit_20h.com       Exit to DOS by INT 20h            [MS-DOS 1.0+]
   exit_f00.com       Exit to DOS by INT 21h AH=0x00    [MS-DOS 1.0+]
   exit_f4c.com       Exit to DOS by INT 21h AH=0x4C    [MS-DOS 2.0+]
* Standard I/O
   int21_01.com       Read from STDIN with echo         [MS-DOS 1.0+]
   int21_02.com       Read keyboard with INT 16h, write [MS-DOS 1.0+]
                      to STDOUT.                       
   int21_06.com       Direct console I/O                [MS-DOS 1.0+]
   int21_07.com       Direct console input              [MS-DOS 1.0+]
   int21_08.com       Console input                     [MS-DOS 1.0+]
   int21_09.com       Print string $-terminated         [MS-DOS 1.0+]
   int21_0a.com       Buffered input                    [MS-DOS 1.0+]
   int21_0b.com       STDIN status test                 [MS-DOS 1.0+]
   int21_0c.com       Buffered input (FLUSH)            [MS-DOS 1.0+]
   int21_0d.com       Disk reset, flush                 [MS-DOS 1.0+]
* Default drive
   defdrive.com       Get/Set default drive             [MS-DOS 1.0+]
* File control blocks
   fcb_open.com       Open a file, read contents,       [MS-DOS 1.0+]
                      print to STDOUT, and close 
   fcb_opew.com       Open a file, random read/write    [MS-DOS 1.0+]
                      to modify initial bytes, close
   fcbcreat.com       Create a file, write a record     [MS-DOS 1.0+]
   fcbcrea2.com       Create a file, change record size [MS-DOS 1.0+]
                      and write record                 
   fcb_ren.com        Rename file using FCB             [MS-DOS 1.0+]
   fcb_del.com        Delete file using FCB             [MS-DOS 1.0+]
   fcb_dir.com        Enumerating files using FCB       [MS-DOS 1.0+]
   fcb_dir2.com       Enumerating files and folders     [MS-DOS 2.0+]
                      using an extended FCB        
   fcb_psp.com        Show the 1st & 2nd FCBs in the PSP[MS-DOS 1.0+]
   fcbparse.com       Parse filename into FCB           [MS-DOS 1.0+]
   getlabel.com       Read and show volume label        [MS-DOS 2.0+]
   setlabel.com       Set volume label                  [MS-DOS 2.0+]
   dellabel.com       Delete volume label               [MS-DOS 2.0+]
* Other
   version.com        Display MS-DOS version            [MS-DOS 2.0+]
   tsrnull.com        Terminate & Stay Resident         [MS-DOS 2.0+]
   tsrnull2.com       TSR (and free env. block)         [MS-DOS 2.0+]
   tsrndos1.com       TSR using INT 27h                 [MS-DOS 1.0+]
   dpb_10.com         Disk Parameter Block (DOS 1.0),   [MS-DOS 1.0]
                      it turns out though MS-DOS 1.0
                      does not implement the function
                      and therefore this program is now
                      just a stub.
   dpb_11.com         Disk Parameter Block (DOS 1.1)    [MS-DOS 1.1+]
   dpb_2.com          Disk Parameter Block (DOS 2.x)    [MS-DOS 2.x]
   dpb_3.com          Disk Parameter Block (DOS 3.x)    [MS-DOS 3.x]
   dpb_4.com          Disk Parameter Block (DOS 4.0+)   [MS-DOS 4.0+]
   extbrkch.com       Extended break checking           [MS-DOS 2.0+]
   extbrkc2.com       Extended break checking           [MS-DOS 3.0+]
   bootdrv.com        Get boot drive                    [MS-DOS 4.0+]
   diskcap.com        Get disk capacity/free space      [MS-DOS 2.0+]
   diskcp95.com       Get disk capacity/free space      [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
                        Windows 95 FAT32 method
   creat4gb.com       Create a file almost 4GB large    [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
                        on FAT32 drive
   creat4g2.com       Create a file almost 4GB large    [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
                        on FAT32 drive, WITHOUT using
                        the extended create flag needed
                        to do so. This is intented to
                        show that for older DOS programs
                        the kernel will limit the file
                        size to 2GB. On an actual Win95
                        OSR2 install the kernel simply
                        rejects our attempt and the
                        resulting file is only 13 bytes
                        large.
   switchr.com        Get/Set switch character          [MS-DOS 2.0+]
   mkdir.com          Create subdirectory               [MS-DOS 2.0+]
   rmdir.com          Remove subdirectory               [MS-DOS 2.0+]
   creat.com          Create a file                     [MS-DOS 2.0+]
   delete.com         Delete a file                     [MS-DOS 2.0+]
   creaseek.com       Create a file, lseek, write       [MS-DOS 2.0+]
   creasee2.com       Create a file, lseek, write       [MS-DOS 2.0+]
   creasee3.com       Create a file, lseek, write       [MS-DOS 2.0+]
   chattr_r.com       Set read only attribute on file   [MS-DOS 2.0+]
   chattr_h.com       Set hidden attribute on file      [MS-DOS 2.0+]
   chattr_s.com       Set system attribute on file      [MS-DOS 2.0+]
   chattr_a.com       Set archive attribute on file     [MS-DOS 2.0+]
   dup.com            Create a file, dup handle, write  [MS-DOS 2.0+]
   dup2.com           Create a file, dup2 handle, write [MS-DOS 2.0+]
   chdir.com          Change working directory          [MS-DOS 2.0+]
   getcwd.com         Display working directory         [MS-DOS 2.0+]
   allocmem.com       Show how a COM program can use the[MS-DOS 2.0+]
                      alloc/free/resize memory blocks   
   exec.com           Use the EXEC call to run          [MS-DOS 2.0+]
                      COMMAND.COM             
   exec2.com          Use the EXEC call to run another  [MS-DOS 2.0+]
                      program, passing along the command
                      line as well.
   execload.com       Use the EXEC cal to load a program[MS-DOS 2.0+]
                      into memory, then execute it
                      directly (using AL=1)
   dir.com            List directory contents using     [MS-DOS 2.0+]
                      findfirst/findnext (*.*)
   dir20.com          Alternate version of dir.com that [MS-DOS 2.0+]
                      uses ????????.???
   sverify.com        Set verify flag                   [MS-DOS 1.0+]
   gverify.com        Get verify flag                   [MS-DOS 2.0+]
   rename.com         Rename file (AH=0x56)             [MS-DOS 2.0+]
   getmtime.com       Get file last-written date/time   [MS-DOS 2.0+]
   int2edir.com       Use INT 2Eh to execute DIR        [MS-DOS 2.0+]
   int29str.com       Using INT 29h to print out        [MS-DOS 2.0+]
   ctrlbrk.com        Proof of concept hooking CTRL+C   [MS-DOS 1.0+]
   ctrlbrkx.com       Hooking CTRL+C, allow exit        [MS-DOS 1.0+]
   createmp.com       Create temporary file             [MS-DOS 3.0+]
   creados3.com       Create a file, lseek, write       [MS-DOS 3.0+]
   creados4.com       Create a file, lseek, write       [MS-DOS 4.0+]
   truname.com        Canonicalize filename/path        [MS-DOS 3.0+]
   pspseg2.com        Show current PSP segment          [MS-DOS 2.0+]
   pspseg3.com        Show current PSP segment          [MS-DOS 3.0+]
   reset95.com        Reset drive                       [MS-DOS 7.0+]
   int25.com          INT 25h absolute disk read        [MS-DOS 1.0+]
   int25_32.com       INT 25h absolute disk read >= 32MB[MS-DOS 3.31+]
   int25f32.com       INT 25h abs. disk read, FAT32     [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
                      equivalent
   dlock.com          INT 21h lock volume               [MS-DOS 7.0+/Windows 95,98,ME]
   dunlock.com        INT 21h unlock volume             [MS-DOS 7.0+/Windows 95,98,ME]
   dlock32.com        INT 21h lock volume (FAT32)       [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
   dunlok32.com       INT 21h unlock volume (FAT32)     [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
   showenv.com        Print out the contents of the     [MS-DOS 2.0+]
                      environment block
   setenv.com         Replaces the env. block and then  [MS-DOS 2.0+]
                      exec's command.com so that you
                      can examine the new block.
   int22.com          Demonstrates hooking the INT 22h  [MS-DOS 1.0+]
                      vector in the PSP to carry out
                      actions just after DOS has
                      terminated your program.
   getpid.com         INT 21h AH=0x51 get "process ID"  [MS-DOS 2.0+]
   getpid3.com        INT 21h AH=0x62 documented API    [MS-DOS 3.0+]
   setpid.com         INT 21h AH=0x50 set "process ID"  [MS-DOS 2.0+]
                      demonstration. Demonstrates the
                      feature by abusing it to allocate
                      memory that DOS associates with
                      the parent program.
   setpidm.com        Like setpid.com, but directly     [MS-DOS 2.0+]
                      modifies the MCB block to assign
                      ownership.
   indos.com          Show the address of the INDOS     [MS-DOS 3.1+]
                      and critical error flags.
   indosmon.com       Show live status of INDOS and     [MS-DOS 3.1+]
                      critical error flag (TSR).
   devprefx.com       Get/Set \DEV\ prefix use          [MS-DOS 2.0+]
   allocid.com        Get default drive allocation info [MS-DOS 1.0+]
   allocis.com        Get drive allocation info         [MS-DOS 1.0+]
   drvdis.com         Disable drive                     [MS-DOS 5.0+]
   drven.com          Enable drive                      [MS-DOS 5.0+]
* Windows 95 Long File Names
   lfnmkdir.com       Long filename mkdir               [MS-DOS 7.0+/Windows 95,98,ME]
   lfnrmdir.com       Long filename rmdir               [MS-DOS 7.0+/Windows 95,98,ME]
   lfnchdir.com       Long filename chdir               [MS-DOS 7.0+/Windows 95,98,ME]
   lfndel.com         Long filename delete              [MS-DOS 7.0+/Windows 95,98,ME]
   lfndel2.com        Long filename delete w/ wildcards [MS-DOS 7.0+/Windows 95,98,ME]
   lfncwd.com         Long filename get current dir     [MS-DOS 7.0+/Windows 95,98,ME]
   lfndir.com         Long filename directory list      [MS-DOS 7.0+/Windows 95,98,ME]
   lfnren.com         Long filename rename              [MS-DOS 7.0+/Windows 95,98,ME]
   lfntrue.com        Long filename canonicalize path   [MS-DOS 7.0+/Windows 95,98,ME]
   lfnshort.com       Long filename get short name      [MS-DOS 7.0+/Windows 95,98,ME]
   lfnlong.com        Get long filename from short      [MS-DOS 7.0+/Windows 95,98,ME]
   lfncreat.com       Create a file with long filename  [MS-DOS 7.0+/Windows 95,98,ME]
   lfncr4gb.com       Create long filename 4GB FAT32    [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
   lfncr4g2.com       Create long filename 4GB FAT32    [MS-DOS 7.0+/Windows 95 OSR2,98,ME]
                      and don't set 4GB FAT32 bit, to
                      show that setting the bit is
                      required to get FAT32 4GB support
   lfnsname.com       Create short name from long       [MS-DOS 7.0+/Windows 95,98,ME]
   gettime.com        Get system time                   [MS-DOS 1.0+]
   settimex.com       Set system time to example date   [MS-DOS 1.0+]
* Non DOS specific
   32div16.com        Printing a 32-bit unsigned int    [MS-DOS 1.0+]
                        using only 16-bit 8086
                        instructions.
   64div16.com        Printing a 64-bit unsigned int    [MS-DOS 1.0+]
                        using only 16-bit 8086
                        instructions.
   32mul16.com        Multiply 32-bit unsigned int      [MS-DOS 1.0+]
                        by 16-bit unsigned int only
                        using 8086 instructions
   64mul16.com        Multiply 64-bit unsigned int      [MS-DOS 1.0+]
                        by 16-bit unsigned int only
                        using 8086 instructions
* DPMI
   dpmi16_0.com       Example code to enter 16-bit prot [DPMI 0.9+]
                      mode.
   dpmi32_0.com       Example code to enter 32-bit prot [DPMI 0.9+]
                      mode.
* Windows DOS box
   win31ver.com       Detect Windows and print the      [Windows 3.1,95,98,ME]
                      version of the Windows kernel
   winolver.com       Detect Windows and print the      [Windows 3.0,2.x]
                      version of the Windows kernel
   w95sysrg.com       Ask Windows the location of the   [MS-DOS 7.0+/Windows 95,98,ME]
                      System registry hive
   w95sysrs.com       Change the location of the System [MS-DOS 7.0+/Windows 95,98,ME]
                      registry hive (!!BE CAREFUL!!)

