home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / TURBO.ZIP / READFAT.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-06-28  |  1.3 KB  |  60 lines

  1. program readfat;
  2.  
  3. var
  4.  
  5.    fat_fill      :   array[0..4095] of byte;
  6.    drive         :   byte;
  7.    cluster       :   integer;
  8.    fat_cluster   :   integer;
  9.    fat_offset    :   integer;
  10.    free_clusters :   integer;
  11.    total_clusters:   integer;
  12.    cl_size       :   integer;
  13.    year,day      :   integer;
  14.    hour,min,
  15.    month,date    :  byte;
  16.  
  17.  
  18. {$i  biosread.inc }
  19. {$i  getfree.inc}
  20. {$i  getdate.inc}
  21. {$i  dumphex.inc}
  22.  
  23.  
  24.  
  25. begin
  26.  
  27.    getdate  ( year,month,date,hour,min );
  28.    writeln( year:5,month:4,date:4,'  ',hour:3,min:3);
  29.    get_free_space ( free_clusters,total_clusters,cl_size,3);
  30.    writeln (' free space =',free_clusters:6,total_clusters:6,cl_size:6);
  31.    drive := $80;
  32.    biosread(fat_fill,drive,0,0,3,8);
  33.  
  34.     cluster := 3;
  35.  
  36.    while cluster <> 2 do
  37.    begin
  38.    write('Enter cluster: ');
  39.    readln(cluster);
  40.  
  41.    fat_offset := (cluster*3)  div 2;
  42.  
  43.    dumphex(fat_fill[fat_offset]);
  44.    dumphex(fat_fill[fat_offset+1]);
  45.  
  46.    if cluster mod 2 = 0 then
  47.  
  48.       fat_cluster := fat_fill[fat_offset] +
  49.                    ( (fat_fill[fat_offset+1] mod 16 ) * 256)
  50.  
  51.    else
  52.       fat_cluster := (fat_fill[fat_offset] shr 4 ) +
  53.                      (fat_fill[fat_offset+1] * 16);
  54.  
  55.    dumphex(fat_cluster);
  56.    writeln( 'Next cluster is : ',fat_cluster);
  57.    end;
  58.  
  59. end.
  60.