home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / FATINFO.ZIP / FATINFO.PAS
Encoding:
Pascal/Delphi Source File  |  1986-01-30  |  1.5 KB  |  53 lines

  1. Program AllocationTableInformation;
  2. Type
  3.    DOSRegs  = record
  4.      Case Integer of
  5.        0: (ax, bx, cx, dx, bp, si, di, ds, es, Flags : Integer);
  6.        1: (al, ah, bl, bh, cl, ch, dl, dh            : Byte   );
  7.        End;
  8. Var
  9.   Registers   : DOSRegs;
  10.   ClusterSize : Real;
  11.   DiskSize    : Real;
  12.  
  13. Begin
  14.   LowVideo;
  15.   ClrScr;
  16.  
  17.   Fillchar (Registers, sizeof(DOSRegs), 00);
  18.   Registers.AH := $30;
  19.   Registers.DS := DSeg;
  20.   MsDOS (registers);
  21.  
  22.   If Registers.AL = 0 then
  23.      Begin
  24.        Writeln; Writeln;
  25.        Writeln ('Sorry, this pgm. only works with DOS 2.0 or higher');
  26.        Writeln; Writeln;
  27.        Halt;
  28.        End;
  29.  
  30.   Fillchar (Registers, sizeof(DOSRegs), 00);
  31.   Registers.AH := $1B;
  32.   Registers.DS := DSeg;
  33.   MsDOS (registers);
  34.   Writeln; Writeln;
  35.   Writeln ('':10, 'Allocation Table Information, Default Drive:');
  36.   Writeln;
  37.  
  38.   With Registers Do
  39.        Begin
  40.          Writeln ('# of clusters on disk..........', DX : 5);
  41.          Writeln ('Sectors per cluster............', AL : 5);
  42.          Writeln ('Sector size (bytes)............', CX : 5);
  43.          Writeln;
  44.          ClusterSize := (AL * CX);
  45.          DiskSize    := (ClusterSize * DX);
  46.          Writeln ('Size of each cluster...........', ClusterSize:10:0);
  47.          Writeln ('Total disk space...............', DiskSize   :10:0);
  48.          End;
  49.  
  50.   Writeln; Writeln;
  51.   Writeln; Writeln;
  52.   End.
  53.