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
e1f2494966
Create a config module containing all the configuration, proto and flags
...
stuff.
2024-10-13 11:57:18 +02:00
David Given
f5b14cadf8
Use "" to access the fmt headers, not <>, or else Windows can't find the
...
fallback library.
2024-10-09 15:10:22 +02:00
David Given
27ab1e3e5a
Refactor a lot of the proto stuff.
2024-10-08 23:18:30 +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
8876aae2cc
Calculate gaps in bits, not bytes (more accurate). Pad the end of the track to
...
avoid weirdness reading the last sector.
2024-04-30 23:09:30 +02:00
David Given
a84cf83ce5
Add a prototype Tartu encoder.
2024-04-30 00:56:26 +02:00
David Given
2732d9aec8
Get the Tartu checksums working, and hook up the CP/M filesystem code.
2024-04-21 00:17:11 +02:00
David Given
af3e257c78
Add boilerplate for the Tartu.
2024-04-19 21:10:49 +02:00
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