Commit graph

396 commits

Author SHA1 Message Date
Keir Fraser
25742f6ecf util: New function udiv64(): 64/32 -> 32q 2023-09-17 08:31:59 +01:00
Keir Fraser
e2f010c648 New logging macro log() prepends a LOG_PREFIX to log output 2023-09-16 21:27:30 +01:00
Keir Fraser
5067e622ad time: Simplify calculation of 32-bit timebase update period
There is no need to convert to and from milliseconds.
2023-07-14 08:04:52 +01:00
Keir Fraser
5be461fe26 IMG.CFG: New per-track parameter "img_bps"
Specifies bytes occupied per sector in the IMG image file.

Allows padding of short sectors for uniformly-indexed fiels.

Refs #751
2023-02-01 08:58:30 +00:00
Keir Fraser
d44a5e72ee FF.CFG: New option notify-volume= for notifying on insert/eject via speaker.
Refs #716
2023-01-17 16:01:26 +00:00
Keir Fraser
75877cb8eb AT32F415: Run at 144MHz 2023-01-15 13:23:37 +00:00
Keir Fraser
96aeecc0bb FF.CFG, OLED: New display-type sub-option "hflip". 2022-12-20 08:09:45 +00:00
Keir Fraser
027d19ee10 AT32F435: Fix RDATA pin deassert when drive is deselected.
This was fixed for 105/415 Goteks long ago in bb7f7f0128, however
the layout of a GPIO config word is different on 435 and the O_FALSE
level specifier was at the incorrect bit offset.
2022-12-04 14:14:35 +00:00
Keir Fraser
6de7cc7151 amiga: Motor signal must be respected even while a disk is ejected.
Since the motor signal selects between ID and RDY signals on pin 34.

Refs #354
2022-10-20 11:33:32 +01:00
Keir Fraser
c1f1240c45 AT32F435: Fix SD support over SPI. 2022-10-10 07:44:35 +01:00
Keir Fraser
080063e891 FF.CFG: New option osd-columns= to set number of OSD text columns. 2022-10-09 17:12:06 +01:00
Keir Fraser
8637c47cbf New FF.CFG option osd-display-order=, analagous to LCD/OLED display-order= 2022-10-09 12:01:22 +01:00
Keir Fraser
e137eaccf9 amiga: Synchronize amiga pin 34 to /MTR when motor-delay is configured.
Output ungated open-collector /DD density signal on JC.
Refs #354
2022-10-09 12:01:07 +01:00
Keir Fraser
19042f251f AT32F435: Reduce sample clock to 72MHz, same as 105/415 build.
It provides plkenty high enough resolution, while reducing risk of
unexpected tick overflows.
2022-08-02 11:17:53 +01:00
Keir Fraser
edb2686d57 AT32F435: Fix LDO boost (to 1.3v) and Flash divider before configuring 288MHz SYSCLK. 2022-07-04 13:03:46 +01:00
Keir Fraser
8ad53eb84c Replace is_*pin_mcu booleans with an mcu_package enumeration. 2022-06-27 14:02:31 +01:00
Keir Fraser
ddff7d882a Support new Gotek board SFRKC30.AT4.35
* Identifier: PC15 is tied to VDD
 * MOTOR is strappable to PB12 with 1k PU to +5v
 * First SFRKC30 board to support AT32F435
2022-06-06 21:57:17 +01:00
Keir Fraser
5854c43240 Direct Access: Sanity check raw data writes to the Flash drive.
1. No writes until the LBA base is explicitly set
2. No writes outside the mounted FAT volume
3. No writes to the mounted volume boot/bpb sector
Refs #610
2022-05-23 12:50:50 +01:00
Keir Fraser
6db4ae58ac oled: New display-type option '-slow' to run I2C bus slower.
Refs #640
2022-05-06 17:09:37 +01:00
Keir Fraser
f3fae16582 at32f435: Extend NVIC registers to include F435's extra IRQ lines.
Fixes build error on GCC 10.
2022-04-26 11:57:52 +01:00
Keir Fraser
7f5642abe0 AT32F435: Initial port 2022-03-10 16:05:53 +00:00
Keir Fraser
44e65ea7fd Clean EXTI hand-off between rotary-encoder logic and MOTOR/CHGRST 2022-01-24 08:48:26 +00:00
Keir Fraser
b8dc88f69b FF.CFG: New option max-cyl=N
Refs #441
2022-01-11 10:35:22 +00:00
Keir Fraser
e4f2033f16 IMG.CFG: New option step= to allow specifying single- vs double-step.
Refs #441
2022-01-10 13:18:46 +00:00
Keir Fraser
0d1b586fb6 QFN32: JC will in future be connected at pin PA9. Implement this. 2021-09-22 10:03:47 +01:00
Keir Fraser
6de6d16668 QFN32: Implement support for pin mapping of new board SFRKC30.AT2 using AT32F415 QFN32 package. 2021-09-22 10:03:17 +01:00
Keir Fraser
90310e9f00 Support new Gotek board SFRKC30.AT4.7
* AT32F415 654-pin LQFP
 * Optional dedicated rotary header
2021-06-23 08:59:15 +01:00
Keir Fraser
c84bbe9c2b Beta support for Artery microcontrollers
- SFRC922D using AT32F415RCT7
 - SFRC922AT3 using AT32F415CBT7
2021-04-15 10:30:28 +01:00
Keir Fraser
8ceac4d17e Do not enter DA mode if within cylinder range of mounted image.
Refs #405
2020-12-23 12:35:02 +00:00
Keir Fraser
78cb485361 Remove Kaypro from FF.CFG and provide an IMG.CFG instead.
Refs #398
2020-12-10 08:14:23 +00:00
Keir Fraser
9dfc22fbd8 lcd,oled: display-order= is ignored in "banner" and "menu" modes. 2020-11-13 11:31:19 +00:00
Keir Fraser
24ca89f134 Rename display_mode to display_type. 2020-11-13 09:32:07 +00:00
Keir Fraser
80c05ce92d oled: New FF.CFG display-type option: -inverse 2020-11-02 21:00:22 +00:00
Keir Fraser
6fe58c5863 fatfs: Use correct LBA_t/FSIZE_t types in our interfaces to FatFS 2020-10-25 19:35:48 +00:00
Keir Fraser
acc2022535 img: Rename raw_sec fields to use R and N (IDAM byte IDs). 2020-10-15 09:34:03 +01:00
Keir Fraser
ed41a52996 IMG.CFG: Allow head-id to be forced via new "h=0|1" option.
Use this in the TSC_Flex format descriptors.
Refs #378
2020-10-15 08:11:10 +01:00
Keir Fraser
2341619c0b FF.CFG: New option "rotary=v2" uses v2.x rotary encoder logic.
This is more permissive than v3.x logic and may work better with
some cheap encoders which skip Gray-code states altogether.

Fixes #357
2020-10-11 11:49:33 +01:00
Keir Fraser
fea9e270f9 FF.CFG: Remove obsolete "rotary=gray" option.
Clean up type subfield of ff_cfg.rotary by introducing an explicit typemask.
2020-10-11 11:44:09 +01:00
Keir Fraser
db2ab822ea FF.CFG: New 'twobutton-action = htu'. Original Gotek Hundreds/Tens/Units
button behaviour during image navigation:
Both:  Hundred
Left:  Tens
Right: Units

Hold both for 1 second to reset to 000.

Refs #379
2020-10-11 11:31:44 +01:00
Keir Fraser
bf911c343f img: Allow GAP values of 0 to be specified. Auto-GAP is now special value -1.
Allow GAP4A to be specified in IMG.CFG
2020-10-10 15:00:42 +01:00
Keir Fraser
6a2a1cf8b8 IMG.CFG: Tags are case insensitive 2020-10-10 10:22:52 +01:00
Keir Fraser
99246acad7 img: Make cskew and hskew per-track parameters, and included in simple_layout structure. 2020-10-09 10:00:13 +01:00
Keir Fraser
dd10f79afc img: Make interleave a per-track parameter. Define it in simple_layout along with data_rate. 2020-10-09 09:47:13 +01:00
Keir Fraser
3875e17547 FF.CFG: New interface options 'jppc' and 'jppc-hdout'.
These correspond to standard interface types in Japanese PCs.
2020-09-28 15:12:30 +01:00
Keir Fraser
e23c893f8e adf: Remember sector write order for current cylinder if it is modified.
Although we forget as soon as the heads are stepped or disk ejected, this
is sufficient to satisfy X-Copy in verify mode when copying a source disk
with out-of-order sectors (seems rare but does happen).

Fixes #365
2020-09-28 09:23:20 +01:00
Keir Fraser
72d2338d05 img, dsk: Improved log messages 2020-09-23 12:28:19 +01:00
Keir Fraser
4baa4d1927 img, dsk, da: Replace some CRC computations with pre-calculated versions 2020-09-22 13:36:24 +01:00
Keir Fraser
9a5a29a579 rotary: Implement a velocity curve for image navigation 2020-08-20 14:58:02 +01:00
Keir Fraser
5830c77f98 rotary: Rotary encoder inputs are now IRQ-driven rather than polled. 2020-08-20 10:16:00 +01:00
Keir Fraser
b5e70de77b image: Properly implement empty/unformatted tracks beyond end of image-file track count.
These tracks read as garbage, and ignore writes.

This fixes a bug where writing beyond an image-file limit would trash the last
cylinder's track data. This was particularly an issue for HFE image files.

Refs #309
2020-07-15 13:19:41 +01:00