member('BACKER') drvfree function(drive) ! returns a real irg group,pre(in) al byte ah byte bl byte bh byte cl byte ch byte dl byte dh byte si ushort di ushort cflg ushort flag ushort . org group,pre(out) ax ushort bx ushort cx ushort dx ushort si ushort di ushort cflg ushort flag ushort . srg group,pre(s) es ushort cs ushort ss ushort ds ushort . intnum short ret short frees real drivelet string(1) drivenum byte RootPath CSTRING(4) Sectors ULONG Bytes ULONG FreeClusters ULONG TotalClusters ULONG code OMIT('***',_WIDTH32_) drivelet = upper(drive) drivenum = val(drivelet) - 64 if drivenum > 26 then return(0). intnum = 021h in:ah = 036h in:dl = drivenum ret = int86x(intnum,irg,org,srg) frees = out:ax * out:bx * out:cx *** COMPILE('***',_WIDTH32_) drivelet = upper(drive) RootPath=drivelet & ':\' GetDiskFreeSpaceA(RootPath,Sectors,Bytes,FreeClusters,TotalClusters) frees=Sectors * FreeClusters * Bytes *** return(frees)