INT 15H 8300H: Set Event Wait Interval
Expects: AX 8300H
CX,DX interval in microseconds (1,000,000ths of a second)
CX is high word, BX is low word
ES:BX address of byte to be used to flag end of interval
Returns: AH 83H
AL 00H =means fn is busy (note: only one timer can be set)
else=CMOS timer has been set
CF NC (0) no error
CY (1) error; fn is busy
Info: This sets up to have the BIOS set a flag after a certain amount
The interval is set in microseconds with CX and DX being the high
and low words, respectively.
1,000,000 microseconds = 1 second; for instance, to set an
interval for 2 seconds, set CX=001eH and DX=8480H.
Upon expiration of the interval, bit 7 of the byte at ES:BX will
be set. You must clear this bit before starting the interval.
Notes: ž Only one timer-interval may be active. Use INT 15H 8301H to
cancel the current interval.
ž Remember to cancel the wait before exiting your program!
Later, some other process will own the memory address you have
used at the time-done-flag (ES:BX).
ž If CX and DX are both 0000H on entry, no action is taken.
ž In most systems, the finest possible resolution is about 1000
microseconds (about one one-thousandth of a second). Thus, CX
must be at least 1000 (3e8H) for this to be useful.
ž This works asynchronously, letting you perform other tasks
while occasionally polling the byte as ES:BX. Use INT 15H 86H
if you want the system to wait (delay) for a specific interval.
ž Other timer functions include INT 1aH (1/18-th second minimum
interval) and DOS fn 2cH (1/100-th second minimum interval).
See Also: INT 15H (extended AT services)
BIOS Data Area