
The difference is in the presence of the CMS Script and CMS Controls
depicted in the lower-right corner. Conceptually, the device-generated
data (shown in red) is taken directly from the USB devices and passed
to the CMS script. The data is processed according to the list of
instructions that the script contains to produce the script-generated
data (shown in blue). The script-generated data is passed to a
pseudo-device called the "CMS Controls". The CMS Controls generate data
as buttons and axes just like the real USB devices do. This data is
available for programming in the map just as the axes and buttons from
the USB devices are.
The CMS Controls
The CMS Controls include 64 axes and 128 buttons. When you add them to
your map, you'll have a Device Tab in the Selection Pane for them that
operates exactly like the Device Tab for any other controller. The
Selection Pane will look like this:

This works exactly like any of the other controllers that you might
see in the Selector Pane. There are hot spots for each of the 128 buttons
and 64 axes. As the mouse moves across them, a popup label will appear
which identifies which button or axis is under the mouse cursor. Clicking
the mouse while the label is visible will select that axis or button
for programming.
Programming the CMS Controls
Programming of these axes and buttons is done exactly the same way that
axes and buttons on your real devices are programmed. They can be set to
operate in DirectX Mode and assigned to any Control Manager Device axis
or button, or they can be set in Programmed Mode and set to send characters
and strings. The Dialog Pane will use the same dialogs as it does for your
real devices.
The main difference between the CMS Controls and the real devices is that
you define when the buttons activate and what values the axes on the CMS
Controls have via the CMS script file. The CMS can access any axis or button
on any of your real devices. It takes that data and combines and/or modifies
it as defined by the CMS script to produce outputs to the CMS Controls.
The GUI is then used to assign the CMS Controls to Control Manager Device
axes and buttons so they'll be available to Windows or to set them to send
character strings. The CMS Controls are essentially one large "do-it-yourself"
joystick that you program just as you would any of your real CH devices.