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