David Given
15a69f6dcb
Make build with the new ab --- but the tests fail.
2025-03-17 22:33:54 +01:00
David Given
33d241c33e
Move common.proto into config.
2024-10-19 16:58:44 +02:00
David Given
1bcc8f45b5
Modularise encoders. Change arch to not depend on +lib.
2024-10-16 22:00:51 +02:00
David Given
ea4a147751
Move fluxmapreader/fluxpattern into data.
2024-10-15 00:00:27 +02:00
David Given
c5373480ba
Move a lot of the data-handling utilities into their own module.
2024-10-13 13:35:48 +02:00
David Given
a6981ff7ef
Split the FluxmapReader and FluxPattern files.
2024-10-02 00:42:06 +02:00
David Given
ca940d1599
Refactor core libraries into their own library.
2024-10-01 20:36:53 +02:00
David Given
f5f223f622
First steps towards reworking the build system... again.
2023-10-21 23:02:46 +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
David Given
d0fb85e712
Rename all the remaining layout and location variables to trackInfo (where
...
appropriate).
2022-09-16 00:20:54 +02:00
David Given
81cbd00cc8
Rename Track to TrackInfo, which better describes what it is.
2022-09-16 00:09:39 +02:00
David Given
4a565b5ea0
Split the Layout class.
2022-09-16 00:07:22 +02:00
David Given
82f61eee12
Eliminate Location in favour of Layout.
2022-09-15 23:52:07 +02:00
David Given
6b7e81d7fb
Move requiredSectors() to the base class.
2022-09-13 00:32:04 +02:00
David Given
b48e1ba9e0
Remove the trivial collectSectors() methods which have been replaced by the
...
base class.
2022-09-12 23:55:52 +02:00
David Given
1267191e8e
Abstract is for Java.
2022-09-12 23:52:24 +02:00
David Given
3cb098f9ba
Rip out the old approach to soft sector remapping as it wasn't working.
2022-09-11 17:05:40 +02:00
David Given
dda713a6be
Remove the rest of the mapper.
2022-09-10 22:47:35 +02:00
David Given
1a4caccd07
Rename Sector.logicalSector to Sector.physicalSector.
2022-09-10 18:59:06 +02:00
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
178aa9d32f
Remove the obsolete reader.* and rename writer.* to readerwriter.*.
2022-03-25 20:57:42 +01:00
David Given
86c5cccb08
Rename cylinder to track throughout (mostly).
2022-03-25 20:16:12 +01:00
David Given
d303067deb
Massive refactor to work in logical cylinders everywhere. The logical/physical
...
mapping is now done at the last stage and should, ideally, be automatic. I'm
sure there are bugs everywhere.
2022-03-25 00:22:28 +01:00
David Given
eade2e279e
Make the internal disk data structures all const, to allow us to pass them to
...
the GUI UI thread safely.
2022-02-24 22:46:10 +01:00
David Given
c539debc84
Fix the Amiga decoder, which got broken with the decoder change. Also fix the
...
encoder which was always broken (but Amigas apparently didn't care).
2022-02-12 22:42:15 +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
709e300960
More typo fixing.
2021-12-05 17:17:03 +01: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
13deef3416
Plumb the verifier stuff through the rest of the encoders; fix it to actually
...
work and not crash, god I hate C++.
2021-07-19 21:46:48 +02:00
David Given
b887bebb26
First largely untested draft of a working verifier.
2021-07-19 00:13:06 +02:00
David Given
084c858446
Fix seg fault when writing non-existent sectors.
2021-07-16 19:55:55 +02:00
David Given
5d889d4d95
Remove Track, which is now obsolete.
2021-07-16 00:00:11 +02:00
David Given
f589e094b2
Remove RawRecord, which is now obsolete.
2021-07-15 23:55:29 +02:00
David Given
2eff798d74
Remove SectorSet, which is now obsolete.
2021-07-15 23:51:02 +02:00
David Given
239cecff9e
Convert all the encoders and imagereaders to the new scheme.
2021-07-15 23:43:07 +02:00
David Given
458d0f7a1b
Another mahoosive refactor: move away from using protos for the disk output in
...
favour of pod objects, which allows STL contains. Lots of shared_ptrs
everywhere. Much simpler and more effective code. The reader works with one of
the decoders; still have to do the rest of them and the encoders.
2021-07-15 22:50:29 +02:00
David Given
f1f27ffd33
The protoified reader now builds and runs, although doesn't work properly.
2021-07-11 23:53:50 +02:00
David Given
b423a71b38
Refactor the encoders the same way that's been done for the decoders.
2021-07-11 16:55:18 +02:00
David Given
326969e488
Clean up the Amiga decoder.
2021-07-11 12:34:40 +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
aed5a02ee1
Remove flag references from the Amiga encoder.
2021-05-28 16:58:28 +02:00
David Given
4ab8b4984d
Rename all InputProto and OutputProtos for clarity.
2021-05-15 18:05:53 +02:00
David Given
c8d0950979
Convert the Amiga encoder and decoder to the new system.
2021-05-15 00:06:39 +02:00
David Given
1fd65452c4
Typo fix.
2020-04-08 23:37:08 +02:00
David Given
30646ccb07
Fix an Amiga decoder bug where truncated sectors would be considered valid (the
...
Amiga checksum algorithm is weak and zero bytes don't contribute to the
checksum).
2020-04-08 23:35:55 +02:00
David Given
a401173f6d
Teach the Amiga decoder how many sectors to expect on each track.
2020-03-09 12:54:29 +00: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
d0ed5b32f7
Add support for 528-byte sectors. Adjust the post-index gap to (try?) and fit
...
all the data in one revolution. I think my write clock is a bit slow.
2019-12-14 21:49: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
d2f8c27cb6
Add checksum routine.
2019-12-01 09:11:36 +01:00