/*
Copyright (C) Magna Carta Software, Inc. 1988-1991. All Rights Reserved
C COMMUNICATIONS TOOLKIT
DFREE.C -- Return number of bytes free on the designated drive.
*/
#if (defined(CCTW) || defined(_WINDOWS))
#include <windows.h>
#endif
#include <dos.h>
#include <compat.h>
#include <stdio.h>
/*
DFREE -- Calculate free bytes on designated drive.
Drive is specified as 0 = current drive. 1=drive A, 2=drive B, etc.
*/
long dfree(short drive)
{
union REGS regs;
setbytereg(ah) = 0X36;
setbytereg(dl) = (unsigned char) drive;
int86(0X21, ®s, ®s);
if (setwordreg(ax) == 0XFFFF) return (EOF);
return ((long) setwordreg(ax) * setwordreg(bx) * setwordreg(cx));
}
#if defined(CWT_TEST)
#include <stdio.h>
void main(void)
{
printf("Drive space is: %ld bytes", dfree(0));
}
#endif