Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!rutgers!labrea!decwrl!sun!plx!titn!herve
From: herve@titn.TITN (Herve Siegrist)
Newsgroups: comp.sys.ibm.pc
Subject: Re: millisecond timing
Message-ID: <182@titn.TITN>
Date: Fri, 17-Jul-87 13:47:50 EDT
Article-I.D.: titn.182
Posted: Fri Jul 17 13:47:50 1987
Date-Received: Wed, 22-Jul-87 06:24:35 EDT
References: <4343@jade.BERKELEY.EDU>
Organization: TITN Inc. Hayward, CA
Lines: 28
Summary: Probably an other way on an AT...


It looks to me that there is a much better way to control timings on
an AT, as the BIOS provides some neat functions for that. All this 
is in the interrupt 15H for the cassette I/O. Two timing functions
are provided, the function code beeing provided in AH:

-1/ Function 86H (wait):

	Set AH to 86H, (CX,DX) to the number of microseconds to wait, and
	call INT15H. The call will return when the requested number of
	microseconds elapsed.

-2/ Function 83H (event wait):

	Set AH to 86H, (ES:BX) to the address of a memory byte, (CX,DX)
	to the requested number of microseconds. Also set AL to 0 to set
	the interval or to 1 to cancel the previous request, and call INT15H.

	This function returns right away. When the delay expires, the 
	high order bit of the byte whose address was provided in (ES:BX)
	will be set by the BIOS.

This provides a nice way to get timing information with a microsecond 
resolution. I should say however that I never tried to use that myself...

FROM:	Herve Siegrist, TITN Inc.  24301 Southland Dr. Suite 200
	Hayward, CA 94545	Tel: (415) 785-5970
UUCP:	(decvax|ucbvax|ihnp4)!decwrl!sun!dlb!plx!titn!herve