public void BuildDynamic() { DiskBuilder builder = new DiskBuilder(); builder.DiskType = DiskCreateType.VmfsSparse; builder.Content = diskContent; DiskImageFileSpecification[] fileSpecs = builder.Build("foo"); Assert.Equal(2, fileSpecs.Length); Assert.Equal("foo.vmdk", fileSpecs[0].Name); DiskBuilderFileSystem dbfs = new DiskBuilderFileSystem(fileSpecs); using (Disk disk = new Disk(dbfs, "foo.vmdk", FileAccess.Read)) { for (int i = 0; i < 8; i += 1024 * 1024) { disk.Content.Position = i; Assert.Equal(i, disk.Content.ReadByte()); } disk.Content.Position = 15 * 1024 * 1024; Assert.Equal(0xFF, disk.Content.ReadByte()); } }
private void InitMedia(byte[] rom) { switch (C64FormatFinder.GetFormat(rom)) { case C64Format.D64: var d64 = D64.Read(rom); if (d64 != null) { _board.DiskDrive.InsertMedia(d64); } break; case C64Format.G64: var g64 = G64.Read(rom); if (g64 != null) { _board.DiskDrive.InsertMedia(g64); } break; case C64Format.CRT: var cart = CartridgeDevice.Load(rom); if (cart != null) { _board.CartPort.Connect(cart); } break; case C64Format.TAP: var tape = Tape.Load(rom); if (tape != null) { _board.TapeDrive.Insert(tape); } break; case C64Format.Unknown: var prgDisk = new DiskBuilder { Entries = new List <DiskBuilder.Entry> { new DiskBuilder.Entry { Closed = true, Data = rom, Locked = false, Name = "PRG", RecordLength = 0, Type = DiskBuilder.FileType.Program } } }.Build(); if (prgDisk != null) { _board.DiskDrive.InsertMedia(prgDisk); } break; } }
public void BuildEmptyDynamic() { DiskBuilder builder = new DiskBuilder(); builder.DiskType = DiskType.Dynamic; builder.Content = new SparseMemoryStream(); DiskImageFileSpecification[] fileSpecs = builder.Build("foo"); Assert.Equal(1, fileSpecs.Length); Assert.Equal("foo.vhdx", fileSpecs[0].Name); using (Disk disk = new Disk(fileSpecs[0].OpenStream(), Ownership.Dispose)) { Assert.Equal(0, disk.Content.Length); } }
public void BuildDynamic() { DiskBuilder builder = new DiskBuilder(); builder.DiskType = DiskType.Dynamic; builder.Content = diskContent; DiskImageFileSpecification[] fileSpecs = builder.Build("foo"); Assert.Equal(1, fileSpecs.Length); Assert.Equal("foo.vhdx", fileSpecs[0].Name); using (Disk disk = new Disk(fileSpecs[0].OpenStream(), Ownership.Dispose)) { for (int i = 0; i < 8; ++i) { disk.Content.Position = i * 1024L * 1024; Assert.Equal(i, disk.Content.ReadByte()); } disk.Content.Position = 150 * 1024 * 1024; Assert.Equal(0xFF, disk.Content.ReadByte()); } }