The context switcher factory creates an environment that supports multiple, independent command systems. Each Context has associated with it a directory of its own, a spacebank, a meter, and a command system. The directory includes a SWITCHER key that allocates branches in the same fashion as the switcher (p2,switcher). Branches within a context are named in the same fashion as the switcher. The directory also includes a subdirectory, USER., that is common to all contexts created by a single instance of the context switcher. This directory is the sole communication between the contexts.

The key USER.SWITCHCMD can be used to select alternate command systems for contexts created after a call to USER.SWITCHCMD.

The control branch of the context switcher has a simple command system that provides for the control of the various contexts. This command system can be used to create, delete, stop, start and query status of contexts. Initially there are no contexts.

The command syntax is ill-defined at this point. An attempt has been made to provide compatibilty with the current switcher. This compatibilty issue makes for some rather odd conventions. It is assumed that if this experiment is a success, the command system will be redesigned and maybe even integrated with the "New Command System".

General Comments


CSWITCHC(0;SB,M,NODE ==> c) Create context switcher

CSWITCHC(kt; ==> x'2d')

The following calls are for the SWITCHER key that is in the directory of the created command system. Its behavior is much like the old switcher key (p2,switcher) with the addition of the "destroy branch", "switcher to branch", and "describe branch" operations.

SWITCHER(0; ==> c,(name);CCK4,SIK4,SOK4) create branch in this context

SWITCHER(1,(name); ==> c;ZMK) Detach branch

SWITCHER(2;ZMK ==> c,(name)) attach branch to this context

SWITCHER(3,(name); ==> c) destroy branch

SWITCHER(4,(name);==>c) switch to branch by name

SWITCHER(5,(2,name)(32,description); ==> c) enter description in status display

SWITCHER(kt; ==> x'12d')