Files
fluxengine/arch/ibm/ibm.proto
2024-10-19 16:58:44 +02:00

44 lines
2.3 KiB
Protocol Buffer

syntax = "proto2";
import "lib/config/common.proto";
message IbmDecoderProto {
// Next: 11
message TrackdataProto {
optional int32 track = 7 [(help) = "if set, the format applies only to this track"];
optional int32 head = 8 [(help) = "if set, the format applies only to this head"];
optional bool ignore_side_byte = 2 [default = false, (help) = "ignore side byte in sector header"];
optional bool ignore_track_byte = 6 [default = false, (help) = "ignore track byte in sector header"];
optional bool invert_side_byte = 4 [default = false, (help) = "invert the side byte in the sector header"];
repeated int32 ignore_sector = 10 [(help) = "sectors with these IDs will not be read"];
}
repeated TrackdataProto trackdata = 1;
}
message IbmEncoderProto {
// Next: 20
message TrackdataProto {
optional int32 track = 15 [(help) = "if set, the format applies only to this track"];
optional int32 head = 16 [(help) = "if set, the format applies only to this head"];
optional bool emit_iam = 3 [default=true, (help) = "whether to emit an IAM record"];
optional double target_clock_period_us = 5 [default=4, (help) = "data clock rate on target disk"];
optional bool use_fm = 6 [default=false, (help) = "whether to use FM encoding rather than MFM"];
optional int32 idam_byte = 7 [default=0x5554, (help) = "16-bit raw bit pattern of IDAM byte"];
optional int32 dam_byte = 8 [default=0x5545, (help) = "16-bit raw bit pattern of DAM byte"];
optional int32 gap0 = 9 [default=80, (help) = "size of gap 1 (the post-index gap)"];
optional int32 gap1 = 10 [default=50, (help) = "size of gap 2 (the post-ID gap)"];
optional int32 gap2 = 11 [default=22, (help) = "size of gap 3 (the pre-data gap)"];
optional int32 gap3 = 12 [default=80, (help) = "size of gap 4 (the post-data or format gap)"];
optional bool invert_side_byte = 19 [default=false, (help) = "invert the side byte before writing"];
optional int32 gap_fill_byte = 18 [default=0x9254, (help) = "16-bit raw bit pattern of gap fill byte"];
optional double target_rotational_period_ms = 1 [default=200, (help) = "rotational period of target disk"];
}
repeated TrackdataProto trackdata = 1;
}