This is an old revision of the document!
Table of Contents
Note: This API call is for DOS and Win16 personality only. Use Family API for portability.
Int 21H, AH=36H
Version
2 and higher
Brief
GET FREE DISK SPACE
Family API
Input
      AH = 36h
      DL = drive number (00h = default, 01h = A:, etc)
Return
AX = FFFFh if invalid drive
      else
          AX = sectors per cluster
          BX = number of free clusters
          CX = bytes per sector
          DX = total clusters on drive
Notes
free space on drive in bytes is AX * BX * CX
      total space on drive in bytes is AX * CX * DX
      "lost clusters" are considered to be in use
      according to Dave Williams' MS-DOS reference, the value in DX is
        incorrect for non-default drives after ASSIGN is run
      this function does not return proper results on CD-ROMs;
        use AX=4402h"CD-ROM" instead
      (FAT32 drive) the reported total and free space are limited to 2G-32K
        should they exceed that value
        
See also
AH=1Bh,AH=1Ch,AX=4402h“CD-ROM”,AX=7303h
Note
Text based on Ralf Brown Interrupt List Release 61
| osFree Macro Library | |
|---|---|
| Video I/O | @SetMode @SetCurSz @SetCurPos @GetCur @SetPage @ScrollUp @ScrollDn @Scroll @GetChAtr @PutChAtr @PutCh @SetPalet @SetColor @SetDot @GetDot @WrtTTY @VideoState @GetMode @GetDisplay @GetVideoState @GetEGAInfo @Cls | 
| Hardware info | @Equipment @MemSize | 
| Serial I/O | @AuxInit @AuxSendChar @AuxRecieveChar @AuxStatus | 
| Tape I/O | @TapeOn @TapeOff @TapeRead @TapeWrite | 
| Keyboard I/O | @KbdStatus @CharIn @CharPeek | 
| Printer I/O | @PrnPrint @PrnInit @PrnStatus | 
| Disk I/O | @DskReset @DskStatus @DskRead @DskWrite @DskVerify @DskFormat | 
| Date and Time | @SetTime @GetTime | 
| Mouse | @MouInit @MouShowPointer @MouStatus @MouSetPos @MouSetMickey @MouRegion | 
| Memory manager | @ModBlok SET_BLOCK | 





