MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / write_sector

Function write_sector

arch/victor9k/encoder.cc:107–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107static void write_sector(std::vector<bool>& bits,
108 unsigned& cursor,
109 const Victor9kEncoderProto::TrackdataProto& trackdata,
110 const Sector& sector)
111{
112 write_one_bits(bits, cursor, trackdata.pre_header_sync_bits());
113 write_bits(bits, cursor, VICTOR9K_SECTOR_RECORD, 10);
114
115 uint8_t encodedTrack = sector.logicalCylinder | (sector.logicalHead << 7);
116 uint8_t encodedSector = sector.logicalSector;
117 write_bytes(bits,
118 cursor,
119 Bytes{
120 encodedTrack,
121 encodedSector,
122 (uint8_t)(encodedTrack + encodedSector),
123 });
124
125 write_gap(bits, cursor, trackdata.post_header_gap_bits());
126
127 write_one_bits(bits, cursor, trackdata.pre_data_sync_bits());
128 write_bits(bits, cursor, VICTOR9K_DATA_RECORD, 10);
129
130 write_bytes(bits, cursor, sector.data);
131
132 Bytes checksum(2);
133 checksum.writer().write_le16(sumBytes(sector.data));
134 write_bytes(bits, cursor, checksum);
135 write_gap(bits, cursor, trackdata.post_data_gap_bits());
136}
137
138class Victor9kEncoder : public Encoder
139{

Callers 1

encodeMethod · 0.70

Calls 6

write_one_bitsFunction · 0.85
write_bytesFunction · 0.85
write_gapFunction · 0.85
sumBytesFunction · 0.85
writerMethod · 0.80
write_bitsFunction · 0.70

Tested by

no test coverage detected