## FF.CFG: Example FlashFloppy Configuration File # Place in the root folder or FF/ subfolder of your USB drive. # NOTE: If FF/ exists, IMG.CFG must reside there, not the root folder. # Uncommented lines below are the default settings. # Uncommented options cannot be overridden by settings in other config files. ## ## DRIVE EMULATION # Floppy-drive interface mode (interface pins 2 and 34) # jc: Specified by jumper JC (open: shugart, closed: ibmpc) # shugart: P2=DSKCHG, P34=RDY (Amiga, Atari ST, many others) # ibmpc: P2=unused, P34=DSKCHG (IBM PC interface) # ibmpc-hdout: P2=HD_OUT, P34=DSKCHG (not generally needed: prefer 'ibmpc') # jppc: P2=unused, P34=RDY (Japanese PC standard) # jppc-hdout: P2=HD_OUT, P34=RDY (Japanese PC alternate: prefer 'jppc') # akai-s950: Legacy alias of 'jppc-hdout', previously used for Akai S950 # amiga: P2=DSKCHG, P34=DRIVE_ID (not generally needed: prefer 'shugart') interface = jc # Host platform: Improves image-format detection for generic types such as IMG # acorn: Acorn ADFS # akai: Akai (S01, S20, S950), Korg, SC Prophet 3000 # casio: Casio (FZ-1) # dec: DEC (RX33, RX50) # ensoniq: Ensoniq (ASR, TS, etc) # fluke: Fluke 9100 # gem: General Music (S2, S3) # ibm-3174: IBM 3174 Establishment Controller # memotech: Memotech # msx: MSX # nascom: Nascom # pc98: NEC PC-98 # pc-dos: PC DOS Format (geometry determined from Bios Parameter Block) # tandy-coco: Tandy Color Computer (CoCo) # ti99: TI-99/4A # uknc: UKNC / DVK Soviet PDP-11 # unspecified: Common default geometries (including IBM PC) host = msx # Pins 2 & 34 output (drive->host) manual configuration # auto: Auto-configure from interface= setting # nc: Unused/No Connection [eg. if pin is an input (host->drive) on your host] # low: Always 0 volts (0v) # high: Always 5 volts (5v) # rdy: Drive ready (Ready = 0v) # nrdy: Logical complement of above # dens: Density mode (High Density = 0v) # ndens: Logical complement of above # chg: Disk changed (Changed = 0v) # nchg: Logical complement of above # Values: auto, nc, low, high, rdy, nrdy, dens, ndens, chg, nchg pin02 = auto pin34 = auto # Forcibly write-protect images, or respect the FAT read-only attribute? # Values: yes | no write-protect = no # Maximum cylinder that can be stepped to (255 is required for access to # Direct Access mode as used by image-selector utilities and Autoswap games). # Values: 0 <= N <= 255 max-cyl = 255 # Filter glitches in the SIDE-select signal shorter than N microseconds # Values: 0 <= N <= 255 side-select-glitch-filter = 0 # Rotational offset of disk after a track change # instant: No rotation during track change # realtime: Emulate rotation of disk while track is changing # Values: instant | realtime track-change = instant # Rotational offset of disk after draining a write to Flash # instant: No rotation # realtime: Disk rotates in real time during drain # eot: Disk rotates to (near) end of track # Values: instant | realtime | eot write-drain = instant # Index pulses suppressed when RDATA and WDATA inactive? # Values: yes | no index-suppression = yes # Milliseconds from head-step start to RDATA active. # Values: 0 <= N <= 255 head-settle-ms = 12 # Milliseconds delay from motor-on to drive ready. # On a standard unmodified Gotek the motor signal is not connected and a # non-default value here will have no effect. Most systems and software do # not care about correct motor behaviour, and default (ignore) works fine. # Values: ignore | 0 <= N <= 1000 motor-delay = ignore # What causes the disk-change (chg) signal to reset after disk insertion? # step: Step command received # pa14: CHGRST (pin 1 on old Sony drives), connected to PA14 (JTCK/SWCLK) # delay-N: Automatically after N*0.5sec (0 <= N <= 15) chgrst = step ## ## STARTUP / INITIALISATION # Disk image loaded or ejected at startup? # Values: yes | no ejected-on-startup = no # Which image (or folder) is selected at startup? # last: Last-selected item at power-off (recorded in IMAGE_A.CFG) # static: Static path specified in INIT_A.CFG # init: First item in root folder # Values: last | static | init image-on-startup = last # Time in milliseconds to attempt to probe attached display. # You may set this to 0 if you have a 2-digit LED display attached. # Values: 0 <= N <= 65535 display-probe-ms = 3000 ## ## IMAGE NAVIGATION # Auto-select the current file after N seconds # N=0: disable auto-select # Values: 0 <= N <= 255 autoselect-file-secs = 2 # Auto-select the current folder after N seconds # N=0: disable auto-select # Values: 0 <= N <= 255 autoselect-folder-secs = 2 # Sorting of folder entries in native navigation mode. # always: Always sort folder entries. Large folders may be truncated. # never: Never sort folder entries, instead presenting them in FAT order. # small: Only sort folders which are small enough to sort in full. # Values: always | never | small folder-sort = always # Priority of files vs subfolders when sorting folder entries: # folders: Folders listed before files # files: Files listed before folders # none: Files and folders are not differentiated # Values: folders | files | none sort-priority = folders # Navigation mode for selecting images/slots # native: Navigate through all valid images/dirs # indexed: Navigate through DSKA0000, DSKA0001, ... # default: native unless overridden by HxC-compat-mode config nav-mode = default # When navigating slots or folder, loop at min/max? # Values: yes | no nav-loop = yes # Actions of first two buttons. # B1 | B2 | Both # zero: Prev | Next | Slot 0 # eject: Prev | Next | Eject/Insert # htu: +10 | +1 | +100 # rotary: Up-dir | Select/Eject/Insert | - # rotary-fast: Prev | Next | Up-dir [Prev/Next are accelerated] # reverse: Reverse sense of B1 and B2 # Multiple values can be separated by commas, eg twobutton-action=eject,reverse twobutton-action = zero # Input sensor type at the rotary-encoder inputs (pins PC10 and PC11): # [full | half | quarter]: # Rotary encoder, identified by fraction of a Gray-code cycle performed # per detent/click. If default value ('full') requires multiple # clicks/detents to move position then change to 'half' (if 2 clicks # per move) or 'quarter' (if 4 clicks). # [trackball]: # Blackberry-style trackball (eg. using Hall-effect sensors). # [buttons]: # Push-to-ground Prev/Next buttons. # [reverse]: # If the input is working in reverse, use this option to swap directions. # [v2]: # Use the rotary encoder logic from FlashFloppy v2.x. Use this if the # v3 logic is too strict and results in no, or missing, movements. # Multiple values can be separated by commas, eg rotary=quarter,reverse # Values: none | quarter | half | full | trackball | buttons | reverse | v2 rotary = full # Prefix for image names in indexed navigation mode. String can be empty (""). indexed-prefix = "DSKA" ## ## DISPLAY # Display Type. # auto: Auto-detect (7-seg LED, LCD, OLED) # lcd-CCxRR: CCxRR backlit LCD with I2C backpack (16<=CC<=40, 02<=RR<=04) # oled-128xNN: 128xNN I2C OLED (NN = 32 | 64) # -rotate: OLED view is rotated 180 degrees # -narrow[er]: OLED view is restricted to Gotek display cutout # (-narrow: 18 chars; -narrower: 16 chars) # -inverse: Inverse/reverse video (black text on white background) # -ztech: ZHONGJY_TECH 2.23" 128x32 SSD1305 OLED display # -slow: Run I2C bus slower (use this if OLED regularly blanks/corrupts) # Values: auto | lcd-CCxRR | oled-128xNN[-rotate][-narrow[er]]... display-type = auto # OLED Font. Narrow and wide options. # Narrower 6x13 font permits: # - More characters per row # - Use of Gotek display cutout (eg. "display-type=oled-128x32-narrow") # Values: 6x13 | 8x16 oled-font = 6x13 # OLED contrast/brightness. # Values: 0 <= N <= 255 oled-contrast = 143 # Text height and arrangement on LCD/OLED and on OSD, respectively. # 'default', or a comma-separated list (one entry per LCD/OLED row, top down). # Each list item is a digit plus optional height specifier: [d] # content-row: '0-3' = specified content row, '7' = blank # 0: Current image name # 1: Status # 2: Image/Volume info # 3: Current subfolder name # height specifier: 'd' = double height (32px, OLED only; ignored for LCD) # 'default' depends on display, eg.: oled-128x32='0,1' ; oled-128x64='3,0d,1' # Values: [0-7][d] | default display-order = default osd-display-order = 0,1 # OSD text columns. This is currently respected only when no LCD/OLED is found. # Values: 16 <= N <= 40 osd-columns = 16 # Turn an LCD or OLED display off after N seconds of inactivity # N=0: always off; N=255: always on # Values: 0 <= N <= 255 display-off-secs = 5 # Switch on LCD/OLED display when there is drive activity? # yes: Trigger on track changes and disk writes # sel: Trigger on drive select # no: No automatic trigger # Values: yes | sel | no display-on-activity = yes # LCD/OLED long filename scroll rate in milliseconds per update # Values: 100 <= N <= 65535 display-scroll-rate = 200 # LCD/OLED pause time at start/end of scroll, in milliseconds # Zero means endless scroll # Values: 0 <= N <= 65535 display-scroll-pause = 2000 # LCD/OLED long filename scroll rate during navigation (ms per update) # Values: 0 <= N <= 65535 nav-scroll-rate = 80 # LCD/OLED long filename pause before scroll, during navigation (milliseconds) # Values: 0 <= N <= 65535 nav-scroll-pause = 300 ## ## MISCELLANEOUS # Speaker volume for head STEP # Values: 0 <= N <= 20 step-volume = 10 # Report the specified version number to host software # Values: ("" means report real version) # eg. da-report-version = "v3.0.0.0" da-report-version = "" # Automatically extend certain types of truncated image file (SSD,DSD,TRD)? # Values: yes | no extend-image = yes