home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd2.bin
/
dosutils
/
partprog
/
pdisk.arc
/
SLEEP.C
< prev
next >
Wrap
Text File
|
1989-01-12
|
725b
|
24 lines
/* sleep for a number of milliseconds -- interrupted by kbd */
/* returns zero if uninterrupted, else -1 */
#include <dos.h>
int
sleep(ticks)
long ticks;
{
union REGS kregs, cregs;
long dostime, newtime;
kregs.h.ah = 0x0b; /* "check keyoard status" */
cregs.h.ah = 0x2c; /* "get time" */
ticks /= 10L; /* clock() deals in hundreths of seconds */
intdos(&cregs,&cregs);
dostime=cregs.h.ch*360000 + cregs.h.cl*6000 + cregs.h.dh*100 + cregs.h.dl;
do {
intdos(&cregs,&cregs);
newtime=cregs.h.ch*360000+cregs.h.cl*6000+cregs.h.dh*100+cregs.h.dl;
intdos(&kregs,&kregs); /* see if keystroke is available */
} while((newtime-dostime) < ticks && !kregs.h.al);
return((int) kregs.h.al);
}