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 |
|
Thomas Harte
|
b180f04c87
|
Okay, so this file format wasn't what I hoped it was. It's another hack. Lots of work to do.
|
2016-11-26 10:19:10 +08:00 |
|
Thomas Harte
|
7613755f94
|
Fixed addressing: types are 1 and 2, not 0 and 1.
|
2016-11-26 10:13:12 +08:00 |
|
Thomas Harte
|
8499783b14
|
Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level.
|
2016-11-21 20:47:16 +08:00 |
|
Thomas Harte
|
31c2548804
|
Created a base class for the boilerplate fopen stuff, switched as many classes as possible to its use, switched to postfix underscores and non-camelCase names.
|
2016-11-21 20:14:09 +08:00 |
|
Thomas Harte
|
ca53fac732
|
Switched to assuming a single-sided disk, moved out magic constants.
|
2016-09-26 21:20:30 -04:00 |
|
Thomas Harte
|
572d5587d9
|
Made a first stab at enabling multi-disk machines and thereby obeying (some of) the Plus 3's status register.
|
2016-09-25 21:24:16 -04:00 |
|
Thomas Harte
|
9bbcbd1001
|
Renamed class, intending to turn a Disk::Drive into literally just that, and have a thing with a PLL that consumes events be a Controller .
|
2016-09-25 20:05:56 -04:00 |
|
Thomas Harte
|
523dbb9678
|
This'll do for getting the ADF into the machine.
|
2016-09-25 18:32:26 -04:00 |
|
Thomas Harte
|
de863719d0
|
Made a first attempt at Acorn ADFS support plus the start of a suitable analyser.
|
2016-09-25 17:46:11 -04:00 |
|
Thomas Harte
|
a9e65e9b7a
|
Tweaked disk side density, added call-outs to a WD1770 if the Electron had one (albeit without run_for_cycles yet as I need to figure out the clock rate), added a shell of the basic functions of the WD1770. No implementation yet.
|
2016-09-19 22:06:56 -04:00 |
|
Thomas Harte
|
64f2538b1f
|
Added CRC checking to DFS comprehension; fixed a bunch of places where I'd used Objective-C's #import rather than #include .
|
2016-09-19 08:16:06 -04:00 |
|
Thomas Harte
|
8a1b805d11
|
Fixed file offset calculation for single-sided images.
|
2016-09-19 07:34:10 -04:00 |
|
Thomas Harte
|
b1e7f2dfd0
|
There's no cache and no CRC checking yet, but this is probably a rough outline of an FM parser.
|
2016-09-18 22:03:06 -04:00 |
|
Thomas Harte
|
d1c861d3a5
|
That should be that, I hope.
|
2016-09-18 21:09:32 -04:00 |
|
Thomas Harte
|
02c9a82cb5
|
Edging towards SSD/DSD support. Hold on!
|
2016-09-18 19:32:08 -04:00 |
|
Thomas Harte
|
91cd7e143b
|
Started on the SSD/DSD support. Realised I had ommitted multiple head support from my disk class. Fixed that.
|
2016-09-18 19:21:02 -04:00 |
|
Thomas Harte
|
5409c8ec54
|
Switched PCMSegment s 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
|
d9aaf456f0
|
Adapted pervasively to MSB-first output. Which seems to be correct.
|
2016-09-18 18:46:58 -04:00 |
|
Thomas Harte
|
180c3df2d4
|
Calling it 'number theory' probably isn't accurate but extracted the CRC stuff and started using it for [M]FM encoding.
|
2016-09-18 18:33:26 -04:00 |
|
Thomas Harte
|
55a7418cbf
|
Parameterised to perform FM and MFM encodings, at least subject to CRCs still being missing.
|
2016-09-18 17:16:20 -04:00 |
|
Thomas Harte
|
22eed60d2b
|
Started sketching out basic MFM track encoding. Which possibly even means that the shifters don't need to be public?
|
2016-09-18 16:53:21 -04:00 |
|
Thomas Harte
|
0089c830c6
|
This possibly correctly encapsultes the lowest level of FM and MFM rules.
|
2016-09-18 14:17:06 -04:00 |
|
Thomas Harte
|
bcf91de7e9
|
Declared support for the Acorn disk files, started hammering out an encoder.
|
2016-09-18 13:35:54 -04:00 |
|
Thomas Harte
|
79ef38b123
|
Attempted to use the new get_cycles_until_next_event method to take some repetition outside of the PLL and drive event loops.
|
2016-09-17 22:02:38 -04:00 |
|
Thomas Harte
|
9d6dcb80a7
|
Started work on a GCR parser and the helper functions that lie behind that.
|
2016-09-13 21:53:36 -04:00 |
|
Thomas Harte
|
82c8459055
|
Minor tidying of namespace usage declarations.
|
2016-08-27 17:18:12 -04:00 |
|
Thomas Harte
|
56c0d70c1f
|
Gave disks their own namespace.
|
2016-08-27 17:15:09 -04:00 |
|
Thomas Harte
|
9d76cd9b60
|
Removed dead instance storage.
|
2016-08-04 21:41:12 -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
|
9af9b28baf
|
Made very first attempt at closing the loop on this. But it's time for work.
|
2016-08-03 08:16:23 -04:00 |
|
Thomas Harte
|
e15241dc3c
|
Added ability to query how long since the new interval was set to the timed event loop. Discovered that LCM will returning the net effect of the common factors only. Otherwise continued iterating towards time preservation.
|
2016-08-03 07:49:00 -04:00 |
|
Thomas Harte
|
a3a3486f54
|
Okay, it's becoming more apparent where the (very mild) complexity will be here. But started moving towards retaining rotation between tracks.
|
2016-08-03 07:33:26 -04:00 |
|
Thomas Harte
|
21f1fa37a4
|
Fixed Time addition, added accumulation of distance into track into the disk drive, added a short circuit for LCM.
|
2016-08-03 07:26:05 -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
|
d832e5e10d
|
Reduced 1540 PLL to running at 4Mhz. Which is possibly correct (?) Made minor change to avoid divide if possible.
|
2016-08-02 21:28:50 -04:00 |
|
Thomas Harte
|
bc10b3ee9a
|
It appears the problem is as simple as sectors being counted from zero.
|
2016-08-01 10:08:38 -04:00 |
|
Thomas Harte
|
f5e4ea3351
|
Some minor tidying, lots more of the caveman stuff as I try to determine what I'm doing wrong.
|
2016-08-01 09:43:08 -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
|
58297f1baf
|
Performed the basic metadata and routing for opening D64 files. Realised that I wasn't actually necessarily catching exceptions properly for all file opens, and fixed.
|
2016-08-01 07:09:15 -04:00 |
|