
                        ===========================
                          SysXpress Desk Accessory
                        ===========================


-------------------------
How to Read This DOC File 
-------------------------
The DOC file you are reading has been formatted for either print-out or
on-screen viewing.  If you print it on a printer using 66 lines/page
(the standard page length) it will skip over page-break perforations
automatically.

While viewing this on screen, press:

 - the Space Bar to scroll by a screenful
 - Return to scroll line by line
 - Q to Quit viewing and return to the desktop



--------
Overview
--------
The SysXpress Desk Accessory (hereafter called simply "SysXpress") serves
the same purpose for GenEdit data files that the GenPatch Desk Accessory
served for GenPatch data files:  In _most_ situations where a desk
accessory can be opened (there are exceptions, due to memory and MIDI
usage conflicts; these cases are discussed below under "MIDI vectors and
program compatibility"), you can send a sysex data file from disk to MIDI.

SysXpress can send GenEdit single-block data files, GenEdit multi-block
data files (MLX files), GenPatch single-block data files, GenPatch
multi-block data files (MLT files), and many non-Hybrid Arts data files
such as the popular MidiEx format.

Since SysXpress can send GenPatch files, the GenPatch accessory is no
longer needed.  SysXpress uses about 60K of memory -- significantly more
than the GenPatch accessory.  So, if you are using GenPatch instead of
GenEdit for your librarying needs, and if you are working in a limited
amount of memory, you might prefer to use the GenPatch accessory.

SysXpress uses the same communication link with MidiTrack that the
GenPatch Accessory did.  This means that the MidiTrack "Auto Inject"
function can be used with GenEdit data files (as well as GenPatch data
files).



--------------------
Installing SysXpress 
--------------------
Copy SYSXPRSS.ACC and GENEDIT.CDR to the root directory of your boot disk
(usually drive C: on hard disk systems).

*** IMPORTANT:  Do not install SYSXPRESS.ACC within a multi-accessory
utility.  Hybrid Arts programs need to find SysXpress in the Desk menu in
order to "loan" memory to it.  If you try to run SysXpress from a
multi-accessory utility, it won't appear in the Desk menu.  You will get
"insufficient memory" messages in many cases, and the Auto Inject function
in MidiTrack won't work.

You should _not_ run with both the SysXpress and GenPatch accessories
loaded, because this will confuse MidiTrack's Auto Inject function.



---------------
Using SysXpress 
---------------
SysXpress's user interface is similar to the GenPatch accessory's:  All
input/output, other than while sending a file, is through alert boxes, the
file selector, and an info line at the top of the screen where the menu
bar normally is.  While sending a file -- i.e. while the CNX Interpreter
is running -- all input/output is through alert boxes and the CNX window.

When you click "SysXpress" on the Desk Menu -- assuming no fatal error
occurs (see below under "MIDI vectors and program compatibility") -- the
file selector appears, and a version/copyright message appears in place of
the menu bar.  Depending on what kind of file you select (GenEdit
single-block, GenEdit multi-block, GenPatch, non-Hybrid Arts, GenEdit file
without a configuration, etc.) and depending on the configuration in that
file, various things could happen.  Respond to the prompts as they appear,
and eventually the file selector will reappear.  At this point you can
repeat the process to send another file, or you can click Cancel in the
file selector (or click OK without selecting a file) to close the
accessory.

Note that each time the file selector appears, it defaults to the same
file as the previous time.  This could be useful for re-sending the file
after a send has failed due to an improperly set MIDI channel, memory
protect on, etc.  The drive and path are remembered not only each time the
file selector appears, but also each time you open the accessory.

The Auto Inject mode, available only within MidiTrack, is essentially
identical to the manual mode, except that there is no file selector.  In
other words, MidiTrack tells SysXpress what file to send instead of you
telling it.  Also, of course, the Auto Inject mode does not return to ask
for another file.  (Only one file can be Auto Injected; if you wish to
send files for more than one instrument, then you need to combine those
files into one multi-block file, and that of course requires GenEdit.)

The MidiTrack "ask before sending file" option works the same in SysXpress
as it did in the GenPatch accessory:  If the option is set to "yes", then
SysXpress will ask for confirmation before sending the file, which gives
you the option of skipping the send.  This is useful for when you reload
the same SNG file, or when you load the SNG file and know that the correct
sysex is already in the instrument(s).



-------------------
The CNX Interpreter
-------------------
For the most part, the SysXpress CNX interpreter is the same as GenEdit's,
so any configuration that works in GenEdit should also work in SysXpress.
There are a few differences which do not seriously affect the
functionality of existing configurations:

The SetSpeed command is ignored.

The FormatBank command is ignored.  Since this command is useful only in
the CNX Initialize segment, and since SysXpress deals with only two CNX
segments -- Common and Transmit -- this command is unnecessary.  Since the
FormatBank command does not exist, the PrintVar command must handle the
'P' (patch numbering) format the same as the 'D' (decimal) format.

SysXpress has no equivalent of GenEdit's global MIDI options.  Therefore,
the receive filtering defaults every time the interpreter runs.  The
default is the same as GenEdit's default.

If a verify error occurs in the Receive command, there is a simple alert
box instead of GenEdit's expected-versus-received dialog box.

There are no MIDI activity indicators at the top of the screen (GenEdit's
two flickering rectangles).  Instead there is an info line saying "Sending
file:  xxxxxxxx.xxx" (for a single-block file) or "Sending file:
xxxxxxxx.xxx / Block: xxxxxxxx.xxx" (for a multi-block file).

The CDR file is loaded from the root directory of the boot drive (i.e.
from the same drive and path where SYSXPRSS.ACC is).  There is no error
message if it can't be loaded, because many SysXpress tasks don't require
a CDR file.  However, if the CDR file isn't loaded, and an Execute command
is encountered, there is an alert box saying that the CDR file hasn't been
loaded.  Note:  The CDR file won't load if it is longer than 3000 bytes.

There is no MIDI thru at any time during SysXpress.



------------------------------
Sending a Non-Hybrid Arts File
------------------------------ 
While SysXpress cannot handle every sysex data file format in the world,
it at least can try.  Part of the secret to this trick is that SysXpress
always keeps a copy of the configuration that was used to send the
previous file.  This buffer is cleared each time the accessory is opened.
For the sake of memory management efficiency, only the Common and Transmit
segments are buffered.  (Also, these are the only two segments used by
SysXpress.) If the combined length of these two segments exceeds the
configuration backup buffer's length (6000 bytes), there is an alert box.

Here's what happens when you select a Non-Hybrid Arts file:

If the config backup buffer is empty, there is an alert box with two
options:  (1) Send the whole file, or (2) Cancel.

If the config backup buffer is not empty, there is an alert box with three
options:  (1) Send the whole file, (2) Use the previous config, or (3)
Cancel.

For either alert box, if option (1) is chosen, this creates a simple
config (which is not put into the config backup buffer).



-------------------------------------------------------------
Sending a GenEdit File That Was Saved Without a Configuration
--------------------------------------------------------------
Also using the config backup buffer, it is possible to send a GenEdit file
that was saved without a configuration.  Here's what happens when you
select this kind of file:

If the config backup buffer is empty, there is an alert box telling you to
load a file containing a matching config.  The only option is Cancel.

If the config backup buffer is not empty, there is an alert box with two
options:  (1) Use the previous config, or (2) Cancel.

Thus, you can keep your sound library in a more compact form by saving
most of it without configs -- You'll need to have at least one file
containing a config, and you'll always have to send it first before
sending any other files.  Note:  The file containing a config does not
have to contain any data -- This is even more compact, and also no MIDI
data would be transmitted when it is "sent."



-----------------
Memory Management 
-----------------
There are two ways SysXpress can allocate memory.  The first way is to
get it from the system.  This way is used, for example, when running over
the desktop.  The second way is to borrow it from the main application.
This second way can only be used with programs that have been designed
specifically to take advantage of it (MidiTrack, GenEdit, Ludwig).  There
are certain programs which use all available memory and cannot loan any
memory to SysXpress.  SysXpress cannot run over such programs.

With an additional bit of communication trickery, when SysXpress runs over
MidiTrack, if there is not enough memory to load a file, SysXpress will
display the highest percentage of memory used (as displayed on MidiTrack's
screen) for which the file could be loaded.  (This percentage should
always be less than or equal to the percentage currently shown on
MidiTrack's screen.)



--------------------------------------
MIDI Vectors and Program Compatibility
--------------------------------------
SysXpress works with the desktop, any Hybrid Arts program except EZ-Track
(SysXpress _does_ work with EZ-Track Plus although the Auto Inject
function is not available), and many non-Hybrid MIDI programs.  SysXpress
_should_ work with all programs that do not access the MIDI ports.

Incompatibilities are of two kinds:  In the first kind, SysXpress kindly
displays an alert box saying "Cannot find MIDI vectors."  (This is what
happens if you try to run SysXpress from within EZ-Track.)  The second
kind of incompatibility is not so kind:  The entire system crashes, and
the chances of recovering any work in progress are about as good as the
chances of finding an affordable house in Los Angeles.



----------------
Revision History
----------------
Version 1.01 fixed crashes which could occur after auto-injecting while
running under HybriSwitch.

Version 1.02 is compatible with handshaking configurations.

Version 1.03 fixed a bug which sometimes caused a blank window to appear
in place of a prompt for midi channel.

Version 1.04 modified handling of InputPatch and InputChannel commands for
compatibility with GenEdit 1.1.  The GenPatch "Byte w/ Increment" command
is handled correctly.  (Previous versions of SysXpress did not prompt for
a starting patch number.)  Note that patch numbering in SysXpress is
001-128, not 000-127 as it was in the GenPatch accessory.

Version 1.05 can load a GENEDIT.CDR file up to 3000 bytes long.  (Previous
versions could load up to 2000 bytes.)

In Version 1.06, the GetKey command in the CNX language treats any
non-ascii character (UNDO, HELP, arrow keys, etc.) as ESC.  The prompt for
a midi channel or patch number includes the phrase "Return= OK".

Version 1.07 no longer freezes the menu bar when running in color low
resolution.

Version 1.08 is Copyright 1990 by Tom Bajoras.

In Version 1.09 the ReceiveData command times out.  This has no known
effect on any existing configurations.

Version 1.10 is an update by Roger Burrows.  It is based on the v1.06
Megamax source, ported to Lattice C v5, and includes the fixes described
above for v1.07 thru v1.09 and includes the following improvements:

   - display problems in non-ST resolutions, e.g. TT medium, have been
     fixed. 
   - the excessive wait for timeout on large-memory systems has been
     removed. 
   - memory allocation has been improved to allow use of alternate
     ("TT") RAM when present.



----------
Legalities
----------
SysXpress is Copyright 1990 by Tom Bajoras.  It may be freely distributed,
as long as this DOC file is distributed with it (on the same disk, or in
the same archive file, named SYSXPRSS.ZIP).

