public fsMegaImage(AbstractDiskImage diskImage) : base(diskImage) { maxFiles = 64; LastUsableSector = 8192; sectorMap = new SectorMap(LastUsableSector + 1); }
public fsDos25(AbstractDiskImage diskImage) : base(diskImage) { SystemSectors = 14; LastUsableSector = 1024; TotalSectors = 1040; maxFiles = 64; sectorMap = new SectorMap(TotalSectors + 1); }
public fsDos20(AbstractDiskImage diskImage) : base(diskImage) { maxFiles = 64; LastUsableSector = 719; TotalSectors = 720; SystemSectors = 12; sectorMap = new SectorMap(TotalSectors + 1); }
public override void Format(bool clearData) { int i; byte[] sec = new byte[128]; //Clear sectors if (clearData) { for (i = 1; i <= diskImage.NumberOfSectors(); i++) { diskImage.ClearSector(i); } } // Create sector map sectorMap = new SectorMap(LastUsableSector + 1); sectorMap.ClearMap(); sectorMap[1] = SectorMap.SectorTypes.System; sectorMap[2] = SectorMap.SectorTypes.System; sectorMap[3] = SectorMap.SectorTypes.System; for (i = 351; i <= 368; i++) { sectorMap[i] = SectorMap.SectorTypes.System; } WriteSectorMap(); //Write VTOC header sec = diskImage.ReadSector(360); sec[0] = 7; sec[1] = (8171 & 0xff); sec[2] = (8171 & 0xff00) >> 8; sec[3] = sec[1]; sec[4] = sec[2]; diskImage.WriteSector(360, sec); }
/// <summary> /// Create a map of sector usage based on the sector chain for each file on the disk. /// </summary> /// <returns></returns> public SectorMap TraceFiles() { var map = new SectorMap(LastUsableSector + 1); foreach (DirectoryEntry di in directory) { if (!di.EntryInUse || di.Deleted || di.OpenForOutput) continue; var fi = GetFileInfo(di.FileName); foreach (var fs in fi.SectorList) { map[fs.Sector] = SectorMap.SectorTypes.Used; } } return map; }