Beispiel #1
0
 static void CheckBytes(string name1, SECTOR s1, string name2, SECTOR s2)
 {
     if (!Compare(s1.RawBytes, s2.RawBytes))
     {
         throw new Exception($"Sectors {name1} and {name2} are not equal");
     }
 }
Beispiel #2
0
 static void CheckSectorBytes(SECTOR lhs, SECTOR rhs)
 {
     if (!Compare(lhs.RawBytes, rhs.RawBytes))
     {
         Console.WriteLine($"{lhs.Type.ToString()} sectors are not equal!");
     }
     else
     {
         Console.WriteLine($"{lhs.Type.ToString()} sectors are equal!");
     }
 }
Beispiel #3
0
        public int[] GetNextFreeSectors(int count)
        {
            //array for our free sectors...
            int[] freeSectors = new int[count];

            //search fof free sectors...
            for (int i = 0; i < mDisk.SectorCount; i++)
            {
                byte[] raw = mDisk.ReadSector(i);
                if (SECTOR.GetTypeFromBytes(raw) == SECTOR.SectorType.FREE_SECTOR)
                {
                    //add the free sector
                    freeSectors[--count] = i;

                    //enough?
                    if (count <= 0)
                    {
                        return(freeSectors);
                    }
                }
            }
            throw new Exception("Disk is full!");
        }