标题：DMDX
DMDX简介
软件构成DMDX 由timedx（设定和检测实验运行环境的软硬件特征如：图形分辨率、刷新频率、声卡类型、PIO卡等）；dmdx（呈现刺激、记录反应）；utility program（数据分析准备包括unloadAZK、Analyze、concatenate等）
主要功能编制刺激呈现程序、运行并记录反应、数据筛选、数据分析准备。
主要特点1.简单易学，稳定性好；
2.适用于不会编程的非专业程序人员；
3.目前可以呈现文字、图片、声音、视频片断等实验材料；
4.时间精度高，对被试反应得记录达到了毫秒级；
运行环境：适用于Windows 95/98 2000、XP等系统。
DMDX是一个针对窗口环境设计的心理学实验设计与控制软件系统。对一个一般的心理学研究人员而言，DMDX几乎能够将一台个人计算机转化成一部全功能的心理实验仪器。实验时，DMDX不但能在个人计算机上呈现视觉或听觉的实验刺激，并且能够收集受试者对实验刺激的反应(包括语音及按键反应；并记录反应的种类及时间)。
安装DMDX
DMDX的安装步骤依据以下步骤安装DMDX
（一）DirectX：你的计算机里应已安装了DirectX 。如果没有安装，可以从Microsoft DirectX site 取得DirectX（可以用DirectX为关键词，然后再在网上进行搜索）。
（二）将DMDX.zip解压缩。解压缩后，计算机会产生一个DMDX资料夹；请执行资料夹里面一个名为Setup.exe的档案，以进行安装。
（三）TimeDX 测试：使用DMDX之前，使用者必须先在计算机中进行TimeDX 的测试；这样 DMDX 才知道你所使用之计算机的特性。
TimeDX的测试步骤（一）执行TimeDX测试前，请先关闭其它的应用程序。在DMDX资料夹内含有一个TimeDX的快捷方式；点选进入TimeDX后，在屏幕左上方的工作列上，点选 Basic Test，然后随着下面的步骤进行检测。
（二）Basic tests： Select Video Mode Test。测试目的：确认显示卡正常驱动。本实验系统采用<vm 1024,768,768,16,0>。
（三）Basic tests： Millisecond Timer Test。测试目的：确认Millisecond Timer是否处于正常运作状态之下。
（四）Basic tests： Refresh Rate test。测试目的：确认计算机屏幕的更新频率，亦即，确认扫瞄屏幕一次，所需的时间是多久。当你计算机的 video mode有更改时，就该重做一次 refresh rate test。注：TimeDX提供了多种 video mode，你不需要测试每一种 Video Mode；你只需要选择其中一种，进行设定的 工作就好了。
（五） Basic tests完毕后，在工作列上选择 Advanced tests。
（六）Advanced tests： Time video mode (the Vertical Retrace SyncTest) 。点选 Time video mode，等到出现对话窗后，先点选 Use Automatic Values，将 Step 3 Refresh Rate所测试出来的数值应用在这个测试中，再点右下方的 Do test。做完以上动作后，屏幕会出现很多跳动的数值，等到其中一个 msecs/retrace 的数值稳定 （变化小）后，按一下鼠标就可以回到对话窗，然后点“save last used values in registry ”储存测试所得到的数值。这些数值表示的是这部计算机内部的性质，而 TimeDX 能将这些数值储存下来，提供DMDX使用 ；所以如果你要更换新的 Video mode 或你的计算机更换了新的显示卡时，你就需要重新做上述（第一到第六步）的测试。
（七）做 Advanced tests：Tachistoscopic Acid Test 。该测试的目的是确认计算机是否具有足够的记忆容量来执行 DMDX。
（八）回到Basic tests。
（九）Basic tests：sound test。DMDX可以呈现现声音的刺激材料 ，这个测试的目的是检验计算机左右两个喇叭（或音效系统）的功能是否正常。测试前请检查你的计算机中是否存放着“声音文件”（文件类型为.wav的文档），本测试需要这些档案作为测试的刺激材料。
（十）做完声音测试后，再回到Advanced tests，进行 Tachistoscopic Acid Test。其目的是看看当声音材料数值设定后，计算机是否仍然运作无误。
（十一）Advanced tests：sound latency test。做声音时间值设定，程序会自动抓取可读的声音档案进行（左右）喇叭的测试。
（十二） Basic tests： input test。做输入反应键等项目的测试。这个test 有两个功能：（A）确定实验所使用的“反应键”是可运作的，（B）找出这些反应键在计算机里的定义码；编写DMDX的实验程序时，你需要用这些定义码来设定程序的参数。
DMDX窗口以下是 DMDX 窗口中我们会用到的一些按键：
（一）Browse：利用这个键，在计算机中找到你所设计的DMDX实验控制程序，然后将它加载DMDX中。
（二）Run：选择Run并按鼠标左键两次后，会将编辑好的实验控制程序（亦即，以DMDX写的控制实验进行的程序）交付计算机执行。
（三）Syntax Check：选择这个键，并按鼠标左键两次后，DMDX便会检查实验控制程序，测试它是否有错误。
（四）Exit：选择这个键，并 按鼠标左键两次后，便可关闭 DMDX 系统。
（五）Help：选择这个键，并按鼠标左键两次后， 便可打开 DMDX 的说明档。
（六）Subject ID：受试者的编 号。
（七）Ignore Unknown RTF：DMDX 的控制程序是以 WordPad 编写；储存的档案格式为rtf（rich text file）。然而，由于微软改版迅速，以及一些不可预知的因素，使得DMDX 无法判读一些rtf文件的语法。因此执行实验控制程序时，如果DMDX发生判读问题时，可以选用此选项。
DMDX实验控制程序下面将以范例的方式说明如何设计DMDX的实验控制程序。
n24 s24 <d 100> <azk> <cr> <t 5000> <id "键盘"> <dbc 0> <dwc 255000255> <mr +Space> <mnr "+左箭头"> <mpr "+右箭头">
$
0 "正确的按右箭头，错误的按左箭头，按空格键开始。";
$
+1 *<x 0.4><ms% 900>"A"/ <ms% 500>/ <x 0.6><ms% 900>"A";
+2 *<x 0.4><ms% 900>"B"/ <ms% 500>/ <x 0.6><ms% 900>"B";
+3 *<x 0.4><ms% 900>"H"/ <ms% 500>/ <x 0.6><ms% 900>"h";
+4 *<x 0.4><ms% 900>"P"/ <ms% 500>/ <x 0.6><ms% 900>"p";
-5 *<x 0.4><ms% 900>"D"/ <ms% 500>/ <x 0.6><ms% 900>"F";
-6 *<x 0.4><ms% 900>"C"/ <ms% 500>/ <x 0.6><ms% 900>"P";
-7 *<x 0.4><ms% 900>"G"/ <ms% 500>/ <x 0.6><ms% 900>"F";
-8 *<x 0.4><ms% 900>"J"/ <ms% 500>/ <x 0.6><ms% 900>"A";
$
0<ln -3>"休息一下", <ln +3>"按空格键继续。";
$
+9 *<x 0.4><ms% 900>"D"/ <ms% 1000>/ <x 0.6><ms% 900>"D"; 
+10 *<x 0.4><ms% 900>"H"/ <ms% 1000>/ <x 0.6><ms% 900>"H";
+11 *<x 0.4><ms% 900>"K"/ <ms% 1000>/ <x 0.6><ms% 900>"k";
+12 *<x 0.4><ms% 900>"J"/ <ms% 1000>/ <x 0.6><ms% 900>"j";
-13 *<x 0.4><ms% 900>"J"/ <ms% 1000>/ <x 0.6><ms% 900>"h";
-14 *<x 0.4><ms% 900>"Y"/ <ms% 1000>/ <x 0.6><ms% 900>"a";
-15 *<x 0.4><ms% 900>"s"/ <ms% 1000>/ <x 0.6><ms% 900>"d";
-16 *<x 0.4><ms% 900>"m"/ <ms% 1000>/ <x 0.6><ms% 900>"n";
$
0<ln -3>"休息一下", <ln +3>"按空格键继续。";
$
+17 *<x 0.4><ms% 900>"K"/ <ms% 2000>/ <x 0.6><ms% 900>"K";
+18 *<x 0.4><ms% 900>"G"/ <ms% 2000>/ <x 0.6><ms% 900>"G";
+19 *<x 0.4><ms% 900>"J"/ <ms% 2000>/ <x 0.6><ms% 900>"j";
+20 *<x 0.4><ms% 900>"V"/ <ms% 2000>/ <x 0.6><ms% 900>"v";
-21 *<x 0.4><ms% 900>"f"/ <ms% 2000>/ <x 0.6><ms% 900>"u";
-22 *<x 0.4><ms% 900>"c"/ <ms% 2000>/ <x 0.6><ms% 900>"k";
-23 *<x 0.4><ms% 900>"s"/ <ms% 2000>/ <x 0.6><ms% 900>"m";
-24 *<x 0.4><ms% 900>"q"/ <ms% 2000>/ <x 0.6><ms% 900>"b";
$
0 "实验结束，谢谢您。";
$
说明
范例说明（1）这是一个含有 24 个试验的实验。在实验中，受试者的工作是做“词义归类”。在一个试验中，受试者会看到一个“刺激词”，而受试者要判断刺激词的意义是否代表“食物”；如果答案是“是”，受试者要尽快的按“→ ”（向右键），如果答案是“否”，则受试者要尽快的按“←”（向左键）。
（2）程序最上面的一行为“参数设定行”；程序设计者在此设定实验的参数。例如，<id "键盘">告诉 DMDX，实验的 input device （反应输入装置）为键盘。因为我们的计算机环境为中文，所以 Input 的 id 必须输入“键盘”。如果你用的是英文的计算机环境（例如，用英文版的 windows）， Input的 id 为 keyboard。
（3）在实验中，一个试验用一个数字代表，所以设定一个试验的指令启始于“一个数字”。例如：
+1 *<x 0.4><ms% 900>"A"/ <ms% 500>/ <x 0.6><ms% 900>"A";
这个试验的编号为 1，实验刺激为900ms“A”,屏幕刷新500ms后再次呈现“A”。因为刺激词的意义代表相同，所以受试者应该反应“是”（亦即，正反应）；这是为何在试验编号（1）前有一个“+”号。
<ms% 800>表示“ ”内的文字（亦即，A）出现的时间为800毫秒。
一行指令以“;”标示指令的结束。
（4）当研究者需要给予受试者“指导语”或设定“反应键”时，可以在程序中设计一些以 0 为编号的指令。例如，
0 "正确的按右箭头，错误的按左箭头，按空格键开始。";
程序设定了三个反应键：
（A）mpr 设定的是“正确反应”的反应键；在此为“向右键”（→）。
（B）mnr 设定的是“错误反应”的反应键；在此为“向左键”（←）。
亦即，当呈现出来的两个刺激字母相同时，受试者要按键盘上的 → 键，若不是，则按键盘上的 ←键。
（5）实验刺激较多时，可在实验的中间插入指导语，让受试者休息片。请在范例中找到下面这一行指令：
0 <ln -3> "休息一下", <ln +3> "按空格键继续"; 
这行指令的的功用如下： 
（A）在屏幕中线上三行的地方印“休息一下”，在屏幕中线下三行的地方印“按空格键继续”。 
（B）将实验暂时停住，等到受试者“按下空格键”后，再继续开始。
参数说明1. <n>实验的数目，但不包括项目为0的项目列。
2. 
指试验以随机呈现的方式进行，而s后面的数值代表进行随机呈现的数目。
3.<d>控制每一个试验呈现完，距离下一个试验呈现之间的时间差。
4.<azk>程序输出档案既定格式为 ASCI text format的档案。
5. <cr>持续呈现每一个试验，如果没有这一项参数设定，则每一个试验反应之后必须按空格键才能继续下一个试验。
6. <t>即指每一个试验中定时器激活至结束的时间。
7. <id>输入仪器定义，可根据实验需求变更定义输入仪器。
8. <dbc>设定背景的颜色。
9. <dwc>设定文字刺激的呈现颜色。
10.<$>当实验以随机方式呈现刺激时，可以用此设定代表某一行不和其它刺激一起随机出现。通常实验的指示语之上下行会做这个设定。范例如下:
$
0<mr +space>“按空格键，即可开始”。
$
( $字号放在指示语的上下行。)
11.<0>非实验列的定义数。
通常放的是指示语，范例如下:
<mr+space>“按空格键，即可开始”。
…etc.
12. <mr>要求受试者敲击键盘的设定。
13. <mnr>要求受试者按正确(Yes)反应键的设定。
14.<mpr>要求受试者按错误(No)反应键的设定。
15. <“ ”>欲在屏幕中呈现的文字或符号等刺激必须填入双引号中。
16.<+1…>反应为正确的试验编码。
17. <-1…>反应为错误的试验编码。
18.<*>定时器的设定。
19. <ms%>刺激呈现时间以毫秒计算。
20.<ln -1>刺激呈现在屏幕中的位置，没有设定时即呈现在屏幕中央位置；<ln -1>呈现的位置是在中央位置之上一行，反之则在中央位置以下一行。
21.<;>区隔试验的符号。
注意：
文件需要用英文保存，保存为RTF格式，编程中的符号需在西文状态下进行。