From bb5928209bc56f583e919f70e5959e29709ff485 Mon Sep 17 00:00:00 2001 From: Leeland Heins Date: Thu, 17 Jan 2019 14:48:25 -0600 Subject: [PATCH] Bug fixes. --- DOS33.pm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/DOS33.pm b/DOS33.pm index 55e37e4..ac57a1e 100644 --- a/DOS33.pm +++ b/DOS33.pm @@ -339,6 +339,21 @@ sub get_vtoc_sec { return 0; } +sub write_vtoc { + my ($trk_num_1st_cat_sec, $sec_num_1st_cat_sec, $rel_num_dos, $dsk_vol_num, $max_tslist_secs, $last_trk_secs_alloc, $dir_trk_alloc, $num_trks_dsk, $num_secs_dsk, $num_bytes_sec, $bit_map_free_secs) = @_; + + # Re-pack vtoc sector + my $buf = pack $vtoc_fmt_tmpl, ($trk_num_1st_cat_sec, $sec_num_1st_cat_sec, $rel_num_dos, $dsk_vol_num, $max_tslist_secs, $last_trk_secs_alloc, $dir_trk_alloc, $num_trks_dsk, $num_secs_dsk, $num_bytes_sec, $bit_map_free_secs); + + # Write back vtoc sector. + #if (wts($dskfile, $vtoc_trk, $vtoc_sec, $buf)) { + # return 1; + #} else { + # print "Failed to write catalog sector $cat_trk $cat_sec!\n"; + # return 0; + #} +} + # # Parse a sector of a track/sector list # @@ -663,8 +678,10 @@ sub delete_file { $bit_map_free_secs = pack $tmpl, @flds; - # Write vtoc back -##FIXME + # Write back vtoc + if (!write_vtoc($trk_num_1st_cat_sec, $sec_num_1st_cat_sec, $rel_num_dos, $dsk_vol_num, $max_tslist_secs, $last_trk_secs_alloc, $dir_trk_alloc, $num_trks_dsk, $num_secs_dsk, $num_bytes_sec, $bit_map_free_secs)) { + print "I/O ERROR!\n"; + } } }