'=========================================================================== ' Subject: FIND AVAILABLE BYTES ON DRIVE Date: 1990 ' Author: Peter Norton Code: QB, PDS ' Origin: Advanced BASIC Book Packet: DISK.ABC '=========================================================================== DECLARE FUNCTION DiskFree& (Drive$) TYPE RegType ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER END TYPE DECLARE SUB INTERRUPT (IntNo AS INTEGER, InRegs AS RegType, Outregs AS RegType) CLS PRINT "The number of bytes free on drive C are: ", DiskFree&("C"); PRINT "The number of bytes free on drive A are: ", DiskFree&("A"); END FUNCTION DiskFree& (Drive$) DIM InRegs AS RegType, Outregs AS RegType DiskFree& = -1 IF LEN(Drive$) <> 1 THEN EXIT FUNCTION InRegs.ax = &H3600 InRegs.dx = ASC(UCASE$(Drive$)) - ASC("A") + 1 CALL INTERRUPT(&H21, InRegs, Outregs) IF Outregs.ax = -1 THEN EXIT FUNCTION Temp& = Outregs.ax DiskFree& = Temp& * Outregs.bx * Outregs.cx END FUNCTION