#define VPW_TRIAL_C
#include "vpw_data.c"
#include <ctype.h>
#define FIXTM mtt(1000)
#define BLTM mtt(0)
#define STM 3
#define INSTM mtt(250)
#define ITI mtt(500)
struct {
__int64 junk;
} rttmp;
void trial(int i)
{
int w = ts_textheight();
int h = ts_textlength("A");
char m[20];
int mpos;
if (data[i].wlen == 5) {
if (data[i].mask == SMALL) {
sprintf(m, "#######");
mpos = data[i].sloc;
} else {
sprintf(m, "###########");
mpos = 0;
}
} else {
if (data[i].mask == SMALL) {
sprintf(m, "#########");
mpos = data[i].sloc;
} else {
sprintf(m, "###############");
mpos = 0;
}
}
ts_vsync(&rttmp.junk, &rttmp.junk);
ts_printf_centre(0, h, "|");
ts_printf_centre(0, -h, "|");
ts_wait(FIXTM);
ts_vsync(&rttmp.junk, &rttmp.junk);
ts_clrscr();
ts_printf_centre(data[i].sloc * w, 0, data[i].stim);
ts_vsyncs(&rttmp.junk, &rttmp.junk, STM);
ts_clrscr();
ts_printf_centre(mpos * w, 0, m);
ts_wait(INSTM);
ts_clrscr();
int ipos = ts_printf(-ax(.9), -ay(.9), "Word: ");
ts_scanf(-ax(.9) + ipos, -ay(.9), "%s", data[i].resp);
ts_clrscr();
int j = 0;
while (data[i].resp[j] != '\0') {
data[i].resp[j] = toupper(data[i].resp[j]);
j++;
}
if (strcmp(data[i].stim, data[i].resp))
data[i].corr = E;
else
data[i].corr = C;
int r = ts_resp(&rttmp.junk, &rttmp.junk, ITI);
if (r) {
writedata();
ts_fatal("aborted by user");
}
}
#ifndef VPW_EXP_C
int main()
{
ts_textmode(BLACK);
ts_defkey(KEY_ESC);
readwords();
randomize(0);
int i;
for (i = 0; i < NTRIALS; i++)
trial(i);
writedata();
return 0;
}
END_OF_MAIN();
#endif