1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-19 23:32:28 +00:00
Commit Graph

18 Commits

Author SHA1 Message Date
Thomas Harte
71dbd78cf2 If asynchronous background processing is to occur on tracks then, given that they inherently have state, they'll need to be copyable, and ideally 'cheaply' (though it's not too great a priority). So started implementing appropriate copy constructors. Also introduced an extra level of indirection to PCMSegmentEventSource so that it can copy itself without copying the underlying PCMSegment, which is 95% of the heft of a track in all currently-implemented cases. 2016-12-30 14:23:26 -05:00
Thomas Harte
e081f224b6 Implemented a very basic PCMTrack test, nevertheless revealing an oversight in PCMSegmentEventSource related to improperly counting to the index hole if the final bit is set. Took that as a message that I should comment and document the event source. 2016-12-18 22:53:24 -05:00
Thomas Harte
a6354ebb01 Reimplemented PCMTrack to use PCMSegmentEventSource, eliminating code duplication. 2016-12-18 21:37:05 -05:00
Thomas Harte
f1a08b7ab5 Opted to pass times by reference and added enough to PCMPatchedTrack that it could start being used by the disk controller, albeit that it doesn't work. 2016-12-17 16:26:45 -05:00
Thomas Harte
0dc2aa6454 Commuted all of 'Storage' other than 'Tape' to postfix underscores. 2016-12-03 11:59:28 -05:00
Thomas Harte
5409c8ec54 Switched PCMSegments to std::vector; ensured generated [M]FM tracks are correctly sized, thereby making sure the individual flux windows will be correctly sized. 2016-09-18 18:56:35 -04:00
Thomas Harte
56c0d70c1f Gave disks their own namespace. 2016-08-27 17:15:09 -04:00
Thomas Harte
3e90b85ff8 Made an attempt to insert proper conversions to/from rotational speed. The Time class is now really turning into a full-on quotient. Might need refactoring. 2016-08-04 21:36:39 -04:00
Thomas Harte
e57ab1025d Fixed location calculation, up to a point. 2016-08-03 22:33:00 -04:00
Thomas Harte
30f8b6baa4 Made an attempt to add the necessary extension to Track, with a concrete implementation in PCMTrack, to support time-based seeking, the intended mechanism for not magically spinning the disk back to the index hole upon every head step. 2016-08-03 06:59:45 -04:00
Thomas Harte
a00f9adba3 Made a first attempt at D64 support. Made an error somewhere but this should be 90% of it. 2016-08-01 08:41:16 -04:00
Thomas Harte
198fbbedc7 Reeled back all appropriate pieces of caveman debugging. 2016-07-31 13:42:34 -04:00
Thomas Harte
2332f72875 Formalised clock-rate multiplication within disk drives, discovered that the stepper didn't have ideal behaviour for my timed event loop and hence nailed down the semantics a ilttle more.
(obiter: the 1540 now appears to discern the correct sequence of bits. Framing is off in my test printfs but that's neither here nor there).
2016-07-31 13:32:30 -04:00
Thomas Harte
6ee784a893 Increased logging; discovered I was packing events together too closely. Now getting some zeros. 2016-07-30 04:30:55 -04:00
Thomas Harte
fead524eb5 Attempted to give the PLL a litte extra leeway, and fixed PCMTrack length test. 2016-07-29 18:52:50 -04:00
Thomas Harte
e55db0cfe8 Made an attempt to eliminate creeping tape processing accuracy misses, which implied factoring out the GCM and LCD functions, which I then felt didn't really amount to signal processing. 2016-07-29 05:19:01 -04:00
Thomas Harte
0aa90b943b Switched to specifying bit length as a quotient for the purposes of a PCMSegment and verified that I had the logic for picking a Commodore time zone backwards: bigger numbers are faster, not slower.
Started sketching out a DiskDrive class.
2016-07-15 06:51:11 -04:00
Thomas Harte
1e9eedc314 Factored out the PCM track since it's going to be a useful construct for almost every file format. Documented it a little better. 2016-07-10 18:36:52 -04:00