NAME
        GetProgramDir -- Returns a lock on the directory the program was loaded
                         from (V36)
   SYNOPSIS
        lock = GetProgramDir()
        D0
        bptr getprogramdir(void)
   FUNCTION
        Returns a shared lock on the directory the program was loaded from.
        This can be used for a program to find data files, etc, that are stored
        with the program, or to find the program file itself.  NULL returns are
        valid, and may occur, for example, when running a program from the
        resident list.  You should NOT unlock the lock.
   RESULT
        lock - A lock on the directory the current program was loaded from,
               or NULL if loaded from resident list, etc.
   BUGS
        Should return a lock for things loaded via resident.  Perhaps should
        return currentdir if NULL.
   SEE ALSO
        setprogramdir(), open()