public static bool Mount(ushort unit, string fileName, DiskMode mode) { Debug.Assert(unit < DiskIO.MaxUnits); DiskIO.Unmount(unit); FileStream fd; try { fd = new FileStream(fileName, FileMode.Open, mode == DiskMode.ReadWrite ? FileAccess.ReadWrite : FileAccess.Read); } catch (Exception e) { Console.Write(e); return(false); } var u = new Unit { Fd = fd, Size = (uint)fd.Length, ReadOnly = mode == DiskMode.ReadOnly }; if (fileName.EndsWith(".dsk")) { u.Translate = DiskIO.dskTable; } if (mode == DiskMode.Forget) { u.Data = new byte[u.Size]; try { fd.Read(u.Data, 0, (int)u.Size); } catch (Exception e) { Console.Write(e); u.Data = null; return(false); } finally { fd.Close(); u.Fd = null; } } DiskIO.unitTable[unit] = u; return(true); }
/// <inheritdoc /> public override string ToString() { return(DiskMode.ToString()); }
/// <inheritdoc /> public override int GetHashCode() { return(DiskMode.GetHashCode()); }