]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.sbin/fdcontrol/fdcontrol.8
MFV: file 5.45.
[FreeBSD/FreeBSD.git] / usr.sbin / fdcontrol / fdcontrol.8
1 .\" Copyright (C) 1994, 2001 by Joerg Wunsch, Dresden
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\"
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY
14 .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
19 .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
20 .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21 .\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
23 .\" USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
24 .\" DAMAGE.
25 .\"
26 .Dd April 7, 2017
27 .Dt FDCONTROL 8
28 .Os
29 .Sh NAME
30 .Nm fdcontrol
31 .Nd display and modify floppy disk parameters
32 .Sh SYNOPSIS
33 .Nm
34 .Op Fl F
35 .Op Fl d Ar dbg
36 .Op Fl f Ar fmt
37 .Op Fl s Ar fmtstr
38 .Op Fl v
39 .Ar device
40 .Sh DESCRIPTION
41 The
42 .Nm
43 utility allows the modification of the run-time behavior of the
44 .Xr fdc 4
45 driver for the device specified by
46 .Ar device .
47 .Pp
48 Commands are implemented to query the current device density settings
49 as well as the underlying device hardware as registered with the
50 driver, to manipulate debugging levels, and to adjust the device
51 density settings.
52 All the operations that manipulate the kernel
53 settings are restricted to the superuser (by the device driver), while
54 all inquiry requests only require read access to
55 .Ar device .
56 .Pp
57 The
58 .Ar device
59 argument should always be given as a full path name, e.g.\&
60 .Pa /dev/fd0 .
61 .Ss Inquiry Commands
62 Running the
63 .Nm
64 utility without any of the optional flags will report the drive type
65 that is registered with the device driver.
66 In the shortest form, a single string describing the drive type will
67 be returned.
68 Possible values are:
69 .Dq Li 360K ,
70 .Dq Li 1.2M ,
71 .Dq Li 720K ,
72 .Dq Li 1.44M ,
73 .Dq Li 2.88M ,
74 or
75 .Dq Li unknown .
76 This information is primarily intended to be easily parsable by
77 scripts.
78 .Pp
79 In order to add some descriptive text that makes the output better
80 human readable, the flag
81 .Fl v
82 can be added.
83 .Pp
84 Specifying flag
85 .Fl F
86 will report the device's density settings in a form that is suitable
87 as input to the
88 .Fl s Ar fmtstr
89 option (see below).
90 Again, together with
91 .Fl v ,
92 some more text will be returned, including the total capacity of the
93 density settings in kilobytes.
94 .Ss Debug Control
95 The
96 .Xr fdc 4
97 control utilities support two different options how to specify device
98 density settings.
99 The first form uses
100 .Fl f Ar fmt
101 to specify the format of the medium in kilobytes.
102 Depending on the
103 underlying drive type, the value is compared against a table of known
104 commonly used device density settings for that drive, and if a match
105 is found, those settings will be used.
106 Currently, the following
107 values for the respective drive types are acceptable:
108 .Bl -item
109 .It
110 2.88M and 1.44M drives:
111 .Bd -ragged -offset indent -compact
112 .TS
113 lB lB lB lB lB lB lB
114 r l l l l l l.
115 KB      sectrac secsize ncyls   speed   heads   flags
116 1721    21      2 (512) 82      500     2       MFM
117 1476    18      2 (512) 82      500     2       MFM
118 1440    18      2 (512) 80      500     2       MFM
119 1200    15      2 (512) 80      500     2       MFM
120 820     10      2 (512) 82      250     2       MFM
121 800     10      2 (512) 80      250     2       MFM
122 720     9       2 (512) 80      250     2       MFM
123 .TE
124 .Ed
125 .It
126 1.2M drives:
127 .Bd -ragged -offset indent -compact
128 .TS
129 lB lB lB lB lB lB lB
130 r l l l l l l.
131 KB      sectrac secsize ncyls   speed   heads   flags
132 1200    15      2 (512) 80      500     2       MFM
133 1232    8       3 (1024)        77      500     2       MFM
134 1476    18      2 (512) 82      500     2       MFM
135 1440    18      2 (512) 80      500     2       MFM
136 1200    15      2 (512) 80      500     2       MFM
137 820     10      2 (512) 82      300     2       MFM
138 800     10      2 (512) 80      300     2       MFM
139 720     9       2 (512) 80      300     2       MFM
140 360     9       2 (512) 40      300     2       MFM,2STEP
141 640     8       2 (512) 80      300     2       MFM
142 .TE
143 .Ed
144 .It
145 720K drives:
146 .Bd -ragged -offset indent -compact
147 .TS
148 lB lB lB lB lB lB lB
149 r l l l l l l.
150 KB      sectrac secsize ncyls   speed   heads   flags
151 720     9       2 (512) 80      250     2       MFM
152 .TE
153 .Ed
154 .It
155 360K drives:
156 .Bd -ragged -offset indent -compact
157 .TS
158 lB lB lB lB lB lB lB
159 r l l l l l l.
160 KB      sectrac secsize ncyls   speed   heads   flags
161 360     9       2 (512) 40      250     2       MFM
162 .TE
163 .Ed
164 .El
165 .Pp
166 The second form to specify a device density uses
167 .Fl s Ar fmtstr
168 to explicitly specify each parameter in detail.
169 The argument
170 .Ar fmtstr
171 is a comma-separated list of values of the form:
172 .Pp
173 .Sm off
174 .Ar sectrac , secsize , datalen , gap , ncyls , speed ,
175 .Ar heads , f_gap , f_inter , offs2 , flags
176 .Sm on
177 .Pp
178 The meaning of the parameters is:
179 .Bl -tag -width ".Ar secsize"
180 .It Ar sectrac
181 The number of sectors per track.
182 .It Ar secsize
183 The sector size code, 0 = 128 bytes (or less), 1 = 256 bytes, 2 = 512
184 bytes, 3 = 1024 bytes.
185 .It Ar datalen
186 The actual sector size if the size code is 0, or the (ignored) value
187 0xFF for larger size codes.
188 .It Ar gap
189 The length of the gap 3 parameter for read/write operations.
190 .It Ar ncyls
191 The number of cylinders.
192 .It Ar speed
193 The transfer speed in kilobytes per second.
194 Can be 250, 300, 500, or
195 1000, but each drive type only supports a subset of these values.
196 .It Ar heads
197 The number of heads.
198 .It Ar f_gap
199 The length of the gap 3 when formatting media.
200 .It Ar f_inter
201 The sector interleave to be applied when formatting.
202 0 means no
203 interleave, 1 means 1:1 etc.
204 .It Ar offs2
205 The offset of the sector numbers on side 2 (i.e., head number 1).
206 Normally, sector numbering on both sides starts with 1.
207 .It Ar flags
208 A list from one of the following flag values:
209 .Pp
210 .Bl -tag -width ".Cm +perpend" -compact
211 .It Cm +mfm
212 Use MFM encoding.
213 .It Cm -mfm
214 Use FM (single-density) encoding.
215 .It Cm +2step
216 Use 2 steps per each cylinder (for accessing 40-cylinder media in
217 80-cylinder drives).
218 .It Cm -2step
219 Do not use 2 steps per cylinder, i.e., access each physical cylinder
220 of the drive.
221 .It Cm +perpend
222 Use perpendicular recording (for 2.88 MB media, currently not
223 supported).
224 .It Cm -perpend
225 Use longitudinal recording.
226 .El
227 .El
228 .Pp
229 For any missing parameter, the current value will be used, so only
230 actual changes need to be specified.
231 Thus to turn off a flag bit
232 (like
233 .Cm +mfm
234 which is the default for all drive types), the form with a leading
235 minus sign must explicitly be used.
236 .Sh EXAMPLES
237 A simple inquiry about the drive type:
238 .Bd -literal -offset indent
239 $ fdcontrol /dev/fd0
240 1.44M
241 .Ed
242 .Pp
243 Same as above, but with verbose output.
244 Note that the result is about
245 the
246 .Em "drive type" ,
247 as opposed to a
248 .Em "device density" ,
249 so it is independent from the actual subdevice being used for
250 .Ar device .
251 .Bd -literal -offset indent
252 $ fdcontrol -v /dev/fd0
253 /dev/fd0: 1.44M drive (3.5" high-density)
254 .Ed
255 .Pp
256 Inquiry about the density settings:
257 .Bd -literal -offset indent
258 $ fdcontrol -F /dev/fd0
259 18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
260 .Ed
261 .Pp
262 The verbose flag makes this human readable:
263 .Bd -literal -offset indent
264 /dev/fd0: 1440 KB media type
265         Format:         18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
266         Sector size:    512
267         Sectors/track:  18
268         Heads/cylinder: 2
269         Cylinders/disk: 80
270         Transfer rate:  500 kbps
271         Sector gap:     27
272         Format gap:     108
273         Interleave:     1
274         Side offset:    0
275         Flags           <MFM>
276 .Ed
277 .Pp
278 As indicated, trailing commas in the parameter list may be omitted.
279 .Pp
280 In order to access archaic 160 KB single-density (FM encoded) 5.25
281 media in a modern 1.2M drive, something like the following definition
282 would be needed.
283 (Note that not all controller hardware is actually
284 capable of handling FM encoding at all.)
285 .Bd -literal
286 # fdcontrol -s 16,128,0x80,0x2,40,300,,0x10,,,-mfm,+2step /dev/fd1.1
287 .Ed
288 .Pp
289 It is still possible to hook up 8" drives to most modern floppy
290 controllers, given the right cable magic.
291 (On PC hardware, tell the BIOS that it is a 5.25" drive.)
292 The classical 128/26/2/77 format can be read with this entry
293 .Bd -literal -offset indent
294 fdcontrol -s  26,128,0x80,0x2,77,500,2,0x10,,,-mfm /dev/fd0
295 .Ed
296 .Sh SEE ALSO
297 .Xr fdc 4
298 .Sh HISTORY
299 The
300 .Nm
301 utility appeared in
302 .Fx 2.0 ,
303 and was vastly overhauled in
304 .Fx 5.0 .
305 .Sh AUTHORS
306 The program and this man page was contributed by
307 .An J\(:org Wunsch ,
308 Dresden.