home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / dos_ency / section5 / fxn36h.asm < prev    next >
Encoding:
Assembly Source File  |  1988-08-11  |  1.4 KB  |  28 lines

  1.         ;************************************************************;
  2.         ;                                                            ;
  3.         ;             Function 36H: Get Disk Free Space              ;
  4.         ;                                                            ;
  5.         ;             long free_space(drive_ltr)                     ;
  6.         ;                 char drive_ltr;                            ;
  7.         ;                                                            ;
  8.         ;             Returns the number of bytes free as            ;
  9.         ;             a long integer.                                ;
  10.         ;                                                            ;
  11.         ;************************************************************;
  12.  
  13. cProc   free_space,PUBLIC
  14. parmB   drive_ltr
  15. cBegin
  16.         mov     dl,drive_ltr    ; Get drive letter.
  17.         or      dl,dl           ; Leave 0 alone.
  18.         jz      fsp
  19.         and     dl,not 20h      ; Convert letter to uppercase.
  20.         sub     dl,'A'-1        ; Convert to drive number: 'A' = 1,
  21.                                 ; 'B' = 2, etc.
  22. fsp:
  23.         mov     ah,36h          ; Set function code.
  24.         int     21h             ; Ask MS-DOS to get disk information.
  25.         mul     cx              ; Bytes/sector * sectors/cluster
  26.         mul     bx              ; * free clusters.
  27. cEnd
  28.