Thomas Harte
d065d6d98f
Adds read-only WOZ 2 support.
2020-07-15 19:15:03 -04:00
Thomas Harte
68645742f7
This is a deliberate fallthrough.
2020-06-20 00:12:08 -04:00
Thomas Harte
59458f6444
Resolves errant spaces.
2020-06-16 23:15:38 -04:00
Thomas Harte
495024d6fe
Cleans up all redundant lock/unique_guard declarations.
2020-06-15 00:24:10 -04:00
Thomas Harte
73131735fa
Further qmake warning corrections.
2020-05-30 19:31:17 -04:00
Thomas Harte
48afc54af6
Cuts down unused parameter warnings to just a few that may well indicate implementation errors.
2020-05-30 01:06:43 -04:00
Thomas Harte
0bf7de9d43
Advances to actually completing a build.
...
Many more warnings to iron out, however.
2020-05-30 00:47:43 -04:00
Thomas Harte
267006782f
Starts to add Qt target; resolves many build warnings.
2020-05-30 00:37:06 -04:00
Thomas Harte
f7c10ef9e9
Replaces POSIX stpncpy
with ANSI strlen
, memcpy
and memset
.
2020-05-27 21:31:46 -04:00
Thomas Harte
512a52e88d
Increases const correctness, marks some additional constructors as constexpr, switches std::atomic construction style.
2020-05-20 23:34:26 -04:00
Thomas Harte
25996ce180
Further doubles down on construction syntax for type conversions.
2020-05-09 23:00:39 -04:00
Thomas Harte
31c6faf3c8
Adds a bunch of const
s.
2020-05-09 21:23:52 -04:00
Thomas Harte
f720a6201b
Adds explicit type cast.
2020-03-29 18:36:57 -04:00
Thomas Harte
ea26f4f7bf
Eliminates test code, adds a caveat.
2020-03-25 21:22:30 -04:00
Thomas Harte
5fd2be3c8e
Makes a genuine attempt at five and three decoding.
2020-03-25 20:50:26 -04:00
Thomas Harte
2320b5c1fe
Takes some steps towards five-and-three decoding.
...
Now I 'just' need to figure out how bits are distributed within the decoded sector. The XORing and data checksum seem the same (?)
2020-03-25 00:15:31 -04:00
Thomas Harte
e5cbdfc67c
It turns out that 5-and-3 disks have a different header prologue.
2020-03-24 21:59:55 -04:00
Thomas Harte
894d196b64
Avoids massive overallocation where sync blocks overlap the index hole.
2020-03-24 21:34:33 -04:00
Thomas Harte
614032198e
Ensures no divide by zero during initial construction.
2020-02-18 22:58:37 -05:00
Thomas Harte
3cb6bbf771
Uses the union of all drive statuses to determine Drive::Controller's preferred clocking.
2020-02-12 22:28:42 -05:00
Thomas Harte
0c2f77305f
Eliminates dangling printf.
2020-02-11 22:12:30 -05:00
Thomas Harte
05bcd73f82
Attempts to pull drive ownership into DiskController.
...
For the sake of being more intelligent as to drive clocking, hopefully. And, eventually, to support multiple drive selection.
2020-02-11 21:59:13 -05:00
Thomas Harte
1b27eedf6b
Ensure this can definitely never divide by 0.
2020-01-28 23:25:21 -05:00
Thomas Harte
294e09f275
All these 'override's can be 'final's.
...
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.
2020-01-23 22:57:51 -05:00
Thomas Harte
98daad45c7
Removers Factors.hpp; now this is a C++17 project.
2020-01-19 23:18:59 -05:00
Thomas Harte
1b4b6b0aee
Renames: NumberTheory -> Numeric.
2020-01-19 23:14:35 -05:00
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
5456a4a39d
Eliminates static
where constexpr
a aren't class members; adds some if constexpr
s for clarity.
2019-12-22 13:42:24 -05:00
Thomas Harte
274867579b
Deploys constexpr
as a stricter const
.
2019-12-22 00:22:17 -05:00
Thomas Harte
a847654ef2
Corrects various old-fashioned bits of indentation, plus the odd const.
2019-12-22 00:00:23 -05:00
Thomas Harte
05d77d3297
Also deploys make_unique/shared to avoid type repetition.
2019-12-21 23:52:04 -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
776b819a5a
Adds the SCSI bus as an Activity::Source.
2019-09-19 19:31:22 -04:00
Thomas Harte
3d54d55dbb
Adds missing #include for assert.
2019-09-18 22:06:13 -04:00
Thomas Harte
72c0a631f7
Moves includes to correct file.
2019-09-18 22:04:54 -04:00
Thomas Harte
1608a90d5d
Takes another stab at finding ssize_t.
2019-09-18 22:03:51 -04:00
Thomas Harte
4f8a45a6ce
Adds #include for ssize_t.
2019-09-18 22:02:59 -04:00
Thomas Harte
4f0f1dcf18
Corrects accidental use of #import.
2019-09-18 21:53:22 -04:00
Thomas Harte
8d4a96683a
Reduces output noise.
2019-09-18 21:41:29 -04:00
Thomas Harte
128a1da626
Enables write support.
2019-09-18 20:18:02 -04:00
Thomas Harte
962275c22a
Removes clock for NCR 5380.
...
It doesn't have one in real life, and now can live off the time counting that occurs on the SCSI bus.
2019-09-18 20:17:47 -04:00
Thomas Harte
3002ac8a4a
Adds mapping of READ(8) size 0 to size 256.
2019-09-17 21:59:32 -04:00
Thomas Harte
ff43674638
Corrects partition map: string fields are 32 bytes long.
2019-09-17 21:46:14 -04:00
Thomas Harte
2f6c366668
Makes a concerted effort at properly wrapping a hard disk image.
2019-09-17 21:30:04 -04:00