Files
fluxengine/lib/fluxsink/fluxsink.proto
Thomas Daede 634be4ae51 Fix SCP writer to always write complete revolutions.
There were a couple of problems that needed to be fixed:

- Fluxmaps can be produced with zero index pulses by encoders.
This is somewhat ambiguous but it's assumed that this means there
is exactly one revolution.

- The SCP unindexed mode wasn't properly supported, as it should
create equal-length revolutions not aligned to indexes. However,
fluxmaps don't contain any information on rotation speed. Therefore,
drop the ability to create unindexed SCPs and slightly change the
meaning of the option to not include pre-index data.

- Real flux reads can potentially produce duplicate index pulses.
Avoid creating zero-length revs.

- Fix off-by-one error for rev count.
2021-12-06 07:41:16 -08:00

42 lines
1.5 KiB
Protocol Buffer

syntax = "proto2";
import "lib/common.proto";
message HardwareFluxSinkProto {
optional IndexMode index_mode = 1 [default = INDEXMODE_DRIVE, (help) = "index pulse source"];
optional int32 hard_sector_count = 2 [(help) = "number of hard sectors on the disk"];
optional bool high_density = 3 [default = true, (help) = "set if this is a high density disk"];
optional int32 drive = 4 [default = 0, (help) = "which drive to write to (0 or 1)"];
}
message AuFluxSinkProto {
optional string directory = 1 [default = "aufiles", (help) = "directory to write .au files to"];
optional bool index_markers = 2 [default = true, (help) = "show index markers in the right-hand channel"];
}
message VcdFluxSinkProto {
optional string directory = 1 [default = "vcdfiles", (help) = "directory to write .vcd files to"];
}
message ScpFluxSinkProto {
optional string filename = 2 [default = "flux.scp", (help) = ".scp file to write to"];
optional bool align_with_index = 3 [default = false, (help) = "discard data before the first index pulse"];
optional int32 type_byte = 4 [default = 0xff, (help) = "set the SCP disk type byte"];
}
message Fl2FluxSinkProto {
optional string filename = 1 [default = "flux.fl2", (help) = ".fl2 file to write to"];
}
message FluxSinkProto {
oneof dest {
string fluxfile = 1 [(help) = "name of destination flux file"];
HardwareFluxSinkProto drive = 2;
AuFluxSinkProto au = 3;
VcdFluxSinkProto vcd = 4;
ScpFluxSinkProto scp = 5;
Fl2FluxSinkProto fl2 = 6;
}
}