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
e1f2494966
Create a config module containing all the configuration, proto and flags
...
stuff.
2024-10-13 11:57:18 +02:00
David Given
9ddfa5a56b
Move the logger into core.
2024-10-13 11:39:33 +02:00
David Given
665ceb9ea6
Add missing file.
2024-10-08 23:24:07 +02:00
David Given
fc8d0283b1
Remove the applesauce.cc and test, as it's not used any more.
2024-10-02 00:28:04 +02:00
David Given
5e892e8fc3
Fixup for Applesauce.
2024-10-02 00:23:39 +02:00
David Given
8b124e5ced
Merge.
2024-10-01 23:58:48 +02:00
David Given
65fb3e9e76
Detect index marks and interleave them into the flux stream.
2024-10-01 22:26:02 +02:00
David Given
33f3c97b03
Crudely hack in a lock against writing, as I'll have to wait for the v3
...
firmware.
2024-10-01 21:30:53 +02:00
David Given
ca940d1599
Refactor core libraries into their own library.
2024-10-01 20:36:53 +02:00
David Given
d00fba02a0
Rename greaseWeazle to greaseweazle (as it needs doing).
2024-09-30 22:03:17 +02:00
David Given
045e5e7303
Rename write_clock to write_clock_ns, because it is. Tweak the default value
...
for correctness.
2024-09-30 22:02:09 +02:00
David Given
6fd98e3c67
Writing with the Applesauce now mostly works, although there's still stuff to
...
be dealt with.
2024-09-29 23:40:19 +02:00
David Given
38b8cd2574
Reads mostly work; writes not yet.
2024-09-29 13:05:46 +02:00
David Given
6b28f36b97
getVersion() doesn't need to be a public USB method.
2024-09-28 23:44:33 +02:00
David Given
d394b21920
Got our first track read!
2024-09-28 23:39:30 +02:00
David Given
14255a5076
Successfully read raw Applesauce data.
2024-09-28 23:07:05 +02:00
David Given
8fa1a887ce
Initial work towards Applesauce support --- you can connect to the device and
...
test bandwidth.
2024-09-28 20:04:54 +02:00
David Given
2840831017
Initial boilerplate for the Applesauce.
2024-09-28 17:03:59 +02:00
David Given
653a6a0189
Be more consistent about DTR toggling (needed to reset serial devices).
2024-05-01 12:54:22 +02:00
p-j-b
c2248c7e4a
Added CLRDTR and SETDTR to setBaudRate
...
Fixes hang in Windows with Adafruit Floppy GreaseWeazle
2024-04-02 13:05:29 +01:00
David Given
7095c03e28
Fix a whole pile of missing 'override' keywords.
2024-01-22 20:55:38 +01:00
David Given
533b217c8f
Eliminate the broken tpi system for a simple drive/format type field.
2023-10-29 21:10:14 +01:00
David Given
f5f223f622
First steps towards reworking the build system... again.
2023-10-21 23:02:46 +02:00
David Given
95b703b1ea
Tidy reporting of USB errors.
2023-08-19 20:46:41 +02:00
dg
1330d56cdd
Fix a bunch of errors caused by changes to libfmt.
2023-07-07 21:32:21 +00:00
David Given
d4c0853e1f
Reset the Greaseweazle data stream when connecting.
2023-05-25 22:23:28 +02:00
David Given
53adcd92ed
Spell (and capitalise) Greaseweazle correctly.
2023-05-25 19:50:05 +02: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
42e6c11081
Migrate to a new global config object.
2023-05-10 23:13:33 +00:00
dg
9ba3f90f1e
Change the global config variable to a globalConfig() function.
2023-05-10 22:07:17 +00:00
dg
cf537b6222
Add the proto part of option requirements.
2023-05-10 18:29:46 +00:00
dg
d4b55cd8f5
Switch from Logger() to log().
2023-05-09 22:47:36 +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
dg
7c40093698
Try to work around weird test failure on Windows.
2023-05-06 22:30:50 +00:00
dg
2022732dd9
Some final tidying.
2023-04-04 20:12:21 +00:00
dg
1f74d9189f
Make the new GUI actually work, to a certain extent.
2023-04-02 22:54:09 +00:00
Thomas Daede
968184fa7a
Greaseweazle: Fix RPM measurement in some circumstances.
...
Accumulate number of ticks returned in FLUXOP_SPACE so that they
count towards the total track time.
2022-05-29 23:17:35 -07:00
Jeff Epler
5e4c7719ff
Add support for the interfacing to an Apple Disk ][
...
Some folks may want to use interfaces besides PC/Shugart ones.
Together with https://github.com/adafruit/Adafruit_Floppy/pull/15
and a hand wired board I'm able to read flux from an Apple Disk ][
2022-04-19 08:51:16 -05:00
David Given
3c17e74f6d
Bump the protocol version to ensure people upgrade.
2022-03-26 21:54:29 +00: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
6f1031e95b
Writing flux now works.
2022-02-27 12:54:57 +01:00
David Given
38eda6ed3c
Add log and settings panels. The log panel is populated during a read (or
...
write).
2022-02-26 18:36:21 +01:00
David Given
e14030e369
Actually start using bits of the decoder framework.
2022-02-21 22:02:28 +01:00
Jeff Epler
33bd912476
Some quality of life improvements for Adafruit generic GW-compatibles
...
The addition of the new tcsetattr call fixes a problem where interrupting
fluxengine during a flux read will leave data in the device and/or Linux's
serial buffers, so that the next invocation of fluxengine will fail similar
to
```
Error: command returned garbage (0x27 != 0x0 with status 0x31)
```
(the specific value differs because it's actually flux data)
Merely changing the existing tcsetattr call to specify TCSAFLUSH was not
enough; moving it after the 200ms pause seems to be enough.
Note that it doesn't seem feasible in our USB stack to make DTR reset
the device, since that would take down the USB stack and require a fresh
USB connection.
The addition of the special case for `rlen == 0` in read is for when the
GW-compatible board is reset or crashes and usb-disconnects during a
reading operation. Without this change, fluxengine spins forever at 100%
of a CPU, repeating a read(). After the change, this will cause
the host computer to print messages like:
```
2.1: 200 ms in 68928 bytes
3.0: Error: serial read returned no data (device removed?)
```
and exit.
I only tested these changes on Linux (Debian with kernel 5.10) and in
particular I don't know if/how it will work on a Mac.
2022-02-12 22:04:18 -06:00
lady ada
9ec56f1dfa
fix 2 byte pack for revolution count
2022-02-08 11:43:20 -05:00
Thomas Daede
77257b0989
Support time-based reads for Greaseweazle V24+.
...
This substantially speeds up read and verify operations, allowing
only 1.2 revs rather than 2 revs to be read.
Fixes #426
2022-01-26 08:02:30 -08:00
David Given
3e4d4cc002
Hotfix for Windows build.
2022-01-22 22:29:34 +01:00