DMDX Help.
Zillion Enter Key Keyword
<ZillionEnterKey [N]>
<zek [N]>
<ZillionTypedResponses [N]>
<ztr [N]>
MDSP bit 4000 modifier, the bit that modifies
zillion responses to be enter key terminated. Reset if N = 0, otherwise set. All MDSP modifiers are both parameters and switches. If N is missing the bit is set and the mode is active.
Prior to version 3.0.1.0 of DMDX if you are using something other than the standard keyboard you
would have had to use the parameter <ZillionEnterKeyName>
to get this to work, however having added support in the
<zek> code for
the #keyboard device now all keyboards should be OK as long as
<id #keyboard>
occurs before <zek>.
This mode has been changed (as of 0.20a) to provide feedback based on the user's input for typed responses (hence the two new names) on an <id keyboard> (or any other device where the DMDX button names follow the form "+a" [the DirectX button name that TimeDX displays would be just "a"] where a is a single alphanumeric character, all others are rejected). It used to set <TooLongFeedback ""> so the Dmastr feedback code that sees no response cleared the subjects input, now there are other mechanisms in place (due to <FBOnlyClearBehind>). The <NoFeedback> keyword can be used to restore old non-echoing behavior.
As of version 3.1.4.2 the numeric keypad names can also be used, they will have
to be validated specifically however with
<vzk "+numpad 0"> <vzk "+numpad 1"> <vzk
"+numpad 2"> <vzk "+numpad 3"> <vzk "+numpad 4"> <vzk "+numpad 5"> <vzk "+numpad
6"> <vzk "+numpad 7"> <vzk "+numpad 8"> <vzk "+numpad 9">.
Additionally <NoTimeLimit> and <ContinuousRun> are probably good things to use with this mode so DMDX waits for the subject to enter all of their response and then advances to the next item when the subject presses the enter key. If a prompt is to be left on the screen as the user types then the <FBOnlyClearBehind> MDSP should be set.
NOTE:- <zil> still needs to be specified. As of version 0.28 <ZillionEnterKey> automatically maps +A to +Z, +0 to +9, +Enter and +Space as valid zillion keys, so it's a good idea to have <id keyboard> before the <zek> keyword. The backspacing key mappings were added in 0.28a, +Delete, +Backspace, +Numpad ., and +Right Arrow
(which has been changed to +Left Arrow
in 3.0.1.0, damned left/right aphasia...) As of 3.0.1.0 it maps all the relevant
+#nnn key names
of the #keyboard device if it finds it for international keyboards that have
non-standard names. Here's an example
that's a stressor that asks a subject to subtract seven from a given number and
repeat till five minutes elapse:
<ep> <vm desktop> <zil> <zek> <ntl> <cr> <fbocb> <eop>
0 "subtract 7" <randomize> <set c1=777 +
random(223)>;
~1 <set c2 =
millisectime>;
~100 <bi 999, c1 .lt. 7>;
~1 <bi 999, millisectime .gt. 300000 + c2>;
+101 * "subtract 7 from " <appendcounter
1>;
~1 <set c1 = c1 - 7> <bi 200, c1 .eq.
atoizilliontext>;
~102 ;
0 <ln -1> "wrong" , "the correct answer is " <appendcounter 1> <bu 100>;
~200 <bi 999, c1 .lt. 7>;
~1 <bi 999, millisectime .gt. 300000 + c2>;
+201 *;
~1 <set c1 = c1 - 7> <bi 200, c1 .eq. atoizilliontext>;
~1 <bu 102>;
999 "done";
If you wanted to branch based on an alphabetic response instead
of a numeric one you will have to use
<NamingTaskNegation>
and then
<BranchIfCorrect>.
DMDX Index.