using_multiple_interactive_programs_on_twenex
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
using_multiple_interactive_programs_on_twenex [2021/03/17 00:22] – [Using Multiple Interactive Programs on TWENEX] hc9 | using_multiple_interactive_programs_on_twenex [2021/03/17 01:09] (current) – [Multiforking] hc9 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Using Multiple Interactive Programs on TWENEX ====== | ||
+ | |||
+ | December 28, 2011 | ||
+ | |||
+ | TOPS-20 allows you to use multiple interactive programs simultaneously from a single login session. For example, in the middle of editing a document you can run other programs or commands, lookup help files, refer to e-mail messages, etc., and then return to your editing session in the same state you left it. | ||
+ | |||
+ | (Multiple non-interactive programs can be run using the TOPS-20 batch facility. See the TOPS-20 User's // | ||
+ | |||
+ | The functions described in this tutorial are equivalent to those on Unix systems invoked with the Ctrl-Z key and commands like fg, jobs, etc. | ||
+ | |||
+ | There are two ways to run multiple interactive // | ||
+ | |||
+ | - Push/Pop: From an interactive session you run another program, then return to the first program when the called program is complete. | ||
+ | - Multiforking: | ||
+ | |||
+ | ===== Push/Pop ===== | ||
+ | |||
+ | This method involves starting a new EXEC command level subordinate to your login EXEC. The state of your original program is preserved in your login EXEC while you run one or more programs in the child EXEC level. When done, you terminate the child EXEC and return to your original program. | ||
+ | |||
+ | <file config EXEC> | ||
+ | |||
+ | *^C ! Return from program session to EXEC | ||
+ | ^C ! (only single ^C will echo). | ||
+ | |||
+ | @PUSH ! Start child EXEC instance. | ||
+ | |||
+ | | ||
+ | @MM ! Start a program in the child EXEC. | ||
+ | |||
+ | ... ! Use program then exit. | ||
+ | |||
+ | @POP ! Terminate child EXEC and return to | ||
+ | ! parent EXEC. | ||
+ | |||
+ | @CONTINUE(3) ! Return to original program session. | ||
+ | * ! Depending on the program you may | ||
+ | ! continue entering commands or | ||
+ | ! refresh the display. | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Multiforking ===== | ||
+ | |||
+ | With multiforking, | ||
+ | |||
+ | <file config EXEC> | ||
+ | *^C ! Return from program session to EXEC | ||
+ | ^C ! (only single ^C will echo). | ||
+ | |||
+ | @KEEP ! Create separate address space for | ||
+ | ! new program. | ||
+ | |||
+ | @MM ! Start new program. | ||
+ | |||
+ | ... ! Use program. | ||
+ | |||
+ | MM> | ||
+ | |||
+ | @INFORMATION FORK-STATUS | ||
+ | ! List forks in current EXEC. | ||
+ | ! (Current fork marked with " | ||
+ | |||
+ | TECO (1): Kept, ^C from IO wait at TYI+3, 0:00:00.0 | ||
+ | => MM (2): ^C from IO wait at $COMND+3, 0:00:00.0 | ||
+ | |||
+ | @FORK TECO ! Switch to original program' | ||
+ | ! (" | ||
+ | |||
+ | @CONTINUE ! Return to original program session. | ||
+ | |||
+ | ... ! Use original program. | ||
+ | |||
+ | *^C ! Return to EXEC. | ||
+ | |||
+ | @INFORMATION FORK-STATUS | ||
+ | => TECO (1): Kept, ^C from IO wait at TYI+3, 0:00:00.0 | ||
+ | MM (2): ^C from IO wait at $COMND+3, 0:00:00.0 | ||
+ | |||
+ | @FORK MM ! Switch to second program fork (" | ||
+ | |||
+ | @CONTINUE ! Resume second program session. | ||
+ | |||
+ | </ | ||
+ | |||
+ | ^EXEC snippet, and end-note link:^ | ||
+ | |// | ||
+ | <file config EXEC abbreviated> | ||
+ | CONTINUE => | ||
+ | INFORMATION FORK-STATUS => | ||
+ | </ | ||
+ | ===== More Information ===== | ||
+ | |||
+ | More information can be found in TOPS-20 User's // | ||
+ | |||
+ | ===== Notes ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | <file config EXEC abbreviated> | ||
+ | CONTINUE => | ||
+ | INFORMATION FORK-STATUS => | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | $Id: twenex-multiprg.html, | ||