diff --git a/Interfaces/IFluxImage.cs b/Interfaces/IFluxImage.cs
index 21a5e12c0..341f62f0a 100644
--- a/Interfaces/IFluxImage.cs
+++ b/Interfaces/IFluxImage.cs
@@ -115,4 +115,13 @@ public interface IFluxImage : IBaseImage
/// Which capture to read. See also
/// Buffer to store the data in
ErrorNumber ReadFluxDataCapture(uint head, ushort track, byte subTrack, uint captureIndex, out byte[] buffer);
+
+ ///
+ /// An image may have tracks split into sub-steps. This returns the highest sub-step index for the track.
+ ///
+ /// Error number
+ /// Physical head (0-based)
+ /// Physical track (position of the heads over the floppy media, 0-based)
+ /// The number of captures
+ ErrorNumber SubTrackLength(uint head, ushort track, out byte length);
}
\ No newline at end of file
diff --git a/Interfaces/IWritableFluxImage.cs b/Interfaces/IWritableFluxImage.cs
index 6b8da1e73..0ad95ce6a 100644
--- a/Interfaces/IWritableFluxImage.cs
+++ b/Interfaces/IWritableFluxImage.cs
@@ -46,15 +46,16 @@ public interface IWritableFluxImage : IFluxImage, IWritableImage
{
/// Writes a flux capture.
/// Error number
- /// The capture's resolution (sample rate) in picoseconds
- /// Flux representation of the index signal
- /// Flux representation of the data signal
+ /// The index capture's resolution (sample rate) in picoseconds
+ /// The capture's resolution (sample rate) in picoseconds
+ /// Flux representation of the index signal
+ /// Flux representation of the data signal
/// Physical head (0-based)
/// Physical track (position of the heads over the floppy media, 0-based)
/// Physical sub-step of track (e.g. half-track)
/// Which capture slot to write to. See also
- ErrorNumber WriteFluxCapture(ulong resolution, byte[] index, byte[] data, uint head, ushort track, byte subTrack,
- uint captureIndex);
+ ErrorNumber WriteFluxCapture(ulong indexResolution, ulong dataResolution, byte[] indexBuffer, byte[] dataBuffer,
+ uint head, ushort track, byte subTrack, uint captureIndex);
/// Writes a capture's index stream.
/// Error number