heintze@grane.enet.dec.com (Siegfried Heintze) (10/17/90)
I have some questions about timers in the IBM PC/AT and its clones. I wasn't
sure if this is a
hardware or software question.
(1) What is the name of the chip they use to generate the clock interrupt every
18.2 ms?
(2) Where can I get documentation on it?
(3) I would like to establish my own clock interupt service routine that calls
the
default clock routine at the appropriate intervals by use of a counter.
The purpose of
this is to gain control at intervals with a granularity greater than 18.2
ms.
(a) What is the address of the countdown register?
(b) How do I read the current value and write a new value to this
countdown register?
I suspect I would use some inport and outport instructions.
(c) What is the location of the interupt vector element that holds the
address of the clock
routine? I would suppose I use one of the MSDOS services to fetch
the old value and
write the address of my routine. I don't recal which service this
is, but I remember
seeing an example of this in the TURBO C++ documentation.
On a slightly different - but possibly related subject:
(4) How does BORLAND implement their sound and nosound routines in TC++?
These routines
allow you to generate a study tone while other CPU processing is in
progress.
(5) How would I write a program that emits an uninterupted tone whose pitch is
controlled
by the vertical position of the mouse on the screen?
Thanks much,
Sieg