[comp.os.vms] DCL commands from PASCAL

SUTTON@BRANDEIS.BITNET (03/11/88)

        As far I know, there is no way to access the DCL interpreter of
        the process which activated an image, so you're going to have to
        spawn a subprocess.  Also, I know of no way to get the command
        tables to be passed to the child process.  What you do with a
        subprocess after it is spawned may be the answer to your
        question.

        If what you want is to completely spawn into a subprocess, do
        some stuff, go back to the parent and have the option of going
        back to the child, you just need to save the process id when you
        spawn from the parent so that you can LIB$ATTACH back to the
        child when you want.  You'll have to do your SET COMMANDs in the
        child to make the command definition tables match the parent's.
        You should remember to kill any created subprocesses before the
        program exits.

        If what you want to do is just pass commands to the child
        process, you can spawn a subprocess with mailboxes for input and
        output.  You deposit commands in the input mailbox and collect
        the results from the output mailbox.  There's a trick to doing
        this that I don't know, however.  I tried doing this once when I
        was trying to extend EDT with an XLATE routine.  The problem I
        had was that the spawned subprocess terminated as soon as it saw
        the end-of-file in the input mailbox (a natural thing to do, it
        would do the same with a file).  I know that there's some way of
        preventing the subprocess from seeing the end-of-file because
        TPU includes routines which create subprocesses and allow you to
        pass commands to them (the output is captured in a mailbox and
        then transferred to an editing buffer).  Anyway, you could have
        the first command passed to the subprocess do your SET COMMANDs.

        So this leaves me with two questions:
        (1) Is there any way of transferring the DCL tables to the
        subprocess?  I've played around with the command "decompiler",
        VERB, that someone posted recently, so there must be a way of
        transferring that information to a subprocess.

        (2) How do you prevent a subprocess from seeing the end-of-file
        in a mailbox?  One could do some pretty neat things with this
        knowledge: use SMG$ to create input and output windows in a DCL
        environment, have "pop-up" subprocesses from applications with a
        single keystroke...

        If anyone could shed some light on these questions, I would
        greatly appreciate it.

        SUTTON@BRANDEIS.BITNET