Virtu/Virtu/DiskNib.cs

36 lines
985 B
C#

using System;
using System.IO;
using Jellyfish.Library;
namespace Jellyfish.Virtu
{
public sealed class DiskNib : Disk525
{
public DiskNib(string name, byte[] data, bool isWriteProtected) :
base(name, data, isWriteProtected)
{
}
public DiskNib(string name, Stream stream, bool isWriteProtected) :
base(name, new byte[TrackCount * TrackSize], isWriteProtected)
{
if (stream == null)
{
throw new ArgumentNullException("stream");
}
stream.ReadBlock(Data);
}
public override void ReadTrack(int number, int fraction, byte[] buffer)
{
Buffer.BlockCopy(Data, (number / 2) * TrackSize, buffer, 0, TrackSize);
}
public override void WriteTrack(int number, int fraction, byte[] buffer)
{
Buffer.BlockCopy(buffer, 0, Data, (number / 2) * TrackSize, TrackSize);
}
}
}