Commit Graph

69 Commits

Author SHA1 Message Date
David Given
a8eca06cf0 Don't hang if we hit the end of stream while waiting for a data record. 2020-01-27 23:09:29 +01:00
David Given
91ffcf59c3 When reading data records, retry if we get an UNKNOWN record to work the
occasional false positive (which happens now and again with MFM).
2020-01-27 01:15:14 +01:00
David Given
9dc1067032 Add --dump-sectors. Sector positions are recorded correctly. 2020-01-26 18:30:35 +01:00
David Given
6af80d1e5e Improve some messaging. A data record is always pushed, even if it's empty (to
help debugging).
2020-01-26 17:49:12 +01:00
David Given
0c48897814 Add a minimum clock threshold. 2020-01-26 17:48:33 +01:00
David Given
4475e9f085 Increase the default bit-error-threshold to 0.4, because that's the value I
almost always end up using.
2019-12-14 21:33:39 +01:00
David Given
792cc88192 The Amiga writer now generates valid flux files --- but it looks like the
writer's broken (both the Amiga and the Brother have failed).
2019-12-14 20:44:48 +01:00
David Given
b9a53e0d1c First draft of the visualiser. 2019-08-27 01:07:57 +02:00
David Given
d0a864c052 Merge. 2019-07-03 23:20:07 +02:00
David Given
032df676c1 Replace meson with a very small shell script. 2019-07-03 22:18:34 +02:00
David Given
a1c207cb8f First milestone towards flags rewrite --- it builds and the tests pass, but
nothing actually works.
2019-07-02 23:06:40 +02:00
David Given
3ee31b96a4 Add the prototype MX decoder. 2019-07-02 00:40:38 +02:00
David Given
196f2bfd7e Cygwin doesn't have ffsll. 2019-04-30 22:56:15 +02:00
David Given
0f56cd25e9 Warning fix. 2019-04-30 22:27:07 +02:00
David Given
27fb17b9b5 Move the clock guesser stuff into fe-inspect. 2019-04-30 21:55:44 +02:00
David Given
b1092c7f82 Simplify the decoder class hierarchy. 2019-04-30 21:44:56 +02:00
David Given
1fb67dfe3c Remove stateful decoder and split decoder. 2019-04-30 21:43:25 +02:00
David Given
9971dbd2c7 Update Mac to the new new architecture. 2019-04-30 21:34:33 +02:00
David Given
184e7766f0 Add some helper methods to make decoders easier. Port IBM to the new new
architecture.
2019-04-30 20:45:16 +02:00
David Given
4cc680057e Port the Brother decoder to the new *new* architecture. 2019-04-29 23:28:12 +02:00
David Given
c0c1121b91 Add debounce support (only for reading bits, not in pattern matching). 2019-04-29 23:27:58 +02:00
David Given
bd448e081f Remove the obsolete Fluxmap::decodeToBits(). 2019-04-28 20:57:55 +02:00
David Given
00bae9fba7 Remove the obsolete decoder base classes. 2019-04-28 00:32:32 +02:00
David Given
4e3d4e31af The flux pattern matcher will now preserve leading zeroes (although it can't
match them). The IBM decoder is now properly converted, autodetecting FM and
MFM.
2019-04-27 22:11:39 +02:00
David Given
bec46419d6 Remove the obsolete FluxPatterns. 2019-04-27 10:27:55 +02:00
David Given
a483ad987e Archival checking: IBM FM works (but not MFM yet). Other formats have stopped
working.
2019-04-26 23:52:04 +02:00
David Given
643288bef8 Extend the flux pattern matcher to support trailing zeroes. 2019-04-25 23:18:47 +02:00
David Given
3a531c0889 The Zilog MCZ decoder is ported to the new architecture. 2019-04-19 15:10:24 +02:00
David Given
2ddc1045ec Rework the Victor 9000 decoder to use the new architecture. 2019-04-19 14:39:26 +02:00
David Given
5f8e0c846c Allow split decoders (into sector record and data record). 2019-04-19 00:55:01 +02:00
David Given
b158692a3a Radically simplify RawRecord and Sector. It all works, and the results are
better, but I've disabled a bunch of decoders for now.
2019-04-18 21:47:34 +02:00
David Given
4b480ce4f3 Rewrite the Macintosh decoder. 2019-04-18 01:31:52 +02:00
David Given
5ce2acdfb4 The new decoder architecture now works, at least for the FB100. All I need now
is to rewrite every single other decoder.
2019-04-18 00:47:28 +02:00
David Given
6e31a9e4ae Refactor so track state is passed around in the Track object. 2019-04-16 22:49:35 +02:00
David Given
7a49ec7819 Moderately crudely hack in routing side information to the decoders; this is
needed by the Victor 9000 decoder to figure out the right clock rate.
2019-04-16 19:50:25 +02:00
David Given
9b59e7025d Add the ability for decoders to specify their own clocks --- necessary for the
Victor 9k. We now have _much_ better decoding for this platform.
2019-04-16 01:13:28 +02:00
David Given
84076674fd Add stateful decoders, which makes formats like the FB-100 much easier to work
with. Add a generic CRC tool allowing all the parameters to be set (currently
unused).
2019-04-12 00:13:56 +02:00
David Given
490821da09 Hard sector segmentation can now cope with the extra index hole. We are
correctly decoding the Zilog MCZ disk.
2019-03-09 12:32:42 +01:00
David Given
cf9730fbb3 Splitting by hard sectors works, up to a point; we can correctly decode (with
CRC checking!) most of the Zilog MCS disk. However, we're still stumped by the
extra index hole.
2019-03-09 12:19:28 +01:00
David Given
456791e20c Refactor to use FluxmapReader. 2019-03-09 11:30:50 +01:00
David Given
574d383573 Remove discrete segmenters, instead rolling the logic into Decoders; prepare
for splitting decoders into soft-sector and hard-sector.
2019-03-08 23:57:46 +01:00
David Given
d59e7f0fc4 Skeleton Zilog Mcz support. 2019-03-06 00:00:06 +01:00
David Given
94fb10eb02 Behemoth change to rework everything to use Bytes rather than vectors of
uint8_t. The tests pass, but of course, nothing decodes any more.
2019-03-05 00:10:20 +01:00
David Given
6d530c332e Tweak signal floor: the Brother disk doesn't read any more. 2019-03-03 22:12:13 +01:00
David Given
4eaca91a44 Add a skeleton for the AES Lanier disks. 2019-03-02 22:40:59 +01:00
David Given
06af553760 Make the noise floor and signal level configurable for clock detection. 2019-03-02 11:56:17 +01:00
David Given
e16a9f77f3 Skip long runs of noise in the clock histogram. 2019-03-01 17:15:39 +01:00
David Given
c1edff2b7e Eek, calculate the noise floor properly! 2019-03-01 16:58:18 +01:00
David Given
719e8801fe Allow the clock to be specified manually. Turn the clock histogram into an
actual bar chart.
2019-03-01 16:53:22 +01:00
David Given
f5a3f18478 Cleanup (the Fluxmap doesn't store intervals any more, just byte opcode
things).
2019-02-22 20:25:28 +01:00