Files
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

173 lines
5.8 KiB
INI

## IMG.CFG: Example FlashFloppy Geometry Configuration File for Raw IMG Images
# Supports tagged IMG/IMA raw image files with self-identifying geometry.
# If you wish to use this feature, your IMG.CFG must be placed in the
# root folder or FF/ subfolder of your USB drive.
# NOTE: If FF/ exists, IMG.CFG must reside there, not the root folder.
# A badly-defined section (eg. undefined mandatory parameters) may result in
# error 31 (Bad Image).
####################################################################
## TAG in square brackets.
## Format: [<tagname>][::<filesize>]
## Matching Rules:
## 1. <tagname> matches images of the form *.<tagname>.{img,ima,dsk}
## 2. Missing (empty) tagname matches any *.{img,ima,dsk} which is untagged
## or does not match any other defined tag.
## 3. Tagnames and their matches are NOT case sensitive.
## 4. <filesize>, if specified, must exactly match the image filesize.
## 5. If an image matches no tag, FlashFloppy uses normal geometry
## auto-detection based on the host= setting in FF.CFG.
# [dsdd80::737280] matches images with names of the form *.dsdd80.{img,ima,dsk}
# and with size exactly 720kB (737280 bytes).
[dsdd80::737280]
## DISK-SCOPE PARAMETERS
# Apply to the whole disk image. Cannot appear in a @tracks sub-section.
# Mandatory: Number of cylinders (1-255).
cyls = 80
# Mandatory: Number of heads (1-2).
heads = 2
# Number of drive-head steps between cylinders. Default is 1.
# step = 1
# Image file track layout. Default is "interleaved".
# Comma-separated values:
# sequential: Sequential cylinder ordering: all side 0, then side 1.
# interleaved: Interleaved cylinder ordering: c0s0, c0s1, c1s0, c1s1, ...
# reverse-sideN: Side-N cylinders are ordered from high to low (N=0,1).
# sides-swapped: Sides 0 and 1 ordering is swapped in the image file.
# eg. "sequential,reverse-side1"
# file-layout = interleaved
## TRACK-SCOPE PARAMETERS
# These can vary across tracks. By default they apply to all tracks unless
# preceded by a @tracks declaration.
# tracks = <track-list>
# Specify the tracks that the following track-scope parameters applies to.
# Format:
# track-list ::= <track-range>[,<track-list>]
# track-range ::= <cylinder>[.<head>] | <cylinder>-<cylinder>[.<head>]
# cylinder ::= [0-9][0-9]*
# head ::= 0|1
# If no head is specified in a track-range, then all heads are assumed.
# Examples:
# "0-23.1,45.0" specifies head 1 of cyls 0-23 and head 0 of cyl 45.
# "27-33" specifies all heads of cyls 27-33.
# Number of sectors per track (0-256). Default is 0.
secs = 9
# Bytes per sector (128, 256, 512, 1024, 2048, 4096, 8192).
# Mandatory if @secs is non-zero.
bps = 512
# Alternative form in which bytes per sector is specified per sector.
# The list is comma separated; no white space allowed.
# bps = 512,512,512,512,512,512,512,512,256
# Bytes per sector within the IMG file. Smaller sectors will be padded.
# The default is 0: Sectors occupy precisely their data size; No padding.
# Supported values: 0, 128, 256, 512, 1024, 2048, 4096, 8192.
# img_bps = 0
# ID of first sector on each track (0-255). Default is 1.
# Numbers may be expressed in hexadecimal with 0x prefix (eg. 0xab).
# id = 1
# Head number for all sectors on this track (auto|0|1). Default is auto.
# auto = use physical drive head number
# h = auto
# Recording mode (fm | mfm). Default is mfm.
# mode = mfm
# Sector interleave. Default is 1:1 (no interleave).
# interleave = 1
# Sector skew per cylinders. Default is 0 (no skew).
# cskew = 0
# Sector skew per head. Default is 0 (no skew).
# hskew = 0
# Rotational RPM. Default is 300.
# rpm = 300
# Post-ID Gap (auto|0-255). Default is auto.
# auto = based on recording mode and sector size.
# gap2 = auto
# Post-Data Gap (auto|0-255). Default is auto.
# auto = based on recording mode and sector size.
# gap3 = auto
# Post-Index Gap (auto|0-255). Default is auto.
# auto = based on recording mode and sector size.
# gap4a = auto
# Index Address Mark (yes | no). Default is yes.
# iam = yes
# Data rate in kHz (kbit/s) (eg. MFM DD = 250). Default is 0.
# 0 = based on recording mode and size of track.
# rate = 0
####################################################################
# An example definition for a Kaypro DS/DD 40-track image.
[kaypro-dsdd40]
cyls = 40
heads = 2
interleave = 3
secs = 10
bps = 512
tracks = 0-39.0
id = 0 # Side 0, sector IDs 0..9
tracks = 0-39.1
id = 10 # Side 1, sector IDs 10..19
####################################################################
# An example definition for TSC Flex.
#
# Flex format is double-density but with single-density (FM) cylinder 0.
# Sector numbering and interleave is continuous across drive heads. Since
# there is no direct way to flag this, we implement it here by explicitly
# specifying head 1 track formats: with sector @id following on from head 0,
# and with @hskew shifting the first sector of side 1 the correct amount to
# simulate cross-track interleave.
[flex::733184]
cyls = 80
heads = 2
bps = 256 # All tracks have 256-byte sectors. Number of sectors varies.
tracks = 0.0 ## Boot cylinder, head 0
secs = 10
mode = fm
interleave = 4
id = 1
tracks = 0.1 ## Boot cylinder, head 1
secs = 10
mode = fm
interleave = 4
hskew = 1 # Simulates correct inter-track interleave
id = 11 # Follows on from head 0 (1..10)
tracks = 1-79.0 ## All other cylinders, head 0
secs = 18
mode = mfm
interleave = 6
id = 1
tracks = 1-79.1 ## All other cylinders, head 1
secs = 18
mode = mfm
interleave = 6
hskew = 5 # Simulates correct inter-track interleave
id = 19 # Follows on from head 0 (1..18)