TimeDX Help.
Overview.
TimeDX is designed to allow you
to test all components of DMDX before using it in order to make sure that
the whole lot works individually and in combination. This is doubly true
for the various video modes that DMDX could use, their refresh interval must
be examined and optionally tuned by you in order that the retrace can be
correctly anticipated -- for each different video mode used.
When using DMDX or TimeDX it is best to kill off all other
tasks not essential to the running of the machine, they are only going to
steal CPU cycles from the tasks that matter. My primary development box
and the test box are both on the network so loose cycles to network activity,
but these days I suspect it is unreasonable to expect people to turn off
networking (I am certainly not) so some amount of extraneous activity will
have to be tolerated -- unfortunately that means that if you ever design
an experiment that runs things right down to the wire (moving large frames
as rapidly as possible) there are going to be times when the items work OK
and others when a stray network event causes things to go just a bit slower
and the critical frame is missed. Fortunately most Pentiums appear to be
able to move data at such a high rate I don't anticipate this being a real
concern. Secondarily I boost the priority of the vertical retrace thread
through the roof so it shouldn't be interruptible by network activity, of
course testing this is another matter entirely.
The steps in using TimeDX are as follows:
- Step 0.
Close all other programs before
running TimeDX or DMDX. A long time ago I discovered that a major source
of disruption in the Refresh Rate test was due to MS Word being open as I was updating
this documentation, I was ready to give up and go panhandling for a living
until I nailed down just what the culprit was.
- Step 1.
The first time you use TimeDX
you should check that the Millisecond Timer is functioning. You should also do this if you managed
to crash TimeDX or DMDX, it appears that the system can take a while to repair
the millisecond callback (you might have to restart TimeDX if it isn't functioning).
- Step 2.
Check that the Video Mode you want to use works. In order for DMDX to use a given video
mode the video card must be capable
of having two buffers of data, so for 640x480 with 16 bit color you need
to have a video card with more than a megabyte of video memory -- this test
will tell you what you can and cannot use. Note that if you are re-programming
the number of display lines each different number of lines is considered
a different display mode. If you are using a TFT display (or LCD flat
panel) then you will want to make sure you are using the display's native
resolution. See the Video Mode
discussion.
- Step 3.
Initially you should use the
Refresh
Rate test at least once to ascertain
how well your machine can automatically determine the retrace interval, it
doesn't need to be done for every video mode you select (although it doesn't
hurt). If you are using an LCD flat panel display this test needs
to be paid extra attention as it can be used to ascertain the flat panel's
native capabilities which is absolutely critical for any tachistoscopic
tasks.
- Step 4.
Next you are going to jump ahead
to the Advanced tests.
Again, at least once you should check that the millisecond callback latencies
aren't disturbed while there is a bunch of Video activity, you certainly don't have to do this for every video
mode.
- Step 5.
This one's a big test, another
Advanced test, you
are going to fire up the Vertical Retrace Sync Test and determine the values that will let DMDX synchronize
itself with the vertical retrace.
For each video mode you might use you will have to perform Step 2 and Step 5. The values
you determine will be written to the registry when you press the Save Last Used
values in Registry button where other routines can retrieve
them when they wish to synchronize with the vertical retrace -- which I figure
is eons ahead of having to always wait several seconds as video modes are
changed for the automatic routines to determine the characteristics of the
new video mode. The down side is that if you ever change video cards you
will have to re-time all the video modes.
For now ignore the Sound Buffers, one thing at a time.
The important thing to remember here is that the results must be saved to the registry and that
until you do this DMDX will not run, instead it will be complaining about
registry keys missing.
- Step 6.
Use the Tachistoscopic
Acid Test. This will check whether
your machine is in fact capable of running DMDX, or to what degree it is
capable of it.
Again, ignore the Sound buffers.
- Step 7.
Now you can
play with the Sound stuff. Pick some .WAV files and play them. During
this and the next few sound related test if you notice less than stellar
performance from your sound card you may want to choose a different Direct
Sound driver, some drivers are
less than excellent (and, no, I don't know why more than driver one can appear).
- Step 8.
Next you want
to go back to the Advanced test and
tell it to play a few buffers as well, see if the parameters need more tuning,
it is normal for the error rate to got up a bit. Then you want to go to
the Tachistoscopic Acid Test and see that it still works while playing sound buffers.
- Step 9.
Use the Sound Latency test even if you don't have a oscilloscope as this
test really cuts the duds out. Of the three sound cards I had decided were
OK two failed (one miserably) just playing the audio portion of the test,
I didn't need an oscilloscope.
- Step 10.
Use the Input test to see how the various input devices you might
want to use perform. The names of both input devices and the buttons on
them will probably be needed for DMDX as the
item file will more than likely wind up specifying which input device to use and which buttons are the correct, incorrect and request keys.
- Step 11.
If you are
going to using a PIO then you will want to set up it's address with in the
PIO Test test, and
if you are going to be using another machine to monitor DMDX then you will want to set up the network address
with the Network Monitor test.
TimeDX
Index.