Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FDCONTROL(8)		    System Manager's Manual		  FDCONTROL(8)

NAME
       fdcontrol -- display and	modify floppy disk parameters

SYNOPSIS
       fdcontrol [-F] [-d dbg] [-f fmt]	[-s fmtstr] [-v] device

DEPRECATION NOTICE
       fdcontrol  is  deprecated  and  may  not	be present in FreeBSD 16.0 and
       later.

DESCRIPTION
       The fdcontrol utility allows the	modification of	the run-time  behavior
       of the fdc(4) driver for	the device specified by	device.

       Commands	 are  implemented to query the current device density settings
       as well as the underlying device	hardware as registered with  the  dri-
       ver,  to	 manipulate debugging levels, and to adjust the	device density
       settings.  All the operations that manipulate the kernel	 settings  are
       restricted  to  the superuser (by the device driver), while all inquiry
       requests	only require read access to device.

       The device argument should always be given as a full  path  name,  e.g.
       /dev/fd0.

   Inquiry Commands
       Running	the  fdcontrol	utility	without	any of the optional flags will
       report the drive	type that is registered	with the  device  driver.   In
       the  shortest  form,  a single string describing	the drive type will be
       returned.   Possible  values  are:  "360K",  "1.2M",  "720K",  "1.44M",
       "2.88M",	 or  "unknown".	  This information is primarily	intended to be
       easily parsable by scripts.

       In order	to add some descriptive	text that makes	the output better  hu-
       man readable, the flag -v can be	added.

       Specifying  flag	-F will	report the device's density settings in	a form
       that is suitable	as input to the	-s fmtstr option (see below).	Again,
       together	 with -v, some more text will be returned, including the total
       capacity	of the density settings	in kilobytes.

   Debug Control
       The fdc(4) control utilities support two	different options how to spec-
       ify device density settings.  The first form uses -f fmt	to specify the
       format of the medium in kilobytes.  Depending on	the  underlying	 drive
       type,  the value	is compared against a table of known commonly used de-
       vice density settings for that drive, and if a match  is	 found,	 those
       settings	will be	used.  Currently, the following	values for the respec-
       tive drive types	are acceptable:

       2.88M and 1.44M drives:
	     KB	    sectrac   secsize	ncyls	speed	heads	flags
	     1721   21	      2	(512)	82	500	2	MFM
	     1476   18	      2	(512)	82	500	2	MFM
	     1440   18	      2	(512)	80	500	2	MFM
	     1200   15	      2	(512)	80	500	2	MFM
	      820   10	      2	(512)	82	250	2	MFM
	      800   10	      2	(512)	80	250	2	MFM
	      720   9	      2	(512)	80	250	2	MFM

       1.2M drives:
	     KB	    sectrac   secsize	 ncyls	 speed	 heads	 flags
	     1200   15	      2	(512)	 80	 500	 2	 MFM
	     1232   8	      3	(1024)	 77	 500	 2	 MFM
	     1476   18	      2	(512)	 82	 500	 2	 MFM
	     1440   18	      2	(512)	 80	 500	 2	 MFM
	     1200   15	      2	(512)	 80	 500	 2	 MFM
	      820   10	      2	(512)	 82	 300	 2	 MFM
	      800   10	      2	(512)	 80	 300	 2	 MFM
	      720   9	      2	(512)	 80	 300	 2	 MFM
	      360   9	      2	(512)	 40	 300	 2	 MFM,2STEP
	      640   8	      2	(512)	 80	 300	 2	 MFM

       720K drives:
	     KB	   sectrac   secsize   ncyls   speed   heads   flags
	     720   9	     2 (512)   80      250     2       MFM

       360K drives:
	     KB	   sectrac   secsize   ncyls   speed   heads   flags
	     360   9	     2 (512)   40      250     2       MFM

       The  second  form to specify a device density uses -s fmtstr to explic-
       itly specify each parameter in detail.  The argument fmtstr is a	comma-
       separated list of values	of the form:

       sectrac,secsize,datalen,gap,ncyls,speed,heads,f_gap,f_inter,offs2,flags

       The meaning of the parameters is:

       sectrac	The number of sectors per track.

       secsize	The sector size	code, 0	= 128 bytes (or	less), 1 = 256	bytes,
		2 = 512	bytes, 3 = 1024	bytes.

       datalen	The actual sector size if the size code	is 0, or the (ignored)
		value 0xFF for larger size codes.

       gap	The length of the gap 3	parameter for read/write operations.

       ncyls	The number of cylinders.

       speed	The  transfer speed in kilobytes per second.  Can be 250, 300,
		500, or	1000, but each drive type only supports	 a  subset  of
		these values.

       heads	The number of heads.

       f_gap	The length of the gap 3	when formatting	media.

       f_inter	The  sector interleave to be applied when formatting.  0 means
		no interleave, 1 means 1:1 etc.

       offs2	The offset of the sector numbers on side 2 (i.e., head	number
		1).  Normally, sector numbering	on both	sides starts with 1.

       flags	A list from one	of the following flag values:

		+mfm	  Use MFM encoding.
		-mfm	  Use FM (single-density) encoding.
		+2step	  Use	2  steps  per  each  cylinder  (for  accessing
			  40-cylinder media in 80-cylinder drives).
		-2step	  Do not use 2 steps per cylinder, i.e.,  access  each
			  physical cylinder of the drive.
		+perpend  Use perpendicular recording (for 2.88	MB media, cur-
			  rently not supported).
		-perpend  Use longitudinal recording.

       For  any	missing	parameter, the current value will be used, so only ac-
       tual changes need to be specified.  Thus	to turn	off a flag  bit	 (like
       +mfm which is the default for all drive types), the form	with a leading
       minus sign must explicitly be used.

EXAMPLES
       A simple	inquiry	about the drive	type:

	     $ fdcontrol /dev/fd0
	     1.44M

       Same  as	above, but with	verbose	output.	 Note that the result is about
       the drive type, as opposed to a device density, so  it  is  independent
       from the	actual subdevice being used for	device.

	     $ fdcontrol -v /dev/fd0
	     /dev/fd0: 1.44M drive (3.5" high-density)

       Inquiry about the density settings:

	     $ fdcontrol -F /dev/fd0
	     18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm

       The verbose flag	makes this human readable:

	     /dev/fd0: 1440 KB media type
		     Format:	     18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
		     Sector size:    512
		     Sectors/track:  18
		     Heads/cylinder: 2
		     Cylinders/disk: 80
		     Transfer rate:  500 kbps
		     Sector gap:     27
		     Format gap:     108
		     Interleave:     1
		     Side offset:    0
		     Flags	     <MFM>

       As indicated, trailing commas in	the parameter list may be omitted.

       In  order to access archaic 160 KB single-density (FM encoded) 5.25 me-
       dia in a	modern 1.2M drive, something  like  the	 following  definition
       would  be  needed.   (Note that not all controller hardware is actually
       capable of handling FM encoding at all.)

       # fdcontrol -s 16,128,0x80,0x2,40,300,,0x10,,,-mfm,+2step /dev/fd1.1

       It is still possible to hook up 8" drives to most  modern  floppy  con-
       trollers,  given	the right cable	magic.	(On PC hardware, tell the BIOS
       that it is a 5.25" drive.)  The classical  128/26/2/77  format  can  be
       read with this entry

	     fdcontrol -s  26,128,0x80,0x2,77,500,2,0x10,,,-mfm	/dev/fd0

SEE ALSO
       fdc(4)

HISTORY
       The  fdcontrol  utility	appeared  in FreeBSD 2.0, and was vastly over-
       hauled in FreeBSD 5.0.

AUTHORS
       The program and this man	page was contributed by	Jorg Wunsch, Dresden.

FreeBSD	ports 15.quarterly     November	16, 2025		  FDCONTROL(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fdcontrol&sektion=8&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help