To make I/O easier to work with, an X-window interface is also 
provided.  The X-interface is enabled by selecting the line

DFLAGS = -DMULTI_AGENT_ENABLED -DUSE_X_DISPLAY 

in the file make.body followed by a recompilation of the system.  
(Be sure to "make clobber" before issuing "make".) The
X-interface provides a separate window for each soar agent so that
the I/O streams are separated rather than interleaved.

The setup of the X-interface does not require any change to the
.init.soar.multi file or any other .init.soar files in order to
run.

The X-interface windows are designed as rudimentary terminal-type
interfaces.  The same command-line interface is used in each
window.  Keystrokes are managed by queueing them into a local buffer
in each window.  When a command is complete, it is sent to the
soar agent for processing.  One benefit of this approach is that
the user can type a command or txt-io into one window without needing 
to complete a command or text-io begun in another window.  Since
there is a single thread of control, there may a significant time
lag between entering a keystroke and having it processed.  A 
keystroke is proccessed as soon as the currently-running agent has 
completed its processing cycle as defined by the agent-go command.  

A control-C in any agent window still stops all agents in the
X-interface to avoid synchronization problems in the scheduler.

The user can issue a "create-agents" command to create new agents
on-the-fly.
