| delorie.com/archives/browse.cgi | search |
| From: | sandmann AT clio DOT rice DOT edu (Charles Sandmann) |
| Message-Id: | <10303101722.AA20067@clio.rice.edu> |
| Subject: | Re: Example uclock() code |
| To: | djgpp-workers AT delorie DOT com |
| Date: | Mon, 10 Mar 2003 11:22:03 -0600 (CST) |
| In-Reply-To: | <0eec01c2e70c$1f78cef0$0600000a@broadpark.no> from "Gisle Vanem" at Mar 10, 2003 02:51:17 PM |
| X-Mailer: | ELM [version 2.5 PL2] |
| Mime-Version: | 1.0 |
| Reply-To: | djgpp-workers AT delorie DOT com |
| Errors-To: | nobody AT delorie DOT com |
| X-Mailing-List: | djgpp-workers AT delorie DOT com |
| X-Unsubscribes-To: | listserv AT delorie DOT com |
> > + while ( (tics = _farnspeekl(0x46c)) == otics);
>
> A debugger will propably hang indefinitely here. Maybe add
> a __asm__("sti").
Debuggers should not (?), but you can't CTRL-C out of it - it
must complete before you get the signal.
> Instead of counting the TSC over CALIBRATION_TICS, it's
> better to *average* the TSC over CALIBRATION_TICS samples.
> This because of the jitter in the while-wait loops. It doesn't
> (as you said in original message) really wait N*ticks.
If the tics in the middle are used for both start and end,
you get the same answer (it averages out). If you don't,
and get a new start tic each time - then it takes twice as
long elapsed (the current 5 TIC wait can take up to 6 tics
waiting for the first tic roll-over). If you did 5
calibrations of 1 TIC long it would typically take 10 tics.
It appears a single calibration of 10 tics would be more
accurate than averaging 5 samples, based on the error
distributions.
> BTW. the accuracy will depend on DOS-box setting of
> "Program | Advanced | Emulation of timekeeper" (or what
> ever it's called in English Windows). Reading the PIT is
> not very accurate even when set on.
I can't find such a setting on Windows 2000. The PIT is
completely unreliable and uncoordinated with the timer
tic (usually... that's a long story) so I'm calibrating
using the timer tic alone (which is also flakey ...).
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |