diff --git a/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal.xcscheme b/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal.xcscheme index 47f9c7286..1465a4f62 100644 --- a/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal.xcscheme +++ b/OSBindings/Mac/Clock Signal.xcodeproj/xcshareddata/xcschemes/Clock Signal.xcscheme @@ -67,7 +67,7 @@ result; result.reserve(size_t(end - begin) + prefix.size()); - // Encode as MFM. PCMSegment segment; std::unique_ptr encoder = Storage::Encodings::MFM::GetMFMEncoder(segment.data); + + // Encode prefix. + for(auto c: prefix) { + encoder->add_byte(c); + } + + // Encode body. while(begin != end) { encoder->add_byte(*begin); ++begin; @@ -69,9 +75,6 @@ class TrackConstructor { Shifter shifter; shifter.set_should_obey_syncs(true); - // Add the prefix. - std::copy(prefix.begin(), prefix.end(), std::back_inserter(result)); - // Add whatever comes from the track. for(auto bit: segment.data) { shifter.add_input_bit(int(bit)); @@ -243,6 +246,10 @@ std::shared_ptr<::Storage::Disk::Track> STX::get_track_at_position(::Storage::Di const int track_index = (address.head * 0x80) + address.position.as_int(); if(!offset_by_track_[track_index]) return nullptr; + if(track_index == 41) { + printf("Y\n"); + } else printf("N\n"); + // Seek to the track (skipping the record size field). file_.seek(offset_by_track_[track_index] + 4, SEEK_SET);