Thomas Harte
357137918d
Adds fuzzy but marking through the GetTrackWithSectors interface.
2020-01-19 21:41:10 -05:00
Thomas Harte
da3ee381f4
Attempts a full wiring up of fuzzy bits.
2020-01-19 21:20:21 -05:00
Thomas Harte
d27d14d2b0
Supplies fuzzy masks where specified.
2020-01-19 21:08:49 -05:00
Thomas Harte
b0326530d6
Allows fuzzy masks to be fed into the FM and MFM encoders.
2020-01-19 21:08:15 -05:00
Thomas Harte
c2bd5be51a
This seems to be the proper interpretation of speeds?
2020-01-19 20:42:51 -05:00
Thomas Harte
84f5feab70
Properly flags up overloads.
2020-01-19 20:37:54 -05:00
Thomas Harte
5391a699a4
Adds the ability for a PCMSegment to maintain 'fuzzy' (i.e. random) bits. Implements an LFSR for bit generation.
...
I'm not necessarily happy with the idea of just shoving in a [pseudo-]random number generator in rather than emulating the proper process underneath, but for now I throw my arms up.
2020-01-19 20:09:11 -05:00
Thomas Harte
f3f8345e5e
Corrects spelling mistake.
2020-01-19 20:05:52 -05:00
Thomas Harte
f34ddce28f
Adds support for STX speed zones.
2020-01-19 12:38:33 -05:00
Thomas Harte
50348c9fe7
Adds the ability to substitute a target during encoding.
2020-01-19 12:11:56 -05:00
Thomas Harte
d4be052e76
Switch to matching fragments.
2020-01-18 14:18:59 -05:00
Thomas Harte
229b7b36ed
Merge branch 'master' into ShifterSync
2020-01-18 13:38:56 -05:00
Thomas Harte
aeac6b5888
Allows the type of RDY signal to be specified.
2020-01-16 21:34:48 -05:00
Thomas Harte
99122efbbc
Adds a slight cool-down period on end-of-rotation.
...
Along with the corresponding inactive transition of the ready signal.
2020-01-15 23:29:52 -05:00
Thomas Harte
30e856b9e4
Renames motor_is_on_ to motor_input_is_on_ to start to disambiguate the two things.
2020-01-15 23:16:25 -05:00
Thomas Harte
6b08239199
Adapts slightly; it would seem that BD-DOS disks really fill up space.
2020-01-14 23:16:06 -05:00
Thomas Harte
ecb5807ec0
Enssures STX interprets sector sizes correctly.
2020-01-14 21:35:37 -05:00
Thomas Harte
942986aadc
Insures against badly-placed locations.
2020-01-13 22:49:12 -05:00
Thomas Harte
1f539822ee
Adds better support for WD-esque false sync, improves STX track patching.
2020-01-13 22:19:48 -05:00
Thomas Harte
fab35b360a
Ensure an encoder is created even if no sectors are placed.
2020-01-12 22:37:00 -05:00
Thomas Harte
b3b2e18c4b
Ensures head and track counts are reported accurately.
2020-01-12 22:23:34 -05:00
Thomas Harte
2d233b6358
Makes a more concrete attempt at track/sector combination.
2020-01-12 22:18:31 -05:00
Thomas Harte
83ed36eb08
Add missing #include.
2020-01-12 17:56:04 -05:00
Thomas Harte
89f4032ffc
Merge branch 'master' into STX2
2020-01-12 17:55:19 -05:00
Thomas Harte
514141f8c5
Eliminates the optionality of a DPLL receiver.
2020-01-12 17:45:02 -05:00
Thomas Harte
8e3a618619
Corrects Mac build, shrinks default history [back] to 3 slots.
2020-01-12 17:33:34 -05:00
Thomas Harte
6df6af09de
Remove dead .cpp.
2020-01-12 17:25:59 -05:00
Thomas Harte
f42655a0fc
Promote DigitalPhaseLockedLoop to a template, simplify to O(1) add_pulse.
2020-01-12 17:25:21 -05:00
Thomas Harte
f81a7f0faf
Ensures prefixes are MFM encoded and decoded.
2020-01-11 22:10:41 -05:00
Thomas Harte
2b4c924399
Makes an effort to locate address and data bodies within track.
...
"Not completely successful" would be the polite term.
2020-01-09 23:28:07 -05:00
Thomas Harte
64517a02b7
Adds code to deal with sector-free tracks.
2020-01-09 21:50:32 -05:00
Thomas Harte
b4befd57a9
Advances to being able to cope with STXs with no special features whatsoever.
...
Well, other than perhaps a broken data CRC. Fuzzy bits, timing differences and the stuff between sectors are all currently absent.
2020-01-09 21:03:01 -05:00
Thomas Harte
985b36da73
Starts towards STX support.
2020-01-07 23:21:32 -05:00
Thomas Harte
c0b5bfe726
Ensure no possible return without value.
2020-01-02 23:43:53 -05:00
Thomas Harte
54fe01b532
Fixed: the final track is inclusive, not exclusive.
2019-12-24 23:08:16 -05:00
Thomas Harte
f633cf4c3f
Adds a basic implementation of the non-instantaneous index pulse.
2019-12-24 21:05:17 -05:00
Thomas Harte
dfa6b11737
Adds responsibility for an ongoing index pulse to the drive.
2019-12-24 20:53:37 -05:00
Thomas Harte
adc2b77833
Enhances with constexpr
.
2019-12-24 18:53:50 -05:00
Thomas Harte
0dae608da5
Embraces std::make_[unique/shared] in place of .reset(new .
2019-12-23 21:31:46 -05:00
Thomas Harte
34a3790e11
Minor static_cast clean-ups.
2019-12-22 17:56:59 -05:00
Thomas Harte
274867579b
Deploys constexpr
as a stricter const
.
2019-12-22 00:22:17 -05:00
Thomas Harte
e9318efeb6
Switches to std::make_shared/make_unique in a bunch of applicable places.
...
No doubt many more similar improvements are available, these are just the ones that were easy to find.
2019-12-21 23:34:25 -05:00
Thomas Harte
416d68ab3a
Installs some additional safety guards.
2019-12-19 22:27:50 -05:00
Thomas Harte
797abae4b3
Compacts gaps when necessary to fit more sectors.
2019-12-19 19:36:19 -05:00
Thomas Harte
332f0d6167
Ensures MSAs are explicitly read-only.
2019-12-08 11:52:15 -05:00
Thomas Harte
9d07765823
Ensures proper precedence of * over %.
2019-11-14 23:19:31 -05:00
Thomas Harte
2c4f372872
Adds support for the .ST file format.
2019-11-12 23:23:14 -05:00
Thomas Harte
74be876d72
Corrects track count calculation for DSD disks.
2019-11-12 23:22:56 -05:00
Thomas Harte
e8e166eec5
Ensures no out-of-disk-bounds mirroring.
2019-11-12 23:22:25 -05:00
Thomas Harte
0204003680
Resolves GCC warnings.
2019-11-09 16:12:37 -05:00
Thomas Harte
0971bbeebe
Merge branch 'master' into AtariST
2019-11-05 23:24:26 -05:00
Thomas Harte
f3e2e88986
Update explanation of NIB processing.
2019-11-05 23:20:20 -05:00
Thomas Harte
46ec3510be
Fixed: ST sectors are numbered from 1, not 0.
2019-11-03 21:18:29 -05:00
Thomas Harte
1c154131f9
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
2019-10-29 22:36:29 -04:00
Thomas Harte
909685d87d
A drive with no disk is now happy to spin its motor.
...
It'll continue to produce index-hole events, which might not be accurate for 5.25" drives. Research to do.
2019-10-26 22:57:05 -04:00
Thomas Harte
c66c484c54
Removes unused includes.
2019-10-20 20:38:54 -04:00
Thomas Harte
345b32d6e3
Implements read-only MSA support.
2019-10-20 20:38:54 -04:00
Thomas Harte
8b397626bf
Adds a route through the static analyser to the Atari ST.
2019-10-20 20:38:54 -04:00
Thomas Harte
9d17d48bca
Ensures cycles_per_revolution_
is populated for fixed-rate drives.
2019-09-28 23:23:15 -04:00
Thomas Harte
faec516a2c
Starts pushing towards figuring out a proper infrastructure for mass storage.
2019-08-21 23:22:58 -04:00
Thomas Harte
f668e4a54c
Makes an attempt at getting the 5380 past arbitration.
...
Not entirely successful. Also gets a bit smarter with `final` on ClockingHint::Sources.
2019-08-15 23:14:40 -04:00
Thomas Harte
b1f04ed96d
Eliminates the crutch of PlusToo BIN files.
...
Thereby returning the .bin extension to the various consoles.
2019-07-28 16:07:16 -04:00
Thomas Harte
786b26d23e
Adds an admission of incompleteness.
...
I really need to figure out the 5-and-3 encoding.
2019-07-26 23:23:40 -04:00
Thomas Harte
d08d8ed22c
Adds a further drift safeguard.
2019-07-26 23:23:01 -04:00
Thomas Harte
572e8b52e1
At the cost of extra storage, attempts to simplify away potential rounding issues around the index hole.
2019-07-26 17:20:32 -04:00
Thomas Harte
9b634472c6
Gets a little more rigorous on "high resolution".
2019-07-26 15:26:51 -04:00
Thomas Harte
d2bfd59953
Ensures positional continuity across rotation speed changes.
2019-07-25 22:29:54 -04:00
Thomas Harte
3d20ae47ea
Ensures cycles_since_index_hole_ is wrapped to track length.
2019-07-25 21:48:01 -04:00
Thomas Harte
77333ff9f7
It appears that file checksums are not reliable.
2019-07-17 14:56:50 -04:00
Thomas Harte
79a624e696
Applies more rigorous logic to deciding when to stop parsing.
2019-07-16 18:06:54 -04:00
Thomas Harte
c123ca1054
Slightly improves syntax.
2019-07-16 18:05:58 -04:00
Thomas Harte
9f0f35033d
Introduces sector interleaving.
2019-07-16 18:05:40 -04:00
Thomas Harte
3633285aaa
Ensures a trailing zero bit isn't dropped.
2019-07-16 16:36:00 -04:00
Thomas Harte
cb16790330
Improves qualifiers.
2019-07-15 22:40:45 -04:00
Thomas Harte
ca37fd8f4c
Corrects tag preservation.
2019-07-15 17:15:06 -04:00
Thomas Harte
46b98dab70
Bumps up the amount of reserved storage.
...
To avoid a reallocation when reading Mac data.
2019-07-15 17:12:31 -04:00
Thomas Harte
0568996264
Fixes a couple of data arrangement issues on output.
2019-07-15 17:11:58 -04:00
Thomas Harte
5b05a9bc61
Extends Drive to report is_writing and so that writing works as the first action.
2019-07-12 18:53:41 -04:00
Thomas Harte
2c39229b13
Adds has-new-disk flag, allowing mounting of software from the desktop.
2019-07-12 13:17:24 -04:00
Thomas Harte
6c2cc206a6
Takes a first stab at write support for Macintosh disk images.
...
Albeit that the Macintosh itself can't yet write.
2019-07-11 18:09:37 -04:00
Thomas Harte
5a9f3cfc1e
Completes Mac GCR decoding and its associated test.
2019-07-11 17:37:07 -04:00
Thomas Harte
8f28b33342
Starts work on Macintosh GCR decoding.
2019-07-11 16:28:52 -04:00
Thomas Harte
c4ab0bb867
Starts sketching out an interface for IWM drives, eliminating a dangling use of unsigned
as it goes.
2019-07-10 16:05:59 -04:00
Thomas Harte
3f303511bd
Adds cstring
include, in support of memcpy
.
2019-07-08 18:06:58 -04:00
Thomas Harte
b9c2c42bc0
Switches drives to using floats for time counting.
...
Hopefully to eliminate a lot of unnecessary `Time` work; inaccuracies should still be within tolerable range.
2019-07-02 15:43:03 -04:00
Thomas Harte
68a3e5a739
Renamed DiskCopy42 to MacintoshIMG, now that it's not just DiskCopy 4.2 files.
2019-06-18 14:32:58 -04:00
Thomas Harte
9730800b6a
Adds support for raw sector dumps.
2019-06-18 14:14:25 -04:00
Thomas Harte
506276a2bd
Corrected: use format tag as intended.
2019-06-18 14:04:28 -04:00
Thomas Harte
df56e6fe53
Fixed: the sector number also goes into sector bodies.
...
Also the checksum is written in the other order, and the final byte of data isn't output.
2019-06-18 10:34:10 -04:00
Thomas Harte
756641e837
Fixed: tags go first, then data.
2019-06-16 22:00:12 -04:00
Thomas Harte
05c2854dbc
Makes at least some attempt at producing real disk tracks.
2019-06-16 21:17:24 -04:00
Thomas Harte
5c8aacdc17
Fixes the more obvious issues with GCR encoding: byte order, top bit selection.
2019-06-16 17:17:24 -04:00
Thomas Harte
fe0dc4df88
Starts building out some tests for Apple GCR encoding.
2019-06-15 22:48:24 -04:00
Thomas Harte
33f2664fe9
Makes a first attempt at Macintosh GCR encoding.
2019-06-15 22:29:02 -04:00
Thomas Harte
a17e47fa43
Apple's GCR header varies between the Mac and the Apple II.
2019-06-15 16:32:56 -04:00
Thomas Harte
877b46d2c1
Advances IWM/drive emulation very close to the point of 'Welcome to Macintosh'.
2019-06-15 16:08:54 -04:00
Thomas Harte
e9d0676e75
Fiddles further with the tachometer.
2019-06-06 21:36:19 -04:00
Thomas Harte
7591906777
Numerous IWM fixes: the machine now seems to be trying to measure the tachometer.
2019-06-06 18:32:11 -04:00
Thomas Harte
511d292e73
Ensures gain noise is forgotten upon assumption of a new track.
2019-06-05 14:43:17 -04:00
Thomas Harte
833258f3d7
Sets things up to allow variable rotation rates, and especially Sony 800kb-style self-selecting rates.
2019-06-04 21:41:54 -04:00