Commit Graph

41 Commits

Author SHA1 Message Date
David Given
fc2655ecd6 Rework the bytecode format to use a much simplified setup: a six-bit timer with
the top two bits reserved for pulse and index state. This is actually smaller,
bandwidth-wise, than the old version, and may be smaller than the crunched
version.
2020-03-14 18:58:43 +00:00
David Given
323da8272a Hopefully add support for giving the reader a set of required sectors, so if
one is missing then we can tell and the track can be reread.
2020-02-21 22:14:44 +01:00
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
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
3ee31b96a4 Add the prototype MX decoder. 2019-07-02 00:40:38 +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
4cc680057e Port the Brother decoder to the new *new* architecture. 2019-04-29 23:28:12 +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
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
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
6d530c332e Tweak signal floor: the Brother disk doesn't read any more. 2019-03-03 22:12:13 +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
David Given
79e3e686eb Update the read path of the client to cope with long intervals. 2019-02-22 20:18:22 +01:00
David Given
e53841f79d Use a bit more statistical nous when trying to sense the bit rate, and use the
median of the pulse to pick the normative clock rate.
2019-02-20 22:09:06 +01:00
David Given
259a02898f Massive refactor to overhaul and simplify the decoder system. Amiga has been
disabled (because it needs rewriting now).
2019-02-19 00:39:13 +01:00
David Given
61d98073a7 Add support for reading Kryoflux stream files. 2019-02-14 21:44:23 +01:00
David Given
3da75c0f9b Add a very simple clock histogram display. 2019-01-22 00:05:16 +01:00
David Given
cce65d7bd0 Common out the disk read code between the two fe-read commands. 2019-01-21 23:30:30 +01:00
David Given
ed41bc013f More refactoring. 2019-01-01 20:04:04 +01:00
David Given
8244f9ec51 We can now decode IBM MFM disks all the way to an image, although with no CRC
checking as yet.
2018-10-20 19:25:20 +02:00