This allows users to modify pins that they are not using for MSEL
purposes. Additionally it allows any defined user pin to be used
for MSEL purposes. Specifically, this will allow user pin 6 to be
used as a fourth drive-select line on the Shugart bus.
This is not required by the USB spec and in fact seems to make
re-connection *more* unreliable when connected via a USB hub.
Refs keirf/greaseweazle#338
Expected sector timing is specified to the WRITE_FLUX command. This
allows detection of short sector times, which indicate the true
track start ("track index"). This allows write cueing as for
soft-sectored disks.
Allows configuration of post-trigger INDEX mask time in microseconds
(0-65535). Some drives may need much longer than the default, if
there is sensor-switch bounce on trailing edge of the INDEX pulse.
Fixeskeirf/greaseweazle#7
The descriptor was missing the bReserved field, which must be zero.
This resulted in an out-of-bounds array copy when transmitting the
device_qualifier descriptor, and possible transmission of garbage
for the bReserved field.
This is based on PR #5 created by kimstik@github
Strlen was jumping to strlen as part of -ftree-loop-distribute-patterns.
Seems this sort of issue can be common and generally fixed with
-fno-builtin. However, some of those optimizations may be useful and I
don't think our semantics for the functions are wildly different than
the standard, so I'm fixing this surgically with
-ftree-loop-distribute-patterns to just util.c. That may be the wrong
call, so if this bites us again, let's go more aggressive.
[Above is commit message from FlashFloppy, which also references
FlashFloppy GitHub issue 660.]
These are equivalent, but the former is deprecated in C++20 and warned by GCC12.
[The above message is from an earlier equivalent commit in FlashFloppy.
It is also equivalent to part of PR #5 created by kimstik@github]
Only the original V4 board requires this. The V4.1 board has a pin
header for the original Act signal.
Also make it clear that the duplication happens only on 403(A)
MCUs. It is not possible on 415 as it affects USB operation.
Make the period proportional to systick rate by updating the timebase
every 2^23 systicks. This will always be safe, no matter how high the
systick rate.