                      INTERVAL TIMER QUICK START

Command-line syntax: ITIM [t [w [n [r [i [d [l]]]]]]

where t = Short Interval in ticks (1 tick = 1/18.2 sec)
      w = Work Interval in seconds
      n = Number of Work Intervals
      r = Rest Interval in seconds

for example

itim 40 120 1 0

Approximate Equivalents     Ticks   -->   Cadence
                             14            78
                             40            27.3
                             39            28
 Fewer ticks means a         38            28.7
 faster stroke count         37            29.5
                             36            30.3
                             35            31.2
                             34            32.1
                             33            33.1
                             273            4

                               SUMMARY

/pub/simtelnet/msdos/sports/
itim216.zip     Audible exercise/rowing-machine pacer/timer

ITIM is a configurable electronic metronome via the PC's speaker, an
audible exercise pacer/timer for fitness enthusiasts. It can be used
with rowing machines, exercise cycles etc, or as an audible marker for
work/rest intervals in circuit training or free exercise workouts. The
interface is command-line only; the use of batch files is recommended,
and an eg is supplied. The program reports elapsed time, but is NOT a
stopwatch. It has been tested in Windows 95 and runs fine in a dos
window. ITIM is particularly useful for rowing machines not fitted
with a counter.

Limitations. No midnight protection.

Freeware. Uploaded by the author.

                             INSTALLATION

Put all the supplied files in the same directory (folder) on a hard or
floppy disk.

                                 USE

There are two main ways to use the timer.

(1) As an audible pacer for rowing machines, cycles, etc, where each
rowing stroke or cycle revolution is performed 'on the beep'. In this
case you will want to set the Short Interval - the pace interval -
fairly fast, say 30 strokes/min (36 ticks) for a rower, 78 rpm (14
ticks) for a cycle.

(2) For timed exercise intervals (eg circuit training) with or without
timed rest intervals.  In this case you will want to set the Short
Interval equal to the Work Interval, or fairly slow, say every 15
seconds (273 ticks), as a marker.

                    COMMAND LINES AND BATCH FILES

The timer will run automatically on its default settings, but in order
to use it effectively you must learn how to set it from the DOS
command line and change the command-line parameters.  These are simply
numbers (which must be positive integers), each separated by a space,
typed after the name of the program.  There are 4 standard parameters
working from left to right, outlined in QUICK START above.  You can
safely ignore the others to begin with.  Eg

itim 39 60 2 15

This means 'beep 28 times per minute (39 ticks between beeps), for 60
seconds, do this 2 times, with a rest interval of 15 seconds'.

If trying out in Windows 95, the easiest way to imput the necessary
parameters is from menu Start/Run, giving the full path of the
program.

The best regular way to run ITIM is from one or more batch files, and
I've included ROWX.BAT as an example.  Another way to use the program,
away from the computer, once you've developed a few routines that suit
you, is to record the sounds on cassette tape.

                     TESTING FOR BAD MOTHERBOARDS

You will need to test if the program runs accurately on your
motherboard.

Using its default settings ITIM will act as a rowing-machine pacer and
beep 27.3 times per minute for 2 minutes.

To find out if you have an erring motherboard, monitor the above using
a separate stop watch; do not rely on the timings displayed on screen.
Note that it is correct for the timer to overrun slightly if it has to
fit in a last beep - 1 or 2 seconds is not a problem.

If your system does not run to time the program may still be made to
work.  Read on.

                              TECHNICAL

For those interested, ITIM works by accessing a timer in the PC's
memory at hex 40:6C which 'ticks' 18.2 times per second independently
of CPU speed.  I selected ASCII 7 (the 'BEL' character) to provide
ITIM's beep sound also because it did not appear to rely on CPU
dependent delays.  All of this proved perfectly adequate (though an
18th of a second does not allow quite the fine gradation of adjustment
you might expect), and worked fine on XT's to 486s, and some, maybe
most, pentiums - and then along came Gigabyte motherboards.

I have a Gigabyte GA-586HX running an IBM P166+ which implements ASCII
7 by suspending the timer ticks at hex 40:6C for about 0.25 of a
second.  This actually results in the computer's clock running slow
and causes it to overrun on ITIM's default test by about 14 seconds.
Gigabyte's solution?  Wait until you reboot, then reset the computer's
clock to the correct time from an onboard backup timer. (Sigh).
Ironically the board is otherwise a very good time keeper and
Gigabyte's little kludge might never have been noticed but for my
program.

There is a solution which involves using a CPU dependent delay to
produce the beep.  See NON-STANDARD MOTHERBOARDS below.

                       INTERVAL TRAINING PRIMER

Interval training consists of a work interval followed by a rest
interval.  The work interval, during in which you do work of moderate
to high intensity, typically lasts for about 2 minutes; the
corresponding rest interval might last for 90 seconds.  Heart rate is
often monitored and the length of the intervals based upon this.

ITIM can be used for steady continuous exercise by having a single
long work interval or by linking work intervals with rest intervals of
zero seconds.  You can also take a short rest timed on a stop watch
and then restart ITIM with a new set of parameters.

As a general rule you should try to program the timer as fully as
possible and to make indefinite pauses coincide with completely new
calls to the program.  The pause feature is intended for emergency use
- to overcome having to reset the program and re-start a session
should a brief pause become necessary.

                             ELAPSED TIME

This is recorded a split second before the beep.  The clock starts on
the first beep and the time is sampled on each successive stroke beep.
Thus if you interrupt the timer during any period of silence you will
get the elapsed time up to the last audible beep.  This mechanism
explains why if you interrupt the timer at the start of a program
between the first beep (the start) and the next (the first stroke) you
will get an elapsed time of zero.  It also explains why ITIM cannot
reliably be used as a stopwatch.

                        THE FIRST BEEP PROBLEM

The first beep of the first work interval is the start beep on which
the clock is started.  Should there be a start beep at the start of
succeeding work intervals?  Consider two possible situations.

1. Successive work intervals are seamlessly joined together with zero
relief intervals.  In this case the last beep of any interval would
coincide with the start of the next.  Thus a start beep for WI/2 etc
is unnecessary, and ITIM does not sound one.

2. Work intervals are preceded by relief intervals greater than 0
seconds.  In this case, ITIM sounds a start beep for every WI.

Start beeps are excluded from the stroke count.  This enables you to
start a stop watch if you are working-out alone.  Also, it produces
consistent stroke counts in situations like 1 above.  The drawback is
that, if rowing, you must remember not to pull on the first beep
preceded by a rest interval.  For free exercises you will want to
start on the start beep.

A point also worth thinking about is that, due to the nature of the
program, the last beep of any work interval may encroach slightly on
the following relief interval.  This is because the time-down for a
short interval beep will always be executed while there is any time
remaining in the work interval.  If you set an SI longer than the WI
the program will run to the SI.  If you set an SI one tick less than
the WI, the overrun will be SI minus one.  For long SIs this can be
considerable!  Any overrun will be deducted from the following relief
interval, if any.

However, if you do sensible things the program will behave sensibly,
and short overruns while rowing will work themselves out.

See ROWX.BAT for an eg combining various uses.  The 4th call to the
program is preceded by a 1 min delay.  You can't have a 1 min rest
interval or you will get this every 4 mins - hence the lines

echo 1 min countdown ...
itim 18 4 1 55 0

                      THE MIDNIGHT HOUR PROBLEM

When your computer's clock reaches midnight the counter on which ITIM
relies is reset to zero. In situations where this is likely to be a
problem (i.e. approaching midnight) the program tries to correct the
situation by resetting the clock to zero at the outset and then
resetting it to the 'correct' time when the program exits.

The upshot, for late-night exercisers, as opposed to revellers, is
that ITIM may be unreliable if a call to the program is planned to
pass midnight - most especially if the pause feature is used, as the
calculated total time excludes this unknown factor.  This is why you
should regard the pause feature as a convenience.

A future version of ITIM may solve this problem by using different
low-level timer routines.  For the moment, if you have an important
session close to midnight, the best advice I can offer is to
temporarily reset the computer's clock to a safe distance.

                          SPECIAL PARAMETERS

Parameters 5, 6, & 7 are for special effects.

As soon as you stop adding parameters, any remaining will revert to the
default(s).  This makes the program easier to use at first, since the
first four parameters are the ones most commonly changed.

Note, however, that the program only knows which parameter is which by
their order, and the fact that they are separated by a space; thus, if
you want to change parameter 7 alone, you must include all the other
parameters in the correct sequence, even if they are the same as the
defaults.

                         INITIAL PAUSE STATUS

"Press a key to Pause/Start ... "

Requires parameter i (fifth), where i = 1 (default) means execute
initial pause; 0 means don't execute.  This is useful in batch files
where you want successive calls to the program to run continuously.

                          DECREMENTING TICKS

Requires additional parameters d (sixth) and l (seventh), where d=
decrement in ticks and l=top limit in ticks.

The default decrement is zero, i.e. no decrement; try 1 or 2 for this
figure.

The ability to decrement the Short Interval ticks (SIs), and thus
increase the stroke rate, is particularly suited to rowing machines
where the speed of rowing - the stroke rate/minute or cadence - is
proportional to load.  Even a basic oil-piston rowing machine will
give good aerobic to low-anaerobic workouts with only two load
settings if used in conjunction with ITIM.

By default, if you decrement, the stroke rate will not go faster than
can be achieved with 33 ticks.  However, you can change this top
limit, up or down, by adding a 7th parameter (default l = 33).  Also
note that you can set any stroke rate (SI) while d = 0 (default) and
the value of l will make no difference.

                      ON THE FLY PACE ADJUSTMENT

This is possible during intervals and pauses with '<' and '>'.  It
works independently of command-line decrementing.

                      NON-STANDARD MOTHERBOARDS

If you have one of these you can correct the problem with an eighth
parameter, which means you must include all the other seven parameters
every time you call the program.  (Get those batch files written!)
Valid numbers are in the range 1 to 65535.  You will have to find the
correct value for your computer by trial and error.  300 is about
right for an XT, 8000 for a 166Mhz pentium-type AT; eg

itim 40 120 1 0 1 0 33 8000

If you have a standard board you might still find the above useful if
you want to try changing the duration of the beep.  I have programmed
the pitch higher than ASCII 7 and it seems louder on my system.

                              DISCLAIMER

This software may be distributed, so long as it is without charge and
provided any accompanying program and documentation are included.
Also, this software is distributed as is, and no claims may be made
against the programmer, Paul Fox, for any damages or losses arising
from its use.

BROWSE.COM, so far as I am aware, is entirely public domain.  Source
code and documentation can be located in Simtel archives and mirrors
in /pub/simtelnet/msdos/textutil/browse2.zip

                        CONTACTING THE AUTHOR

If you find the program useful, or would like to see something
changed, or want to know more about the kind of training I use it for,
do let me know.

e-mail: Paul Fox <pf002@post.almac.co.uk>
http://www.almac.co.uk/nwpublish/
