Commit Graph

22 Commits

Author SHA1 Message Date
David Given
adff739a5d Partial conversion to do automatic scaling of flux based on the disk rotation
speed. Although, something seems to have broken for 5.25" disks.
2022-03-27 23:50:32 +02:00
David Given
96214bf3fd Refactor for better multi-read support. Each read is now held separately, with
F_DESYNC being deprecated, and FluxSource returns an iterator which can be used
to retry reads.
2022-03-07 00:07:42 +01:00
Howard M. Harte
4cbd19d2e5 fluxmap: Don't push_back() if Fluxmap begins with F_DESYNC.
Fluxmap::split() creates a 0-length Fluxmap if the Fluxmap
begins with F_DESYNC.  Fix this by not doing push_back()
if a F_DESYNC is encountered at the start of the Fluxmap.
2022-02-24 19:07:09 -08:00
Thomas Daede
ce1daf6a2b Add option to rescale flux sink pulses.
Note that this does not affect the decoder used for verify,
but at least for tame rescaling the decoders are still able to
lock.

This is a precursor to automatic scaling via the disk speed
measurement.
2021-12-07 14:45:32 -08:00
Thomas Daede
0c3c08db36 SCP: Only write the last continuous fluxmap. 2021-12-06 11:47:42 -08:00
dg
18d90c44dd Rework the flux decoders to add a desync opcode for separating multiple reads
in a flux stream. Finally add a unit test for the flux decoder.
2021-12-05 14:42:57 +00:00
David Given
9a5958f80b Prevent OOB when appending no bytes to a fluxmap. 2020-05-14 10:40:49 +02:00
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
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
db14642504 Beat the Kryoflux stream reader into enough shape that it will handle the weird
Kryoflux index markers; refactor it to use Bytes rather than raw streams
(because streams in C++ are terrible).
2019-04-14 14:35:52 +02:00
David Given
456791e20c Refactor to use FluxmapReader. 2019-03-09 11:30:50 +01:00
David Given
d02e6b5936 Update cwftoflux to handle index information from CWF files. 2019-03-07 00:22:43 +01:00
David Given
379985c2bc Rework the sampler state machine, with new, better, simpler bytecode at twice
the bandwidth; we now record the state of the index hole.
2019-03-06 21:09:07 +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
6a1327e3f6 Attempt to translate the sequencer into Verilog and have it handle long
intervals properly.
2019-02-23 00:50:36 +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
61d98073a7 Add support for reading Kryoflux stream files. 2019-02-14 21:44:23 +01:00
David Given
8d8f7b43c7 Precompensation adjustment is now done before writing (using hard-coded
values).
2019-01-03 22:03:00 +01:00
David Given
c564e6e14d Begin generating the Brother bitstream and convert it to a fluxmap. 2019-01-03 01:37:37 +01:00
David Given
3a0ce92468 Fix a horrifying bug which was causing all data from USB to be discarded. 2018-10-20 19:39:34 +02:00
David Given
30f716d1b5 More missing files. 2018-10-20 16:25:19 +02:00