Commit Graph

40 Commits

Author SHA1 Message Date
David Given
5deba8af41 Untested Brother 120kB write support. 2020-05-13 14:49:06 +02:00
David Given
bf0b14d094 Okay, changing the path didn't help. 2020-01-27 23:51:22 +01:00
David Given
c9f5803194 The system is installing, but it's not finding mingw32. 2020-01-27 23:47:30 +01:00
David Given
c49823aa9d Now the optimised binaries are optimised and the debug binaries aren't. 2020-01-27 23:36:33 +01:00
David Given
a8b92d4780 This works; final tweaking. 2019-12-13 23:53:42 +01:00
David Given
98140b0646 More testing. 2019-12-13 23:50:33 +01:00
David Given
4429ce1f84 More build tweaks. 2019-12-13 23:48:17 +01:00
David Given
5e97df8d15 Better diagnostics when a package can't be found. 2019-12-13 22:39:58 +01:00
David Given
898e8c551c Produce a build-time error if the pkg-config packages aren't available. 2019-12-13 22:34:24 +01:00
David Given
4304d1eede Add the Supercard Pro decoder. 2019-08-28 23:32:09 +02:00
David Given
4b07c38782 Mechanical refactor to rearrange the source files into a more pleasing order. 2019-08-06 22:25:11 +02:00
David Given
3960b1e4d7 Build brother120tool and cwftoflux. 2019-07-08 22:44:38 +02:00
David Given
5817714899 Let's build the Windows binary with lots of optimisation, as we're probably
going to package it as a precompiled binary.
2019-07-07 00:40:20 +02:00
David Given
27ced28ffd Fix typos that were breaking OSX and Linux builds. 2019-07-07 00:26:19 +02:00
David Given
c1e432584d Finally make build on msys2 (mingw32 mode). 2019-07-06 20:07:17 +02:00
David Given
7d42dff2f1 First (failed) attempt to make work with mingw. 2019-07-06 12:58:20 +02:00
David Given
e13f4942a0 Set build flags from the top-level makefile, not from mkninja.sh. 2019-07-05 00:18:53 +02:00
David Given
fe8122afcc Turns out I'd cocked up the build system setup --- bootstrap with make again. 2019-07-04 11:12:17 +02:00
David Given
032df676c1 Replace meson with a very small shell script. 2019-07-03 22:18:34 +02:00
David Given
cb4a5845dc Build with debug optimisation... 2019-07-03 00:09:42 +02:00
David Given
4b6b4aa9f7 Add the DataSpec class. 2019-01-13 00:43:19 +01:00
David Given
c55f87853d Make sure the .obj directory exists before running meson for the first
time.
2019-01-04 13:05:48 +01:00
David Given
9c1f3a7bc9 Remove the old, obsolete client. 2019-01-03 01:39:54 +01:00
David Given
96f8229b34 Switch from make to meson as the build system (although wrapped in make for
simplicity). Much better. Refactor the fluxmap stuff from the global headers to
see how well it works --- it does.
2018-10-20 10:28:59 +02:00
David Given
3dec0ac54d Add the skeleton of the Brother GCR decoder. 2018-10-18 01:44:59 +02:00
David Given
607bb141b3 Radically rework decoding: there's now a simple statistical clock guesser, and
then we read the pulsetrain into nice tidy bits with a proper clock, which
makes the decoder's job way easier. We can actually get rid of the entire MFM
decoder state machine. Also, after sorting out the magic bit patterns at the
beginning of records, we can now reliably pull them out of the bitstream
without needing to know anything about the records themselves.
2018-10-18 00:27:48 +02:00
David Given
aa7d420754 Start work on an autocalibrator to detect precompensation, but something's gone
wrong and our reads are all bunk.
2018-10-13 12:04:37 +02:00
David Given
b46d55cc07 The USB capture/replay interface now uses timestamps rather than intervals;
this makes the hardware considerably simpler and more reliable (as I don't need
to spend time resetting the timers between pulses). Still doesn't help writes,
though. Simplify and improve clock detection; add an abortive attempt at an FM
decoder (turns out that the Brother doesn't use FM).
2018-10-13 01:19:17 +02:00
David Given
333fd989de Rename decode to mfmdecode now that I've found what might be an FM disk. 2018-10-11 22:52:59 +02:00
David Given
5d4e929302 Added the fluxdump command, for exporting a fluxmap into something like
Audacity where it can be visualised.
2018-10-10 23:02:45 +02:00
David Given
1430dfc4e1 Add the test pattern generator back again. Try some experimental code to
convert a fluxmap into an encoding_buffer, but locking each pulse to a us grid.
I'm not sure whether this is good enough for reliable decoding, but early
indications look promising.
2018-10-09 23:46:24 +02:00
David Given
5bd01d5ebc Refactor all the raw buffer stuff to be less bad. Add an encoded buffer, which
will be used for assembling fluxmaps to write to the floppy.
2018-10-09 22:49:10 +02:00
David Given
8f1cef48b1 Realise that the weird data dropouts were due to a stray capacitor on the
board... so remove it. Better now. Also realise that PSoC Creator lies to you
about clocks, so adjust the sample clock to be derivable from the USB clock,
making it both the right frequency and much more accurate --- decode success is
dramatically improved (presumably due to less jitter). Redesign the capture
logic to use a timer; simpler now.
2018-10-06 18:32:57 +02:00
David Given
74d051dff3 Start sketching out the write code; attempt to make more robust in the face of
the weird data dropouts.
2018-10-06 13:47:34 +02:00
David Given
339cdd5105 Add a partially working MFM decoder --- MFM's fine, it's aligning to sync bytes
which is hard.
2018-10-04 00:02:13 +02:00
David Given
a8738915e9 You can now read complete disk images into a database file. 2018-10-03 00:03:50 +02:00
David Given
841c1ed516 Attempt to capture rollover events --- don't think it works. Add a basic
command processor.
2018-10-02 23:03:07 +02:00
David Given
d06e201933 Finally figure out the secrets of WCID, so we don't need a signed driver to do
raw endpoints. Hurrah! Rip out the CDC stuff in favour of them.
2018-09-26 00:37:19 +02:00
David Given
a332fd0308 Added some Unix stuff and a crude benchmark. 2018-09-24 01:12:14 +02:00
David Given
264cf47c00 Add the skeleton of the client-side program. 2018-09-23 13:13:29 +02:00