Commit Graph

249 Commits

Author SHA1 Message Date
David Given
533b217c8f Eliminate the broken tpi system for a simple drive/format type field. 2023-10-29 21:10:14 +01:00
dg
dcb92db519 Remove old build system. 2023-10-26 19:29:01 +00:00
David Given
ca6b90f8c1 Split C and C++ libraries, so that you can use C++ compiler flags. Build with
C++17.
2023-10-24 22:00:09 +02:00
David Given
07aa416975 Make the tests work. 2023-10-22 22:57:54 +02:00
David Given
986be921f4 First working command-line executable. 2023-10-22 19:18:14 +02:00
David Given
f5f223f622 First steps towards reworking the build system... again. 2023-10-21 23:02:46 +02:00
Eric Anderson
96d4df296d Micropolis: Add Vector ECC support 2023-07-29 14:03:08 -07:00
Eric Anderson
c623d95a80 Micropolis: Fix encoder and decoder to support encodedecodetest
These changes should not impact reading/writing from real disks. This
includes a bug fix to Fluxmap where it might miss a trailing interval
when adding bits, as mentioned in #333.

With the Fluxmap bug fixed, the encoder now includes index pulses in its
output. The decoder was relaxed to allow reading precisely one track.

We don't actually add an encodedecodetest for micropolis, though,
because the SCP encoder is unhappy with so many revolutions.
2023-07-29 07:08:23 -07:00
David Given
6ce3ce20d0 Remove stray debugging code. 2023-07-07 01:03:31 +02:00
dg
b7634da310 Work around Apple dev kit stupidity (definiting BYTE_SIZE in a standard
header...)
2023-05-15 22:51:16 +00:00
dg
dcfcc6271c Sort out a whole bunch of other things, including cleaning up the way the
verification source is handled.
2023-05-12 23:28:25 +00:00
dg
e61eeb8c6f Fetching the flux source is now done through Config. 2023-05-12 21:25:54 +00:00
dg
baaeb0bca7 Fix mangled formatting caused by clang-format. 2023-05-09 21:39:35 +00: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
Eric Anderson
d298f5b16e Micropolis: disk rotate period is 200 ms
The disks are expected to contain 100,000 bitcells, so clock_period_us
and rotational_period_ms need to align.
2023-04-23 13:54:50 -07:00
dg
ef60bfff6b Looks like the Roland D-20 format is the same as Brother240??? 2023-04-06 17:07:00 +00:00
dg
a633b73e12 Add boilerplate for Roland D20 decoder. 2023-04-05 22:36:54 +00:00
David Given
b78a057c81 Merge branch 'master' into basis 2023-03-31 22:10:47 +01:00
dg
0551ddc276 Add write support for Apple II 640kB disks. 2023-03-28 20:36:43 +00:00
dg
27a04ee22b Add initial support for the Basis-108. 2023-03-27 23:07:59 +00:00
dg
921e178e83 Tone down the bad-sector-size warning a bit. 2023-03-26 18:23:25 +00:00
dg
7ea4e116cc Add a warning if the configured sector size doesn't match the one on disk. 2023-03-26 16:25:40 +00:00
dg
3f85c9f006 Adjust timings to be more correct. 2023-01-06 21:28:51 +00:00
dg
4984a53bfd First hypothetically working version of the agat encoder. 2023-01-05 18:36:01 +00:00
dg
b0c77653a2 Add the boilerplate for the Agat encoder. 2023-01-05 12:04:36 +00:00
dg
86d0893261 Adjust mac encoder clock to be more like the real thing. 2022-12-05 20:27:52 +00:00
dg
c374ffd15e Increase the smaky disk signature to 32 bits. 2022-11-26 22:56:45 +00:00
dg
cf975b74bf Rename smaky to smaky6. 2022-11-26 11:18:38 +00:00
dg
5d65dcf3c8 Even better Smaky reads, and maybe with sector 0 in the right place. 2022-11-25 21:28:59 +00:00
dg
f299ec1f8d More Smaky improvements. 2022-11-25 20:23:24 +00:00
dg
3c7c4639a9 Massively improved the quality of Smaky reads. 2022-11-25 19:33:29 +00:00
dg
7e9a1268a5 Add an extremely prototype version of the Smaky decoder. 2022-11-23 21:44:40 +00:00
dg
a60b8e68ca Add a Bytes method for reversing each bit. 2022-11-23 21:44:10 +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
88fc7ff9c3 Begin cleaning up the Layout stuff. 2022-09-15 21:45:12 +02:00
David Given
9a8fc80220 Massive overhaul of how the physical/logical layout mapping is done, to make it
more consistent and bidirectional everywhere and just generally better.
Hopefully this fixes that pesky 1581 problem.
2022-09-15 20:23:33 +02:00
David Given
6b7e81d7fb Move requiredSectors() to the base class. 2022-09-13 00:32:04 +02:00
David Given
dce6248193 Victor9k no longer uses collectSectors(). 2022-09-13 00:22:46 +02:00
David Given
0e349ede4c TIDS990 no longer uses collectSectors. 2022-09-13 00:19:45 +02:00
David Given
60117471a7 No more collectSectors in Brother. 2022-09-13 00:06:55 +02:00
David Given
3c23e7b047 Merge. 2022-09-12 23:58:03 +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
49b6bbff37 Add sector skew support to SectorListProto; add a partial definition for the
Victor 9000.
2022-09-12 23:10:24 +02:00
David Given
339e9cca10 Hopefully actually fix the C64 side issue, this time, by rethinking how the IBM
encoder/decoder handles side swapping. We want to be able to swap everything,
or just the side bytes.
2022-09-12 22:04:58 +02:00
David Given
c63a761ca4 Actually fix the c64 1581 side issue. Turns out the data's not flipped between
the two sides, only the bit in the sector header...
2022-09-12 15:34:21 +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