BBS: Inland Empire Archive Date: 01-06-93 (08:04) Number: 335 From: GLENN DELAHOY Refer#: NONE To: MARK WITTKOSKI Recvd: NO Subj: Disk Space Conf: (2) Quik_Bas
> How can I find out much space I have on an available disk.
FUNCTION GetFreeSpace& (Drive, DiskSize&)
DIM InRegs AS RegType, OutRegs AS RegType
' get disk free space - Drive 0 is current drive
InRegs.ax = &H3600
InRegs.dx = Drive
CALL Interrupt(&H21, InRegs, OutRegs)
IF OutRegs.ax = &HFFFF THEN
' invalid drive specified
GetFreeSpace& = -1
ELSE
a& = CLNG(OutRegs.ax) * CLNG(OutRegs.bx) * CLNG(OutRegs.cx)
DiskSize& = CLNG(OutRegs.ax) * CLNG(OutRegs.cx) * CLNG(OutRegs.dx)
GetFreeSpace& = a&
END IF
' returns
' ax = number sectors per cluster
' or &HFFFF if invalid drive
' bx = number available clusters
' cx = bytes per sector
' dx = total clusters
'
' ax * bx * cx = total free space
' ax * cx * dx = total disk space
END FUNCTION
Regards,
Glenn
> --Mark
> --- Maximus 2.01wb
> * Origin: |=[Bloom Co. Hospital>=--- |[GRapids,MI]
> (616)361-8345 (1:228/26)
--- FMail 0.92
* Origin: Rough Productions -V32- (059) 983 639 (3:635/572)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET