DMDX Help.
Chain Keyword
<Chain [option] text>
option:
preservevm
Parameter and switch to chain another item file. text is interpreted to be an item file in the same directory as the current item file, if no extension is provided .rtf is appended to the name. If another directory is desired a path relative the current item file's path must be used.
There is only one possible option at this time
assuming you're using version 5.2.2.0 or later and that you're using the
Direct3D renderer (sorry, I'm not adding
code to handle the legacy DirectDraw renderer) and that is
preservevm and when present DMDX attempts to
keep the display static and rings no bells so as to appear as if only one item
file is executed. Note that this new option assumes you have in fact used
the same video mode in the chained item
file, I make no predictions as to what will happen if you have a different
one... As of version 5.3.1.10 of DMDX
preservevm can be used with machines using the
DirectDraw renderer, at the very least it suppresses the bells as the files are
chained and on some systems provides an experience similar to the Direct3D one
where the only clue an item file is chaining is the time taken to load the new
file.
The new item file will not be executed until the current item file finishes or terminates with the <Last Frame> keyword. All devices are closed
and the data is automatically saved and the new item file is run as if it had been run manually thus allowing changes in input devices and
scrambling parameters for instance. Use of the
Subject ID is highly recommended as tracking a subject's data across data files could be challenging otherwise.
Note, use of <SkipDisplay> in a last
frame item prior to version 5.0.0.0 of DMDX would result in the job being aborted and any data not being saved.
This has now been rectified.
Also note that unless
preservevm has been used between item files
DMDX is going to shut the screen down and some displays will either flick back
to the desktop or the DMDX dialog display momentarily, not much we can do about
that (assuming preservevm is out of
consideration of course). But some other displays switch back to a previous item's display and
here we can actually do something. Putting an
<EraseAll> in the last frame will clear
all the back buffers (that have previous item's displays still in them) and
fixes the problem because even if the video drivers display another buffer at
least it will be blank (or the last item's display).
See
<loadcounters> for details
on setting up a re-entrant item file using <chain> .
DMDX Index.