Commit Graph

34 Commits

Author SHA1 Message Date
David Given
c9ae836e52 Add very brittle write support. 2023-07-27 22:49:10 +02:00
dg
466c3c34e5 Replace the Error() object with an error() function which takes fmt
formatspecs, making for much cleaner code. Reformatted everything.

This actually happened in multiple steps but then I corrupted my local
repository and I had to recover from the working tree.
2023-05-09 20:59:44 +00:00
dg
4c776d584b Add read support for A2R v2 files. 2023-04-07 15:00:20 +00:00
dg
339ea3b5a4 Move the * and + Bytes methods onto Bytes itself. 2022-12-18 22:00:16 +00:00
dg
a60b8e68ca Add a Bytes method for reversing each bit. 2022-11-23 21:44:10 +00:00
David Given
f753929e87 Writing files works in fatfs. 2022-08-30 22:51:31 +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
David Given
0933dc1afa Partially complete rework of all the decoders to avoid seeking inside the
fluxmap. This requires resetting the FluxDecoder, which loses any pending
state, resulting in bad reads for (some) formats which don't have gaps between
sectors --- the DVK MX is the main victim.
2022-02-12 00:55:09 +01:00
David Given
3db7964509 Fix a horrifying Bytes.slice bug which was causing memory corruption. 2021-07-23 23:17:19 +02:00
David Given
56cbf39d59 Finally make the Amiga encoder work properly. Do some FM/MFM/bits refactoring. 2021-07-05 23:16:03 +02:00
David Given
629af2a697 You can now create Bytes from strings and vice versa. 2021-01-04 23:31:54 +01:00
David Given
067af18103 When writing images, use the sector size in the spec rather than the actual
data size, to avoid problems with multipart formats like the Amiga.
2020-04-07 23:02:47 +02:00
David Given
1b48ea20c4 Remove the cruncher. 2020-03-20 00:06:07 +01:00
David Given
e8febe6508 Allow converting Bytes to bits, and slicing until the end of an object. 2020-02-14 00:04:31 +01:00
David Given
f9117b8d11 Added a simple library for reading and writing LDBS files. 2019-08-09 22:41:07 +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
64ae92b16f Add a few more useful functions. 2019-04-14 14:34:59 +02:00
David Given
098b2371a4 Crunched datastreams are now used when writing. 2019-03-27 21:58:41 +01:00
David Given
bcc5a5f2cd Interim but working support for crunched data streams when reading from the
device; writes haven't been converted yet. Reduces the bandiwidth from about
800kB/s to about 500kB/s, which is about what I thought.
2019-03-26 23:03:19 +01:00
David Given
d013b0fe55 Fix Bytes slicing buffer overrun; fix bug in the IBM decoder which was
provoking it.
2019-03-21 20:14:35 +01:00
David Given
1f524aec69 Merge from trunk. 2019-03-07 23:44:19 +01:00
David Given
38f740c50f Fix build error on machines where sizeof(size_t) != sizeof(long). 2019-03-07 10:57:05 +01:00
David Given
d59e7f0fc4 Skeleton Zilog Mcz support. 2019-03-06 00:00:06 +01:00
David Given
cca901825e Resizing small doesn't reallocate the buffer. 2019-03-05 20:36:13 +01:00
David Given
8212adf84f Temporary lifespan doesn't work intuitively. Fix it. 2019-03-05 19:17: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
3835afd022 Add a reasonably comprehensive bytes library. 2019-03-04 21:41:41 +01:00
David Given
b1368fff64 Hack in compressed flux streams; I don't like this much. 2019-03-03 19:11:13 +01:00
David Given
38c1a8ebfa Victor segmentation and decode works; but clock detection is still terrible. 2019-03-02 11:04:45 +01:00
David Given
c3eb5b48ab Fix occasional garbage if a BitAccumulator has trailing garbage. 2019-02-21 11:08:26 +01:00
David Given
7aa851d5f0 Fix hideously embarassing bug which was causing reading most floppies to
produce junk.
2019-02-20 22:41:08 +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