Example #1
0
        /// <summary>
        /// Creates a new virtual disk image file and returns a Disk object associated with it.  The file name extension determines the
        /// type of Disk object actually returned.
        /// </summary>
        /// <param name="filename">File name of virtual disk image.</param>
        /// <param name="heads">Number of disk heads.</param>
        /// <param name="tracks">Number of disk tracks per head.</param>
        /// <param name="sectors">Number of disk sectors per track and per head.</param>
        /// <param name="sectorsize">The size of each sector measured in bytes.</param>
        /// <returns>A Disk object associated with the given file.</returns>
        public static IDisk CreateDisk(string filename, int heads, int tracks, int sectors, int sectorsize)
        {
            filename = filename.ToLowerInvariant();
            if (filename.EndsWith(".vdk"))
            {
                return(VdkDisk.Create(new FileStream(filename, FileMode.Create), heads, tracks, sectors));
            }
            if (filename.EndsWith(".dsk"))
            {
                return(JvcDisk.Create(new FileStream(filename, FileMode.Create), heads, tracks, sectors, sectorsize));
            }
            if (filename.EndsWith(".hfe"))
            {
                return(HfeDisk.Create(new FileStream(filename, FileMode.Create), heads, tracks, sectors, sectorsize));
            }
            if (filename.EndsWith(".dmk"))
            {
                return(DmkDisk.Create(new FileStream(filename, FileMode.Create), heads, tracks, sectors, sectorsize));
            }

            return(null);
        }