Thomas Harte
|
acc35885cd
|
Attempted to reduce track invalidations.
|
2016-12-25 20:38:25 -05:00 |
|
Thomas Harte
|
beaa868079
|
Factored the MFM parser out into encodings.
|
2016-12-25 20:00:57 -05:00 |
|
Thomas Harte
|
1349e85d83
|
[Mostly] fixed track write-back.
|
2016-12-25 19:19:22 -05:00 |
|
Thomas Harte
|
007c13ec16
|
Fixed: cycles_per_bit_ isn't a function of the rotational multiplier, it's absolute. Also made sure that exactly hitting the end of a bit counts.
|
2016-12-25 16:35:39 -05:00 |
|
Thomas Harte
|
98be6ede45
|
Shuffled a little to reduce risk of overflow, ensured writing is a loop, still seem to be writing too quickly for some reason.
|
2016-12-25 16:13:05 -05:00 |
|
Thomas Harte
|
d2ad2c756e
|
Added enough shovelling to write rubbish for an entire sector.
|
2016-12-25 15:46:49 -05:00 |
|
Thomas Harte
|
ec55a25620
|
It makes sense to simplify these ahead of time.
|
2016-12-25 12:32:25 -05:00 |
|
Thomas Harte
|
aceb7e3b6b
|
Started implementing write sector on the 1770, immediately deciding it would be useful to have a callback for end-of-queued-data-written from disk controller. So had a go at implementing that, naively. More investigation required.
|
2016-12-25 12:31:38 -05:00 |
|
Thomas Harte
|
901f19f89c
|
Added enough stuff that SSDs attached to a 1770 will now reach the entry point for writing.
|
2016-12-25 09:46:12 -05:00 |
|
Thomas Harte
|
9d555c4a02
|
Let's try just declining to pump the PLL while in write mode. Added documentation to explain.
|
2016-12-25 09:19:18 -05:00 |
|
Thomas Harte
|
b57038edc5
|
Actually, at least index holes will still be receivable while writing, so this wasn't entirely correct. Probably best to leave it in.
|
2016-12-25 09:16:09 -05:00 |
|
Thomas Harte
|
af69b21033
|
This is almost complete, except that it doesn't act appropriately if some bits are written but not enough to cover the entire writing period.
|
2016-12-24 22:51:26 -05:00 |
|
Thomas Harte
|
f601d796f5
|
Added documentation.
|
2016-12-24 22:37:20 -05:00 |
|
Thomas Harte
|
6e94d0c19f
|
Extended Storage::Disk::Disk to permit write-back of modified tracks, exposed some interface via Storage::Disk::Drive .
|
2016-12-24 22:11:31 -05:00 |
|
Thomas Harte
|
7f303cfceb
|
Continued the baby steps.
|
2016-12-24 21:54:43 -05:00 |
|
Thomas Harte
|
afc6f4129c
|
Withdrew unused tally.
|
2016-12-24 21:47:57 -05:00 |
|
Thomas Harte
|
1e416d4af0
|
Withdrew now-unused and never-implemented API from TimedEventLoop , and the redundant track time count from DiskController .
|
2016-12-24 21:02:10 -05:00 |
|
Thomas Harte
|
bedea48d03
|
This is a much better way of dealing with being partway into an incoming event. Subject to eliminating overruns, of course.
|
2016-12-24 20:54:27 -05:00 |
|
Thomas Harte
|
4cb17143ef
|
Messing around trying to lock down timing precisely. Which includes formal initial conditions.
|
2016-12-24 15:18:46 -05:00 |
|
Thomas Harte
|
1e970a9772
|
Started stepping slowly towards allowing writing on the disk controller, taking the opportunity to introduce self-simplifying behaviour to Storage::Time.
|
2016-12-24 13:07:23 -05:00 |
|
Thomas Harte
|
e4e0347638
|
Attempted to consolidate some of the repetition.
|
2016-12-21 22:17:00 -05:00 |
|
Thomas Harte
|
03579f33f1
|
Fixed multi-coverage insertion, via an appropriate test.
|
2016-12-20 21:38:32 -05:00 |
|
Thomas Harte
|
7eca910cc5
|
Fixed insertion location finding logic, working on the relevant test.
|
2016-12-20 21:14:05 -05:00 |
|
Thomas Harte
|
823ab9bc34
|
Completed initial non-trivial test, fixing revealed errors.
|
2016-12-20 19:15:36 -05:00 |
|
Thomas Harte
|
5a508ea0df
|
Attempted properly to cover the exactly-equal starts and ends cases, and to improve meaning.
|
2016-12-20 18:32:49 -05:00 |
|
Thomas Harte
|
63d861a2f3
|
Switched from C-in-the-brain manual offset counting to using iterators like an ordinary C++ person.
|
2016-12-20 18:17:54 -05:00 |
|
Thomas Harte
|
6f17076003
|
Switched to much more logical shared_ptr ownership of PCMSegmentEventSource s by Period s.
|
2016-12-20 18:13:10 -05:00 |
|
Thomas Harte
|
497b2ae4dd
|
Still by manual inspection: the time for the next event should be provisional until proven acceptable, allowing a proper measurement of time until exiting the period to be taken; also fixed the accumulated period error when seeking back onto the underlying track.
|
2016-12-20 08:14:16 -05:00 |
|
Thomas Harte
|
6bdde542c5
|
Edging towards functioning automatic tests, fixed right-period adjustment and slightly decreased searching cost while in the process of adding a test.
|
2016-12-20 07:52:14 -05:00 |
|
Thomas Harte
|
ec624eaab1
|
Made an attempt fully to implement PCMPatchedTrack. Which now requires tests.
|
2016-12-20 07:30:57 -05:00 |
|
Thomas Harte
|
1ef1f6ec69
|
Attempted to implemnt seek_to and to finish add_segment . Started doing a little of get_next_event but ran out of time for the day.
|
2016-12-19 21:46:02 -05:00 |
|
Thomas Harte
|
8f937ceac8
|
Made an attempt to come up with a data structure that actually makes sense (though perhaps this is textbook list rather than vector stuff? I guess it depends on the frequency I expect inserts to occur versus reads) and to implement inserts. Though the Period s aren't yet honoured.
|
2016-12-19 07:42:43 -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
|
f9a5595dad
|
Added seeking tests, correcting such errors as uncovered.
|
2016-12-18 10:19:24 -05:00 |
|
Thomas Harte
|
3297f6d545
|
Made an attempt to implement seek_to on PCMSegmentEventSource , taking account of off-by-half counting.
|
2016-12-17 22:44:33 -05:00 |
|
Thomas Harte
|
3116a2cf4c
|
Realised I was actually testing PCMSegmentEventSource , not PCMSegment ; implemented a spread of tests; hence fixed PCMSegmentEventSource.
|
2016-12-17 21:47:13 -05:00 |
|
Thomas Harte
|
254cc41fd6
|
Made an attempt to separate and isolate the stuff of creating flux events from a PCMSegment , eventually to factor that out of PCMTrack and make it available also to PCMPatchedTrack .
|
2016-12-17 21:13:57 -05:00 |
|
Thomas Harte
|
313db75303
|
Ensured the patchable track owns its underlying track.
|
2016-12-17 18:17:22 -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
|
dc08a23ceb
|
This is going to be a slow walk, I think. This class attempts to be the scratchpad which will hold in-memory track modifications.
|
2016-12-16 19:20:38 -05:00 |
|
Thomas Harte
|
c4041b06a8
|
This'll do as a write interface, won't it?
|
2016-12-07 22:19:20 -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
|
81ee834530
|
As well as a bunch of logging, reinstated rotation position preservation across tracks.
|
2016-12-02 18:36:47 -05:00 |
|
Thomas Harte
|
93c573bfa9
|
Implemented missing status bits (other than the index hole), and a head loading delay for the Microdisc.
|
2016-12-01 21:13:16 -05:00 |
|
Thomas Harte
|
2222cb65d6
|
Split the status up into flags, assembled into a register upon demand. Attempted to implement some of the differences between the 1770/1772 and 1773/1793. Albeit with a motor fix still in place.
|
2016-11-30 22:26:02 -05:00 |
|
Thomas Harte
|
f44542c18c
|
Improved naming: this now explains what, not the mechanics of how.
|
2016-11-26 23:35:11 +08:00 |
|
Thomas Harte
|
5c8ecd3051
|
It probably needs a better name, but hastily implemented track caching at the Disk level.
|
2016-11-26 14:27:06 +08:00 |
|
Thomas Harte
|
2f86b07cfa
|
Added a parser for Oric-format MFM disks. Causing my first disk to load!
|
2016-11-26 13:40:10 +08:00 |
|
Thomas Harte
|
dcfdd73077
|
Switched to more conventional runtime polymorphism, also now allowing encoders (shifters as were) to be obtained, as a slightly lower-level interface than vector-of-sectors.
|
2016-11-26 13:39:20 +08:00 |
|