private static void CopySysFiles(PC98FatFileSystem fs, PC98FatFileSystem newfs, string[] sysFiles) { foreach (var file in sysFiles) { var compressedFile = file.Substring(0, file.Length - 1) + "_"; if (fs.FileExists(file)) { using (var dst = newfs.OpenFile(file, FileMode.CreateNew)) { using (var src = fs.OpenFile(file, FileMode.Open)) { src.CopyTo(dst); } } } else if (fs.FileExists(compressedFile)) { using (var dst = newfs.OpenFile(file, FileMode.CreateNew)) { using (var src = fs.OpenFile(compressedFile, FileMode.Open)) { UnpackMSLZ(src, dst); } } } else { throw new FileNotFoundException($"Can't find file {file} in the system disk"); } } }
public static bool CheckSysDisk(string file) { using (var disk = Disk.OpenDisk(file, FileAccess.Read)) { using (var fs = new PC98FatFileSystem(disk.Content)) { if (fs.FileExists(@"\HDFORMAT.EXE") && fs.FileExists(@"\MSDOS.SYS")) { return(true); } } } return(false); }