                          MT - Move To drive/directory

                           Copyright Jason Hood 1996

                                    Freeware


                                  Description

 mt is a complete CD replacement.  It allows for the use of slash ("/") as well
 as backslash ("\") in directory  names.  The dot notation has been extended so
 "grandparent"  and  "great-grandparent",  etc.,  can  be  specified.   Partial
 directory  names are supported.  The two previous  directories are remembered.
 And of course, the drive can be changed.


                                  Requirements

        DOS 3.0+
        286+ (but could be recompiled/reassembled for less)


                                  Installation

 Place mt.com in your path.  It doesn't really matter where the other files go.
 Add these two statements to your autoexec.bat:

        SET MTMEM=####
        [path]mtmem.com [d:/path] [;prev] [;;bprev]

 where: the environment variable will be set to the resident memory segment;
        [path] is the path to mtmem.com;
        [d:/path] is the drive and path to place the directory structure file;
        [;prev] & [;;bprev] are the initial previous directories.

 If [d:/path] is not specified,  it will default to the same path as mtmem.com.
 If the previous  directories  are not  specified  they will be set to nothing.
 Memory will be allocated high (if available),  using best fit.  (The memory is
 used to store the path and previous directories.)

 The next step is to setup the directory structure file for the partial names:

        mt @drives

 where  drives is the  list of drives  you wish to scan.   Note that the drives
 will be scanned in the order  specified and I make no test for invalid drives.
 I've allowed for 1500 directories per drive.   (It can hold about 1512 with an
 average length of about 20.)   If you have more than 1500 directories, it will
 probably crash, 'coz I've not tested for that either.


                                     Usage

 "mt ?"  or  "mt <any-character-of-your-choice>?"  will  display a  help screen
 (at least, I hope it helps).

 "mt @cd",  for example,  will scan drives C:  and D:.   "mt @" will update the
 file for drives  previously scanned  (by totally rescanning the drives).   The
 file's path can be changed via mtmem.com.

 "mt ..."  is equivalent to  "mt ../.."  - ie.  it will move you to the "grand-
 parent" directory.  Any number of dots can be specified, but of course it will
 fail if you try to move too far back.  Note that the extra dots will only work
 at the start of the path  -  if specified in the  middle you will get an error
 (but it's a silly thing to do anyway).

 "mt;" (or "mt ;" if you like typing spaces) will move you to the directory you
 just moved from.  Similarly  "mt;;"  goes  to  the  one  before  the  previous
 directory.  I don't think I explained that too well, so here's an example:

        C:\>mt utils
        C:\UTILS>mt /games
        C:\GAMES>mt;            move to the directory you just moved from
        C:\UTILS>mt;;           move to the directory you moved from before
        C:\>                      the one you just moved from

 I think I could  still phrase  it better,  but you should  get the idea.   The
 intelligence of the previous  directories is not too good,  so if you do some-
 thing like "mt ." it will set the previous directory to the current directory.
 The only test I make is if the previous is the current ('coz of Windows always
 going to its own directory).  mtmem.com can also set the previous directories.

 "mt d:path" is the same as CD, but it will change drive as well.  You can also
 use slashes.  "mt d:\games\dos"  is the same as "mt d:/games/dos".  It is also
 possible to use a star ("*") for the last directory name.   It will select the
 first name that matches  (in the file table,  not alphabetically).   So if the
 above games directory has dos and windows as subdirectories,  and dos is first
 in the file table,  then "mt d:/games/*" will get you there.   Similarly,  "mt
 d:/games/w*" will move you to the windows subdirectory.

 "mt name1 name2 ..."  (that's an ellipsis,  not grandparent) is roughly equiv-
 alent to  "mt name1*/name2*/..."  - ie.  it looks for a  directory that starts
 with name1, has a subdirectory that starts with name2, etc.  Note that if only
 one name is specified it looks for a subdirectory before it starts the search.

 Searches always begin from the root,  in drive order  (when the structure file
 was created).   To specify another drive:   "mt d:name1 name2 ..."  where d is
 the drive you want.   The first match found will be the one selected.  If it's
 not the one you want,  you will need to narrow the search  (by specifying more
 characters).   (I find it easier to type  than to select from  a damn annoying
 pop-up window.)   Directories are stored alphabetically, with precedence given
 to paths closer to the root.   So given directories /games and /windows/games,
 "mt g"  will find /games,  since it closer to the root.   But with directories
 /windows and /windoze,  "mt w" will find /windows, since "w" comes before "z".


                             Possible Enhancements

 These are things I will do if I receive any mail requesting them:

        more previous directories, but probably no more than 12 (; ;; ;[0-9]);
        an add/remove directory (tree) command, rather than rescanning;
        minimum characters to uniquely identify current directory;
        pop-up window, but only if it's desperate (I WANT A POP-UP WINDOW!!!)
          and there's more than ten requests;
        Win95 long-filename support - I have the interrupts (thanks to Ralf
          Brown's list) but not Win95, so if there's any volunteers...;
        whatever else people ask for.


                                 Redistribution

 If you're  just giving  it your mate,  only the two  com files  are necessary.
 However, if you plan to upload it to a BBS or FTP site (or whatever),  I'd ask
 that you upload the original zip-file  (or whatever archiver you prefer).   If
 you modify the source, let me know and I'll redistribute an "official" version
 (after all,  I still hold copyright),  but I have no objections if you distri-
 bute both my original code and your modification (but please, do let me know).


                                    Address

 e-mail:        hoodj@topaz.cqu.edu.au

 snail mail:    Jason Hood
                11 Buckle Street
                North Rockhampton
                Queensland, 4701
                Australia.


                                    Finally

 This is not the best  document in the world,  but I hope it suffices.   Please
 let me know how it can be improved.

 This program is copyrighted Freeware.   Feel free to give it to all and sundry
 (under the conditions mentioned in "Redistribution").   But if you sell it,  I
 curse you to everlasting bankruptcy.

 Jason Hood, 4 June, 1996.
