Int 15h, 83h Event Wait many
Modifies a byte in the user's memory after a specified time
interval. Control is transferred to the caller immediately after
this service is called.
Entry AH = 83h
AL = Subservice
| 00h Set interval
| 01h Cancel set interval
ES:BX = Pointer to byte that will be posted
CX:DX = Microseconds until posting (long integer)
Return CF Set if service not supported, else cleared
──────────────────────────────────────────────────────────────────
After this service is called, control is returned immediately to
the caller. This service does not work by delaying and then
returning control to the user, but returns control immediately;
the user must periodically look at the byte specified (pointed to
by ES:BX) to determine when the interval has elapsed.
The PC, PCjr, and the XT dated 11/08/82 do not support this
service. The AT dated 1/10/84 is only able to set the interval;
thus the value in AL is not used.
The byte is posted by setting the high bit (bit 7). To test the
end of the interval, make sure the high bit of the byte is clear
before calling Subservice 0 (Set Interval).
The real-time clock is used to count the number of microseconds.
The granularity of the time is 976 microseconds.
CX is the high-order word of the count. For example, if CX is 98h
and DX is 9680h, then a 10-second delay would be specified.