Add support for negative sectors to read and write sector calls in images.

This commit is contained in:
2025-10-23 03:07:43 +01:00
parent 0c19fe1b11
commit 69738f5f1a
289 changed files with 2676 additions and 1352 deletions

View File

@@ -401,7 +401,7 @@ public sealed partial class Sidecar
if(sectors - doneSectors >= sectorsToRead)
{
errno = image.ReadSectors(doneSectors, sectorsToRead, out sector, out _);
errno = image.ReadSectors(doneSectors, false, sectorsToRead, out sector, out _);
if(errno != ErrorNumber.NoError)
{
@@ -416,7 +416,7 @@ public sealed partial class Sidecar
}
else
{
errno = image.ReadSectors(doneSectors, (uint)(sectors - doneSectors), out sector, out _);
errno = image.ReadSectors(doneSectors, false, (uint)(sectors - doneSectors), out sector, out _);
if(errno != ErrorNumber.NoError)
{
@@ -501,6 +501,7 @@ public sealed partial class Sidecar
if(sectors - doneSectors >= sectorsToRead)
{
errno = image.ReadSectors(tapePartition.FirstBlock + doneSectors,
false,
sectorsToRead,
out sector,
out _);
@@ -522,6 +523,7 @@ public sealed partial class Sidecar
else
{
errno = image.ReadSectors(tapePartition.FirstBlock + doneSectors,
false,
(uint)(sectors - doneSectors),
out sector,
out _);
@@ -605,6 +607,7 @@ public sealed partial class Sidecar
if(sectors - doneSectors >= sectorsToRead)
{
errno = image.ReadSectors(tapeFile.FirstBlock + doneSectors,
false,
sectorsToRead,
out sector,
out _);
@@ -629,6 +632,7 @@ public sealed partial class Sidecar
else
{
errno = image.ReadSectors(tapeFile.FirstBlock + doneSectors,
false,
(uint)(sectors - doneSectors),
out sector,
out _);

View File

@@ -663,11 +663,11 @@ public sealed partial class Sidecar
xmlTrk.FileSystemInformation.Add(metadataPartition);
}
errno = image.ReadSectorTag(trk.Sequence, SectorTagType.CdTrackIsrc, out byte[] isrcData);
errno = image.ReadSectorTag(trk.Sequence, false, SectorTagType.CdTrackIsrc, out byte[] isrcData);
if(errno == ErrorNumber.NoError) xmlTrk.ISRC = Encoding.UTF8.GetString(isrcData);
errno = image.ReadSectorTag(trk.Sequence, SectorTagType.CdTrackFlags, out byte[] flagsData);
errno = image.ReadSectorTag(trk.Sequence, false, SectorTagType.CdTrackFlags, out byte[] flagsData);
if(errno == ErrorNumber.NoError)
{