David Given
a833aa0a00
Import STB's image writer library and hook it up to AGG.
2021-01-10 16:38:49 +01:00
David Given
52332b04ac
Import the AGG graphics library.
2021-01-10 14:45:32 +01:00
David Given
53cec292d0
Refactor the GreaseWeazle converter to allow it to be tested.
2021-01-07 22:06:45 +01:00
David Given
629af2a697
You can now create Bytes from strings and vice versa.
2021-01-04 23:31:54 +01:00
David Given
1b48ea20c4
Remove the cruncher.
2020-03-20 00:06:07 +01: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
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
8acf8e181d
Rework the crunch encoding to be, hopefully, smaller and use less bandwidth for
...
HD disks.
2020-02-18 21:37:32 +01:00
David Given
89a27619ff
Correctly propagate MFM encoding state.
2020-02-15 21:47:01 +01:00
David Given
a4002d2617
Fix a few encoder issues; but while 720kB disks work fine in a real machine,
...
1440kB disks don't.
2020-02-14 22:47:15 +01:00
David Given
d25f96dd24
The IBM encoder now works well enough that my USB floppy drive thinks the disk
...
is formatted... but has trouble reading sectors above about 1000. Also remember
that encoding MFM needs to keep one bit of state at all times.
2020-02-14 00:06:51 +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
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
f9117b8d11
Added a simple library for reading and writing LDBS files.
2019-08-09 22:41:07 +02:00
David Given
d8172154c3
Output images now get geometry specs to indicate what kind of file to write.
2019-08-07 23:23:07 +02:00
David Given
eb924780ab
Refactor dataspecs to allow them to be used for other things too.
2019-08-06 23:50:02 +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
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
5f8e0c846c
Allow split decoders (into sector record and data record).
2019-04-19 00:55:01 +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
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
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
c558028552
Build file cleanup.
2019-03-09 17:49:00 +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
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
cf81acd8a5
Add Kryoflux stream decoder tests --- sadly, no bugs. Add a tool to convert CWF
...
format files to FluxEngine files.
2019-03-02 20:02:24 +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
David Given
12135b5dd6
Add support for FM decoding and Acorn DFS disks, requiring some rearrangement.
...
Also make the Brother two revolutions thing (which DFS also needs) the default.
2019-02-12 21:29:31 +01:00
David Given
2527ac2ce9
Initial support for twin drives and 5.25" drives.
2019-02-11 23:43:44 +01:00
David Given
6af432f798
Refactor FluxEngine to use dataspecs for source and destinations. Document
...
them.
2019-01-21 00:38:03 +01:00
David Given
4b6b4aa9f7
Add the DataSpec class.
2019-01-13 00:43:19 +01:00