home *** CD-ROM | disk | FTP | other *** search
- program readfat;
-
- var
-
- fat_fill : array[0..4095] of byte;
- drive : byte;
- cluster : integer;
- fat_cluster : integer;
- fat_offset : integer;
- free_clusters : integer;
- total_clusters: integer;
- cl_size : integer;
- year,day : integer;
- hour,min,
- month,date : byte;
-
-
- {$i biosread.inc }
- {$i getfree.inc}
- {$i getdate.inc}
- {$i dumphex.inc}
-
-
-
- begin
-
- getdate ( year,month,date,hour,min );
- writeln( year:5,month:4,date:4,' ',hour:3,min:3);
- get_free_space ( free_clusters,total_clusters,cl_size,3);
- writeln (' free space =',free_clusters:6,total_clusters:6,cl_size:6);
- drive := $80;
- biosread(fat_fill,drive,0,0,3,8);
-
- cluster := 3;
-
- while cluster <> 2 do
- begin
- write('Enter cluster: ');
- readln(cluster);
-
- fat_offset := (cluster*3) div 2;
-
- dumphex(fat_fill[fat_offset]);
- dumphex(fat_fill[fat_offset+1]);
-
- if cluster mod 2 = 0 then
-
- fat_cluster := fat_fill[fat_offset] +
- ( (fat_fill[fat_offset+1] mod 16 ) * 256)
-
- else
- fat_cluster := (fat_fill[fat_offset] shr 4 ) +
- (fat_fill[fat_offset+1] * 16);
-
- dumphex(fat_cluster);
- writeln( 'Next cluster is : ',fat_cluster);
- end;
-
- end.