╔══════════════════════════════════════════════════════════════╗
                                                                  
          T H E    R E S I D E N T    F I L E    M A N A G E R    
        ════════════════════════════════════════════════════════  
      ╚══════════════════════════════════════════════════════════════╝

                 ┌────────────────────────────────────────┐
                 │ <shft> F1  =  Toggle to regular window │
                 └────────────────────────────────────────┘

    ┌──────────────────────────────────────────────────────────────────┐
                                                                    
          If you are reading this document for the first time and   
      are unfamiliar with the commands for scrolling the text, you  
      should be aware that <ctrl> ▲ (hold down the <ctrl> key and   
      push the cursor UP key) will scroll the text UP and <ctrl> ▼  
      will scroll the text DOWN.  You can also use the PageUp and   
      PageDown keys to scroll quickly through the document.         
                                                                    
    └──────────────────────────────────────────────────────────────────┘


1.1       The subject of managing files necessarily involves talking
      about the Linux file system and how it differs from the Windows/DOS
      system.  In Linux, the file system is one giant tree, the root of
      which is a single slash "/".  If there are outboard disks present,
      such as an "A:" floppy drive, or a Zip disk, or a CDrom, these are
      "mounted" onto the file system by the superuser, usually at the
      directory "/mnt".

           A second difference between Linux and Windows/DOS is that
      access to all Linux directories and files is governed by a set
      of permissions.  For each file/directory, there are permissions
      for read, write, and execute, for each of three catagories of
      users, the owner, the group owner, and all other users.  For
      example, the 9 byte permission string "rwxr.xr.x"  gives
      read, write and execute permission to the file/directory owner
      and only read and execute permission to others in the user
      group and to all other users.

           When Dmuse creates a directory or file, it always gives
      the same permission (usually rwx) to all three groups.  It
      can happen, however, that Dmuse is prevented from creating
      a file or directory because it does not have permission to
      write in the parent directory.  Or Dmuse may not be able to
      read a directory or a file because the user does not have
      read permission.  Permissions are valuable for security
      reasons; but they can get in the way of ordinary work.
      Dmuse tries to keep this problem to a minimum by allowing
      as many permissions as makes sense.

           One advantage that Windows/DOS has over Linux is that it
      allows for multiple disk names (logical drives, labled A:,
      B:, C:, ... up to Z:).  Each of these drives has current
      working directory in Windows/DOS.  This makes it easy to
      toggle back and forth between data sets on different drives.
      In Linux, all data sets hang somewhere on the single file
      tree.  There might be data in

      /usr/local/apps/musedata/baroque/bach/bg/chorals/0386

      that we would like to compare with data in

      /home/wbh/trans/fromdos/chorals/0386

      Since the Limux file system has only one current working
      directory, this could involve a lot of typing.  To remove
      this problem and to make Dmuse under Linux behave more like
      Dmuse under DOS, a set of virtual disks has been created,
      in which each disk letter a: to z: has the potential to
      be assigned to a location on the Linux file system tree.
      These assignments are contained in the INIT file (see
      Help -- Advanced Topics).

      Dmuse automatically assigns the disk c: to the Linux
      root.  All other disk assignments are optional and are
      contained in INIT (/usr/local/apps/disp/INIT).  When referring
      to a file or directory name in Dmuse, you may use either

         (1) the full path name, or

         (2) the simple name, in which case the name will be
      appended onto the current working directory of the currently
      active disk letter, or

         (3) a disk letter, followed by a colon, followed by a
      name, in which case dmuse will switch to the new disk, and
      appended the name onto the current working directory of the
      new disk.

1.2       The Resident File Manager can be activated in two ways:
      (1) You can push the <F2> key and use the <►> cursor to
      highlight the Utilities box in the top menu bar.  Then use
      the <▼> cursor to highlight the Resident File Manager and
      push <Enter> to select this utility; OR (2) you can skip all
      of this and just push <F4>.


1.3   The Resident File Manager operates in a blue pop-up window which
      accepts typed commands when the <Enter> key is pressed.  You can
      get an abbreviated description of these commands by pressing ?
      <enter>.  ?? <enter> will give you a second page of instructions.
      A more detailed description of the commands and what they do
      is given below.


                             C O M M A N D S
                           ───────────────────

     I. Commands which list or change directories

      l              =  list the current directory in short format

      ldu            =  list the current directory in short format
                          with disk usage.
      ll             =  list the current directory in long format

      lldu           =  list the current directory in long format
                          with disk usage.
      ls             =  list the current directory in Linux format

         Without an argument, each of these commands lists the current
           directory.  If an argument is given, it is the directory to
           list.  The argument "." is the current directory; the
           argument ".." is the parent directory.


      c <dir>        =  change to directory <dir>.

      b              =  change to the directory which holds the current
                          directory (parent directory).

      1,2,3,... etc. =  if the number is next to a directory, change
                          to the referenced directory inside the
                          current directory.

      <letter>:      =  change to referenced disk drive <letter>

    II. Commands which load a file into the current window

      1,2,3,... etc. =  if the number is next to a file name, load
                          this file into the current window.

   III. Commands for moving or deleting files and/or directories

      ad <arg1>             = add new directory (<arg1>) inside current
                                directory.

      move <arg1> <arg2>    = move all material (files and/or
                                directories) described by arg1 to
                                the directory named by arg2.

      smove <arg1> <arg2>   = save and move.  Similar to move, except
                                that the source material is copied
                                instead of moved.  The source continues
                                to exist in its original location.

      copy <arg1> <arg2>    = copy arg1 (directory or file) to arg2 (new
                                name).  arg2 can only be a simple name
                                (not a path).  The copy will appear in
                                the same directory as the original.
                                You can then use the "move" command to
                                move it elsewhere if you choose.

      ren <arg1> <arg2>     = rename <arg1> to new name <arg2>.  arg2
                                can only be a simple name (not a path).
                                The renamed file or directory does not
                                move from its present directory.

      del <file(s) or dir>  = move material to "the_dump".  The dump is
                                set up by Dmuse as a directory in
                                /usr/local/apps.

      ddel <file(s) or dir> = blow material away!  it's gone.

    IV. Commands for moving cursor, scrolling, paging, and
           clearing the screen (blue box).

               ▲ ▼ ◄ ►  =  move cursor

            <ctrl> ▲ ▼  =  scroll up/down

      <left><shft> ▲ ▼  =  scroll up/down

                PageUp  =  scroll DOWN 24 lines

              PageDown  =  scroll UP 24 lines

            <KeyPad> -  =  clear line to the right of the cursor

      <shft><KeyPad> -  =  clear screen below cursor

    V. Commands that offer help

        ?  =  First help screen
        ?? =  Second help screen
        q  =  Gives full path of current disk drive
        qq =  Lists all disk assignment paths.


1.4       All alphanumeric commands must be entered using the
      <enter> key.  Actually, pressing the <enter> key causes
      the file manager to read the entire line that the cursor
      is on and interpret its contents as a command.  This means
      that the file manager is not paying attention to what you
      type; it only responds to what's on the current line when
      you press <enter>.  It makes no difference when and how the
      the material got on that line.


    ──────────────────────────────────────────────────────────────────


2.1       When the Resident File Manager lists the contents of the
      current directory, it first does a sort on the contents of
      the directory.  All sub-directories of the current directory
      are listed first in alphabetical order.  This is followed by
      a listing of the files sorted first by file extension and
      then by file name.

                       ┌───────────────────────────────┐
   ╔══════════════════►│About File Names and Extensions│◄════════════════╗
                     └───────────────────────────────┘                
                                                                      
                                                                      
       The Dmuse program recognizes four special extensions.          
                                                                      
       .mpg     Music Page      This is a flat ASCII (text) file      
                  file            contain data used by Dmuse for      
                                  displaying or printing a page       
                                  of music.                           
       .cft     Compress Format This file contains one or more        
                  file            .MPG files in a compress format.    
                                                                      
       .z       Ibex source     This file will contain source code    
                  file            which can be compiled and run       
                                  by the Dmuse Ibex Interpreter       
       .w       Ibex compiled   This file will contain compiled       
                  intermediate    intermediate code which can be      
                  code            passed directly to the Dmuse        
                                  Ibex Interpreter                    
                                                                      
   ╚═════════════════════════════════════════════════════════════════════╝



2.2       The l (list) command tells you the number of bytes in
      each file in the current directory, but it does not tell you
      the number of bytes in each of the sub-directories.  For
      this, you must use the ldu (list with disk usage) command.
      The ldu command produces a listing with the same format as
      the l command, but includes the number of bytes in each
      sub-directory.  To make this listing, the program traces
      down every branch of every sub-directory and gets the sizes
      of all of the files contained in these sub-directories.


2.3       There are three commands for changing the current directory.
      The command, c <dir>, takes one argument.  Where it says <dir>,
      you should specify the name of the directory you want to become
      current.  The command, b (backup), will make the parent of the
      current directory the new current directory.  If the current
      directory is the root directory, no backup will occur (The root
      has no parent).  If you type the number opposite a sub-directory
      in a listing of the current directory, this sub-directory will
      become the current directory.  For example, if the current
      directory were the one shown below, typing the number 2 and
      <Enter> would change the current directory to C:\DISP\HELP.

                    q:\disp
                    Name      Ext     Size
                   -------------------------
                1   fonts     <dir>
                2   help      <dir>
                3   print     <dir>
                4   spar      <dir>


2.4       If you type a letter followed by a colon, the file manager
      will attempt to make the disk drive represented by that letter
      the active drive.  If the drive becomes active, its current
      directory will become the system current directory.


    ──────────────────────────────────────────────────────────────────


3.1       The file manager has seven commands for moving, copying,
      adding or deleting files and directories.


3.2       The command ad <arg1> will create a new sub-directory
      inside the current directory.  The name is specified in <arg1>.


3.3       The command move <arg1> <arg2> will move all of the files
      and/or directories specified by <arg1> to the directory named
      in <arg2>.  The "*" and "?" wildcards can be used in <arg1>.
      The directory specified in <arg2> must exist.  If <arg2> = "."
      (a dot), this indicates the destination of the move is the
      current directory on the active drive.  If <arg2> = ".." (two
      dots) this indicates the destination is the parent of the
      current directory on the active drive.  If <arg2> = "a:", this
      indicates the destination is the current directory on the
      a: (virtual) drive.

                       ┌────────────────────────────┐
   ╔══════════════════►│About The "*", "?" Wildcards│◄═══════════════════╗
                     └────────────────────────────┘                   
                                                                      
        The "*" wildcard character will match zero or more characters 
    in a string up to its end or until there is a specific match      
    with a specified character.                                       
                                                                      
        The "?" wildcard character represents exactly one character   
    position in a string.                                             
                                                                      
        The combination "*?", which would be absurb according to the  
    definitions above, has been given a special meaning.  It calls    
    for a match of zero or more characters but with no matches with   
    the dot "." character.  For example,                              
                                                                      
        *.* = string with at least one '.' character                  
        *.*? = string with exactly one '.' character                  
                                                                      
        Whereas the "?" is a wildcard for a single character of any   
    kind, a set designation allows us to designate a wildcard for     
    a limited set of characters.  [a-z] = match exactly one letter    
    with a member of the set [a-z].  [0-3,a,G,r-x] = another example  
    of a set.                                                         
                                                                      
                                                                      
   ╚═════════════════════════════════════════════════════════════════════╝


3.4       The command smove <arg1> <arg2> (smove = save and move) acts
      much like the move command except that the material specified by
      <arg1> is saved in the old location and copied into the new
      location specified by <arg2>.


3.5       The command copy <arg1> <arg2> will make a copy of the
      directory or file specified by <arg1> and give it the name
      specified by <arg2>.  Of course, the directory or file <arg1>
      must exist, and the directory containing the new name <arg2>
      must also exist.  Wildcard characters are not allowed in the
      arguments to this command.


3.6       The command ren <arg1> <arg2> will rename a sub-directory
      or file within the same directory.  <arg1> may be any valid
      path name (file or directory), but <arg2> must be a simple
      name.  Wildcard characters are not allowed in the arguments
      to this command.


3.7       There are two delete commands, del and ddel.  Both take one
      argument, which specifies the file(s) and/or directory(ies) to
      be deleted.  The del command does not actually remove material
      from the disk but simply moves it to a place called the dump.
      the_dump, located in the directory, /usr/local/apps, has a set
      of sub-directories representing the various dates when material
      was deleted.  Each of these has sub-directories representing the
      various times of the day when material was deleted.  Inside
      these sub-directories is the actual deleted material.  The
      purpose of the del command is provide you with a means of
      removing files and directories from their place in the directory
      structure without actually deleting them from the file system.
      If you later decide you want them back, you can get them back
      using the move command.  From time to time, the_dump will need
      to be cleaned out; usually the passage of time will make clear
      what material should be permanantly deleted.


3.8       For large files and directories, I usually make a careful
      decision to delete and use the ddel command.  The ddel command
      will permanantly delete files and directories from the file
      system.  You should exercise caution with the ddel command when
      deleting directories, because it will recursively delete
      everything inside a directory without showing you what it is
      doing (the command does ask permission before proceeding).


    ──────────────────────────────────────────────────────────────────