Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!gatech!bloom-beacon!think!ames!ucbcad!ucbvax!GRIN2.BITNET!MCGUIRE
From: MCGUIRE@GRIN2.BITNET
Newsgroups: comp.os.vms
Subject: RE: Running multiple interactive programs under VMS
Message-ID: <8707240035.AA05467@ucbvax.Berkeley.EDU>
Date: Thu, 23-Jul-87 16:15:00 EDT
Article-I.D.: ucbvax.8707240035.AA05467
Posted: Thu Jul 23 16:15:00 1987
Date-Received: Sat, 25-Jul-87 10:48:58 EDT
Sender: daemon@ucbvax.BERKELEY.EDU
Distribution: world
Organization: The ARPA Internet
Lines: 40

> Date:         Sun, 19 Jul 87 10:14:21 PDT
> From:         KARNEY%PPC.MFENET@nmfecc.arpa
> Subject:      Running multiple interactive programs under VMS
>
> Is it possible to run n > 1 vanilla programs (e.g., standard FORTRAN
> programs) and bounce between them?  I want to fire up program[i], give it
> some input, leave it running, fire up program[i+1], etc.  Program[i] then
> runs until it needs to do terminal I/O.  Then it should optionally (a)
> hang, (b) notify the user that program[i] needs the terminal, (c) if it only
> needs to do output, go ahead and do the output (mingling such output with
> that of other programs), (d) again if it is only output, buffer the output
> in some suitable place.  I should be able to reconnect the terminal to
> program[i], do the required I/O and then hop to another program.

Here's one way to do this using DCL.

Program i=1:  Type SET PROMPT="1 ".  Fire up program 1.

Program i=2..n:  Press , interrupting all current applications,
which gives you a prompt.  Type SPAWN/NOWAIT/PROMPT="i " to start process
i.  While you have multiple subprocesses running, they'll all prompt you in
whatever order they queued the request.  At prompts 1..i-1, type CONTINUE.
Press  at prompt i, until that's the only one prompting you.  Now,
your current applications are all running where they left off, and you have
a new process.

Terminate a process by typing LOGOUT to it.

Be a bit careful how you terminate processes.  Each process is a child of
the process you used to create it.  When you delete a process, all its
descendants are also deleted.  So type SHOW PROCESS/SUBPROCESSES to see
whether the process you're about to log out has any children.

I have simplified this explanation somewhat.  You'll learn the oddities by
doing it.  Good luck!

Ed

P.S.  Grateful thanks to the folks here on info-vax who taught me how to do
      this.