<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 23 Aug 1982 00:33:23-EDT (Mon)
From   : Rick Conn <rconn@BRL>
Subject: chdir.c

        I've recently finished designing and uploading a new pro-
gram  called  CHDIR  to MIT-MC.  CHDIR is an extrapolation of the
CDIR concept to cover all disks with a named directory  structure
which supports priveledged users.  The files for this are:

                CHDIR C in AR36:CPM
                CHDIR COM in AR22:CPM

        Documentation is sketchy right now ... I plan to come out with
a HLP file on it soon.  Here is the current documentation:

        CHDIR is a program which places onto a CP/M or CP/ZM sys-
tem  a  mnemonic hierarchial directory structure.  Via CHDIR, the
user can create named directories, each such directory supporting
up to 64 named subdirectories accessible under it.  The subdirec-
tory is just another directory, and, hence,  a  subdirectory  can
have  up to 64 named subdirectories under it also.  The result is
a hierarchial type of directory structure.

        Each directory is the form of a user area on a particular
disk.   One of the many advantages of CHDIR is that it merges all
of the disks of a microcomputer into one logical file system.  If
the  user, say, has a 20M byte Winchester which is divided into 4
logical drives of 5M byte each (named C, D, E,  and  F),  and  he
also  has  two  floppy  disks (8", 600K each) named A and B, then
this entire system of disks and user areas can  be  placed  under
one  file  directory  system  via CHDIR.  An example based on the
hardware configuration above:

        A0: named ROOT
        C0: named HD-ROOT
        D0: named SRC-PAS
        D1: named SRC-C
        D2: named SRC-BAS
        D3: named SRC-ASM
        B0: named SCRATCH
        E0: named DEV1
        F0: named DEV2

        The user comes in on A0:, the ROOT.  He then issues CHDIR
HD-ROOT and finds himself on C0:; he can then switch to any named
directory accordingly, regardless of what disk or user number  it
is in.

        A second advantage is that CHDIR  provides  a  definition
for  a  System,  or Priveledged, set of directories.  This set is
currently defined to be any reference to a  user  number  greater
than  9.   Whenever  a  user  in a user number 9 or less tries to
display all the directories, all he will see is those directories
in  user  numbers  9 or less.  He may note by the directory count
that more directories exist.  If he knows  the  name  of  one  of
these hidden System directories, he may issue a CHDIR to the sys-
tem directory, at which point CHDIR will see he is coming from  a
non-system directory and ask him for the password.  He must issue
the correct password to enter any system directory.   Once  in  a
system  directory,  the  user  is  priveledged  and may enter any
directory on the machine.

        Note that, with the ZCPR USER  command  removed,  leaving
only CHDIR as a medium for changing user numbers, this provides a
way of creating a set of relatively secure directories on a  pub-
lic system, such as an RBBS.

        Note the further documentation below, extracted from  the
source to CHDIR.

CHDIR performs three functions:

                1) CHDIR allows the user to enter one of the  de-
fined directories; this form of the CHDIR command is

                        CHDIR dirname

where 'dirname' is the name of the directory (up to 8 characters)

                2) CHDIR allows the user to define a new directo-
ry on the fly; this form of the command is

                        CHDIR dirname du

where 'dirname' is the name of the directory (up to 8 characters)
and 'du' is a disk/user designator, like A10

                   Along the same lines, the CHDIR  Setup  option
allows  the  user  to  define or redefine a number of directories
without invoking CHDIR a number of times; this command is of  the
form

                        CHDIR /SETUP

                3) CHDIR displays the names of the  known  direc-
tories to the user; this form of the command is

                        CHDIR /DISPLAY
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>