/usr/share/doc/fdutils/Fdutils.html is in fdutils 5.5-20060227-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
<!-- Created on May 24, 2012 by texi2html 1.82
texi2html was written by:
Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
Olaf Bachmann <obachman@mathematik.uni-kl.de>
and many others.
Maintained by: Many creative people.
Send bugs and suggestions to <texi2html-bug@nongnu.org>
-->
<head>
<title>Fdutils</title>
<meta name="description" content="Fdutils">
<meta name="keywords" content="Fdutils">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 1.82">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
pre.display {font-family: serif}
pre.format {font-family: serif}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: serif; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: serif; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.roman {font-family:serif; font-weight:normal;}
span.sansserif {font-family:sans-serif; font-weight:normal;}
ul.toc {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="General-Introduction"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[ < ]</td>
<td valign="middle" align="left">[<a href="#Location" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[ << ]</td>
<td valign="middle" align="left">[ Up ]</td>
<td valign="middle" align="left">[<a href="#Location" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1 class="unnumbered">General Introduction</h1>
<p>Fdutils is a collection of utilities for configuring and using the
Linux floppy driver. With fdutils, you can:
</p>
<ol>
<li>
Format disks with a higher capacity than usual (up to 1992KB on a 3 1/2
HD disk).
</li><li>
Reconfigure the autodetection sequence to automatically detect some of
these extended formats.
</li><li>
Access various internal driver structures and drive configuration using
the floppycontrol program.
</li></ol>
<p>This manual describes these utilities, and also the floppy driver
itself.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Location">1. Where to get fdutils and its documentation</a></td><td> </td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Basic-usage">2. Basic usage</a></td><td> </td><td align="left" valign="top"> How to get started
</td></tr>
<tr><td align="left" valign="top"><a href="#Device-numbers">3. Device numbers</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Media-description">4. Media description</a></td><td> </td><td align="left" valign="top"> How can a floppy disk and a format be described
to fdutils?
</td></tr>
<tr><td align="left" valign="top"><a href="#Drive-descriptions">5. Drive descriptions</a></td><td> </td><td align="left" valign="top"> How can a drive and its characteristics be
described to fdutils?
</td></tr>
<tr><td align="left" valign="top"><a href="#Extended-formats">6. Storing more data on a floppy disk</a></td><td> </td><td align="left" valign="top"> How to store more data on your floppy disks
</td></tr>
<tr><td align="left" valign="top"><a href="#Autodetection">7. How autodetection works</a></td><td> </td><td align="left" valign="top"> How the floppy driver distinguishes among the
different kinds of disks
</td></tr>
<tr><td align="left" valign="top"><a href="#Boottime-configuration">8. Configuring the floppy driver via LILO or insmod</a></td><td> </td><td align="left" valign="top"> Lilo boot options understood by the floppy driver
</td></tr>
<tr><td align="left" valign="top"><a href="#Floppy-ioctls">9. Floppy ioctls</a></td><td> </td><td align="left" valign="top"> The ioctl’s understood by the floppy driver
</td></tr>
<tr><td align="left" valign="top"><a href="#Commands">10. Command list</a></td><td> </td><td align="left" valign="top"> The available fdutils commands
</td></tr>
<tr><td align="left" valign="top"><a href="#Compile_002dtime-configuration">11. Compile-time configuration via GNU autoconf</a></td><td> </td><td align="left" valign="top"> How to use GNU autoconf to customize fdutils
</td></tr>
<tr><td align="left" valign="top"><a href="#Acronyms">A. Acronyms</a></td><td> </td><td align="left" valign="top"> A brief listing of acronyms used in this
documentation
</td></tr>
<tr><td align="left" valign="top"><a href="#Interesting-formats">B. Interesting formats</a></td><td> </td><td align="left" valign="top"> A brief list of legacy and other formats
</td></tr>
<tr><td align="left" valign="top"><a href="#Command-Index">Command Index</a></td><td> </td><td align="left" valign="top"></td></tr>
<tr><td align="left" valign="top"><a href="#Concept-Index">Concept index</a></td><td> </td><td align="left" valign="top"> Concept Index
</td></tr>
</table>
<hr size="6">
<a name="Location"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#General-Introduction" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Where-to-get-fdutils-and-its-documentation"></a>
<h1 class="chapter">1. Where to get fdutils and its documentation</h1>
<a name="index-bugs"></a>
<a name="index-ALPHA-patches"></a>
<a name="index-patches"></a>
<a name="index-diffs"></a>
<a name="index-mailing-list"></a>
<p>Fdutils can be found at the following places (+ mirrors):
</p><table><tr><td> </td><td><pre class="example">ftp://www.tux.org/pub/knaff/fdutils/fdutils-5.5.tar.gz
ftp://metalab.unc.edu/pub/Linux/utils/disk-management/fdutils-5.5.tar.gz
ftp://tsx-11.mit.edu/pub/linux/sources/sbin/fdutils-5.5.tar.gz
</pre></td></tr></table>
<p>The FAQ included in this package is also available separately at:
</p><table><tr><td> </td><td><pre class="example">http://alain.knaff.linux.lu/floppy/FAQ.html
http://www.tux.org/pub/knaff/floppy/FAQ.html
</pre></td></tr></table>
<p>The FAQ at fdutils.linux.lu and www.tux.org is usually more up to date
than versions found elsewhere. Thus, if you don’t find an answer in the
copy of the FAQ you have, please check this one for more recent info.
</p>
<p>Before reporting a bug, make sure that it has not yet been fixed in the
Alpha patches which can be found at:
</p><table><tr><td> </td><td><pre class="example">http://fdutils.linux.lu
ftp://www.tux.org/pub/knaff/fdutils
</pre></td></tr></table>
<p>These patches are named
<code>fdutils-</code><var>version</var><code>-</code><var>ddmm</var><code>.taz</code>, where version
stands for the base version, <var>dd</var> for the day and <var>mm</var> for the
month. Due to a lack of space, I usually leave only the most recent
patch.
</p>
<p>There is an fdutils mailing list at fdutils @ www.tux.org . Please
send all bug reports to this list. You may subscribe to the list by
sending a message with ’subscribe fdutils @ www.tux.org’ in its
body to majordomo @ www.tux.org . (N.B. Please remove the spaces
around the "@" both times. I left them there in order to fool
spambots.) Announcements of new fdutils versions will also be sent to
the list, in addition to the linux announce newsgroups. The mailing
list is archived at http://www.tux.org/hypermail/fdutils/latest
</p><hr size="6">
<a name="Basic-usage"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Location" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Disk-organisation" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Location" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Basic-usage-1"></a>
<h1 class="chapter">2. Basic usage</h1>
<p>This chapter describes basic usage of floppies, and gives a few simple
tips for using floppies under Linux.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Disk-organisation">2.1 How disks are organized</a></td><td> </td><td align="left" valign="top"> How a disk is organized, high-level and low-level
formats
</td></tr>
<tr><td align="left" valign="top"><a href="#File-systems">2.2 File systems supported by Linux</a></td><td> </td><td align="left" valign="top"> Which file systems does Linux support
</td></tr>
<tr><td align="left" valign="top"><a href="#Device-names">2.3 What’s in a name</a></td><td> </td><td align="left" valign="top"> How floppy drives are named
</td></tr>
<tr><td align="left" valign="top"><a href="#Identifying-disks">2.4 What to do if you get an unidentified floppy disk</a></td><td> </td><td align="left" valign="top"> How to identify a disk
</td></tr>
<tr><td align="left" valign="top"><a href="#Nickel-tours">2.5 Nickel tours</a></td><td> </td><td align="left" valign="top"> Short summaries of the various storage methods
</td></tr>
<tr><td align="left" valign="top"><a href="#New-features">2.7 New Features of 1.2+ kernels</a></td><td> </td><td align="left" valign="top"> New features of the kernel, mtools, and fdutils
</td></tr>
</table>
<hr size="6">
<a name="Disk-organisation"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#File-systems" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="How-disks-are-organized"></a>
<h2 class="section">2.1 How disks are organized</h2>
<a name="index-low-level-format"></a>
<a name="index-format-_0028low-level-vs_002e-high-level_0029"></a>
<a name="index-high-level-format"></a>
<p>All floppies have two levels of <em>formatting</em>, both of which must be
known in order to read them. The first is the <em>binary</em> or
<em>sector</em> level format, which is how raw data is stored on the disk.
The second is a higher level organization, often called a <em>file
system</em>, which allows multiple files to be conveniently stored on the
disk.
</p>
<p>For example, a typical 1.44MB disk contains a low-level format, with 18
sectors per track, 80 tracks, and two sides (or heads); each sector can
hold 512 bytes of data for a total of 1474560 bytes (or 1440 KB). When
used under MS-DOS, this floppy would have a small portion of the disk
used to keep track of files on the disk (including a bootsector, file
allocation tables, directories, etc.).
</p>
<p>The floppy driver generally takes care of reading the binary, or
low-level format. It can often "guess" the low-level disk geometry
needed to read the disk. This is called autodetection
(see section <a href="#Autodetection">How autodetection works</a>). If the driver can’t autodetect the disk
(e.g. if it is in an unusual format) you can tell the driver what the
geometry is either by using the <code>setfdprm</code> (see section <a href="#setfdprm">setfdprm</a>)
utility or by using a fixed geometry device device
(e.g. ‘<tt>/dev/fd0H1440</tt>’).
</p>
<p>Under Linux, many different file systems from many sources can be used.
Some of these file systems are interpreted via a utility program (for
example <code>mtools</code> for using disks with an MS-DOS file system). Many
file systems can alternatively be "mounted" to appear in the UNIX
directory structure until subsequently being unmounted; this is usually
implemented by having the kernel itself interpret the file system on the
disk.
</p>
<hr size="6">
<a name="File-systems"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Disk-organisation" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Device-names" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="File-systems-supported-by-Linux"></a>
<h2 class="section">2.2 File systems supported by Linux</h2>
<a name="index-supported-file-systems"></a>
<a name="index-file-systems-supported-by-linux"></a>
<p>The following file systems are supported:
</p>
<dl compact="compact">
<dt> <strong>OS/2 HPFS:</strong></dt>
<dd><p>read-only support (mount/kernel)
</p></dd>
<dt> <strong>Mac HPFS 1.44MB:</strong></dt>
<dd><p>read-only (xhfs utility)
</p></dd>
<dt> <strong>MS-DOS:</strong></dt>
<dd><p>read, write, format (mtools utility <em>and</em> mount/kernel)
</p></dd>
<dt> <strong>tar, cpio:</strong></dt>
<dd><p>compatible with many variations of UNIX (tar, cpio utilities)
</p></dd>
<dt> <strong>System V, minix, xia, ext, ext2:</strong></dt>
<dd><p>(mount/kernel)
</p></dd>
<dt> <strong>pure binary disk access:</strong></dt>
<dd><p>no file system (any program, usually dd, cat, and cp)
</p></dd>
</dl>
<hr size="6">
<a name="Device-names"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#File-systems" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Identifying-disks" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="What_0027s-in-a-name"></a>
<h2 class="section">2.3 What’s in a name</h2>
<a name="index-floppy-device-name"></a>
<a name="index-file-name-of-floppy-devices"></a>
<a name="index-name-of-floppy-devices"></a>
<p>The following figure shows the meaning of the different parts of the
name of a floppy device:
</p>
<table><tr><td> </td><td><pre class="example"> +--------------- /dev: directory for devices
| +------------- fd: floppy disk device prefix
| | +------------ 0: floppy drive #0 (A:) (0-1 typical, 0-7
| | | possible)
| | |+-- 3.5" drive: (use d for 5.25" double density drives, and
| | || h for 5.25" high density drives,
| | || u for 3.5" drive of any density)
| | || +---- 1440: Capacity (in KB) of format (usually between
| | || | 360 and 3920)
/dev/fd0u1440
</pre></td></tr></table>
<hr size="6">
<a name="Identifying-disks"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Device-names" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Nickel-tours" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="What-to-do-if-you-get-an-unidentified-floppy-disk"></a>
<h2 class="section">2.4 What to do if you get an unidentified floppy disk</h2>
<a name="index-indentifying-unknown-disks"></a>
<table><tr><td> </td><td><pre class="example">dd if=/dev/fd0 of=/tmp/foo count=1
# If it works:
getfdprm # This will report what geometry the disk has
file /tmp/foo # This may indicate the type of file system
mdir a: # Check for an MS-DOS file system
tar tvf /dev/fd0 # Check for a tar archive
cpio -itv < /dev/fd0 # Check for a cpio archive
e2fsck /dev/fd0 # Check for an "ext2" file system
# If it doesn't work:
# Try the above dd command using various /dev/fd0* devices
</pre></td></tr></table>
<hr size="6">
<a name="Nickel-tours"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Identifying-disks" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Mtools" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Nickel-tours-1"></a>
<h2 class="section">2.5 Nickel tours</h2>
<a name="index-nickel-tours"></a>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Mtools">2.5.1 mtools</a></td><td> </td><td align="left" valign="top"> Access MS-Dos disks from Unix
</td></tr>
<tr><td align="left" valign="top"><a href="#Tar">2.5.2 Tar (Tape ARchive)</a></td><td> </td><td align="left" valign="top"> Tarring files directly to floppy disks
</td></tr>
<tr><td align="left" valign="top"><a href="#CPIO">2.5.3 CPIO (CoPy In/Out)</a></td><td> </td><td align="left" valign="top"> Another archive format
</td></tr>
<tr><td align="left" valign="top"><a href="#Ext2">2.6 Ext2 (Second Extended File System)</a></td><td> </td><td align="left" valign="top"> Seconded Extended File System
</td></tr>
</table>
<hr size="6">
<a name="Mtools"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Nickel-tours" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Tar" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Nickel-tours" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="mtools-1"></a>
<h3 class="subsection">2.5.1 mtools</h3>
<a name="index-mtools-_0028nickel-tour_0029"></a>
<table><tr><td> </td><td><pre class="example">mdir a: # Read directory of MS-DOS disk in drive A:
mcopy /tmp/foo\* a: # Copy files beginning with foo in /tmp to A:
mcopy a:\* . # Copy all files from A: to current directory
mformat a: # Add MS-DOS file system to formatted disk
</pre></td></tr></table>
<hr size="6">
<a name="Tar"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Mtools" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#CPIO" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Nickel-tours" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Tar-_0028Tape-ARchive_0029"></a>
<h3 class="subsection">2.5.2 Tar (Tape ARchive)</h3>
<a name="index-tar"></a>
<table><tr><td> </td><td><pre class="example">tar tvf /dev/fd0 # Read directory of tar archive in
# drive A:
tar cvf /dev/fd0 foo1 foo2 # Write foo1 and foo2 to A: in tar
# format foo1/foo2 can be entire
# directory trees
tar xvfp /dev/fd0 # extract entire tar archive in
# drive A:
</pre></td></tr></table>
<p>Tar is not a file system. Only low-level format (<code>superformat</code>,
see section <a href="#superformat">superformat</a>) are needed to prepare a disk to accept a tar
archive.
</p>
<hr size="6">
<a name="CPIO"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Tar" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Ext2" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Nickel-tours" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="CPIO-_0028CoPy-In_002fOut_0029"></a>
<h3 class="subsection">2.5.3 CPIO (CoPy In/Out)</h3>
<a name="index-CPIO"></a>
<table><tr><td> </td><td><pre class="example">cpio -itv < /dev/fd0 # Read directory of cpio archive in A:
find foo1 foo2 -print | cpio -ov < /dev/fd0
# Write foo1/foo2 to A:
# foo1/foo2 can be entire directory trees
cpio -idumv < /dev/fd0 # extract entire CPIO archive in drive A:
</pre></td></tr></table>
<p>Note: blocks reported are in 512-byte units (due to UNIX System V
heritage). Cpio is not a file system. Only low-level format (fdformat
or superformat (see section <a href="#superformat">superformat</a>) needed.
</p>
<hr size="6">
<a name="Ext2"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#CPIO" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#New-features" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Ext2-_0028Second-Extended-File-System_0029"></a>
<h2 class="section">2.6 Ext2 (Second Extended File System)</h2>
<a name="index-Ext2"></a>
<table><tr><td> </td><td><pre class="example">mke2fs /dev/fd0 1440 # Makes an ext2 filesystem of 1440
# block on A:
mke2fs -c /dev/fd0 1440 # Same as above, but tests floppy first
e2fsck /dev/fd0 # Tests filesystem integrity. (like
# chkdsk in Dos)
e2fsck -p /dev/fd0 # Repairs filesystem. (like chkdsk /f
# in Dos)
mount -t ext2 /dev/fd0 /mnt # Mounts the disk in A: on /mnt.
# The directory /mnt must already exist
umount /mnt # Unmounts /mnt. No process should
# have its working directory in /mnt
# No process should have open files in
# /mnt
</pre></td></tr></table>
<p>Note: don’t use ext2 on 2m disks
On some systems <code>mke2fs</code> is also called mkfs.ext2, and e2fsck is also
called fsck.ext2
</p>
<hr size="6">
<a name="New-features"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Ext2" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#kernel" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="New-Features-of-1_002e2_002b-kernels"></a>
<h2 class="section">2.7 New Features of 1.2+ kernels</h2>
<a name="index-New-features"></a>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#kernel">2.7.1 New features of 1.2+ kernels</a></td><td> </td><td align="left" valign="top"> New kernel features since 1.2.0
</td></tr>
<tr><td align="left" valign="top"><a href="#mtools">2.7.2 New features of mtools-3.0</a></td><td> </td><td align="left" valign="top"> New mtools features since mtools-3.0
</td></tr>
<tr><td align="left" valign="top"><a href="#fdutils">2.7.3 New Utilities</a></td><td> </td><td align="left" valign="top"> Utilities contained in the fdutils package
</td></tr>
</table>
<hr size="6">
<a name="kernel"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#New-features" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#mtools" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#New-features" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="New-features-of-1_002e2_002b-kernels"></a>
<h3 class="subsection">2.7.1 New features of 1.2+ kernels</h3>
<a name="index-Kernel-_0028new-features_0029"></a>
<ul>
<li>
Faster and more comprehensive automatic sensing of floppy formats
</li><li>
Second Floppy Disk Controller (FDC) supported
</li><li>
DOS fdformat-style formats (up to 21 sectors on HD 3.5" disk)
</li><li>
DOS 2m-style formats (up to 24 sectors equivalent on HD 3.5" disk)
</li><li>
non-DOS 2m-inspired formats
</li><li>
Several long-standing bugs fixed
</li><li>
More exact detection of FDC type
</li><li>
More exact detection of floppy drives
</li></ul>
<hr size="6">
<a name="mtools"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#kernel" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#fdutils" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#New-features" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="New-features-of-mtools_002d3_002e0"></a>
<h3 class="subsection">2.7.2 New features of mtools-3.0</h3>
<a name="index-Mtools-_0028new-features_0029"></a>
<ul>
<li>
Support for new floppy formats (fdformat, 2m, 2m-like, ED)
</li><li>
2.88MB (Extra Density) floppies supported
</li><li>
More friendly syntax (e.g. "mcopy a:", "mmove")
</li><li>
Improved mmount
</li><li>
16-bit FATs (needed for some ED formats)
</li><li>
Automatically sets disk geometry for Linux
</li><li>
Several bug fixes
</li></ul>
<p>NOTE: Mtools has no longer maintained by its original maintainer Emmet
P. Gray after 2.0.7.
</p>
<hr size="6">
<a name="fdutils"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#mtools" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#New-features" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="New-Utilities"></a>
<h3 class="subsection">2.7.3 New Utilities</h3>
<a name="index-Fdutils-_0028brief-list-of-supplied-utilities_0029"></a>
<ul>
<li>
<code>superformat</code> (replaces fdformat; up to 3.84 MB floppies, faster,
calls mformat)
</li><li>
new <code>getfdprm</code>/<code>setfdprm</code>
</li><li>
<code>fdrawcmd</code> (allows user-mode programs to do low-level floppy
actions) <code>floppycontrol</code> (general-purpose floppy driver
configuration utility)
</li><li>
<code>MAKEFLOPPIES</code> (makes floppy devices)
</li></ul>
<hr size="6">
<a name="Device-numbers"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#fdutils" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Variable-format-devices" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Basic-usage" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Device-numbers-1"></a>
<h1 class="chapter">3. Device numbers</h1>
<a name="index-MAKEFLOPPIES-_0028making-floppy-devices_0029"></a>
<a name="index-device-numbers"></a>
<a name="index-making-floppy-devices"></a>
<p>The floppy device nodes are usually made using the <code>MAKEFLOPPIES</code>
shell script (See section <a href="#makefloppies">makefloppies</a>.).
</p>
<p>The major device number for the floppy drives is 2. The minor device
number contains describes which drive it represents, and may in addition
describe the kind of media which is currently in the drive.
</p>
<p>There are two kind of floppy devices:
</p><ul>
<li>
Variable geometry device nodes. Their minor number doesn’t depend on the
media in the drive, and is calculated as follows:
<table><tr><td> </td><td><pre class="example"><var>minor_device</var> = 128 * <var>fdc_nr</var> + <var>unit_nr</var>
</pre></td></tr></table>
</li><li>
Fixed geometry device nodes. Their minor number not only depends on the
drive which they represent, but also the type of media currently in the
drive. It is computed as follows:
<table><tr><td> </td><td><pre class="example"><var>minor_device</var> = 128 * <var>fdc_nr</var> + <var>unit_nr</var> + 4 * <var>format_nr</var>
</pre></td></tr></table>
</li></ul>
<p>In this formula, <var>fdc_nr</var> is the number of the floppy disk
controller (0 or 1, usually 0), and <var>unit_nr</var> is the Unit number (0
to 3, 0 for Dos drive <code>A:</code>, and 1 for Dos drive <code>B:</code>).
<var>Format_nr</var> is only meaningful for the fixed format devices. It
describes the disk geometry that is used. It is an index into the
<em>geometry list</em> <a href="#geometry-list">The geometry list</a>. Using all available
controller numbers and all available drive numbers, you may thus connect
up to 8 floppy drives to a single Linux box.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Variable-format-devices">3.1 Variable format devices</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Fixed-format-devices">3.2 Fixed format devices</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#geometry-list">3.3 The geometry list</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Adding-new-formats">3.4 Adding new formats</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr size="6">
<a name="Variable-format-devices"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Device-numbers" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Fixed-format-devices" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Variable-format-devices-1"></a>
<h2 class="section">3.1 Variable format devices</h2>
<a name="index-Variable-format-devices"></a>
<p>Variable format devices don’t have an intrinsic geometry. When using
these devices, the geometry has to be set either by using autodetection
(see section <a href="#Autodetection">How autodetection works</a>), or by using the <code>FDSETPRM</code> or
<code>FDGETPRM</code> ioctl. The latter ioctl can be issued using the
<code>setfdprm</code> (see section <a href="#setfdprm">setfdprm</a>) and <code>getfdrpm</code>
(see section <a href="#getfdprm">getfdprm</a>) programs. With the default settings, common formats
are detected transparently, and you can access any disk transparently
using the variable format devices.
</p>
<p>The geometry information is kept as long as the disk is in the drive,
and is discarded as soon as the disk is removed, unless the geometry has
been declared <em>permanent</em> by using setfdprm’s <code>-p</code> flag
(see section <a href="#setfdprm">setfdprm</a>).
</p>
<hr size="6">
<a name="Fixed-format-devices"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Variable-format-devices" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#geometry-list" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Fixed-format-devices-1"></a>
<h2 class="section">3.2 Fixed format devices</h2>
<a name="index-Fixed-format-devices"></a>
<p>Fixed format devices should not be used under normal circumstances.
</p>
<p>Fixed format devices have an intrinsic geometry. They are useful for
the <code>fdformat</code> program (which is now considered obsolete), and for
booting off floppies which have formats that are different from the
default format (because during booting, there is no application that can
issue the otherwise needed <code>FDSETPRM</code> ioctl).
</p>
<hr size="6">
<a name="geometry-list"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Fixed-format-devices" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Adding-new-formats" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="The-geometry-list"></a>
<h2 class="section">3.3 The geometry list</h2>
<a name="index-Geometry-List"></a>
<a name="index-Format-List"></a>
<a name="index-Available-Formats"></a>
<a name="index-Formats"></a>
<a name="index-Geometries"></a>
<a name="index-Default-Formats"></a>
<a name="index-Builtin-Formats"></a>
<p>The floppy driver contains a builtin list of 32 formats. This list is used
for two purposes:
</p><ul>
<li>
It says which geometry is used for the <em>fixed format</em> devices.
</li><li>
It is used for <em>autodetection</em>
</li></ul>
<p>The following formats (geometries) are known:
</p>
<dl compact="compact">
<dt> <strong>format_nr</strong></dt>
<dd><p><strong>Format</strong>
</p></dd>
<dt> 0</dt>
<dd><p>autodetect
</p></dd>
<dt> 1</dt>
<dd><p>360KB, 5.25" DD drive
</p></dd>
<dt> 2</dt>
<dd><p>1200KB, 5.25" HD drive
</p></dd>
<dt> 3</dt>
<dd><p>360KB, 3.5" DD drive
</p></dd>
<dt> 4</dt>
<dd><p>720KB, 3.5" DD drive
</p></dd>
<dt> 5</dt>
<dd><p>360KB, 5.25" DD disk in HD drive
</p></dd>
<dt> 6</dt>
<dd><p>720KB, 5.25" DD disk in HD drive
</p></dd>
<dt> 7</dt>
<dd><p>1440KB, 3.5" HD drive
</p></dd>
<dt> 8</dt>
<dd><p>2880KB, 3.5" ED drive
</p></dd>
<dt> 9</dt>
<dd><p>3120KB, 3.5" ED drive
</p></dd>
<dt> 10</dt>
<dd><p>1440KB, 5.25" HD drive
</p></dd>
<dt> 11</dt>
<dd><p>1680KB, 3.5" HD drive
</p></dd>
<dt> 12</dt>
<dd><p>410KB, 5.25" DD disk in HD drive
</p></dd>
<dt> 13</dt>
<dd><p>820KB, 3.5" DD drive
</p></dd>
<dt> 14</dt>
<dd><p>1476KB, 5.25" HD drive
</p></dd>
<dt> 15</dt>
<dd><p>1722KB, 3.5" HD drive
</p></dd>
<dt> 16</dt>
<dd><p>420KB, 5.25" DD disk in HD drive
</p></dd>
<dt> 17</dt>
<dd><p>830KB, 3.5" DD drive
</p></dd>
<dt> 18</dt>
<dd><p>1494KB, 5.25" HD drive
</p></dd>
<dt> 19</dt>
<dd><p>1743KB, 3.5" HD drive
</p></dd>
<dt> 20</dt>
<dd><p>880KB, 5.25" DD drive
</p></dd>
<dt> 21</dt>
<dd><p>1040KB, 3.5" DD drive
</p></dd>
<dt> 22</dt>
<dd><p>1120KB, 3.5" DD drive
</p></dd>
<dt> 23</dt>
<dd><p>1600KB, 5.25" HD drive
</p></dd>
<dt> 24</dt>
<dd><p>1760KB, 3.5" HD drive
</p></dd>
<dt> 25</dt>
<dd><p>1920KB, 3.5" HD drive
</p></dd>
<dt> 26</dt>
<dd><p>3200KB, 3.5" ED drive
</p></dd>
<dt> 27</dt>
<dd><p>3520KB, 3.5" ED drive
</p></dd>
<dt> 28</dt>
<dd><p>3840KB, 3.5" ED drive
</p></dd>
<dt> 29</dt>
<dd><p>1840KB, 3.5" HD drive
</p></dd>
<dt> 30</dt>
<dd><p>800KB, 3.5" DD drive
</p></dd>
<dt> 31</dt>
<dd><p>1600KB, 3.5" HD drive
</p></dd>
</dl>
<p>This table lists first the format_nr (0-31) used to compute the minor
number, then the capacity of the format (360KB - 3200KB), and then the
type of the drive in which this format is used.
</p>
<p>The formats 0..8 are the standard PC formats. The remaining formats are
extended capacity formats. Some of them have been taken from Heiko
Schroeder’s fdpatches (after correcting some minor bugs). Others have
been added by David Niemi and me (Alain Knaff). Formats 9, 12, 13, 16,
17, 30 and 31 are non-interleaved formats with normal sized sectors, and
have the highest capacity that can be achieved without resorting to
interleaving or bigger sectors (<a href="#More-sectors">More sectors per cylinder</a>). Formats 10, 11,
14, 15, 18, 19 use interleaving interleaving to achieve a higher
capacity (<a href="#Interleave">Using interleave</a>). Formats 20 and 22 to 29 use bigger sectors
than usual (<a href="#Larger-sectors">Larger sectors</a> and <a href="#Mixed-size-sectors">Mixed sector size (MSS) formats</a>).
</p>
<p>In addition to these techniques, formats 13-19 use more cylinders than
usual (<a href="#More-cylinders">More Cylinders</a>). <strong>USE THESE FORMATS (13-19) ONLY IF
YOUR DRIVE SUPPORTS THE NECESSARY NUMBER OF TRACKS</strong>
</p>
<hr size="6">
<a name="Adding-new-formats"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#geometry-list" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Adding-new-formats-1"></a>
<h2 class="section">3.4 Adding new formats</h2>
<a name="index-setfdprm-_0028Adding-formats_0029"></a>
<a name="index-Redefining-formats"></a>
<a name="index-Adding-formats"></a>
<p>You can redefine the default formats using the setfdprm program
(<a href="#setfdprm">setfdprm</a>) <a name="DOCF1" href="#FOOT1">(1)</a>. The following
example illustrates how to add a new 19 sector format, and make a device
entry for it. First, we pick an entry for it, which we want to reuse.
I recommend to redefine an entry which is only rarely used. For
instance, if you have no 5 1/4 drive on your system, you can redefine
any 5 1/4 entry without a loss. In our example, we pick 10.
</p>
<p>First we make the device node:
</p><table><tr><td> </td><td><pre class="example">mknod /dev/fd0H1520 b 2 40
^ ^ ^ ^
| | | Minor device number (format number * 4 +
| | | drive + controller*128)
| | Major device number (always 2!)
| Blockdevice
A name that you choose for the format. I
recommend to base the name on the capacity,
but you may choose any name you want.
</pre></td></tr></table>
<p>Then we redefine the geometry of the new device:
</p><table><tr><td> </td><td><pre class="example">setfdprm /dev/fd0H1520 1520 19 2 80 0 0x1b 0 0xcf 0x6c
</pre></td></tr></table>
<p><strong>NB:</strong> This redefines the geometry for any device node with the
same format number, not just the new node.
</p>
<p>The new geometry is only valid until the next reboot (or removal of the
floppy module). In order to make it permanent, you have to execute the
<code>setfdprm</code> command from your ‘<tt>/etc/rc</tt>’ file or whenever you
insert the floppy module.
</p>
<hr size="6">
<a name="Media-description"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Adding-new-formats" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction-_0028Mediaprm_0029" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Device-numbers" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Media-description-1"></a>
<h1 class="chapter">4. Media description</h1>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Introduction-_0028Mediaprm_0029">4.1 Introduction</a></td><td> </td><td align="left" valign="top"> Benefits of the new representation
</td></tr>
<tr><td align="left" valign="top"><a href="#Syntax">4.2 Syntax</a></td><td> </td><td align="left" valign="top"> What a media description looks like
</td></tr>
<tr><td align="left" valign="top"><a href="#Media-definition-file">4.3 The media description dictionary in /etc/fdmediaprm</a></td><td> </td><td align="left" valign="top"> Refer to media by a symbolic name
</td></tr>
</table>
<hr size="6">
<a name="Introduction-_0028Mediaprm_0029"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Media-description" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Introduction"></a>
<h2 class="section">4.1 Introduction</h2>
<p>Fdutils-5.0 introduces a new uniform format description, which is
supported both by setfdprm and superformat. The new format description
is easier to handle, because it allows to set the different parameters
of a format description in a symbolic and position independent way,
using a series of <em>variable=value</em> clauses. Moreover, it
automatically fills in sensible default values for unspecified
parameters. Thus you only need to describe those aspects of the format
that are important to you, and let the system handle the others.
</p>
<p>Moreover, the new description separates those aspects that were specific
to the drive (like for instance its rotation speed) from those that are
specific to the media (spacial density, number of sectors, etc.).
</p>
<p>The same description can be used both by setfdprm and superformat:
</p><table><tr><td> </td><td><pre class="example">setfdprm /dev/fd0 hd sect=21 cyl=83
superformat /dev/fd0 hd sect=21 cyl=83
</pre></td></tr></table>
<p>The first line above configures a 21 sector/83 cylinder format for drive
0, and the second line formats a disk using this same format.
</p>
<hr size="6">
<a name="Syntax"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction-_0028Mediaprm_0029" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Selecting-the-density" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Syntax-2"></a>
<h2 class="section">4.2 Syntax</h2>
<p>A media description is a series of <em>variable=value</em> and
<em>selector</em> clauses. <em>Value</em> is a number followed by an
optional unit. The unit is either <code>KB</code> (1024 bytes) or <code>b</code>
(blocks of 512 bytes), or none (bytes).
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Selecting-the-density">4.2.1 Selecting the density</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Selecting-the-number-of-cylinders-heads-and-sectors">4.2.2 Selecting the number of cylinders, heads and sectors</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Selecting-non_002dstandard-sector-sizes">4.2.3 Selecting non-standard sector sizes</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Legacy-formats">4.2.4 Legacy formats</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Expert-options">4.2.5 Expert options</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr size="6">
<a name="Selecting-the-density"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Syntax" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Selecting-the-number-of-cylinders-heads-and-sectors" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Selecting-the-density-1"></a>
<h3 class="subsection">4.2.1 Selecting the density</h3>
<p>To select a density just insert its two letter code into the format
description. Selecting a density also selects its default number of
sectors, heads and cylinders. However, these latter parameters can be
overridden.
</p>
<dl compact="compact">
<dt> <code>hd</code></dt>
<dd><p>High density (1440KB for 3 1/2 and 1200KB for 5 1/4). The most commonly
used format today.
</p>
</dd>
<dt> <code>dd</code></dt>
<dd><p>Double density (720KB for 3 1/2 and 360KB for 5 1/4)
</p>
</dd>
<dt> <code>ed</code></dt>
<dd><p>Extra density (2880KB for 3 1/2)
</p>
</dd>
<dt> <code>qd</code></dt>
<dd><p>Quad density (720KB for 5 1/4).
</p>
</dd>
<dt> <code>sd</code></dt>
<dd><p>Single density (no nominal size). Used mostly for CP/M. Only for
experienced users.
</p></dd>
</dl>
<p>If no density is given, the maximal density supported by the drive is
used. However, in order to keep the drive description and the media
description independent, I strongly suggest that you <strong>always</strong>
indicate the density anyways.
</p>
<hr size="6">
<a name="Selecting-the-number-of-cylinders-heads-and-sectors"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Selecting-the-density" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Selecting-non_002dstandard-sector-sizes" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Selecting-the-number-of-cylinders_002c-heads-and-sectors"></a>
<h3 class="subsection">4.2.2 Selecting the number of cylinders, heads and sectors</h3>
<p>This subsection describes how to select custom formats with a
non-standard number of heads, cylinders or sectors. However, note that
just describing the number of sectors, heads and cylinders is not
enough: you also need to indicate which density your custom format is
based on (cf. previous section).
</p>
<dl compact="compact">
<dt> <code>sect=<em>nb_of_sectors</em></code></dt>
<dd><p>This describes the number of sectors.
</p></dd>
<dt> <code>head=<em>nb_of_heads</em></code></dt>
<dd><p>This describes the number of heads to be used.
</p></dd>
<dt> <code>cyl=<em>nb_of_cylinders</em></code></dt>
<dd><p>This described the number of cylinders to be used.
</p></dd>
</dl>
<hr size="6">
<a name="Selecting-non_002dstandard-sector-sizes"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Selecting-the-number-of-cylinders-heads-and-sectors" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Legacy-formats" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Selecting-non_002dstandard-sector-sizes-1"></a>
<h3 class="subsection">4.2.3 Selecting non-standard sector sizes</h3>
<p>In order to achieve a higher capacity, you may want to use a bigger
sector size.
</p>
<dl compact="compact">
<dt> <code>ssize=<em>sector_size</em></code></dt>
<dd><p>Choses a bigger sector size. The sector size is expressed in bytes.
Only powers of two between 128 and 32768 are acceptable
</p></dd>
<dt> <code>sect=<em>nb_of_sectors</em></code></dt>
<dd><p>Describes the number of sectors. For example <code>hd sect=11
ssize=1024</code> describes a format where one track (1 side) is made up of 11
sectors of 1024 bytes each (thus 11KB per track, and 22KB per cylinder).
</p></dd>
<dt> <code>tracksize=<em>size_of_one_track</em></code></dt>
<dd><p>Describes the size of one track. For example, <code>hd tracksize=11KB
ssize=1KB</code> describes a format where one track contains 11KB of data
(tracksize) stored in sectors of 1KB each.
</p>
<p>This option exists mainly to describe MSS (mixed sector size) formats.
For example, <code>hd tracksize=12KB mss</code> describes a format where one
track which contains 12 KB of data. The sectors size are chosen by the
system in a way to take up the least raw space: 8KB + 4KB.
</p>
</dd>
<dt> <code>mss</code></dt>
<dd>
<p>This option says that the format is an MSS format.
</p>
</dd>
<dt> <code>2m</code></dt>
<dd>
<p>This option says that the format is a so-called 2M format. These
formats are intended for easy readability on DOS boxes. Their first
track has the usual 18 sectors, whereas the other tracks have bigger
sector, and in some cases mixed sector sizes.
</p>
</dd>
</dl>
<hr size="6">
<a name="Legacy-formats"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Selecting-non_002dstandard-sector-sizes" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Expert-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Legacy-formats-1"></a>
<h3 class="subsection">4.2.4 Legacy formats</h3>
<p>The <code>swapsides</code> format allows to describe disks whose sides are
swapped, such as CBM1581 disks.
</p>
<hr size="6">
<a name="Expert-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Legacy-formats" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Media-definition-file" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Expert-options-1"></a>
<h3 class="subsection">4.2.5 Expert options</h3>
<p>The following options are not needed in most common situations, as they
are implied by the <em>density</em> selector. They may be needed to read
some legacy (CP/M) formats.
</p>
<dl compact="compact">
<dt> <code>tpi=48</code></dt>
<dd><p>For 5 1/4 disks only. This says that the format uses double-spaced
cylinders (implied by double density).
</p></dd>
<dt> <code>tpi=96</code></dt>
<dd><p>For 5 1/4 disks only. This says that the format uses single-spaced
cylinders (implied by quad and high density).
</p></dd>
<dt> <code>fm=0</code></dt>
<dd><p>Uses MFM encoding (implied by double, quad, high and extra density)
</p></dd>
<dt> <code>fm=1</code></dt>
<dd><p>Uses FM encoding (implied by single density)
</p></dd>
<dt> <code>dtr=<em>dtr-code</em></code></dt>
<dd><p>Sets the data transfer rate. The following table lists the dtr codes
for various transfer rates:
</p><table><tr><td> </td><td><pre class="example">dtr-code rate for FM rate for MFM
=============================================
0 250kb/s 500kb/s
1 150kb/s 300kb/s
2 125kb/s 250kb/s
3 500kb/s 1000kb/s
</pre></td></tr></table>
</dd>
<dt> <code>perp=0</code></dt>
<dd><p>Do not use "perpendicular mode" sector headers (this setting is implied
by single, double, quad and high density).
</p></dd>
<dt> <code>perp=1</code></dt>
<dd><p>Use "perpendicular" sector headers (this setting is implied by
extra-density)
</p></dd>
<dt> <code>gap=<em>value</em></code></dt>
<dd><p>Sets the size of the read/write gap. I don’t know the purpose of this
parameter (which is passed <em>as-is</em> to the floppy controller): any
value seems to work with any format...
</p></dd>
<dt> <code>fmt_gap=<em>value</em></code></dt>
<dd><p>Sets the size of the formatting gap. This is only used by the now
obsolete <code>fdformat</code> program, and not by superformat.
</p></dd>
</dl>
<hr size="6">
<a name="Media-definition-file"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Expert-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Media-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="The-media-description-dictionary-in-_002fetc_002ffdmediaprm"></a>
<h2 class="section">4.3 The media description dictionary in /etc/fdmediaprm</h2>
<p>‘<tt>/usr/local/etc/fdmediaprm</tt>’ <a name="DOCF2" href="#FOOT2">(2)</a>
contains a dictionary of commonly used media descriptions. Each
description is identified by a name, which can then be used by setfdprm
or superformat to refer to it, instead of an explicit description.
</p>
<p>Each definition starts with <code>"</code><em>name</em><code>":</code>, followed by
the actual description. Definitions may be spread over several lines,
for better readability. The file may contain comments, which start with
# and stop at the end of the line.
</p><hr size="6">
<a name="Drive-descriptions"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Media-definition-file" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax-of-a-drive-description" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Media-description" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Drive-descriptions-1"></a>
<h1 class="chapter">5. Drive descriptions</h1>
<p>Unlike earlier version, fdutils-5.0 separates drive descriptions and
media description. For more details on this separation,
see section <a href="#Introduction-_0028Mediaprm_0029">Introduction</a>. Drive descriptions are used to describe the
hardware characteristics of a drive, such as their maximal density,
their rotation speed, their form factor, etc.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Syntax-of-a-drive-description">5.1 Syntax</a></td><td> </td><td align="left" valign="top"> What to put into a drive description
</td></tr>
<tr><td align="left" valign="top"><a href="#Drive-definition-file">5.2 The drive definition file in ‘<tt>/usr/local/etc/fddriveprm</tt>’</a></td><td> </td><td align="left" valign="top"> Where drive definitions are stored
</td></tr>
</table>
<hr size="6">
<a name="Syntax-of-a-drive-description"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Drive-descriptions" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Density" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Syntax-1"></a>
<h2 class="section">5.1 Syntax</h2>
<p>A drive description is a series of <em>variable=value</em> and
<em>selector</em> clauses.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Density">5.1.1 Density</a></td><td> </td><td align="left" valign="top"> The maximal available density on the drive
</td></tr>
<tr><td align="left" valign="top"><a href="#Form-factor">5.1.2 Form factor</a></td><td> </td><td align="left" valign="top"> Whether this drive is a 3 1/2", 5 1/4" or 8" drive
</td></tr>
<tr><td align="left" valign="top"><a href="#Cmos-code">5.1.3 Cmos code</a></td><td> </td><td align="left" valign="top"> Sums up both density and form factor
</td></tr>
<tr><td align="left" valign="top"><a href="#Other-parameters">5.1.4 Other parameters</a></td><td> </td><td align="left" valign="top"> Rotation speed and tracks per inch
</td></tr>
</table>
<hr size="6">
<a name="Density"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Syntax-of-a-drive-description" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Form-factor" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax-of-a-drive-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Density-1"></a>
<h3 class="subsection">5.1.1 Density</h3>
<p>The density of a drive is the highest media density that it supports.
Density is one of <code>sd</code>, <code>dd</code>, <code>qd</code>, <code>hd</code> or
<code>ed</code>. Usually, you do not need to specify this parameter, as it
can be derived from the drives CMOS code.
</p>
<hr size="6">
<a name="Form-factor"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Density" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Cmos-code" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax-of-a-drive-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Form-factor-1"></a>
<h3 class="subsection">5.1.2 Form factor</h3>
<p>The form factor of a drive describes the physical dimensions of the
media it accepts. It is one of <code>3.5</code>, <code>5.25</code> or <code>8</code>.
Usually, you do not need to specify this parameter, as it can be derived
from the drives CMOS code.
</p>
<hr size="6">
<a name="Cmos-code"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Form-factor" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Other-parameters" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax-of-a-drive-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Cmos-code-1"></a>
<h3 class="subsection">5.1.3 Cmos code</h3>
<p>The PC BIOS already knows on its own about the most common drive types.
These are named by an integer from 1 to 6, according to the following
table.
</p><table><tr><td> </td><td><pre class="example">0 no drive installed
1 5.25 DD
2 5.25 HD
3 3.5 DD
4 3.5 HD
5 3.5 ED
6 3.5 ED
</pre></td></tr></table>
<p>As you see 3.5 ED drives have two possible codes. Some BIOSes use 5,
others use 6. The reason for this is that initially 5 was intended for
floppy tape drives, and only 6 was for 3.5 ED drives. However, some
BIOS manufacturers didn’t know about this convention, and used 5 for the
then "new" 3.5 ED drives.
</p>
<p>Usually, you do not need to specify this parameter, as it can be read
from the physical CMOS of your PC. This parameter may be useful if your
BIOS does not store the drive’s CMOS code at the expected place, or if
you have more than two drives.
</p>
<hr size="6">
<a name="Other-parameters"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Cmos-code" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-definition-file" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Syntax-of-a-drive-description" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Other-parameters-1"></a>
<h3 class="subsection">5.1.4 Other parameters</h3>
<dl compact="compact">
<dt> <code>deviation=<var>deviation</var></code></dt>
<dd><p>Tells how much more/less raw capacity the drive has than the standard.
Due to slightly different rotation speeds <a name="DOCF3" href="#FOOT3">(3)</a> and to slightly different data
transfer rates, the raw capacity per track can vary slightly. For
normal formats, these small deviations from the prescribed raw capacity
is not harmful, as these have plenty of safety margins built in.
However, the new extra capacity formats are affected by this, as they
try to squeeze every available raw byte out of the disk.
</p>
<p>Deviation is expressed in ppm. Positive values mean a higher raw
capacity than normal, and negative values mean a lower raw capacity than
normal. The deviation can be measured using the <code>floppymeter</code>
program.
</p>
</dd>
<dt> <code>rpm=<var>rotation_speed</var></code></dt>
<dd>
<p>Prescribed rotation speed of the drive, expressed in rotations per
minute. This is 360 for 5 1/4 HD drives, and 300 for all other commonly
available drive types. Usually, you do not need to specify this
parameter, as it can be derived from the drive’s CMOS code. It is
useful however for single density drives or other drives not commonly
found on a PC. Usually, you do not to specify this parameter, as it can
be derived from the drive’s form factor and maximal density.
</p>
</dd>
<dt> <code>tpi=<var>cylinder_density</var></code></dt>
<dd>
<p>This parameter is only meaningful for 5 1/4 drives. It expresses
whether the drive is able to use 80 tracks (<code>tpi=96</code>) or only 40
(<code>tpi=48</code>). Usually, you do not to specify this parameter, as it
can be derived from the drive’s maximal density: quad density and high
density drives are 96 tpi, whereas double density drives are 48 tpi.
</p>
</dd>
</dl>
<hr size="6">
<a name="Drive-definition-file"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Other-parameters" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="The-drive-definition-file-in-_002fusr_002flocal_002fetc_002ffddriveprm"></a>
<h2 class="section">5.2 The drive definition file in ‘<tt>/usr/local/etc/fddriveprm</tt>’</h2>
<p>‘<tt>/usr/local/etc/fddriveprm</tt>’ <a name="DOCF4" href="#FOOT4">(4)</a>
contains a dictionary of commonly used media descriptions. Each
description is identified by a name, which can then be used by setfdprm
or superformat to refer to it, instead of an explicit description.
</p>
<p>Each definition starts with <code>"drive</code><em>number</em><code>":</code>,
followed by the actual description. Definitions may be spread over
several lines, for better readability. The file may contain comments,
which start with # and stop at the end of the line.
</p>
<hr size="6">
<a name="Extended-formats"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Drive-definition-file" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#More-sectors" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Drive-descriptions" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Storing-more-data-on-a-floppy-disk"></a>
<h1 class="chapter">6. Storing more data on a floppy disk</h1>
<a name="index-extended-formats"></a>
<a name="index-high-capacity-formats"></a>
<a name="index-formatting-disks"></a>
<p>This section describes the techniques that are used by Linux’ floppy
driver and superformat to store more data than usual on a floppy disk.
</p>
<p>Each section contains a description of the technique used, lists the
usages of the disks formatted using this technique (whether they are
bootable, whether they are accessible on MS-DOS and for which kind of
filesystems they are suitable) and finishes with a table listing the
most interesting formats which can be obtained by the described
technique.
</p>
<p>The table lists for each format the media type it is used for, the total
capacity which can be achieved, the throughput for large reads or writes
and the media description for these disks. This description can the be
used with superformat to make such disks, or with setfdprm to configure
the drive to read/write to them. Some formats (the XDF and XXDF
formats) cannot be accessed directly, and thus there is no media
description for them. For these, we indicate a formatting command used
to make these disks. The formatting command assume that the disk is in
the first drive (<code>/dev/fd0</code>). Substitute <code>/dev/fd1</code> if you
want to format XDF or XXDF disks in the second drive.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#More-sectors">6.1 More sectors per cylinder</a></td><td> </td><td align="left" valign="top"> Using more sectors per track by packing them
close together
</td></tr>
<tr><td align="left" valign="top"><a href="#Interleave">6.2 Using interleave</a></td><td> </td><td align="left" valign="top"> Use interleave to pack the sectors even closer
together
</td></tr>
<tr><td align="left" valign="top"><a href="#Sector-skewing">6.3 Sector skewing</a></td><td> </td><td align="left" valign="top"> Speeding up multi-track reads
</td></tr>
<tr><td align="left" valign="top"><a href="#More-cylinders">6.4 More Cylinders</a></td><td> </td><td align="left" valign="top"> Use up to 83 cylinders
</td></tr>
<tr><td align="left" valign="top"><a href="#Larger-sectors">6.5 Larger sectors</a></td><td> </td><td align="left" valign="top"> Minimize per byte overhead by using larger sectors
</td></tr>
<tr><td align="left" valign="top"><a href="#Mixed-size-sectors">6.6 Mixed sector size (MSS) formats</a></td><td> </td><td align="left" valign="top"> Minimize slack by using several sector sizes
in a same track
</td></tr>
<tr><td align="left" valign="top"><a href="#Smart-use-of-the-dtr">6.7 Smart use of the data transfer rate</a></td><td> </td><td align="left" valign="top"> How to get more out of your disk by playing games
with the data transfer rate
</td></tr>
<tr><td align="left" valign="top"><a href="#g_t2M">6.8 2M formats</a></td><td> </td><td align="left" valign="top"> Make autodetection easier by using a readable
first track
</td></tr>
<tr><td align="left" valign="top"><a href="#XDF">6.9 XDF formats</a></td><td> </td><td align="left" valign="top"> Fast high capacity formats
</td></tr>
<tr><td align="left" valign="top"><a href="#XXDF">6.10 XXDF formats</a></td><td> </td><td align="left" valign="top"> Fast formats with even higher capacity
</td></tr>
</table>
<hr size="6">
<a name="More-sectors"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Extended-formats" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Interleave" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="More-sectors-per-cylinder"></a>
<h2 class="section">6.1 More sectors per cylinder</h2>
<a name="index-more-sectors-per-track"></a>
<a name="index-sectors-per-track"></a>
<p>The official formats used by MS-DOS and other operating systems are
generally very conservative. It is often possible to fit more sectors
on each track than the default by simply reducing the size of the gap
between tracks and/or the size of the leftover space at the end of the
disk.
</p>
<p>For example, a 3 1/2 disk has a raw track capacity of around 12500
bytes. The raw capacity of a floppy disk is not rigorously constant
among different boxes, because both the data transfer rate of the floppy
controller, and the rotation speed of the drive are subject to small
variations. In order to account for these, we have to use a safety
margin, and we only use up 12450 bytes of the 12500 bytes that are
theoretically available.
</p>
<p>A sector contains a header of 62 bytes and 512 bytes of data. A
minimum gap of about 45 bytes should be used in order to leave enough
time to the floppy controller to "rest" between reading two successive
sectors. In total, 619 bytes per sector are thus needed.
</p>
<p>This shows that we can fit 12450 / 619 = 20 sectors per track.
</p>
<p><strong>Usage:</strong> These disks are bootable by LILO, and can be read in
MS-DOS using numerous shareware utilities such as <code>vgacopy</code>, or
<code>fdformat</code> or many others. Check your nearest Simtel mirror.
</p>
<p>With dos6, you don’t need any add-on utilities, just put the following
line in your <code>config.sys</code>:
</p>
<table><tr><td> </td><td><pre class="example">drivparm=/d:0 /f:7 /h:2 /s:21 /t:82
^ ^ \______________/
| | |
drive number | max geometry
|
drive type, consult the dos help system for details
</pre></td></tr></table>
<p><strong>Interesting Formats:</strong>
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
5 1/4 DD 800KB 30KB/s dd sect=10
3 1/2 DD 800KB 25KB/s dd sect=10
3 1/2 HD 1600KB 50KB/s hd sect=21
3 1/2 ED 3200KB 100KB/s ed sect=42
</pre></td></tr></table>
<p>The <code>--dd</code>, <code>--hd</code> and <code>--ed</code> options describe the
density of the media to be formatted (double density, high density or
extra density).
</p>
<p>The <code>-s</code> options describes the number of 512 byte sectors per
track.
</p>
<hr size="6">
<a name="Interleave"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#More-sectors" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Sector-skewing" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Using-interleave"></a>
<h2 class="section">6.2 Using interleave</h2>
<a name="index-interleave"></a>
<p>After having read a sector, the floppy controller needs to "rest" for a
short time. This time is used to compute checksums, to reset internal
circuitry, etc. During this time, the floppy disk continues to rotate,
and the "rest" time thusly translates to a certain minimal gap size. If
a smaller gap is used, the next sector header flies by the read-write
head before the floppy controller is ready again to pick up the data.
Thus, it has to wait until the next disk rotation until that sector
comes back again. This leads to an unacceptably low throughput, as now
the system can only read one sector per rotation instead of all sectors
in one rotation. If we want to use smaller gaps, we have thus to use
<em>sector interleaving</em>. This technique consists in arranging the
sectors in a way such that the next logical sector does not immediately
follow the current sector, but instead another sector is inserted
between two successive sectors. Instead of having the following order:
</p><table><tr><td> </td><td><pre class="example">1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
</pre></td></tr></table>
<p>we would use the following order:
</p>
<table><tr><td> </td><td><pre class="example">1,12,2,13,3,14,4,15,5,16,6,17,7,18,8,19,9,20,10,21,11,
</pre></td></tr></table>
<p>This new order allows the floppy controller to rest during the whole
time that sector 12 flies by between reading sector 1 and 2. This
technique still cuts throughput in half, because two rotations are
needed (one for reading sectors 1 to 11, and the second to read sectors
12 to 21). However, this is far better than the 21 rotations which
would be needed without interleave.
</p>
<p>This technique allows us to use a gap size of just 1, and thus fit 21
sectors on one track.
</p>
<p><strong>Usage:</strong> Once formatted, interleaved disks can be used in a
similar way to disks which have simply more tracks. They can be
accessed using <code>vgacopy</code> in Dos, you can boot from them using LILO,
and you may install any filesystem on them.
</p>
<p><strong>Interesting Formats:</strong>
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
5 1/4 HD 1440KB 27KB/s hd sect=18
3 1/2 HD 1680KB 26KB/s hd sect=21
3 1/2 ED 3360KB 52KB/s ed sect=42
</pre></td></tr></table>
<p>You don’t need to tell <code>superformat</code> to use interleaving, it
figures out by itself when interleaving is needed. You don’t need to
tell <code>setfdprm</code> either that a disk is interleaved, as this
information is not needed to read the disk
</p>
<hr size="6">
<a name="Sector-skewing"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Interleave" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#More-cylinders" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Sector-skewing-1"></a>
<h2 class="section">6.3 Sector skewing</h2>
<a name="index-sector-skewing"></a>
<a name="index-skewing"></a>
<p>Sector skewing is a technique that allows bigger throughputs. It does
not increase the capacity of the disk. Sector skewing is only relevant
during formatting. Sector skewed disks are indistinguishable from
non-skewed disk by software, except for a different throughput.
</p>
<p>The principle of sector skewing is to start each track a little bit
later than the previous one, i.e. the first logical sector of the second
cylinder would for example lie near the sixth logical sector of the
first cylinder. This is done in order to account for the time needed to
seek the drive head from the first cylinder to the second. Without
skewing, the first sector would already have passed the drive head after
seeking, and we would need to wait for a whole rotation for it to come
back again.
</p>
<p>By default, superformat applies appropriate skewing to all formats, and
the listed throughput values refer to skewed disks. It is possible to
provide different values for the skew using the <code>--head_skew</code> and
<code>--track_skew</code> parameters. <code>head_skew</code> refers to the offset
between both sides of the same cylinder, and <code>track_skew</code> refers to
the offset of two consecutive cylinders. 0 means no skew.
</p>
<hr size="6">
<a name="More-cylinders"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Sector-skewing" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Larger-sectors" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="More-Cylinders"></a>
<h2 class="section">6.4 More Cylinders</h2>
<a name="index-more-cylinder"></a>
<a name="index-cylinders"></a>
<a name="index-tracks"></a>
<a name="index-83-cylinders"></a>
<p>Many nominally 40-cylinders or 80-cylinder drives are capable of more
cylinders, usually 41 and 83 respectively. These can be used to get
extra capacity. However, not all drives can seek to these unofficial
extra cylinders, and even on drives which can, these extra cylinders
tend to be less reliable.
</p>
<p><strong>WARNING</strong>: Although most drives are able to use 83 cylinders,
some may not. If your drive is making strange noises while accessing
these tracks.
</p>
<p>Although most drives support more than 80 tracks, I have heard rumors
that some do not, and repeatedly trying to read beyond track 80 might be
damaging to them. In order to know whether your drive supports more than
eighty tracks, first set the number of allowed tracks to 82. (using
<code>floppycontrol --cylinders 82 -d </code><var>drive</var>)
</p>
<p>Then format a disk with a 82 track format (for example
‘<tt>/dev/fd0H1722</tt>’), and copy on or several files to the disk until
there are less than 18 KB of free space on the disk. Then eject and
reinsert the disk, and compare the files on the disk with the
originals. If they are the same, your drive does support 82 tracks. If
so, you might want to go further and try with 83 cylinders:
‘<tt>/dev/fd0H1743</tt>’)
This single experience should not damage the drive, although repeating
it many times may be dangerous.
</p>
<p>If you do have a drive which supports more than 80 cylinders, you have
to call <code>floppycontrol --cylinders 82 <var>drive</var></code> before you can
use the extra cylinders. You may put this line into your
‘<tt>/etc/rc.local</tt>’, so that the driver is automatically configured for
the addition cylinder after each boot.
</p>
<p>If on the other hand your drive doesn’t support more than 80 tracks,
you should remove the entries for formats 13-19 from your ‘<tt>/dev</tt>’
directory after running <code>MAKEFLOPPIES</code>, and you should call
<code>floppycontrol --cylinder 80 <var>drive</var></code> from your
‘<tt>/etc/rc.local</tt>’ (or <code>floppycontrol --cylinder 40 <var>drive</var></code>
for 5 1/4 DD drives).
</p>
<p>By default, 83 cylinder are enabled for any high density and double
density drives. 3 1/2 double density drives have 80 cylinders enables,
and 5 1/4 double density drives have 40 enabled.
</p>
<p><strong>Usage:</strong> These disks can be booted from using LILO, and can be
accessed in MS-DOS using <code>vgacopy</code>.
</p>
<p><strong>Interesting Formats:</strong>
</p>
<p>All formats presented in the two previous sections may be amended to use
83 cylinders instead of 80. Just add the <code>cyl=83</code> to the format
description for superformat. Using more cylinders has no effect on the
throughput.
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
5 1/4 HD 1494KB 27KB/s hd sect=18 cyl=83
3 1/2 HD 1743KB 26KB/s hd sect=21 cyl=83
3 1/2 ED 3486KB 52KB/s ed sect=42 cyl=83
</pre></td></tr></table>
<hr size="6">
<a name="Larger-sectors"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#More-cylinders" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Mixed-size-sectors" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Larger-sectors-1"></a>
<h2 class="section">6.5 Larger sectors</h2>
<a name="index-larger-sectors"></a>
<p>The floppy controller allows us to use larger sectors than the default
size of 512 bytes. All powers of two larger than 256 bytes are
acceptable sector sizes. Large sectors have the same header and gap
sizes than smaller sectors, thus the overhead per byte of data is
smaller. A little calculation shows this: A 1024 byte sector takes up
at least 1024+62+1 = 1087 raw bytes. You can fit eleven sectors of this
size into a 12450 byte track. This represents 11KB of data per track,
versus the 10.5KB only that can be achieved with 512 byte sectors.
</p>
<p><strong>Usage:</strong> MS-DOS and other operating systems cannot normally read
these formats. Lilo is not yet able to boot from this kind of disks.
</p>
<p><strong>Performance:</strong> When any portion of one of these larger sectors is
read, the entire sector must be read. When any portion of such a sector
is written to, the entire sector must be read, and then written back
with just the necessary portion modified. Both of these circumstances
can entail worse performance than are listed in this table for small
reads and (especially) small writes.
</p>
<p><strong>Interesting Formats:</strong>
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
5 1/4 HD 1440KB 30KB/s dd sect=9 ssize=1KB
3 1/2 HD 1760KB 55KB/s hd sect=11 ssize=1KB
3 1/2 ED 3520KB 110KB/s ed sect=11 ssize=2KB
</pre></td></tr></table>
<p>The <code>ssize</code> parameter of the format description indicates the
sector size to be used.
</p>
<hr size="6">
<a name="Mixed-size-sectors"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Larger-sectors" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Smart-use-of-the-dtr" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Mixed-sector-size-_0028MSS_0029-formats"></a>
<h2 class="section">6.6 Mixed sector size (MSS) formats</h2>
<a name="index-MSS"></a>
<a name="index-2M-_0028mixed-sector-sizes_0029"></a>
<a name="index-XDF-_0028mixed-sector-sizes_0029"></a>
<p>Using larger sectors has the disadvantage that the granularity is
larger. For example, when using 4096 byte sectors, there is enough
space to fit two sectors in a track of 12450 bytes raw capacity, but not
three. However, the two sector format leaves plenty of space available
(4132 bytes), in which smaller sectors would fit. For example, these
4142 raw bytes can be put to good use by filling them with a 2 KB sector
(2048+62), plus an 1 KB sector (1024+62) and a 512 byte sector, leaving
still 362 bytes for gaps.
</p>
<p>Mixed sector size formats take advantage of this by using sectors of
several different sizes on a same track. This way, a maximum capacity
of 12KB per track, distributed in one 8k sector and one 4k sector can be
achieved.
</p>
<p><strong>Usage:</strong> There is no known MS-DOS utility which can read basic
MSS disks. LILO is not yet able to boot from this kind of disks.
</p>
<p><strong>Performance:</strong> As any format with larger sectors, the performance
for small reads and writes is worse due to the larger granularity.
</p>
<p><strong>Interesting Formats:</strong>
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
3 1/2 DD 880KB 28KB/s hd tracksize=11b mss
5 1/4 HD 1600KB 30KB/s hd tracksize=10KB mss
3 1/2 DD 880KB 28KB/s hd tracksize=11b mss
3 1/2 HD 1840KB 28KB/s hd tracksize=23b mss
3 1/2 HD 1920KB 30KB/s hd tracksize=12KB mss
3 1/2 ED 3680KB 56KB/s ed tracksize=23KB mss
3 1/2 ED 3840KB 60KB/s ed tracksize=24KB mss
</pre></td></tr></table>
<p>For MSS formats, the system figures out the most efficient repartition
of sector sizes by itself. You do not need to describe the number of
sectors and their size. For MSS disks, the capacity of one track is
described directly, using the <code>tracksize</code> parameter.
</p>
<p>The <code>1920KB</code> and <code>3840KB</code> formats may be unreliable on some
computers.
</p>
<hr size="6">
<a name="Smart-use-of-the-dtr"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Mixed-size-sectors" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#g_t2M" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Smart-use-of-the-data-transfer-rate"></a>
<h2 class="section">6.7 Smart use of the data transfer rate</h2>
<p>Due to different drive rotations speeds, 5 1/4 double density disks and
3 1/2 double density disks are accessed using different raw data
transfer rates (300 kb/s for the faster spinning 5 1/4 disks, and only
250 kb/s for the slower spinning 3 1/2 disks). The method described in
this section consists in using the faster data transfer rate intended
for 5 1/4 disks on 3 1/2 disks, and thus boost the raw capacity per
track of these disks. This is possible because 300 kb/s is still low
enough not to exceed the specification of the disk surface of a double
density disk (which 500 kb/s would).
</p>
<p><strong>Usage: this method is only available for 3 1/2 double density
disks. The disk obtained cannot be booted from by LILO, and are
inaccessible from MS-DOS.</strong>
</p>
<p>The following table shows the media description for a format using this
method in conjuncion with the previous methods:
</p><table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
3 1/2 DD 1120KB 17KB/s qd tracksize=7KB mss
</pre></td></tr></table>
<p>We use the <code>QD</code> density selector to describe this particular DTR
set-up, although the acronym <code>QD</code> is already taken to name 96tpi
double density 5 1/4 disks. However, as this DTR trickery is only
meaningful for 3 1/2, we hope that there will be no ambiguity.
</p>
<hr size="6">
<a name="g_t2M"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Smart-use-of-the-dtr" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#XDF" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="g_t2M-formats"></a>
<h2 class="section">6.8 2M formats</h2>
<a name="index-MSS-_00282M_0029"></a>
<a name="index-Mixed-sector-size-formats-_00282M_0029"></a>
<a name="index-2M"></a>
<p>2M formats use a standard geometry (18 normal sized sectors) on the
first side of the first cylinder, and an MSS geometry on the rest of the
disk. They are inspired for Ciriaco Garcia de Celis’ 2M utility for
MS-DOS.
</p>
<p>The advantage of 2M disks over simple MSS disks is twofold:
</p><ul>
<li>
They can be accessed from DOS
</li><li>
They do not need an autodetect entry, as the boot sector is readable
using a standard geometry. Mtools can then use the information
contained in the boot sector to configure the floppy driver to read the
rest of the disk.
</li></ul>
<p>Although 2m disk have less sectors on the first track than on the
others, the Linux floppy driver, and 2M’s low level floppy access
routines pretend that it contains the same number of sectors. The
missing sectors are called phantom sectors. Writes to these sectors are
ignored, and reads return random data. In order to make up for this, 2M
and mtools pretend that there is a duplicate FAT in the missing sectors,
which is simulated by using data from the first (real) FAT. Thus 2M
disks work fine for their intended purpose, which is to hold an MS-DOS
filesystem. <strong>Never use 2M disks for anything other than a MS-DOS
filesystem. For example, never make an ext2 filesystem on a 2M disk.
If you need a high capacity ext2 filesystem (or minix fs, raw tar or
cpio archive), use the corresponding MSS format instead</strong>
</p>
<p><strong>Usage:</strong> 2M disks are not bootable by LILO. They can be accessed
in MS-DOS using the 2M utility. 2M can be found at
ftp://FTP.Coast.NET/SimTel/msdos/diskutil/2m30.zip or at any other
simtel mirror. <strong>2M disks are not suitable for non MS-DOS
filesystems</strong>.
</p>
<p><strong>Performance:</strong> Just as with MSS disks, performance is bad for
small reads and writes.
</p>
<p>To describe a 2M format, add the keyword <code>2m</code> to its media
description:
</p><table><tr><td> </td><td><pre class="example">density tot. cap. throughput media description
3 1/2 HD 1840KB 28KB/s hd tracksize=23b mss 2m
</pre></td></tr></table>
<hr size="6">
<a name="XDF"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#g_t2M" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#XXDF" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="XDF-formats"></a>
<h2 class="section">6.9 XDF formats</h2>
<a name="index-MSS-_0028XDF_0029"></a>
<a name="index-Mixed-sector-size-formats-_0028XDF_0029"></a>
<a name="index-XDF"></a>
<a name="index-OS_002f2-_0028XDF_0029"></a>
<p>XDF is the format used for OS/2 installation floppies.
</p>
<p>Just like 2M, XDF uses mixed sector sizes on "generic tracks". The
first cylinder uses 512 byte sectors.
</p>
<p>However, for XDF disks, the logical order of the sectors on a given
track, and their physical order is not the same. This allows a faster
access, in a similar way that interleaving does for disk with normal
sized sectors and too small gaps. XDF’s sector arrangement allows it to
read sectors alternatively from both sides, i.e. the first sector from
side 0, the second from side 1, and the third from side 0 again. This
differs from the usually formats, where first the entire side 0 is read,
and then the entire side 1. This technique allows to read both sides of
a disk in roughly three rotations.
</p>
<p>The following example illustrates how this is done. In our example we
use the XDF format used for 3 1/2 HD disks, which contains one 8KB
sector, one 2KB sector, one 1KB sector, and one 512 byte sector per
track. The upper line represents the sectors on side 0, and the lower
line represents the sectors on side 1. Different numbers represent
different sectors. Repeated identical numbers represent a single larger
sector. As the disk is circular, some sectors wrap around at the end:
we find parts of the 8KB sector, represented by 6, both at the beginning
and at the end of each track.
</p>
<table><tr><td> </td><td><pre class="example">position:| 1 2 5 4
| 1234567890123456789012345678901234567890
|==========================================
side 0: | 6633332244444446666666666666666666666666
side 1: | 6666444444422333366666666666666666666666
2 512 byte sector
3 1KB sector
4 2KB sector
6 8KB sector
</pre></td></tr></table>
<p>When reading a track, sectors are read in the following order:
</p><table><tr><td> </td><td><pre class="example">sector id head position at start position at end
----------------------------------------------------------
3 0 3 7
4 0 9 16
6 1 18 5 (1st wrap around)
2 0 7 9
2 1 12 14
6 0 16 3 (2nd wrap around)
4 1 5 12
3 1 14 18
</pre></td></tr></table>
<p>We notice that the start of each sector happens at least 2 units of
position (around 300 bytes), after the end of the previously read
sector, thus allowing the floppy disk controller sufficient time to
rest. Moreover, we notice two wrap-arounds, yielding three rotations to
read the whole cylinder (the third rotation is due to the fact that we
stop at a higher position than we started, and that we also need to
allow some time for seeking to the next track).
</p>
<p>MSS or 2M formats of the same capacity need at least 2 rotations per
side (i.e. 4 per track), yielding a lower throughput.
</p>
<p><strong>Usage:</strong> XDF disks are not bootable by LILO. They can be
accessed from MS-DOS and OS/2 using <code>xdfcopy.exe</code> or
<code>xdf.com</code>. They are only suitable for MS-DOS filesystems. The
floppy driver has no direct support for this format yet, but
<code>mtools</code> is able to read them using the <code>FDRAWCMD</code> ioctl.
</p>
<p><strong>Interesting Formats:</strong>
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput formatting command
5 1/4 HD 1600KB 46KB/s xdfcopy -0 /dev/fd0
3 1/2 HD 1840KB 38KB/s xdfcopy -1 /dev/fd0
3 1/2 ED 3840KB 102KB/s xdfcopy -2 /dev/fd0
</pre></td></tr></table>
<p>The options <code>-1</code>, <code>-2</code> and <code>-3</code> describe one out of the
five formats understood by <code>xdfcopy</code> (3 XDF formats and 2 XDF
formats).
</p>
<hr size="6">
<a name="XXDF"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#XDF" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="XXDF-formats"></a>
<h2 class="section">6.10 XXDF formats</h2>
<a name="index-MSS-_0028XXDF_0029"></a>
<a name="index-Mixed-sector-size-formats-_0028XXDF_0029"></a>
<a name="index-XXDF"></a>
<p>These use the simple principle as XDF, but use a higher geometry. No
new principle is used, these formats are simply more daring (smaller
gaps, and smaller margin at the end of the sector).
</p>
<p><strong>Usage:</strong> XXDF disks are not bootable by LILO, and can’t be
accessed by MS-DOS. They are only suitable for MS-DOS filesystems. The
floppy driver has no direct support for this format yet, but
<code>mtools</code> is able to read them using the <code>FDRAWCMD</code> ioctl. Due
to their smaller tolerances, XXDF formats may not work on all
drives. Problems may also occur if you write to XXDF disks using a
different drive than the one you used to format the disk.
</p>
<p><strong>Interesting Formats:</strong>
</p>
<table><tr><td> </td><td><pre class="example">density tot. cap. throughput formatting command
3 1/2 HD 1920KB 45KB/s xdfcopy -3 /dev/fd0
3 1/2 ED 3840KB 90KB/s xdfcopy -4 /dev/fd0
</pre></td></tr></table>
<hr size="6">
<a name="Autodetection"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#XXDF" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Example" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Extended-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Boottime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="How-autodetection-works"></a>
<h1 class="chapter">7. How autodetection works</h1>
<a name="index-autodetection"></a>
<a name="index-format"></a>
<a name="index-recognize-a-disk"></a>
<p>The principle of autodetection is rather simple. When a floppy disk is
first accessed, and its geometry is not yet known, the floppy driver
tries out a list of up to 8 geometries (format descriptions) until one
is found that matches (i.e. that makes it possible to read the first
sector or track). This list of geometries is called the
<em>autodetection list</em>. There is one autodetection list per drive
type (as indicated in the cmos).
</p>
<p>The autodetection list doesn’t contain the geometry descriptions
themselves, but rather references to entries in the <em>geometry list</em>
(see section <a href="#geometry-list">The geometry list</a>). Each list may contain up to 8 such references.
Each reference can be tagged with a <code>t</code> flag. If this tag is set,
the floppy driver tries to read the whole track when trying out that
description; if it is not set, it only tries to read the boot sector.
</p>
<p>Reading the whole track is useful to distinguish among geometries which
differ only in the amount of sectors per track. In order to do this,
put the geometry with the most sectors first in the list, and set its
<code>t</code> tag. Use the <code>t</code> tag only in this case, as it makes
autodetection slower.
</p>
<p>Autodetection cannot distinguish between geometries that only differ in
the number of heads or in the number of tracks.
</p>
<p>Autodetection is meant to supply only a first approximation of the
actual format of the disk. It supplies enough information to enable a
program such as <code>mtools</code> to read the boot sector, which contains
the exact information. <code>Mtools</code> then uses the information
contained in the boot sector to set the exact geometry.
</p>
<p>The autodetection list is set using the following command:
</p><table><tr><td> </td><td><pre class="example">floppycontrol --autodetect <var>list</var>
</pre></td></tr></table>
<hr size="6">
<a name="Example"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Autodetection" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Boottime-configuration" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Boottime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h2 class="section">7.1 Example</h2>
<p>The following example restores the default autodetection sequence for a
3 1/2 ED drive:
</p>
<table><tr><td> </td><td><pre class="example">floppycontrol --autodetect 7,8,4,25,28,22,31,21
</pre></td></tr></table>
<p>The following example changes this sequence, so as to add the 1680KB
format (number 11). As only 8 formats are allowed in the autodetection
list, we have to dump one entry (we chose the last, which is numbered
21). The 1680KB format is identical with the default 1440KB format
except for the number of sectors. Thus we must read the whole track in
order to distinguish it from the 18 sector format (<code>t</code> flag).
Furthermore, the 1680KB sector format should be detected first, as
an 21 sector disk would also matches the standard format with its 18
sectors.
</p>
<table><tr><td> </td><td><pre class="example">floppycontrol --autodetect 11t,7,8,4,25,28,22,31
</pre></td></tr></table>
<p>The following example attempts to autodetect CBM 1581 disks along with
the more usual formats. CBM 1581 disks are not among the predefined
formats. Thus we first have to pick one of the predefined formats and
change it so it fits our needs. We may for example pick one of the
rarely used 5 1/4 formats, such as h880, which bears number 20). We
first make a device node bearing the requested number (so that we have a
filename to pass to setfdprm), then we chmod it so it becomes accessible
to mortal users, finally we configure the geometry of the new node, and
enter it into the autodetection list. We place it at the 4th position,
just behind the usual ED, HD and DD formats, and before the more exotic
extended formats. Indeed, formats which are nearer to the head of the
list are autodetected faster, and hence more commonly used formats
should be put nearer to the beginning <a name="DOCF5" href="#FOOT5">(5)</a>.
</p>
<table><tr><td> </td><td><pre class="example">mknod /dev/fd0cbm1581 b 2 80
chmod 666 /dev/fd0cbm1581
setfdprm /dev/fd0cbm1581 DD DS sect=10 cyl=80 ssize=512 fmt_gap=35 gap=12 swapsides
floppycontrol --autodetect 7,8,4,20,25,28,22,31
</pre></td></tr></table>
<p>Some formats use more than 80 tracks. It is not possible for the kernel
to autodetect the number of tracks in a reasonable time, so you have to
use a sufficiently recent version of mtools to set the number of tracks
according to the boot sector of the disk. Mtools 3.0 and up are OK. This
doesn’t obviously work with disks containing something else than a
MS-DOS filesystem.
</p><hr size="6">
<a name="Boottime-configuration"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Example" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Floppy-ioctls" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Autodetection" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Floppy-ioctls" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Configuring-the-floppy-driver-via-LILO-or-insmod"></a>
<h1 class="chapter">8. Configuring the floppy driver via LILO or insmod</h1>
<p>The floppy driver is configured using the <code>floppy=</code> options in
LILO. These options can be typed at the boot prompt, or entered in the
LILO configuration file.
</p>
<p>Example: If your kernel is called <code>linux-2.0</code>, type the following
line at the LILO boot prompt (if you have a Thinkpad):
</p><table><tr><td> </td><td><pre class="example">linux-2.0 floppy=thinkpad
</pre></td></tr></table>
<p>You may also enter the following line in ‘<tt>/etc/lilo.conf</tt>’, in the description
of <code>linux-2.0</code>:
</p><table><tr><td> </td><td><pre class="example">append = "floppy=thinkpad"
</pre></td></tr></table>
<p>Several floppy related options may be given, example:
</p><table><tr><td> </td><td><pre class="example">linux-2.0 floppy=daring floppy=two_fdc
append = "floppy=daring floppy=two_fdc"
</pre></td></tr></table>
<p>If you give options both in the LILO configuration file and on the boot
prompt, the option strings of both places are concatenated, the boot
prompt options coming last. That’s why there are also options to
restore the default behaviour.
</p>
<p>If you use the floppy driver as a module, use the following syntax:
<code>insmod floppy 'floppy="<var>options</var>"'</code>. (This line may be
unreadable in the info version of this document. If so, please refer to
the printed version).
</p>
<p>Example:
</p><table><tr><td> </td><td><pre class="example">insmod floppy 'floppy="daring two_fdc"'
</pre></td></tr></table>
<p>Note that in this case <code>floppy=</code> should only be typed out once,
and not once for each option. You need at least modules-1.3.57 for this
method. However, the older environment variable based syntax is still
available:
</p><dl compact="compact">
<dt> Bourne (sh, bash, ksh, zsh) syntax:</dt>
<dd><p><code>floppy="daring two_fdc" insmod floppy</code>
</p></dd>
<dt> C-shell (csh, tcsh) syntax:</dt>
<dd><p><code>setenv floppy "daring two_fdc" ; insmod floppy</code>
</p></dd>
</dl>
<p>Some versions of insmod are buggy in one way or another. If you have
any problems (options not being passed correctly, segfaults during
insmod), first check whether there is a more recent version. If there
isn’t, use the old method using environment variables. Problems with
<code>insmod</code> happen mostly for options involving both a number and a
string, such as <code>floppy=0,4,cmos</code>. Options only involving strings,
such as <code>floppy=daring</code> are not affected.
</p>
<p>The floppy related options include:
</p>
<dl compact="compact">
<dt> <code>floppy=daring</code></dt>
<dd><p>Tells the floppy driver that you have a well behaved floppy controller.
This allows more efficient and smoother operation, but may fail on
certain controllers.
</p>
</dd>
<dt> <code>floppy=0,daring</code></dt>
<dd><p>Tells the floppy driver that your floppy controller should be used
with caution.
</p>
</dd>
<dt> <code>floppy=one_fdc</code></dt>
<dd><p>Tells the floppy driver that you have only floppy controller (default)
</p>
</dd>
<dt> <code>floppy=two_fdc</code></dt>
<dt> <code>floppy=<var>address</var>,two_fdc</code></dt>
<dd><p>Tells the floppy driver that you have two floppy controllers. The second
floppy controller is assumed to be at <var>address</var>. If <var>address</var> is
not given, 0x370 is assumed. two_fdc is implied if you use the cmos
option with a drive of id 4 to 7.
</p>
</dd>
<dt> <code>floppy=thinkpad</code></dt>
<dd><p>Tells the floppy driver that you have a Thinkpad. Thinkpads use an
inverted convention for the disk change line.
</p>
</dd>
<dt> <code>floppy=0,thinkpad</code></dt>
<dd><p>Tells the floppy driver that you don’t have a Thinkpad.
</p>
</dd>
<dt> <code>floppy=omnibook</code></dt>
<dt> <code>floppy=nodma</code></dt>
<dd>
<p>Tells the floppy driver not to use DMA for data transfers. This is
needed for instance on some HP Omnibooks, which don’t have a workable
DMA channel for the floppy driver. This option is also useful if you
frequently get "Unable to allocate DMA memory" messages. Indeed, DMA
memory needs to be continuous in physical memory, and is thus harder to
find, whereas non-DMA buffers may be allocated in virtual memory.
However, I advise against this if you have an FDC without a FIFO (8272A
or 82072). 82072A and later are OK. You also need at least a 486 to use
nodma. If you use nodma mode, I suggest you also set the FIFO threshold
to 10 or lower, in order to limit the number of data transfer
interrupts.
</p>
</dd>
<dt> <code>floppy=dma</code></dt>
<dd><p>Tells the floppy driver that a workable DMA channel is available
(the default).
</p>
</dd>
<dt> <code>floppy=nofifo</code></dt>
<dd><p>Disables the FIFO entirely. This is needed if you get "Bus master
arbitration error" messages from your ethernet card (or from other
devices) while accessing the floppy.
</p>
</dd>
<dt> <code>floppy=fifo</code></dt>
<dd><p>Enables the FIFO (default)
</p>
</dd>
<dt> <code>floppy=<var>threshold</var>,fifo_depth</code></dt>
<dd><p>Sets the FIFO threshold. This is mostly relevant in DMA mode. If this is
higher, the floppy driver tolerates more interrupt latency, but it
triggers more interrupts (i.e. it imposes more load on the rest of the
system). If this is lower, the interrupt latency should be lower too
(faster processor). The benefit of a lower threshold is less interrupts.
</p>
<p>To tune the FIFO threshold, switch on over/underrun messages using
<code>floppycontrol --messages</code>. Then access a floppy disk. If you get a
huge amount of <code>Over/Underrun - retrying</code> messages, then the FIFO
threshold is too low. Try with a higher value, until you only get an
occasional over/underrun. It is a good idea to compile the floppy
driver as a module when doing this tuning. Indeed, it allows to try
different FIFO values without rebooting the machine for each test. Note
that you need to do <code>floppycontrol --messages</code> every time you
re-insert the module.
</p>
<p>Usually, tuning the FIFO threshold should not be needed, as the default
(0xa) is reasonable.
</p>
</dd>
<dt> <code>floppy=<var>drive</var>,<var>type</var>,cmos</code></dt>
<dd><p>Sets the CMOS type of <var>drive</var> to <var>type</var>. Additionally, this
drive is allowed in the bitmask. This is useful if you have more than
two floppy drives (only two can be described in the physical CMOS), or
if your BIOS uses non-standard CMOS types. The CMOS types are:
</p><dl compact="compact">
<dt> <code>0</code></dt>
<dd><p>unknown or not installed
</p></dd>
<dt> <code>1</code></dt>
<dd><p>5 1/4 DD
</p></dd>
<dt> <code>2</code></dt>
<dd><p>5 1/4 HD
</p></dd>
<dt> <code>3</code></dt>
<dd><p>3 1/2 DD
</p></dd>
<dt> <code>4</code></dt>
<dd><p>3 1/2 HD
</p></dd>
<dt> <code>5</code></dt>
<dd><p>3 1/2 ED
</p></dd>
<dt> <code>6</code></dt>
<dd><p>3 1/2 ED
</p></dd>
</dl>
<p>Note that there are two valid types for ED drives. This is because 5 was
initially chosen to represent floppy tapes, and 6 for ED drives. AMI
ignored this, and used 5 for ED drives. That’s why the floppy driver
handles both) Setting the CMOS to 0 for the first two drives (default)
makes the floppy driver read the physical CMOS for those drives.
</p>
</dd>
<dt> <code>floppy=unexpected_interrupts</code></dt>
<dd><p>Print a warning message when an unexpected interrupt is received
(default behaviour)
</p>
</dd>
<dt> <code>floppy=no_unexpected_interrupts</code></dt>
<dt> <code>floppy=L40SX</code></dt>
<dd><p>Don’t print a message when an unexpected interrupt is received. This is
needed on IBM L40SX laptops in certain video modes. (There seems to be
an interaction between video and floppy. The unexpected interrupts only
affect performance, and can safely be ignored.)
</p>
</dd>
<dt> <code>floppy=broken_dcl</code></dt>
<dd><p>Don’t use the disk change line, but assume that the disk was changed
whenever the device node is reopened. Needed on some boxes where the
disk change line is broken or unsupported. This should be regarded as a
stopgap measure, indeed it makes floppy operation less efficient due to
unneeded cache flushing, and slightly more unreliable. Please verify
your cable, connection and jumper settings if you have any DCL problems.
However, some older drives, and also some Laptops are known not to have
a DCL.
</p>
</dd>
<dt> <code>floppy=debug</code></dt>
<dd>
<p>Print debugging messages
</p>
</dd>
<dt> <code>floppy=messages</code></dt>
<dd>
<p>Print informational messages for some operations (disk change
notifications, warnings about over and underruns, and about
autodetection)
</p>
</dd>
<dt> <code>floppy=silent_dcl_clear</code></dt>
<dd>
<p>Uses a less noisy way to clear the disk change line (which doesn’t
involve seeks). Implied by daring.
</p>
<p>(There are other options as well, but they are considered obsolete, and
thus they are not documented here)
</p>
</dd>
</dl>
<hr size="6">
<a name="Floppy-ioctls"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Boottime-configuration" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Boottime-configuration" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Floppy-ioctls-1"></a>
<h1 class="chapter">9. Floppy ioctls</h1>
<a name="index-ioctl-list"></a>
<a name="index-floppy-ioctls"></a>
<p>All these ioctl’s may be issued using the floppycontrol program. (See
also floppycontrols man page)
</p>
<dl compact="compact">
<dt> <code>FDSETPRM</code></dt>
<dd><p>sets the geometry (number of tracks, heads and sectors,
etc) of a drive.
</p></dd>
<dt> <code>FDDEFPRM</code></dt>
<dd><p>sets the geometry in a permanent way (not cleared after a
disk change)
</p></dd>
<dt> <code>FDGETPRM</code></dt>
<dd><p>read a previously set drive geometry (or an autodetected
geometry) back.
</p></dd>
<dt> <code>FDCLRPRM</code></dt>
<dd><p>makes the driver forget the geometry for a given drive
(to trigger autodetection)
</p></dd>
<dt> <code>FDFLUSH</code></dt>
<dd><p>forgets the contents of the floppy buffers. CAUTION: This
doesn’t write dirty buffers to the disk. Use fsync first.
</p></dd>
<dt> <code>FDGETDRVTYP</code></dt>
<dd><p>displays the type of a drive (name parameter). This is
used by <code>MAKEFLOPPIES</code>. For the naming convention, see the description
of the <code>MAKEFLOPPIES</code> script. For formats which work in several drive
types, <code>FDGETDRVTYP</code> return a name which is appropriate for the oldest
drive type which supports this format.
</p></dd>
<dt> <code>FDSETDRVPRM</code></dt>
<dd><p>sets various drive parameters.
</p></dd>
<dt> <code>FDGETDRVPRM</code></dt>
<dd><p>reads these parameters back.
</p></dd>
<dt> <code>FDGETDRVSTAT</code></dt>
<dd><p>gets the cached drive state (disk changed, write
protected et al.)
</p></dd>
<dt> <code>FDPOLLDRVSTAT</code></dt>
<dd><p>polls the drive and return its state.
</p></dd>
<dt> <code>FDGETFDCSTAT</code></dt>
<dd><p>gets the floppy controller state.
</p></dd>
<dt> <code>FDRESET</code></dt>
<dd><p>resets the floppy controller under certain conditions.
</p></dd>
<dt> <code>FDRAWCMD</code></dt>
<dd><p>sends a raw command to the floppy controller.
</p></dd>
<dt> <code>FDWERRORCLR</code></dt>
<dd><p>clear the write error stats.
</p></dd>
<dt> <code>FDWERRORGET</code></dt>
<dd><p>gets the write error stats.
</p></dd>
<dt> <code>FDSETMAXERRS</code></dt>
<dd><p>sets the error thresholds (when to display error messages on the
console, and when to abort operations). The maxerror structure is part
of the drive parameters, but this ioctl is needed in addition to
<code>FDSETDRVPRM</code> because <code>FDSETDRVPRM</code> is only accessible to the
superuser whereas <code>FDSETMAXERRS</code> is accessible to whoever has write access
to the floppy device.
</p>
</dd>
<dt> <code>FDMSGON/FDMSGOFF</code></dt>
<dd><p>switch informational messages on/off. This flag is part of the drive
parameters as well, but <code>FDMSGON/FDMSGOFF</code> don’t need superuser status.
</p>
</dd>
</dl>
<p>There are other ioctls as well, but they are considered obsolete and
their use is discouraged.
</p><hr size="6">
<a name="Commands"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Floppy-ioctls" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#diskd" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Floppy-ioctls" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Command-list"></a>
<h1 class="chapter">10. Command list</h1>
<a name="index-Command-list"></a>
<a name="index-List-of-available-commands"></a>
<p>This section describes the available fdutils commands, and the command
line parameters that each of them accepts.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#diskd">10.1 diskd</a></td><td> </td><td align="left" valign="top"> detect a disk change and execute a command
</td></tr>
<tr><td align="left" valign="top"><a href="#diskseekd">10.2 diskseekd</a></td><td> </td><td align="left" valign="top"> seeks the drive from time to time to shake of the
dust
</td></tr>
<tr><td align="left" valign="top"><a href="#fdmount">10.3 fdmount</a></td><td> </td><td align="left" valign="top"> automatically mounts and unmounts floppy disks
</td></tr>
<tr><td align="left" valign="top"><a href="#fdrawcmd">10.4 fdrawcmd</a></td><td> </td><td align="left" valign="top"> send raw commands to the floppy disk controller
</td></tr>
<tr><td align="left" valign="top"><a href="#floppycontrol">10.5 floppycontrol</a></td><td> </td><td align="left" valign="top"> configure the floppy driver
</td></tr>
<tr><td align="left" valign="top"><a href="#floppymeter">10.6 floppymeter</a></td><td> </td><td align="left" valign="top"> measures characteristic parameters of a floppy drive
</td></tr>
<tr><td align="left" valign="top"><a href="#getfdprm">10.7 getfdprm</a></td><td> </td><td align="left" valign="top"> print current geometry parameters
</td></tr>
<tr><td align="left" valign="top"><a href="#makefloppies">10.8 makefloppies</a></td><td> </td><td align="left" valign="top"> makes the floppy device entries
</td></tr>
<tr><td align="left" valign="top"><a href="#superformat">10.10 superformat</a></td><td> </td><td align="left" valign="top"> formats high capacity disks
</td></tr>
<tr><td align="left" valign="top"><a href="#setfdprm">10.9 setfdprm</a></td><td> </td><td align="left" valign="top"> changes the current and permanent geometry
parameters
</td></tr>
<tr><td align="left" valign="top"><a href="#xdfcopy">10.11 xdfcopy</a></td><td> </td><td align="left" valign="top"> copies and formats XDF disks
</td></tr>
</table>
<hr size="6">
<a name="diskd"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Warning" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="diskd-1"></a>
<h2 class="section">10.1 diskd</h2>
<a name="index-diskd"></a>
<p>The diskd command has the following syntax:
</p>
<table><tr><td> </td><td><pre class="example"><code>diskd</code> [<code>-d</code> <var>drive</var>] [<code>-i</code> <var>interval</var>] [<code>-e</code> <var>command</var>]
</pre></td></tr></table>
<p>Diskd waits for a disk to be inserted into a given <var>drive</var>, and then
either executes the <var>command</var> or exits. This program can be used to
automatically mount a disk as soon as it is inserted.
</p>
<hr size="6">
<a name="Warning"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#diskd" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-2" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#diskd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.1.1 Warning</h3>
<p>This program works by switching the motor on for a very short
interval, and then seeking to track -1. This might damage hardware in
the long run. Amigas, which also use these techniques, are known for
having problems with their disk drives no longer spinning up properly
after a few month of usage.
</p>
<hr size="6">
<a name="Options-2"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Warning" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Bugs" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#diskd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.1.2 Options</h3>
<dl compact="compact">
<dt> <code>-d <var>drive</var></code></dt>
<dd><p>Selects the drive to observe for disk insertion. By default, drive 0
(<code>/dev/fd0</code>) is observed.
</p></dd>
<dt> <code>-i <var>interval</var></code></dt>
<dd><p>Selects the polling interval. The interval is given in tenths of
seconds. Default is 10 (one second).
</p></dd>
<dt> <code>-e <var>command</var></code></dt>
<dd><p>Gives the command to be executed when a disk is inserted. If no
command is given the program simply exits. Typically, the command
mounts the disk. It can be a shell scripts which probes for several
filesystems and disk geometries until it succeeds.
</p></dd>
</dl>
<hr size="6">
<a name="Bugs"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-2" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#diskseekd" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#diskd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.1.3 Bugs</h3>
<ul>
<li>
Automatic unmounting cannot yet be handled. It is indeed not enough to
scan for disk removal, because when the disk is removed, it is already
too late: There might be some buffers needing flushing. However, the
<code>fdmountd</code> program allows automatic unmounting by using the
<code>SYNC</code> mount options, which switches off write buffering
(see section <a href="#fdmount">fdmount</a>).
</li><li>
The drive motor is running all the time, and on some computers, the
drive led flickers at each time the drive is polled.
</li></ul>
<hr size="6">
<a name="diskseekd"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Bugs" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-5" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="diskseekd-1"></a>
<h2 class="section">10.2 diskseekd</h2>
<a name="index-diskseekd"></a>
<a name="index-dust-_0028shaking-it-off-from-a-drive_0029"></a>
<a name="index-shaking-off-dust-from-a-drive"></a>
<p>Several people have noticed that Linux has a bad tendency of killing
floppy drives. These failures remained completely mysterious, until
somebody noticed that they were due to huge layers of dust accumulating
in the floppy drives. This cannot happen under Messy Dos, because this
excuse for an operating system is so unstable that it crashes roughly
every 20 minutes (actually less if you are running Windows). When
rebooting, the BIOS seeks the drive, and by doing this, it shakes the
dust out of the drive mechanism. <code>diskseekd</code> simulates this effect
by seeking the drive periodically. If it is called as <code>diskseek</code>,
the drive is sought only once.
</p>
<hr size="6">
<a name="Options-5"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#diskseekd" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Bugs-4" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#diskseekd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.2.1 Options</h3>
<p>The syntax for <code>diskseekd</code> is as follows:
</p><table><tr><td> </td><td><pre class="example"><code>diskseekd</code> [<code>-d</code> <var>drive</var>] [<code>-i</code> <var>interval</var>] [<code>-p</code> <var>pidfile</var>]
</pre></td></tr></table>
<dl compact="compact">
<dt> <code>-d <var>drive</var></code></dt>
<dd><p>Selects the drive to seek. By default, drive 0 (‘<tt>/dev/fd0</tt>’) is sought.
</p>
</dd>
<dt> <code>-i <var>interval</var></code></dt>
<dd><p>Selects the cleaning interval, in seconds. If the interval is 0, a
single seek is done. This is useful when calling diskseek from a
crontab. The default is 1000 seconds (about 16 minutes) for
<code>diskseekd</code> and 0 for <code>diskseek</code>.
</p>
</dd>
<dt> <code>-p <var>pidfile</var></code></dt>
<dd><p>Stores the process id of the diskseekd daemon into <var>pidfile</var> instead
of the default ‘<tt>/var/run/diskseekd.pid</tt>’.
</p></dd>
</dl>
<hr size="6">
<a name="Bugs-4"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-5" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#fdmount" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#diskseekd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.2.2 Bugs</h3>
<ol>
<li>
Other aspects of Messy Dos’ flakiness are not simulated.
</li><li>
This section lacks a few smileys.
</li></ol>
<hr size="6">
<a name="fdmount"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Bugs-4" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-3" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="fdmount-1"></a>
<h2 class="section">10.3 fdmount</h2>
<a name="index-fdmount"></a>
<a name="index-fdmountd"></a>
<a name="index-fdlist"></a>
<a name="index-fdumount"></a>
<a name="index-automounting"></a>
<table><tr><td> </td><td><pre class="example"><code>fdmount</code> [<code>-l</code>] [<code>--list</code>] [<code>-d</code>] [<code>--daemon</code>] [<code>--detach</code>]
[<code>-i</code> <var>interval</var>] [<code>--interval</code> <var>interval</var>] [<code>-o</code> <var>mount-options</var>]
[<code>-r</code>] [<code>-readonly</code>] [<code>-s</code>] [<code>--sync</code>] [<code>--nosync</code>] [<code>--nodev</code>]
[<code>--nosuid</code>] [<code>--noexec</code>] [<code>-f</code>] [<code>--force</code>] [<code>-h</code>] [<code>--help</code>]
[<var>drivename</var>] [<var>mountpoint</var>]
<code>fdumount</code> [<code>-f</code>] [<code>--force</code>] [<var>drivename</var>]
<code>fdlist</code>
<code>fdmountd</code> [<code>-i</code> <var>interval</var>] [<code>--interval</code> <var>interval</var>] [<code>-r</code>]
[<code>-readonly</code>] [<code>-s</code>] [<code>--sync</code>] [<code>--nosync</code>] [<code>--nodev</code>]
[<code>--nosuid</code>] [<code>--noexec</code>] [<code>--help</code>] [<var>drivename</var>] [<var>mountpoint</var>]]
</pre></td></tr></table>
<p>The <code>fdmount</code> program mounts a floppy disk in the specified
drive. It tries to figure out the exact format and filesystem type of
the disk from data in the disk’s boot sector or super block and the
auto-detected track layout.
</p>
<p>Currently, fdmount supports the filesystems <code>minix</code>, <code>ext</code>,
<code>ext2</code>, <code>xia</code>, and <code>msdos</code>, and includes special support
for disks formatted by the <code>2M</code> utility for MS-DOS.
</p>
<p>It also checks whether the disk is write protected, in which case
it is mounted read-only.
</p>
<p>The symbolic <var>drivename</var> is (currently) one of ‘<tt>fd[0-7]</tt>’,
corresponding to the special device files ‘<tt>/dev/fd[0-7]</tt>’. If
<var>drivename</var> is not specified, ‘<tt>fd0</tt>’ is assumed.
</p>
<p>The disk is mounted on the directory <var>mountpoint</var>, if specified, or
on ‘<tt>/fd[0-7]</tt>’. In either case, the mount point must be an
existing, writable directory.
</p>
<p><strong>Due to a bug in the floppy driver (?), the polling interval (-i
flag) must be longer than the spindown offset. Thus you need to do (for
example) floppycontrol –spindown 99 before starting fdmountd in daemon
mode</strong>
</p>
<hr size="6">
<a name="Options-3"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#fdmount" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Security" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdmount" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.3.1 Options</h3>
<dl compact="compact">
<dt> <code>-l <var>--list</var></code></dt>
<dd><p>List all known drives with their symbolic name, type, and mount
status.
</p>
</dd>
<dt> <code>-d <var>--daemon</var></code></dt>
<dd><p>Run in daemon mode (see below).
</p>
</dd>
<dt> <code>--detach</code></dt>
<dd><p>Runs daemon in background, and detaches it from its tty. Messages
produced after the fork are logged to syslog.
</p>
</dd>
<dt> <code>-p <var>file</var></code></dt>
<dt> <code>--pidfile <var>file</var></code></dt>
<dd>
<p>Dumps the process id of the daemon to
<var>file</var>. This makes killing the daemon easier:
<code>kill -9 `cat <var>file</var>`</code>
</p>
</dd>
<dt> <code>-i <var>interval</var></code></dt>
<dt> <code>--interval <var>interval</var></code></dt>
<dd><p>Set the polling interval for daemon mode. The unit for <var>interval</var> is
0.1 seconds, the default value is 10 (i.e. 1 second).
</p>
</dd>
<dt> <code>-o <var>options</var></code></dt>
<dt> <code>--options <var>options</var></code></dt>
<dd><p>Sets filesystem-specific options. So far, these are only available for
DOS and Ext2 disks. The following DOS options are supported:
<code>check</code>, <code>conv</code>, <code>dotsOK</code>, <code>debug</code>, <code>fat</code>,
<code>quiet</code>, <code>blocksize</code>. The following Ext2 options are
supported: <code>check</code>, <code>errors</code>, <code>grpid</code>, <code>bsdgroups</code>,
<code>nogrpid</code>, <code>sysvgroups</code>, <code>bsddf</code>, <code>minixdf</code>,
<code>resgid</code>, <code>debug</code>, <code>nocheck</code>. When running as a daemon,
options not applying to the disk that is inserted (because of its
filesystem type) are not passed to mount.
</p>
</dd>
<dt> <code>-r <var>--readonly</var></code></dt>
<dd><p>Mount the disk read-only. This is automatically assumed if the
disk is write protected.
</p>
</dd>
<dt> <code>-s <var>--sync</var></code></dt>
<dd><p>Mount with the <code>SYNC</code> option.
</p>
</dd>
<dt> <code>--nosync</code></dt>
<dd><p>Mounts without the <code>SYNC</code> option, even when running as daemon.
</p>
</dd>
<dt> <code>--nodev</code></dt>
<dd><p>Mount with the <code>NODEV</code> option. Ignored for <code>msdos</code>
filesystems, otherwise always set for non-root users.
</p>
</dd>
<dt> <code>--nosuid</code></dt>
<dd><p>Mount with the <code>NOSUID</code> option. Ignored for <code>msdos</code>
filesystems, otherwise always set for non-root users.
</p>
</dd>
<dt> <code>--noexec</code></dt>
<dd><p>Mount with the <code>NOEXEC</code> option.
</p>
</dd>
<dt> <code>-f <var>--force</var></code></dt>
<dd><p>Attempt a mount or unmount operation even ‘<tt>/etc/mtab</tt>’ says that
the drive is already mounted, or not mounted, respectively.
This option is useful if ‘<tt>/etc/mtab</tt>’ got out of sync with the
actual state for some reason.
</p>
</dd>
<dt> <code>-h <var>--help</var></code></dt>
<dd><p>Show short parameter description
</p>
</dd>
</dl>
<hr size="6">
<a name="Security"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-3" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Daemon-mode" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdmount" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.3.2 Security</h3>
<p>When mounting on the default mount point, the mount points’ owner is set
to the current user, and the access flags according to the user’s umask.
For a specified mountpoint, owner and permissions are left
unchanged. Default mount points are called <code>/fd0</code>, <code>/fd1</code>,
… , <code>/fd7</code>.
</p>
<p>The user running fdmount must have read access to the floppy device for
read only mounts, and read/write access for read/write mounts.
</p>
<p>Fdmount can be run suid root, allowing users to mount floppy
disks. The following restrictions are placed upon non-root
users:
</p>
<ul>
<li>
If a mountpoint is specified explicitly, it must be owned by the user.
</li><li>
A user may only unmount a disk if the mount point is owned by the user,
or if it the disk has been mounted by the same user.
</li><li>
Non-msdos disks are automatically mounted with the <code>nodev</code> and
<code>nosuid</code> flags set.
</li></ul>
<p>However, <strong>do not rely on fdmount being secure at the moment</strong>.
</p>
<hr size="6">
<a name="Daemon-mode"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Security" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Diagnostics" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdmount" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.3.3 Daemon mode</h3>
<p>In daemon mode, the specified drive is periodically checked and if a
disk is inserted, it is automatically mounted.
</p>
<p>When the disk is removed, it is automatically unmounted. However, it is
recommended to unmount the disk manually <em>before</em> removing it. In
order to limit corruption, disks are mounted with the SYNC option when
running in daemon mode, unless the <code>--nosync</code> flag is given.
</p>
<p>Note that this mode has some potential drawbacks:
</p><ul>
<li>
Some floppy drives have to move the drive head physically in order to
reset the disk change signal. It is strongly recommended not to use
daemon mode with these drives. See section <a href="#floppycontrol">floppycontrol</a>, for details.
</li><li>
If a disk does not contain a filesystem (e.g. a tar archive),
the mount attempt may slow down initial access.
</li><li>
As fdmount cannot identify the user trying to use the disk drive,
there is no way to protect privacy. Disks are always mounted with
public access permissions set.
</li></ul>
<hr size="6">
<a name="Diagnostics"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Daemon-mode" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Bugs-5" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdmount" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.3.4 Diagnostics</h3>
<dl compact="compact">
<dt> <code>error opening device <var>name</var></code></dt>
<dt> <code>error reading boot/super block</code></dt>
<dd><p>fdmount failed to read the first 1K of the disk. The disk might be
damaged, unformatted, or it may have a format which is unsupported by the
FDC or the Linux kernel.
</p>
</dd>
<dt> <code>unknown filesystem type</code></dt>
<dd><p>No magic number of any of the supported filesystems (see above)
could be identified.
</p>
</dd>
<dt> <code>sorry, can't figure out format (<var>fs</var> filesystem)</code></dt>
<dd><p>The size of the filesystem on the disk is incompatible with
the track layout detected by the kernel and an integer number of
tracks. This may occur if the filesystem uses only part of the
disk, or the track layout was detected incorrectly by the kernel.
</p>
</dd>
<dt> <code>failed to mount <var>fs> <size</var>K-disk</code></dt>
<dd><p>The actual <code>mount</code> system call failed.
</p>
</dd>
<dt> <code>failed to unmount</code></dt>
<dd><p>The actual <code>unmount</code> system call failed.
</p>
</dd>
<dt> <code>cannot create lock file /etc/mtab~</code></dt>
<dd><p>If ‘<tt>/etc/mtab~</tt>’ exists, you should probably delete it. Otherwise,
check permissions.
</p>
</dd>
<dt> <code>Can't access <var>mountpoint</var></code></dt>
<dd><p>Most probably, the default or specified mount point does not exist.
Use mkdir.
</p>
</dd>
<dt> <code><var>mountpoint</var> is not a directory</code></dt>
<dd><p>The mountpoint is not a directory.
</p>
</dd>
<dt> <code>not owner of <var>mountpoint</var></code></dt>
<dd><p>Non-root users must own the directory specified as mount point.
(This does not apply for the default mount points, /fd[0-3].)
</p>
</dd>
<dt> <code>No write permission to <var>mountpoint</var></code></dt>
<dd><p>Non-root users must have write permission on the mount point
directory.
</p>
</dd>
<dt> <code>Not owner of mounted directory: UID=<var>uid</var></code></dt>
<dd><p>Non-root users cannot unmount if the mount point is owned
(i.e. the disk was mounted) by another user.
</p>
</dd>
<dt> <code>invalid drive name</code></dt>
<dd><p>Valid drive names are ‘<tt>fd0</tt>’, ‘<tt>fd1</tt>’, etc.
</p>
</dd>
<dt> <code>drive <var>name</var> does not exist</code></dt>
<dd><p>The drive does not exist physically, is unknown to the Linux kernel, or
is an unknown type.
</p>
</dd>
<dt> <code>Drive <var>name</var> is mounted already</code></dt>
<dd><p>Trying to mount a drive which appears to be mounted already. Use the
<code>--force</code> option if you think this is wrong.
</p>
</dd>
<dt> <code>Drive <var>name</var> is not mounted</code></dt>
<dd><p>Trying to unmount a drive which does not appear to be mounted. Use the
<code>--force</code> option if you think this is wrong.
</p>
</dd>
<dt> <code>ioctl(...) failed</code></dt>
<dd><p>If this occurs with the <code>FDGETDRVTYP</code> or <code>FDGETDRVSTAT</code>,
ioctl’s you should probably update your Linux kernel.
</p>
</dd>
<dt> <code>mounted <var>fs</var> <var>size</var>-disk (<var>options</var>)</code></dt>
<dd><p>Success message.
</p>
</dd>
</dl>
<hr size="6">
<a name="Bugs-5"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Diagnostics" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#fdrawcmd" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdmount" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.3.5 Bugs</h3>
<ul>
<li>
Fdmount should be more flexible about drive names and default
mount points (currently hard coded).
</li><li>
Probably not very secure yet (when running suid root).
Untested with ext and xia filesystems.
</li><li>
Can’t specify filesystem type and disk layout explicitly.
</li><li>
In daemon mode, the drive light stays on all the time.
</li><li>
Some newer filesystem types, such as vfat are not yet supported.
</li></ul>
<hr size="6">
<a name="fdrawcmd"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Bugs-5" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-4" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="fdrawcmd-1"></a>
<h2 class="section">10.4 fdrawcmd</h2>
<a name="index-fdrawcmd"></a>
<a name="index-raw-command"></a>
<a name="index-low-level-interaction-with-floppy-driver"></a>
<a name="index-direct-interaction-with-floppy-driver"></a>
<table><tr><td> </td><td><pre class="example"><code>fdrawcmd</code> [<code>drive=</code><var>drive</var>] [<code>rate=</code><var>rate</var>]
[<code>length=</code><var>length</var>] [<code>repeat=</code><var>repeat</var>]
[<code>cylinder=</code><var>physical-cyl</var>] <var>command</var> [<var>parameters</var> …] [<var>mode</var>]
</pre></td></tr></table>
<p><code>fdrawcmd</code>
is used to send raw commands to the floppy disk controller, after
having selected a given drive. You must have write permission to the
selected drive.
</p>
<p>When writing to a disk, data is read from stdin; when reading, data
is printed to stdout. Diagnostic messages, return values from the
controller, and the value of the disk change line after the command are
printed to stderr.
</p>
<hr size="6">
<a name="Options-4"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#fdrawcmd" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdrawcmd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.4.1 Options</h3>
<p>All numbers may be given in octal (0211), decimal (137), or hexadecimal
(0x89).
</p>
<dl compact="compact">
<dt> <code>drive=<var>drive</var></code></dt>
<dd><p>Selects the drive. The default is drive 0 (‘<tt>/dev/fd0</tt>’).
</p>
</dd>
<dt> <code>rate=<var>rate</var></code></dt>
<dd><p>Selects the data transfer rate. Use 0 for high density disks, 1 for
double density 5 1/4 disks (or 2 Mbps tapes, if the appropriate rate
table is selected), and 2 for double density 3 1/2 disks.
</p>
</dd>
<dt> <code>length=<var>length</var></code></dt>
<dd><p>Describes the length of the transferred data for commands reading from
and writing to the disk. The default is to continue until end of file.
</p>
</dd>
<dt> <code>repeat=<var>count</var></code></dt>
<dd><p>Repeat the command <var>count</var> times. This only works correctly for
commands which don’t do any data transfer.
</p>
</dd>
<dt> <code>cylinder=<var>count</var></code></dt>
<dd><p>Seek to the given cylinder before executing the command
</p>
</dd>
<dt> <code><var>command</var></code></dt>
<dd><p>The name of the command to send. <var>command</var> may be a spelled out
name (like <code>read</code> or <code>write</code>), or a number representing the
commands floppy disk controller opcode. A named command has already a
mode associated with it, whereas for a number the mode parameter should
be described using the <code>mode</code> option.
</p>
</dd>
<dt> <code><var>parameters</var></code></dt>
<dd><p>The parameters for the command (optional, not all commands need
parameters).
</p>
</dd>
<dt> <code><var>mode</var></code></dt>
<dd><p>Various flags or’ed together describing the properties of the command.
</p>
</dd>
</dl>
<hr size="6">
<a name="Commands-1"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-4" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-available-on-all-FDCs" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdrawcmd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.4.2 Commands</h3>
<p>The description of the various floppy commands given in this manpage is
very sketchy. For more details get the 82078 spec sheet which can be
found at:
</p><table><tr><td> </td><td><pre class="example">http://www-techdoc.intel.com/docs/periph/fd_contr/datasheets/
</pre></td></tr></table>
<p>Look for the chapter <code>COMMAND SET/DESCRIPTIONS</code>. Older FDCs only
support a subset of the commands described therein, but the syntax for
the commands that do exist is the same.
</p>
<hr size="6">
<a name="Commands-available-on-all-FDCs"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-1" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-available-on-82072-and-later" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.4.2.1 Commands available on all FDCs</h4>
<dl compact="compact">
<dt> <code>read <var>drvsel cyl head sect szcod spt rw-gap szcod2</var></code></dt>
<dd><p>Reads <var>length</var> bytes of data from the disk. <var>drvsel</var> is the
drive selector. Bit 0 and 1 describe the drive, and bit 2 describes the
head. The remaining parameters give the cylinder, head (yes, again),
sector, size of the sector (128 * 2 ^ <var>szcod</var>), sectors per track
(<code>spt</code>, this is used to switch to the second head when the first
side has been read), and size of the read-write gap. <var>szcod2</var> should
be 0xff. <code>read</code> returns <var>ST0 ST1 ST2</var> and <var>cyl head sect
szcod</var> of the next sector to be read; see
‘<tt>/usr/include/linux/fdreg.h</tt>’ .
</p>
<p>N.B. Certain newer floppy disk controllers are buggy, and do not
correctly recognize the end of transfer when operating in virtual DMA
mode. For these, you need to set <code>spt</code> to the id of the last
sector to be read (for example, if you intend to read sectors 2, 3, 4,
set <code>spt</code> to 4, even if the disk has more sectors), and set the
<code>no-mt</code> flag.
</p>
</dd>
<dt> <code>write <var>drvsel cyl head sect szcod spt rw-gap szcod2</var></code></dt>
<dd><p>Analogous to
<code>read</code>.
</p>
</dd>
<dt> <code>sense <var>drvsel</var></code></dt>
<dd><p>Returns the third status byte (<var>ST3</var>)
</p>
</dd>
<dt> <code>recalibrate <var>drvsel</var></code></dt>
<dd><p>Recalibrates the drive and returns <var>ST0 ST1</var>.
</p>
</dd>
<dt> <code>seek <var>drvsel cyl</var></code></dt>
<dd><p>Moves the head to <var>cyl</var> and returns <var>ST0 ST1</var>.
</p>
</dd>
<dt> <code>specify <var>drvsel spec1 spec2</var></code></dt>
<dd><p>Specify various parameters to the drive.
</p>
</dd>
<dt> <code>format <var>drvsel szcod sect-per-track fmt-gap fmt-fill</var></code></dt>
<dd><p>Formats the cylinder. The new sectors are filled with <var>fmt-fill</var>.
The header information comes from the input, which is made up of
<var>cyl head sect szcod</var> quadruples. The <var>szcod</var> parameter
from the command line is used to describe the actual size of the
sectors, and the <var>szcod</var> from the input is used to write into the
header. However, the first write to these sectors will use the header
information, and might overwrite the following sectors if the
<var>szcod</var> parameter from the command line was too small.
</p>
</dd>
<dt> <code>readid <var>drvsel</var></code></dt>
<dd><p>reads the first sector header that comes and returns
<var>ST0 ST1 ST2 </var>
and
<var>cyl head sect szcod </var>
of the encountered header.
</p></dd>
</dl>
<hr size="6">
<a name="Commands-available-on-82072-and-later"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-available-on-all-FDCs" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-available-on-82072A-and-later" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.4.2.2 Commands available on 82072 and later</h4>
<dl compact="compact">
<dt> <code>dumpregs</code></dt>
<dd><p>Prints the contents of the FDCs registers, if supported.
</p></dd>
</dl>
<hr size="6">
<a name="Commands-available-on-82072A-and-later"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-available-on-82072-and-later" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-available-on-82077-and-later" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.4.2.3 Commands available on 82072A and later</h4>
<dl compact="compact">
<dt> <code>configure <var>conf1 conf2 conf3</var></code></dt>
<dd><p>Configures FIFO operation.
</p></dd>
</dl>
<hr size="6">
<a name="Commands-available-on-82077-and-later"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-available-on-82072A-and-later" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-available-on-82077AA-and-later" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.4.2.4 Commands available on 82077 and later</h4>
<dl compact="compact">
<dt> <code>version</code></dt>
<dd><p>Echoes 0x90 if the FDC is more recent than 82072A, and 0x80 otherwise
</p>
</dd>
<dt> <code>perpendicular <var>rate</var></code></dt>
<dd><p>Sets the perpendicular mode. Use 0 for normal, 2 for 500kb/s
perpendicular, and 3 for 1 Mb/s perpendicular.
</p>
</dd>
<dt> <code>seek_out <var>drvsel n</var></code></dt>
<dd><p>does a relative seek of
<var>n</var>
cylinders towards cylinder 0.
</p>
</dd>
<dt> <code>seek_in <var>drvsel n</var></code></dt>
<dd><p>does a relative seek of <var>n</var> cylinders away from cylinder 0.
</p></dd>
</dl>
<hr size="6">
<a name="Commands-available-on-82077AA-and-later"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-available-on-82077-and-later" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-available-on-82078" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.4.2.5 Commands available on 82077AA and later</h4>
<dl compact="compact">
<dt> <code>lock</code></dt>
<dd><p>Locks the FIFO configuration, so that it survives a FDC software reset.
</p></dd>
<dt> <code>unlock</code></dt>
<dd><p>Unlock the FIFO configuration
</p></dd>
</dl>
<hr size="6">
<a name="Commands-available-on-82078"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-available-on-82077AA-and-later" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Modes" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands-1" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.4.2.6 Commands available on 82078</h4>
<dl compact="compact">
<dt> <code>partid</code></dt>
<dd><p>echoes a byte describing the type of the FDC in the 3 high bits, and
the stepping in the three low bits.
</p>
</dd>
<dt> <code>powerdown <var>powerconf</var></code></dt>
<dd><p>configures automatic power down of the FDC. The old configuration is echoed
</p>
</dd>
<dt> <code>option <var>iso</var></code></dt>
<dd><p>enables/disables ISO formats. Odd values of
<var>iso</var>
enable these formats, whereas even values disable them. ISO formats
don’t have index headers, and thus allow to fit slightly more data on
a disk.
</p>
</dd>
<dt> <code>save</code></dt>
<dd><p>prints out 16 internal registers of the FDC.
</p>
</dd>
<dt> <code>restore <var>r1 r2 r3 ... r16</var></code></dt>
<dd><p>restores the 16 internal registers of the FDC.
</p>
</dd>
<dt> <code>format_n_write <var>drvsel szcod sect-per-track fmt-gap fmt-fill</var></code></dt>
<dd><p>formats the cylinder and writes initial data to it. The input data is
made up of a sequence of headers (4 bytes) and data:
<var>header1 data1 header2 data2 ... headern datan</var>
</p>
</dd>
<dt> <code>drivespec <var>dspec1 dspec2 ... specn terminator</var></code></dt>
<dd><p>chooses rate tables for various drives. Each dspec byte describes one
drive. Bits 0 and 1 say which drive is described. Bits 2 and 3 describe
the rate table. Only tables 0 and 2 are interesting. Both tables only
differ in the meaning of rate 1. For table 0 (the default) rate 0 is 300
kb/s (used for 5 1/4 DD disks), whereas for table 1 it is 2 Mbps (used
for fast floppy tape drives). Bit 4 is the precompensation table select
bit. It should be set to 0. Bit 5-7 should be zero as well. The
<var>terminator</var> byte ends the <code>drivespec</code> command. It is either
0xc0 or 0x80. If it is 0xc0, no result phase follows; if it is 0x80, the
current data rate table configuration for the four drives is echoed.
</p></dd>
</dl>
<hr size="6">
<a name="Modes"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Commands-available-on-82078" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#fdrawcmd" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.4.3 Modes</h3>
<p>The mode option is only needed when you describe the command as a
numerical value. Some mode names are also valid command names. They
are considered as command name if the command name has not yet been
given, and as mode name otherwise.
</p>
<p> If you give a command name followed by explicit modes, both the
implicit flags of the command name, and the explicit modes are or’ed
together.
</p>
<p> If on the other hand you give a command name preceded by explicit
modes, only the explicit modes are or’ed together.
</p>
<dl compact="compact">
<dt> <code>read</code></dt>
<dd><p>Read data from disk using DMA.
</p>
</dd>
<dt> <code>write</code></dt>
<dd><p>Write data to the disk.
</p>
</dd>
<dt> <code>intr</code></dt>
<dd><p>Wait for an interrupt.
</p>
</dd>
<dt> <code>spin</code></dt>
<dd><p>wait for the disk to spin up
</p>
</dd>
<dt> <code>disk</code></dt>
<dd><p>Aborts the operation if no disk is in the drive. This only works if you
also chose a physical cylinder to seek to.
</p>
</dd>
<dt> <code>no-motor</code></dt>
<dd><p>Don’t switch on the drive motor while issuing the command
</p>
</dd>
<dt> <code>no-motor-after</code></dt>
<dd><p>Switch off the motor immediately after the command returns.
</p>
</dd>
<dt> <code>fm</code></dt>
<dd><p>Uses the FM version of the <code>read</code>, <code>readid</code>, <code>write</code> and
<code>format</code> commands.
</p>
</dd>
<dt> <code>no-mt</code></dt>
<dd><p>Do not use MT (multitrack) mode for the <code>read</code>, <code>readid</code> and
<code>write</code> commands. This is needed on certain broken FDC’s which
don’t recognize end of transfer when running in <code>nodma</code> mode. In
order to use these safely, set <code>no-mt</code>, and chose the id of the
last sector to be read as <code>sect-per-track</code>.
</p>
</dd>
</dl>
<p><code>fdrawcmd</code> opens the device node with the <code>NDELAY</code> flag. This
means that the driver should not try to autodetect the disk type (it
might not be formatted), and that it should not reset the FDC. If a
reset was needed, the command simply fails. If that happens, execute
<code>floppycontrol --resetnow 0</code> , and try again.
</p>
<hr size="6">
<a name="floppycontrol"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Modes" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#General-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="floppycontrol-1"></a>
<h2 class="section">10.5 floppycontrol</h2>
<a name="index-floppycontrol"></a>
<a name="index-configuration-of-floppy-driver"></a>
<table><tr><td> </td><td><pre class="example"><code>floppycontrol</code> [<code>-p</code>] [<code>--pollstate</code>] [<code>--printfdstate</code>]
[<code>-a</code> <var>operation-abort-threshold</var>] [<code>-c</code> <var>read-track-threshold</var>]
[<code>-r</code> <var>recalibrate-threshold</var>] [<code>-R</code> <var>reset-threshold</var>]
[<code>-e</code> <var>reporting-threshold</var>] [<code>-f</code>] [<code>-x</code>] [<code>-d</code> <var>drive</var>][<code>-F</code>] [<code>-T</code>]
[<code>-reset</code> <var>condition</var>] [<code>--debug</code>] [<code>--nodebug</code>] [<code>--messages</code>]
[<code>--nomessages</code>] [<code>--broken_dcl</code>] [<code>--working_dcl</code>] [<code>--inverted_dcl</code>]
[<code>--no_inverted_dcl</code>] [<code>--silent_dcl_clear</code>] [<code>--noisy_dcl_clear</code>]
[<code>-c</code><var>cmos-type</var>] [<code>-hlt</code> <var>hlt</var>] [<code>-hut</code> <var>hut</var>] [<code>-srt</code> <var>srt</var>] [<code>-o</code> <var>spindown</var>]
[<code>-u</code> <var>spinup</var>] [<code>-s</code> <var>select-delay</var>] [<code>-rps</code> <var>rotations-per-second</var>]
[<code>-O</code> <var>spindown-offset</var>] [<code>-track</code> <var>max-tracks</var>] [<code>-timeout</code> <var>seconds</var>]
[<code>-C</code> <var>check-interval</var>] [<code>-n</code> <var>native-format</var>]
[<code>-autodetect</code> <var>autodetection-sequence</var>] [<code>-P</code>] [<code>--clrwerror</code>]
[<code>--printwerror</code>] [<code>-h</code>]
</pre></td></tr></table>
<p>The <code>floppycontrol</code> program is used to configure the floppy driver.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#General-options">10.5.1 General Options</a></td><td> </td><td align="left" valign="top"> General purpose options
</td></tr>
<tr><td align="left" valign="top"><a href="#One-time-actions">10.5.2 One time actions</a></td><td> </td><td align="left" valign="top"> Perform various actions
</td></tr>
<tr><td align="left" valign="top"><a href="#Printing-options">10.5.3 Printing current settings</a></td><td> </td><td align="left" valign="top"> Print out current configuration
</td></tr>
<tr><td align="left" valign="top"><a href="#Drive-type-configuration">10.5.4 Drive type configuration and autodetection</a></td><td> </td><td align="left" valign="top"> Do you have a 3 1/2 double density drive or
a 5 1/4 high density drive?
</td></tr>
<tr><td align="left" valign="top"><a href="#DCL-configuration">10.5.5 Configuration of the disk change line</a></td><td> </td><td align="left" valign="top"> Disk change line configuration.
</td></tr>
<tr><td align="left" valign="top"><a href="#Timing-parameters">10.5.6 Timing Parameters</a></td><td> </td><td align="left" valign="top"> Change the timings of various operations
</td></tr>
<tr><td align="left" valign="top"><a href="#Debugging">10.5.7 Debugging messages</a></td><td> </td><td align="left" valign="top"> Switching debugging messages on/off
</td></tr>
<tr><td align="left" valign="top"><a href="#Error-handling-options">10.5.8 Error Handling Options</a></td><td> </td><td align="left" valign="top"> How should the floppy driver react when
encountering disk errors
</td></tr>
<tr><td align="left" valign="top"><a href="#Write-error-reporting">10.5.9 Write error reporting</a></td><td> </td><td align="left" valign="top"> gather statistics about write errors
</td></tr>
<tr><td align="left" valign="top"><a href="#Misc-options">10.5.10 Other drive configuration options</a></td><td> </td><td align="left" valign="top"> Other configuration options
</td></tr>
</table>
<hr size="6">
<a name="General-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#floppycontrol" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#One-time-actions" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="General-Options"></a>
<h3 class="subsection">10.5.1 General Options</h3>
<dl compact="compact">
<dt> <code>-h</code></dt>
<dt> <code>--help</code></dt>
<dd><p>Print a help screen.
</p>
</dd>
<dt> <code>-d <var>drive</var></code> </dt>
<dt> <code>--drive <var> drive</var></code></dt>
<dd><p>Selects the drive to configure. The default is drive 0
(‘<tt>/dev/fd0</tt>’).
</p>
</dd>
</dl>
<hr size="6">
<a name="One-time-actions"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#General-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Printing-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="One-time-actions-1"></a>
<h3 class="subsection">10.5.2 One time actions</h3>
<a name="index-ejecting-a-disk"></a>
<a name="index-flushing-floppy-cache"></a>
<a name="index-resetting-controller"></a>
<p>The following <code>floppycontrol</code> options don’t set a configuration
parameter, but perform a one-time action. They are available to anybody
who has write access to the drive
</p>
<dl compact="compact">
<dt> <code>-f</code> </dt>
<dt> <code>--flush</code></dt>
<dd><p>Flushes (throws away) the dirty data buffers associated with this drive.
</p></dd>
<dt> <code>-x</code> </dt>
<dt> <code>--eject</code></dt>
<dd><p>Ejects the disk out of the drive (Sparc). The dirty buffers are first
committed to disk before ejecting it. Fails if the disk is mounted.
</p>
</dd>
<dt> <code>--reset <var> condition</var></code></dt>
<dd><p>Resets the FDC under
<var>condition</var> . Condition may be one of the following:
</p><dl compact="compact">
<dt> <code>0</code></dt>
<dd><p>resets the FDC only if a reset is needed anyways,
</p></dd>
<dt> <code>1</code></dt>
<dd><p>resets the FDC
also if a raw command has been performed since the last reset, and
</p></dd>
<dt> <code>2</code> </dt>
<dd><p>resets the FDC unconditionally.
</p></dd>
</dl>
<p>This command may be needed after some failed raw commands
(see section <a href="#fdrawcmd">fdrawcmd</a>).
</p>
</dd>
<dt> <code>-F</code></dt>
<dt> <code>--formatend</code></dt>
<dd><p>Issues an end format ioctl. This might be needed after exiting a
<code>fdformat</code> in an unclean way. <code>superformat</code> is not subject to
this.
</p>
</dd>
</dl>
<hr size="6">
<a name="Printing-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#One-time-actions" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Drive-type-configuration" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Printing-current-settings"></a>
<h3 class="subsection">10.5.3 Printing current settings</h3>
<a name="index-printing-current-settings"></a>
<a name="index-determining-drive-type"></a>
<a name="index-detecting-a-disk-change"></a>
<dl compact="compact">
<dt> <code>-T</code></dt>
<dt> <code>--type</code></dt>
<dd><p>Print out the drive name of a floppy device. This is used by the
<code>MAKEFLOPPIES</code> script. The drive name is a letter (describing the
drive type) followed by the capacity of the format in bytes. The letter
is E for 3.5 ED drives, H for 3.5 HD drives, D for 3.5 DD drives, h for
5.25 HD drives and d for 5.25 DD drives. The drive type letter
corresponds to the oldest drive type supporting the format of this
device node (not necessarily the type of the drive referred by this
node.) For the generic format nodes (/dev/fd0 et al.) the name of
"native format" of the drive is printed, and for the default formats, if
a generic format has been redefined, its name becomes <code>(null)</code>.
</p>
</dd>
<dt> <code>-p</code></dt>
<dt> <code>--print</code></dt>
<dd><p>Prints out the configuration of the drive. The names of the various
fields are the same as the names of the option to set them, see below.
</p>
</dd>
<dt> <code>-P</code></dt>
<dt> <code>--printstate</code></dt>
<dd><p>Prints out the cached internal state of the driver. The first line lists
various attributes about the disk:
</p><dl compact="compact">
<dt> <code>drive present</code></dt>
<dt> <code>disk present</code></dt>
<dt> <code>disk writable</code></dt>
<dd><p>These are only updated when the drive is accessed.
</p></dd>
<dt> <code>spinup</code></dt>
<dd><p>is the time when the motor became switched on for the last time.
</p>
</dd>
<dt> <code>select</code></dt>
<dd><p>is the time when the drive became selected for the last time
</p>
</dd>
<dt> <code>first_read</code></dt>
<dd><p>is the time when the first read request after the last spin up
completed.
</p>
</dd>
<dt> <code>probed_fmt</code></dt>
<dd><p>is the index of the autodetected format in the autodetection
sequence for this drive.
</p>
</dd>
<dt> <code>cylinder</code></dt>
<dd><p>is the cylinder where the drive head currently sits. If this number is negative, it has the following meaning:
</p><ul>
<li>
-1 means that the driver doesn’t know, but the controller does (a seek
command must be issued).
</li><li>
-2 means that the controller doesn’t know either, but is sure that it
not beyond the 80th track. The drive needs a recalibration.
</li><li>
-3 means that the head may be beyond the 80th track. The drive needs
two successive recalibrations, because at each recalibration, the
controller only issues 80 move head commands per recalibration.
</li></ul>
</dd>
<dt> <code>maxblock</code></dt>
<dd><p>is the highest block number that has been read.
</p></dd>
<dt> <code>maxcylinder</code></dt>
<dd><p>is a boolean which is set when a sector that is not on cylinder 0/head 0
has been read. These are used for smart invalidation of the buffer
cache on geometry change. The buffer cache of the drive is only
invalidated on geometry change when this change actually implies that a
block that has already been read changes position. This optimization is
useful for mtools which changes the geometry after reading the boot
sector.
</p>
</dd>
<dt> <code>generation</code></dt>
<dd><p>is roughly the number of disk changes noticed since boot. Disk changes
are noticed if the disk is actually changed, or if a flush command is
issued and for both cases if any I/O to/from the disk occurs. (i.e. if
you insert several disks, but don’t do any I/O to them, the generation
number stays the same.)
</p>
</dd>
<dt> <code>refs</code></dt>
<dd><p>is number of open file descriptors for this drive. It is always at
least one, because floppycontrol’s file descriptor is counted too.
</p>
</dd>
<dt> <code>device</code></dt>
<dd><p>is format type (as derived from the minor device number) which is
currently being used.
</p>
</dd>
<dt> <code>last_checked</code></dt>
<dd><p>is date (in jiffies) when the drive was last checked for a disk
change, and a disk was actually in the drive.
</p></dd>
</dl>
</dd>
<dt> <code>--pollstate</code></dt>
<dd><p>Polls the drive and then prints out the internal state of the
driver.(<code>--Printstate</code> only prints out the cached information
without actually polling the drive for a disk change.)
</p>
</dd>
<dt> <code>--printfdcstate</code></dt>
<dd><p>Prints out the state of the controller where the target drive is
attached to.
</p><dl compact="compact">
<dt> <code>spec1</code></dt>
<dt> <code>spec2</code></dt>
<dd><p>are the current values of those registers.
</p>
</dd>
<dt> <code>rate</code></dt>
<dd><p>is current data transfer rate
</p>
</dd>
<dt> <code>rawcmd</code></dt>
<dd><p>is true if a raw command has been executed since the last reset. If this
is the case, a reset will be triggered when a drive on the same FDC is
next opened.
</p>
</dd>
<dt> <code>dor</code></dt>
<dd><p>is the value of the digital output register. The 4 high bits are a bit
mask describing which drives are spinning, the 2 low bits describe the
selected drive, bit 2 is used to reset the FDC, and bit 3 describes
whether this FDC has hold of the interrupt and the DMA. If you have two
FDCs, bit 3 is only set on one of them.
</p>
</dd>
<dt> <code>version</code></dt>
<dd><p>is the version of the FDC. See ‘<tt>linux/include/linux/fdreg.h</tt>’ for a
listing of the FDC version numbers.
</p>
</dd>
<dt> <code>reset</code></dt>
<dd><p>is true if a reset needs to be issued to the FDC before processing the
next request.
</p>
</dd>
<dt> <code>need_configure</code></dt>
<dd><p>is true if this FDC needs configuration by the <code>FD_CONFIGURE</code>
command.
</p>
</dd>
<dt> <code>has_fifo</code></dt>
<dd><p>is set if the FDC understands the <code>FD_CONFIGURE</code> command.
</p>
</dd>
<dt> <code>perp_mode</code></dt>
<dd><p>describes the perpendicular mode of this FDC. 0 is non-perpendicular mode,
2 is HD perpendicular mode, 3 is ED perpendicular mode, and 1 is unknown.
</p>
</dd>
<dt> <code>address</code></dt>
<dd><p>is the address of the first I/O port of the FDC. Normally, this is
0x3f0 for the first FDC and 0x370 for the second.
</p></dd>
</dl>
</dd>
</dl>
<hr size="6">
<a name="Drive-type-configuration"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Printing-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#DCL-configuration" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Drive-type-configuration-and-autodetection"></a>
<h3 class="subsection">10.5.4 Drive type configuration and autodetection</h3>
<a name="index-CMOS-type"></a>
<a name="index-drive-type"></a>
<a name="index-swapping-drives"></a>
<p>The following options handle the different available drive types, such
as double density vs. high density vs. extra density drives, and 5 1/4
drives vs 3 1/2 drives. Usually the drive type is stored in a
non-volatile memory, called CMOS, under the form of an integer ranging
from 1 to 6.
</p>
<p>Different drive types are able to handle and autodetect different
formats (different autodetection lists). They also have different
"native format name". The native format is the "usual" format with the
highest capacity supported by the drive. (For example 720KB on a double
density 3 1/2 drive, and 1.2MB on a high density 5 1/4 drive.)
</p>
<p>These settings are only changeable by the super user.
</p>
<dl compact="compact">
<dt> <code>-c <var>cmos-type</var></code></dt>
<dt> <code>--cmos <var> cmos-type</var></code></dt>
<dd><p>Set the virtual CMOS type of the floppy drive. This is useful if
</p><ul>
<li>
the physical CMOS type is wrong (this may happen with BIOSes
which use a non-standard mapping),
</li><li>
you have more than two drives
(the physical CMOS may only describe up to two drives).
</li><li>
you have a BIOS that allows swapping drives A: and B: for DOS.
</li></ul>
<p>Right now, this CMOS parameter is not used by the kernel, except for
feeding it back to other applications (for instance <code>superformat</code>,
<code>floppymeter</code> or <code>MAKEFLOPPIES</code>). It is also possible to
supply a virtual CMOS type with the <code>cmos</code> boot option
(see section <a href="#Boottime-configuration">Configuring the floppy driver via LILO or insmod</a>). If possible, I recommend you use the
boot option, rather than <code>floppycontrol</code>, because the boot option
also sets any parameters derived from the CMOS type, such as the
autodetection list and the native format, whereas <code>floppycontrol</code>
does not.
</p>
</dd>
<dt> <code>-A <var>autodetect-seq</var></code> </dt>
<dt> <code>--autodetect <var> autodetect-seq</var></code></dt>
<dd><p>Set the autodetection sequence (see section <a href="#Autodetection">How autodetection works</a>) The autodetection
sequence is a comma-separated list of at most eight format
descriptors. Each format descriptor is a format number optionally
followed by the letter <code>t</code>. For drive 0, the format number is the
minor device number divided by 4. The autodetection sequence is used by
the driver to find out the format of a newly inserted disk. The formats
are tried one after the other, and the first matching format is
retained. To test the format, the driver tries to read the first sector
on the first track on the first head when <code>t</code> is not given, or the
whole first track when <code>t</code> is given. Thus, autodetection cannot
detect the number of tracks. However, this information is contained in
the boot sector, which is now accessible. The boot sector can then be
used by mtools to configure the correct number of tracks.
</p>
<p>Example:
</p><table><tr><td> </td><td><pre class="example">7,4,24t,25
</pre></td></tr></table>
<p>means to try out the formats whose minor device numbers are 28 (1.44M),
16 (720KB), 96 (1.76MB), and 100 (1.92MB), in this order. For the 1.76MB
format, try to read the whole track at once.
</p>
<p>Reading the whole track at once allows you to distinguish between two
formats which differ only in the number of sectors. (The format with the
most sectors must be tried first.) If you use mtools<a name="DOCF6" href="#FOOT6">(6)</a>, you do not need this feature, as mtools can figure out
the number of sectors without any help from the floppy driver, by
looking at the boot sector.
</p>
<p>Reading the whole track at once may also speed up the first read by 200
milliseconds. However, if, on the other hand, you try to read a disk
which has less sectors than the format, you lose some time.
</p>
<p>I suggest that you put the most often used format in the first place
(barring other constraints), as each format that is tried out takes
400 milliseconds.
</p>
</dd>
<dt> <code>-n <var>native-format</var></code></dt>
<dt> <code>--native_format <var> native-format</var></code></dt>
<dd><p>Set the native format of this drive. The native format of a drive is the
highest standard format available for this drive. (Example: For a 5 1/4
HD drive it is the usual 1200K format.) This is format is used to make
up the format name for the generic device (which is the name of the
native format). This drive name is read back from the kernel by the
<code>MAKEFLOPPIES</code> script which uses it to decide which device nodes to
create.
</p>
</dd>
</dl>
<hr size="6">
<a name="DCL-configuration"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Drive-type-configuration" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Timing-parameters" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Configuration-of-the-disk-change-line"></a>
<h3 class="subsection">10.5.5 Configuration of the disk change line</h3>
<a name="index-disk-change-line"></a>
<a name="index-Thinkpad"></a>
<a name="index-disk-change-detection"></a>
<a name="index-disk-absent-during-operation-_0028false-alert_0029"></a>
<dl compact="compact">
<dt> <code>--broken_dcl</code></dt>
<dd><p>Assumes that the disk change line of the drive is broken. If this is
set, disk changes are assumed to happen whenever the device node is
first opened. The physical disk change line is ignored.
</p>
<p>This option should be used if disk changes are either not detected at
all, or if disk changes are detected when the disk was actually not
changed. If this option fixes the problem, I’d recommend that you try to
trace the root cause of the problem. Indeed, this options results in
reduced performance due to spurious cache flushes.
</p>
<p>The following hardware problems may lead to a bad disk change line:
</p><ul>
<li>
If the floppy cable is not inserted straight, or if it is kinked, the
disk change line is likely to suffer, as it is on the edge of the cable.
Gently press on both connectors of the cable (drive and controller) to
insure that all wires make contact. Visually inspect the cable, and if
it shows obvious traces of damage, get a new one.
</li><li>
On some drives, the locations disk change line may be chosen by
jumper. Make sure that your floppy controller and your drive agree on
which line is the disk change line.
</li><li>
Some older drives (mostly double density 5 1/4 drives) don’t have a disk
change line. In this case, you have no choice other than to leave the
<code>broken_dcl</code> option on.
</li></ul>
</dd>
<dt> <code>--working_dcl</code></dt>
<dd><p>Assumes that the disk change line works all right. Switching from
broken to working may lead to unexpected results after the first disk
change.
</p>
</dd>
<dt> <code>--inverted_dcl</code></dt>
<dd><p>Assumes that this disk drive uses an inverted disk change
line. Apparently this is the case for IBM thinkpads.
</p>
</dd>
<dt> <code>--no_inverted_dcl</code></dt>
<dd><p>Assumes that this drive follows the standard convention for the disk
change line.
</p>
</dd>
<dt> <code>--noisy_dcl_clear</code></dt>
<dd><p>Switches off silent disk change line clearing for this drive.
</p>
</dd>
</dl>
<hr size="6">
<a name="Timing-parameters"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#DCL-configuration" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Debugging" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Timing-Parameters"></a>
<h3 class="subsection">10.5.6 Timing Parameters</h3>
<a name="index-strange-noises-during-seek"></a>
<p>This section describes how to configure drive timings. To set these
parameters, you need superuser privileges. All times are in "jiffy"
units (10 milliseconds), unless otherwise specified.
</p>
<dl compact="compact">
<dt> <code>--hlt <var> hlt</var></code></dt>
<dd><p>Set the head load time (in microseconds) for this floppy drive. The
head load time describes how long the floppy controller waits after
seeking or changing heads before allowing access to a track.
</p>
</dd>
<dt> <code>--hut <var> hut</var></code></dt>
<dd><p>Set the head unload time (in microseconds) for this floppy drive. The
head unload time describes how long the floppy controller waits after an
access before directing its attention to the other head, or before
seeking.
</p>
</dd>
<dt> <code>--srt <var> srt</var></code></dt>
<dd><p>Set the step rate (in microseconds) for this floppy drive. The step
rate describes how long the drive head stays on one cylinder when
seeking. Setting this value to low (too fast seeks) may make seeks
fail, because the motor doesn’t follow fast enough.
</p>
</dd>
<dt> <code>-u <var>spinup-time</var></code> </dt>
<dt> <code>--spinup <var> spinup-time</var></code></dt>
<dd><p>Set the spinup time of the floppy drive. In order to do read or write
to the floppy disk, it must spin. It takes a certain time for the
motor to reach enough speed to read or write. This parameter describes
this time. The floppy driver doesn’t try to access the drive before
the spinup time has elapsed. With modern controllers, you may set this time
to zero, as the controller itself enforces the right delay.
</p>
</dd>
<dt> <code>-o <var>spindown-time</var></code> </dt>
<dt> <code>--spindown <var> spindown-time</var></code></dt>
<dd><p>Set the spindown time of this floppy drive. The motor is not stopped
immediately after the operation completes, because there might be more
operations following. The spindown time is the time the driver waits
before switching off the motor.
</p>
</dd>
<dt> <code>-O <var>spindown-offset</var></code> </dt>
<dt> <code>--spindown_offset <var> spindown-offset</var></code></dt>
<dd><p>Set the spindown offset of this floppy drive. This parameter is used
to set the position in which the disk stops. This is useful to
minimize the next access time. (If the first sector is just near the
head at the very moment at which the disk has reached enough speed,
you win 200 milliseconds against the most unfavorable situation).
</p>
<p>This is done by clocking the time where the first I/O request
completes, and using this time to calculate the current position of
the disk.
</p>
</dd>
<dt> <code>-s <var>select-delay</var></code> </dt>
<dt> <code>--select_delay <var> select-delay</var></code></dt>
<dd><p>Set the <var>select delay</var> of this floppy drive. This is the delay that
the driver waits after selecting the drive and issuing the first command
to it. For modern controllers/drives, you may set this to zero.
</p>
</dd>
<dt> <code>-C <var>check-interval</var></code> </dt>
<dt> <code>--checkfreq <var> check-interval</var></code></dt>
<dd><p>Set the maximal disk change check interval. The disk change line is
checked whenever a read or write to the device is issued, and it has not
been checked for more than <var>interval</var> jiffies.
</p></dd>
</dl>
<hr size="6">
<a name="Debugging"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Timing-parameters" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Error-handling-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Debugging-messages"></a>
<h3 class="subsection">10.5.7 Debugging messages</h3>
<p>This subsection describes how to switch the available debugging messages
on and off.
</p>
<dl compact="compact">
<dt> <code>--debug</code></dt>
<dd><p>Switch debugging output on. The debugging information includes timing
information. This option might be useful to fine-tune the timing
options for your local setups. (But for most normal purposes, the
default values are good enough.)
</p>
</dd>
<dt> <code>--nodebug</code></dt>
<dd><p>Switch debugging output off.
</p>
</dd>
<dt> <code>--messages</code></dt>
<dd><p>Print informational messages after autodetection, geometry parameter
clearing and dma over/underruns.
</p>
</dd>
<dt> <code>--nomessages</code></dt>
<dd><p>Don’t print informational messages after these events.
</p>
</dd>
</dl>
<hr size="6">
<a name="Error-handling-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Debugging" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Write-error-reporting" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Error-Handling-Options"></a>
<h3 class="subsection">10.5.8 Error Handling Options</h3>
<p>The following options configure the behavior of the floppy driver in
case of read/write errors. They may be used by any user who has write
privileges for the drive. Whenever the floppy driver encounters an
error, a retry counter is incremented. If the value of this counter gets
bigger than the thresholds described below, the corresponding actions
are performed at the next retry. The counter is reset when the read or
write finally terminates, whether successfully or not.
</p><dl compact="compact">
<dt> <code>-a <var>operation-abort-threshold</var></code> </dt>
<dt> <code>--abort <var> operation-abort-threshold</var></code></dt>
<dd><p>Tell the floppy driver to stop trying to read/write a sector after
<var>operation-abort-threshold</var>
retries, and signal the I/O error to the user.
</p>
</dd>
<dt> <code>-t <var>read-track-threshold</var></code> </dt>
<dt> <code>--readtrack <var> read-track-threshold</var></code></dt>
<dd><p>Tell the floppy driver to switch from track-reading mode to
sector-at-a-time-mode after
<var>read-track-threshold</var>
retries.
</p></dd>
<dt> <code>-r <var>recalibrate-threshold</var></code> </dt>
<dt> <code>--recalibrate <var> recalibrate-threshold</var></code></dt>
<dd><p>Tell the floppy driver to recalibrate the drive after
<var>recalibrate-threshold</var> retries.
</p>
</dd>
<dt> <code>-R <var>reset-threshold</var></code> </dt>
<dt> <code>--reset <var> reset-threshold</var></code></dt>
<dd><p>Tell the floppy driver to reset the controller after
<var>reset-threshold</var> retries. After a controller reset, the floppy
driver also recalibrates all drives connected to that controller.
</p>
</dd>
<dt> <code>-e <var>error-report-threshold</var></code> </dt>
<dt> <code>--reporting <var> error-report-threshold</var></code></dt>
<dd><p>Tell the floppy driver to start printing error messages to the console
after <var>error-report-threshold</var> retries.
</p></dd>
</dl>
<hr size="6">
<a name="Write-error-reporting"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Error-handling-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Misc-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Write-error-reporting-1"></a>
<h3 class="subsection">10.5.9 Write error reporting</h3>
<p>Due to the buffer cache, write errors cannot always be reported to the
writing user program as soon as the write system call returns. Indeed,
the actual writing may take place much later. If a write error is
encountered, the floppy driver stores information about it in its per
drive write error structure. This write error structure stays until
explicitly cleared. It can for example be queried by a backup program
which wants to make sure that the data has been written successfully.
</p>
<dl compact="compact">
<dt> <code>--clrwerror</code></dt>
<dd><p>Clears the write error structure.
</p>
</dd>
<dt> <code>--printwerror</code></dt>
<dd><p>Prints the contents of the write error structure:
</p><dl compact="compact">
<dt> <code>write_errors</code></dt>
<dd><p>is a count of how many write errors have occurred since the structure was last
cleared.
</p></dd>
<dt> <code>badness</code></dt>
<dd><p>is the maximal number of retries that were needed to complete an
operation (reads, writes and formats).
</p></dd>
<dt> <code>first_error_sector</code></dt>
<dd><p>is where the first (chronologically) write error occurred.
</p></dd>
<dt> <code>first_error_generation</code></dt>
<dd><p>is the disk change generation in which did the first write error
occurred. The disk change generation is a number which is incremented
at each disk change.
</p></dd>
<dt> <code>last_error_sector</code></dt>
<dd><p>and
</p></dd>
<dt> <code>last_error_generation</code></dt>
<dd><p>are similar.
</p></dd>
</dl>
</dd>
</dl>
<hr size="6">
<a name="Misc-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Write-error-reporting" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#floppymeter" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppycontrol" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Other-drive-configuration-options"></a>
<h3 class="subsection">10.5.10 Other drive configuration options</h3>
<p>This subsection lists per drive configuration options, which don’t fit
in any other category. They are available only to the superuser:
</p>
<dl compact="compact">
<dt> <code>--tracks <var> max-tracks</var></code></dt>
<dd><p>Set the maximal numbers of physical tracks that this drive may
handle. If you have a drive which is only able to handle 80 tracks
(making strange noises when you try to format or read a disk with more
than 80 tracks), use this option to prevent unprivileged users of
damaging your drive by repeatedly reading disks with more than 80
tracks.
</p>
<p>If you trust your users and your disks, you don’t need this. With most
drives you don’t need to worry anyways. See section <a href="#More-cylinders">More Cylinders</a>, for
details.
</p>
</dd>
<dt> <code>-i <var>sector-interleave</var></code> </dt>
<dt> <code>--interleave <var>sector-interleave</var></code></dt>
<dd><p>Set the number of sectors beyond which sector interleaving will be used.
This option will only be used by the <code>FDFMTTRK</code> ioctl. The
<code>fdformat</code> command, which is now considered obsolete, uses
<code>FDFMTTRK</code> ioctl, but <code>superformat</code> does not.
</p>
</dd>
</dl>
<hr size="6">
<a name="floppymeter"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Misc-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Bugs-2" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="floppymeter-1"></a>
<h2 class="section">10.6 floppymeter</h2>
<a name="index-floppymeter"></a>
<a name="index-rotation-speed"></a>
<a name="index-raw-capacity"></a>
<table><tr><td> </td><td><pre class="example"><code>floppymeter</code> [<code>-f</code>] [<code>-w</code> <var>warmup-delay</var>] [<code>-W</code> <var>window</var>]
[<code>-c</code> <var>cycles</var>] [<code>-h</code>] <var>drive</var>
</pre></td></tr></table>
<p>The <code>floppymeter</code> program measures characteristic parameters of a
floppy drive and floppy controller, such as the rotation speed of the
drive, the data transfer rate of the controller, and the resulting raw
capacity of a disk track. To use this program, insert a disposable
floppy in the drive, and type <code>floppymeter --</code><var>density</var>, where
density describes the density of the disk used for the test. (Should be
one of <code>dd, hd</code> or <code>ed</code>). <strong>CAUTION: the data on the
disk will be erased</strong>. This program should be used to verify whether the
drive and controller are out of tolerance if you experience problems
with some high capacity formats. It only needs to be run once per
drive: although a disk is needed to perform the measurements, the
measured data only depend on the drive and the controller, and not on
the disk.
</p>
<p>To measure the raw capacity of the disk track, the floppymeter program
formats the first track of the drive in a special way that allows it to
read the raw data (gaps and headers) of the disk. <strong>Thus, all data
previously stored on that disk is lost</strong>.
</p>
<p>The rotation speed is measured by timing the return time of a
<code>readid</code> command. In order to gain more precision, the command is
issued many times in a row. During this phase, the number of rotations
since the start of the test, the average time per rotation since the start,
and a sliding average of the times of the last 30 rotations is printed,
and updated continuously.
</p>
<p>The data transfer rate is deduced from the two parameters above.
</p>
<p>At the end of the program, all parameters (raw capacity, duration of one
rotation, and data transfer rate) are printed again, as well as their
relative deviation to the standard value. Finally, it suggests a
capacity deviation description line, which can be directly pasted into
the drive definition file (See section <a href="#Drive-descriptions">Drive descriptions</a>.).
</p>
<p>Usually, the data transfer rate should not deviate more than 150 ppm
from the expected value, and the rotation speed of the drive should not
deviate more than 3000 ppm from the expected value. If these deviations
are bigger, you may get problems with certain high capacity formats.
</p>
<p>If the raw capacity of the drive is too small, some high capacity
formats may become unformattable on this drive/controller combo.
</p>
<p>If on the other hand, the raw capacity of the drive is too big, you may
get problems when writing to a disk formatted by this drive on another
drive with a smaller raw capacity. In order to avoid this, increase
superformats gap parameter (<code>-G</code>).
</p>
<dl compact="compact">
<dt> <code>-h</code></dt>
<dd><p>Prints a short help
</p>
</dd>
<dt> <code>--dd</code></dt>
<dd><p>Tells the program that we use a Double Density disk.
</p>
</dd>
<dt> <code>--hd</code></dt>
<dd><p>Tells the program that we use a High Density disk.
</p>
</dd>
<dt> <code>--ed</code></dt>
<dd><p>Tells the program that we use an Extra Density disk.
</p>
</dd>
<dt> <code>-f</code></dt>
<dd><p>Runs the measurement non interactively. With this option, the program
doesn’t ask for confirmation, and doesn’t display the continuously
updated values during the rotation speed measurement.
</p>
</dd>
<dt> <code>-W <var>Window</var></code></dt>
<dd><p>This value describes how many rotations are used for the computation of
the sliding average. Default is 30.
</p>
</dd>
<dt> <code>-c <var>cycles</var></code></dt>
<dd><p>Describes the number of rotations clocked during the rotations speed
determination test. Default is 1000.
</p>
</dd>
</dl>
<hr size="6">
<a name="Bugs-2"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#floppymeter" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#getfdprm" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#floppymeter" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.6.1 Bugs</h3>
<p>This program is quite new, and may have bugs. Here are a few suggested
tests to check its sanity:
</p><ul>
<li>
The deviation of the data transfer rate solely depends on the
controller. It should not be different between two drives connected to
the same controller. However, the drive rotation speed may be different
for different drives.
</li><li>
All data transfer rates (for double, high and extra density) are derived
from a same master frequency. Thus the <em>deviation</em> of the data
transfer rate should be independent of the density used.
</li></ul>
<hr size="6">
<a name="getfdprm"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Bugs-2" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#makefloppies" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="getfdprm-1"></a>
<h2 class="section">10.7 getfdprm</h2>
<a name="index-getfdprm"></a>
<a name="index-reading-back-the-geometry-information"></a>
<a name="index-geometry-information-_0028reading-back_0029"></a>
<table><tr><td> </td><td><pre class="example"><code>getfdprm</code> [<var>drive</var>]
</pre></td></tr></table>
<p><code>getfdprm</code>
prints the current geometry information for <var>drive</var> .
This information can be set using
<code>setfdprm</code>
</p>
<hr size="6">
<a name="makefloppies"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#getfdprm" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-1" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="makefloppies-1"></a>
<h2 class="section">10.8 makefloppies</h2>
<table><tr><td> </td><td><pre class="example"><code>MAKEFLOPPIES</code> [<code>-tlvng</code>] [<var>drives</var>]
</pre></td></tr></table>
<p>The <code>MAKEFLOPPIES</code> shell script creates the new floppy block device
node. It uses the floppycontrol program to translate the minor device
numbers into meaningful names. It also uses these names to decide
whether to create a given block device file or not, depending on the
type of the physical drive (for instance, for a 3 1/2 drive, the formats
corresponding to a 5 1/4 drive are not created).
</p>
<p>If you have more than two floppy drives, you need to tell the kernel
the CMOS types of those additional drives using the
<code>floppy=</code><var>drive</var><code>,</code><var>type</var><code>,cmos</code> lilo option.
</p>
<p>If the <var>drives </var> parameter is given, only the device nodes for the
listed drives are made. By default, all only the two first drives are
tried.
</p>
<p><code>MAKEFLOPPIES</code> does not work if you redefine your default formats.
</p>
<p><strong>Caution</strong>:
<code>MAKEFLOPPIES</code> removes already existing floppy device nodes.
</p>
<hr size="6">
<a name="Options-1"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#makefloppies" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Bugs-3" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#makefloppies" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.8.1 Options</h3>
<dl compact="compact">
<dt> <code>-t</code></dt>
<dd><p>Use the old naming convention for 3 1/2 devices (e.g. ‘<tt>fd0H720</tt>’
instead of ‘<tt>fd0u720</tt>’).
</p>
</dd>
<dt> <code>-m</code></dt>
<dd><p>Base the name for the created devices on the type of the media
(e.g. ‘<tt>fd0h720</tt>’ instead of ‘<tt>fd0u720</tt>’).
</p>
</dd>
<dt> <code>-l</code></dt>
<dd><p>Local. Creates device nodes in the local directory, not /dev
</p>
</dd>
<dt> <code>-v</code></dt>
<dd><p>Verbose
</p>
</dd>
<dt> <code>-n</code></dt>
<dd><p>Dry run. (just report what would be done, do not do anything)
</p>
</dd>
<dt> <code>-g</code></dt>
<dd><p>Group. Allow read/write access to floppy devices only for group
‘<samp>floppy</samp>’
</p>
</dd>
</dl>
<hr size="6">
<a name="Bugs-3"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-1" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#setfdprm" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#makefloppies" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.8.2 Bugs</h3>
<p>The MAKEFLOPPIES script does not work on redefined "default" formats, If
you redefine default formats, you need to create the needed device nodes
manually.
</p><hr size="6">
<a name="setfdprm"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Bugs-3" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="setfdprm-1"></a>
<h2 class="section">10.9 setfdprm</h2>
<a name="index-setfdprm"></a>
<a name="index-setting-the-geometry-information"></a>
<a name="index-geometry-information-_0028setting_0029"></a>
<table><tr><td> </td><td><pre class="example"><code>setfdprm</code> [<code>-p</code>] <var>device</var> <var>media-description</var>
<code>setfdprm</code> [<code>-c</code> | <code>-y</code> | <code>-n</code>] <var>device</var>
</pre></td></tr></table>
<p><code>setfdprm</code> is a utility that can be used to load disk parameters
into the auto-detecting floppy devices and "fixed parameter" floppy
devices, to clear old parameter sets and to disable or enable diagnostic
messages. These parameters are derived from a media-description,
see section <a href="#Media-description">Media description</a> for more details.
</p>
<p>Without any options, <code>setfdprm</code> loads the <var>device</var> (for example
‘<tt>/dev/fd0</tt>’ or ‘<tt>/dev/fd1</tt>’) with a new parameter set with the
<var>name</var> entry found in ‘<tt>/etc/mediaprm</tt>’ (usually named 360/360,
etc.). For autodetecting floppy devices, these parameters stay in
effect until the media is changed. For "fixed parameter" devices, they
stay in effect until they are changed again.
</p>
<p><code>Setfdprm</code> can also be used by the superuser to redefine the
default formats.
</p>
<hr size="6">
<a name="Options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#setfdprm" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Bugs-6" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#setfdprm" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.9.1 Options</h3>
<dl compact="compact">
<dt> <code>-p <var>device name</var></code></dt>
<dd><p>Permanently loads a new parameter set for the specified auto-configuring
floppy device for the configuration with <var>name</var> in
‘<tt>/etc/mediaprm</tt>’. Alternatively, the parameters can be given directly
from the command line.
</p>
</dd>
<dt> <code>-c <var>device</var></code></dt>
<dd><p>Clears the parameter set of the specified auto-configuring floppy device.
</p>
</dd>
<dt> <code>-y <var>device</var></code></dt>
<dd><p>Enables format detection messages for the specified auto-configuring floppy
device.
</p>
</dd>
<dt> <code>-n <var>device</var></code></dt>
<dd><p>Disables format detection messages for the specified auto-configuring
floppy device.
</p>
</dd>
</dl>
<hr size="6">
<a name="Bugs-6"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#setfdprm" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.9.2 Bugs</h3>
<p>This documentation is grossly incomplete.
</p><hr size="6">
<a name="superformat"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Bugs-6" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Common-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="superformat-1"></a>
<h2 class="section">10.10 superformat</h2>
<a name="index-superformat"></a>
<a name="index-formatting-disks-_0028non-XDF_0029"></a>
<table><tr><td> </td><td><pre class="example"><code>superformat</code> [<code>-D</code> <var>dos-drive</var>] [<code>-v</code> <var>verbosity-level</var>] [<code>-b</code> <var>begin-track</var>]
[<code>-e</code> <var>end-track</var>] [<code>--superverify</code>] [<code>--dosverify</code>]
[<code>--noverify</code>] [<code>--verify_later</code>] [<code>--zero-based</code>]
[<code>-G</code> <var>format-gap</var>] [<code>-F</code> <var>final-gap</var>] [<code>-i</code> <var>interleave</var>] [<code>-c</code> <var>chunksize</var>]
[<code>-g</code> <var>gap</var>] [<code>--absolute-skew</code> <var>absolute-skew</var>] [<code>--head-skew</code> <var>head-skew</var>]
[<code>--track-skew</code> <var>track-skew</var>] [<code>--biggest-last</code>] <var>drive</var> [<var>media-description</var>]
</pre></td></tr></table>
<p><code>superformat</code> is used to format disks with a capacity of up to
1992K HD or 3984K ED. See section <a href="#Extended-formats">Storing more data on a floppy disk</a>, for a detailed
description of these formats. See section <a href="#Media-description">Media description</a>, for a detailed
description of the syntax for the media description. If no media
description is given, superformat formats a disk in the highest
available density for that drive, using standard parameters (i.e. no
extra capacity formats).
</p>
<p>When the disk is formatted, <code>superformat</code> automatically invokes
<code>mformat</code> in order to put an MS-DOS filesystem on it. You may
ignore this filesystem, if you don’t need it.
</p>
<p>Superformat allows one to format 2m formats. Be aware, however, that these
<code>2m</code> formats were specifically designed to hold an MS-DOS
filesystem, and that they take advantage of the fact that the MS-DOS
filesystem uses redundant sectors on the first track (the FAT, which is
represented twice). The second copy of the FAT is <em>not</em> represented
on the disk.
</p>
<p>High capacity formats are sensitive to the exact rotation speed of the
drive and the resulting difference in raw capacity. That’s why
<code>superformat</code> performs a measurement of the disks raw capacity
before proceeding with the formatting. This measurement is rather time
consuming, and can be avoided by storing the relative deviation of the
drive capacity into the drive definition file file. See section <a href="#Drive-descriptions">Drive descriptions</a>, for more details on this file. The line to be inserted
into the drive definition file is printed by superformat after
performing its measurement. However, this line depends on the drive and
the controller. Do not copy it to other computers. Remove it before
installing another drive or upgrade your floppy controller. Swap the
drive numbers if you swap the drives in your computer.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Common-options">10.10.1 Common Options</a></td><td> </td><td align="left" valign="top"> The most frequently used options
</td></tr>
<tr><td align="left" valign="top"><a href="#Advanced-options">10.10.2 Advanced Options</a></td><td> </td><td align="left" valign="top"> For experts
</td></tr>
<tr><td align="left" valign="top"><a href="#Sector-skewing-options">10.10.3 Sector skewing options</a></td><td> </td><td align="left" valign="top"> Optimizing throughput by creatively
arranging the sectors
</td></tr>
<tr><td align="left" valign="top"><a href="#Examples">10.10.4 Examples</a></td><td> </td><td align="left" valign="top"> Some example command lines
</td></tr>
<tr><td align="left" valign="top"><a href="#Troubleshooting">10.10.5 Troubleshooting</a></td><td> </td><td align="left" valign="top"> Most common failure modes
</td></tr>
<tr><td align="left" valign="top"><a href="#Superformat-bugs">10.10.6 Bugs</a></td><td> </td><td align="left" valign="top"> Nobody is perfect
</td></tr>
</table>
<hr size="6">
<a name="Common-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#superformat" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Advanced-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Common-Options"></a>
<h3 class="subsection">10.10.1 Common Options</h3>
<p>Many options have a long and a short form.
</p>
<dl compact="compact">
<dt> <code>-h</code></dt>
<dt> <code>--help</code></dt>
<dd><p>Print the help.
</p>
</dd>
<dt> <code>-D <var>drive</var></code></dt>
<dt> <code>--dosdrive <var>dos-drive</var></code></dt>
<dd><p>Selects DOS drive letter for <code>mformat</code> (for example <code>a:</code> or
<code>b:</code>). The colon may be omitted. The default is derived from the
minor device number. If the drive letter cannot be guessed, and is not
given on the command line, <code>mformat</code> is skipped.
</p>
</dd>
<dt> <code>-v <var>verbosity-level</var></code></dt>
<dt> <code>--verbosity <var>verbosity-level</var></code></dt>
<dd><p>Sets the verbosity level. 1 prints a dot for each formatted track. 2
prints a changing sign for each formatted track (- for formatting the
first head, = for formatting the second head, x for verifying the
first head, and + for verifying the second head). 3 prints a complete
line listing head and track. 6 and 9 print debugging information.
</p>
</dd>
<dt> <code>--superverify</code></dt>
<dd><p>Verifies the disk by first reading the track, than writing a pattern of
U’s, and then reading it again. This is useful as some errors only show
up after the disk has once been written. However, this is also slower.
</p>
</dd>
<dt> <code>-B</code></dt>
<dt> <code>--dosverify</code></dt>
<dd><p>Verifies the disk using the <code>mbadblocks</code> program.
<code>mbadblocks</code> marks the bad sectors as bad in the FAT. The
advantage of this is that disks which are only partially bad can still
be used for MS-DOS filesystems.
</p>
</dd>
<dt> <code>-V</code></dt>
<dt> <code>--verify_later</code></dt>
<dd><p>Verifies the whole disk at the end of the formatting process instead
of at each track. Verifying the disk at each track has the advantage
of detecting errors early on.
</p>
</dd>
<dt> <code>-f</code></dt>
<dt> <code>--noverify</code></dt>
<dd><p>Skips the verification altogether.
</p>
</dd>
<dt> <code>--print-drive-deviation</code></dt>
<dd><p>Do not format, but print the drive deviation. If file
‘<tt>/etc/driveprm</tt>’ exists and provides a deviation for the drive,
nothing is printed and the disk is not formatted.
</p>
</dd>
</dl>
<hr size="6">
<a name="Advanced-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Common-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Sector-skewing-options" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Advanced-Options"></a>
<h3 class="subsection">10.10.2 Advanced Options</h3>
<p>Usually, superformat uses sensible default values for these options,
which you normally don’t need to override. They are intended for expert
users. Most of them should only be needed in cases where the hardware
or superformat itself has bugs.
</p>
<dl compact="compact">
<dt> <code>-b <var>begin-track</var></code></dt>
<dt> <code>--begin_track <var>begin-track</var></code></dt>
<dd><p>Describes the track where to begin formatting. This is useful if the
previous formatting failed halfway through. The default is 0.
</p>
</dd>
<dt> <code>-e <var>end-track</var></code></dt>
<dt> <code>--end_track <var>end-track</var></code></dt>
<dd><p>Describes where to stop formatting. <var>end_track</var> is the last track to
be formatted plus one. This is mainly useful for testing purposes. By
default, this is the same as the total number of tracks. When the
formatting stops, the final skew is displayed (to be used as absolute
skew when you’ll continue).
</p>
</dd>
<dt> <code>-S <var>sizecode</var></code></dt>
<dt> <code>--sizecode <var>sizecode</var></code></dt>
<dd><p>Set the sector size to be used. The sector size is 128 * (2 ^
<var>sizecode</var>). Sector sizes below 512 bytes are not supported, thus
sizecode must be at least 2. By default 512 is assumed, unless you ask
for more sectors than would fit with 512 bytes.
</p>
</dd>
<dt> <code>--stretch <var>stretch</var></code></dt>
<dd><p>Set the stretch factor. The stretch factor describes how many physical
tracks to skip to get to the next logical track (2 ^ <var>stretch</var>). On
double density 5 1/4 disks, the tracks are further apart from each
other.
</p>
</dd>
<dt> <code>-G <var>fmt-gap</var></code></dt>
<dt> <code>--format_gap <var>fmt-gap</var></code></dt>
<dd><p>Set the formatting gap. The formatting gap tells how far the sectors
are away from each other. By default, this is chosen so as to evenly
distribute the sectors along the track.
</p>
</dd>
<dt> <code>-F <var>final-gap</var></code></dt>
<dt> <code>--final_gap <var>final-gap</var></code></dt>
<dd><p>Set the formatting gap to be used after the last sector.
</p>
</dd>
<dt> <code>-i <var>interleave</var></code></dt>
<dt> <code>--interleave <var>interleave</var></code></dt>
<dd><p>Set the sector interleave factor.
</p>
</dd>
<dt> <code>-c <var>chunksize</var></code></dt>
<dt> <code>--chunksize <var>chunksize</var></code></dt>
<dd><p>Set the size of the chunks. The chunks are small auxiliary sectors
used during formatting. They are used to handle heterogeneous sector
sizes (i.e. not all sectors have the same size) and negative
formatting gaps.
</p>
</dd>
<dt> <code>--biggest-last</code></dt>
<dd><p>For MSS formats, make sure that the biggest sector is last on the track.
This makes the format more reliable on drives which are out of spec.
</p>
</dd>
<dt> <code>--zero-based</code></dt>
<dd><p>Formats the disk with sector numbers starting at 0, rather than
1. Certain CP/M boxes or Music synthesizers use this format. Those disks
can currently not be read/written to by the standard Linux read/write
API; you have to use fdrawcmd to access them. As disk verifying is done
by this API, verifying is automatically switched off when formatting
zero-based.
</p>
</dd>
</dl>
<hr size="6">
<a name="Sector-skewing-options"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Advanced-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Examples" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Sector-skewing-options-1"></a>
<h3 class="subsection">10.10.3 Sector skewing options</h3>
<p>In order to maximize the user data transfer rate, the sectors are
arranged in such a way that sector 1 of the new track/head comes under
the head at the very moment when the drive is ready to read from that
track, after having read the previous track. Thus the first sector of
the second track is not necessarily near the first sector of the first
track. The skew value describes for each track how far sector number
1 is away from the index mark. This skew value changes for each head
and track. The amount of this change depends on how fast the disk
spins, and on how much time is needed to change the head or the track.
</p>
<dl compact="compact">
<dt> <code>--absolute_skew <var>absolute-skew</var></code></dt>
<dd>
<p>Set the absolute skew. This skew value is used for the first formatted
track. It is expressed in raw bytes.
</p>
</dd>
<dt> <code>--head_skew <var>head-skew</var></code></dt>
<dd>
<p>Set the head skew. This is the skew added for passing from head 0 to
head 1. It is expressed in raw bytes.
</p>
</dd>
<dt> <code>--track_skew <var>track-skew</var></code></dt>
<dd>
<p>Set the track skew. This is the skew added for seeking to the next
track. It is expressed in raw bytes.
</p>
</dd>
</dl>
<p>Example: (absolute skew=3, head skew=1, track skew=2)
</p>
<table><tr><td> </td><td><pre class="example">track 0 head 0: 4,5,6,1,2,3 (skew=3)
track 0 head 1: 3,4,5,6,1,2 (skew=4)
track 1 head 0: 1,2,3,4,5,6 (skew=0)
track 1 head 1: 6,1,2,3,4,5 (skew=1)
track 2 head 0: 4,5,6,1,2,3 (skew=3)
track 2 head 1: 3,4,5,6,1,2 (skew=4)
</pre></td></tr></table>
<p>N.B. For simplicity’s sake, this example expresses skews in units of
sectors. In reality, superformat expects the skews to be expressed in
raw bytes.
</p>
<hr size="6">
<a name="Examples"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Sector-skewing-options" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Troubleshooting" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Examples-1"></a>
<h3 class="subsection">10.10.4 Examples</h3>
<p>In all the examples of this section, we assume that drive 0 is a 3 1/2
and drive 1 a 5 1/4.
</p>
<p>The following example shows how to format a 1440K disk in drive 0:
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd0 hd
</pre></td></tr></table>
<p>The following example shows how to format a 1200K disk in drive 1:
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd1 hd
</pre></td></tr></table>
<p>The following example shows how to format a 1440K disk in drive 1:
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd1 hd sect=18
</pre></td></tr></table>
<p>The following example shows how to format a 720K disk in drive 0:
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd0 dd
</pre></td></tr></table>
<p>The following example shows how to format a 1743K disk in drive 0 (83
cylinders times 21 sectors):
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd0 sect=21 cyl=83
</pre></td></tr></table>
<p>The following example shows how to format a 1992K disk in drive 0 (83
cylinders times 2 heads times 12 KB per track)
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd0 tracksize=12KB cyl=83 mss
</pre></td></tr></table>
<p>The following example shows how to format a 1840K disk in drive 0. It
will have 5 2048-byte sectors, one 1024-byte sector, and one 512-byte
sector per track:
</p><table><tr><td> </td><td><pre class="example">superformat /dev/fd0 tracksize=23b mss 2m ssize=2KB
</pre></td></tr></table>
<p>All these formats can be autodetected by mtools, using the floppy
driver’s default settings.
</p>
<hr size="6">
<a name="Troubleshooting"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Superformat-bugs" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Troubleshooting-1"></a>
<h3 class="subsection">10.10.5 Troubleshooting</h3>
<dl compact="compact">
<dt> <code>FDC busy, sleeping for a second</code></dt>
<dd><p>When another program accesses a disk drive on the same controller as the
one being formatted, <code>superformat</code> has to wait until the other
access is finished. If this happens, check whether any other program
accesses a drive (or whether a drive is mounted), kill that program (or
unmount the drive), and the format should proceed normally.
</p>
</dd>
<dt> <code>I/O errors during verification</code></dt>
<dd><p>Your drive may be too far out of tolerance, and you may thus need to
supply a margin parameter. Run <code>floppymeter</code> (see section <a href="#floppymeter">floppymeter</a>)
to find out an appropriate value for this parameter, and add the
suggested <code>margin</code> parameter to the command line
</p>
</dd>
</dl>
<hr size="6">
<a name="Superformat-bugs"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Troubleshooting" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#xdfcopy" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#superformat" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Bugs-1"></a>
<h3 class="subsection">10.10.6 Bugs</h3>
<p>Opening up new window while <code>superformat</code> is running produces
overrun errors. These errors are benign, as the failed operation is
automatically retried until it succeeds.
</p><hr size="6">
<a name="xdfcopy"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Superformat-bugs" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-6" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Commands" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="xdfcopy-1"></a>
<h2 class="section">10.11 xdfcopy</h2>
<a name="index-xdfcopy"></a>
<a name="index-XDF-_0028formatting-and-copying-disks_0029"></a>
<a name="index-formatting-XDF-disks"></a>
<table><tr><td> </td><td><pre class="example"><code>xdfcopy</code> [<code>-</code><var>format-id</var>] [<code>-d</code>] [<code>-n</code>] [<code>-h</code> <var>head-skew</var>] [<code>-t</code> <var>cylinder-skew</var>] [<code>-T</code>
<var>end-cylinder</var>] [<var>source</var>] <var>target</var>
</pre></td></tr></table>
<p><code>Xdfcopy</code> is a utility to copy and format XDF disks. XDF (eXtended
Density Format) is a format used by OS/2 which can hold 1840KB of data
(on a 3 1/2 high density disk). Its advantage over 2m formats is that it
is faster: 38KB/s. Because of this fast speed, I extended the XDF
standard to higher capacities (1992KB) with a transfer rate of 45KB/s. I
called the new formats XXDF.
</p>
<p>This program works best with kernels newer than 2.0.0.
</p>
<p>If both source and target are given, xdfcopy copies the disk image from
file to floppy disk or vice-versa. When copying to a floppy disk, the
disk is first formatted, unless the <code>-n</code> option is given.
</p>
<p>If no source is given, the target is only formatted. In this case, the
target must be a floppy drive.
</p>
<hr size="6">
<a name="Options-6"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#xdfcopy" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Selecting-a-format" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#xdfcopy" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.11.1 Options</h3>
<hr size="6">
<a name="Selecting-a-format"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-6" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Misc-options-1" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Options-6" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h4 class="subsubsection">10.11.1.1 Selecting a format</h4>
<p>Formats are selected by the format_id. The following formats are understood:
</p>
<dl compact="compact">
<dt> <code>0</code></dt>
<dd><p>Formats a 5 1/4 XDF disk (1520 KB, 45.6 KB/s).
</p>
</dd>
<dt> <code>1</code></dt>
<dd><p>Formats a 3 1/2 high density XDF disk (1840 KB, 38.3 KB/s).
</p>
</dd>
<dt> <code>2</code></dt>
<dd><p>Formats a 3 1/2 extra density XDF disk (3680 KB, 102 KB/s)
</p>
</dd>
<dt> <code>3</code></dt>
<dd><p>Formats a 3 1/2 high density XXDF disk (1920 KB, 45 KB/s)
</p>
</dd>
<dt> <code>4</code></dt>
<dd><p>Formats a 3 1/2 extra density XXDF disk (3840 KB, 90 KB/s)
</p></dd>
</dl>
<hr size="6">
<a name="Misc-options-1"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Selecting-a-format" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Options-for-power-users" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#xdfcopy" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.11.2 Misc options</h3>
<dl compact="compact">
<dt> <code>-D <var>dosdrive</var></code></dt>
<dd><p>Describes the DOS drive letter for mformat. If this option is given, an
MS-DOS filesystem is automatically installed on the disk after the
low-level format is complete. In order for this to work, the drive has
to be configured to accept the 23x2x80 geometry in your /etc/mtools or
your ~/.mtoolsrc file. Moreover, this only works with a version of
mtools that is more recent than 3.0.
</p>
<p>Example of a working mtoolsrc line:
</p><table><tr><td> </td><td><pre class="example">A /dev/fd0 0 0 0 0
</pre></td></tr></table>
<p>Examples of a non-working mtoolsrc line:
</p><table><tr><td> </td><td><pre class="example">A /dev/fd0 12 80 2 18
</pre></td></tr></table>
</dd>
<dt> <code>-n</code></dt>
<dd><p>Don’t format the disk before copying the disk image to the disk.
</p>
</dd>
</dl>
<hr size="6">
<a name="Options-for-power-users"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Misc-options-1" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#xdfcopy" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">10.11.3 Options for power users</h3>
<dl compact="compact">
<dt> <code>-t <var>cylinder skew</var></code></dt>
<dd><p>Uses a different track skew than the default (14). For more details on
skews, see section <a href="#superformat">superformat</a>. In this version of xdfcopy, the <code>-t</code>
parameter is ignored.
</p>
</dd>
<dt> <code>-h <var>head skew</var></code></dt>
<dd><p>Uses a different head skew than the default (0) In this version, this
parameter is ignored
</p>
</dd>
<dt> <code>-d</code></dt>
<dd><p>Debugging. For each read or write operation, the time it took to
complete the operation is printed (in milliseconds). This can be used
to optimize the skews.
</p>
</dd>
<dt> <code>-T <var>end-cylinders</var></code></dt>
<dd><p>Tells how many cylinders to format. With the XXDF formats, it is
actually possible to format up to 83 cylinders, yielding a format of
up to 1992KB on a 3 1/2 high density disk.
</p>
</dd>
</dl>
<hr size="6">
<a name="Compile_002dtime-configuration"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Options-for-power-users" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Acronyms" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Acronyms" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Compile_002dtime-configuration-via-GNU-autoconf"></a>
<h1 class="chapter">11. Compile-time configuration via GNU autoconf</h1>
<a name="index-configure-options"></a>
<a name="index-compile_002dtime-configuration"></a>
<p>Before it can be compiled, fdutils must be configured using the GNU
autoconf script <code>./configure</code>. In most circumstances, running
<code>./configure</code> without any parameters is enough. However, you may
customize fdutils using various options to <code>./configure</code>. The
following options are supported:
</p><dl compact="compact">
<dt> <code>--prefix <var>directory</var></code></dt>
<dd><p>Prefix used for any directories used by fdutils. By default, this is
‘<tt>/usr/local</tt>’. Fdutils is installed in ‘<tt>$prefix/lib</tt>’, looks for
its system wide configuration file in ‘<tt>$prefix/etc</tt>’. Man pages are
installed in ‘<tt>$prefix/man</tt>’, info pages in ‘<tt>$prefix/info</tt>’ etc.
</p>
</dd>
<dt> <code>--sysconfdir <var>directory</var></code></dt>
<dd><p>Directory containing the system-wide configuration files such as
‘<tt>mediaprm</tt>’ and ‘<tt>driveprm</tt>’. By default, this is derived from
<code>prefix</code> (see above). N.B. For backward compatibility reasons, the
old-style floppy parameter file ‘<tt>fdprm</tt>’ is always in ‘<tt>/etc</tt>’,
regardless of the setting for <code>sysconfdir</code>
</p>
</dd>
<dt> <code>--enable-fdmount-floppy-only</code></dt>
<dd><p>Allows usage of the <code>fdmount</code> program only to members of the group
<code>floppy</code>
</p>
</dd>
</dl>
<p>In addition to the above-listed options, the other standard GNU autoconf
options apply. Type <code>./configure --help</code> to get a complete list of
these.
</p>
<hr size="6">
<a name="Acronyms"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Interesting-formats" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Compile_002dtime-configuration" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Interesting-formats" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Acronyms-1"></a>
<h1 class="appendix">A. Acronyms</h1>
<dl compact="compact">
<dt> <em>SD (Single density)</em></dt>
<dd><p>Single density disks use a data transfer rate of 125 kb/s and are no
longer in use today, because of their low capacity.
</p>
</dd>
<dt> <em>DD (Double density)</em></dt>
<dd><p>Double density disks normally hold 360KB (5 1/4) or 720KB (3 1/2) of
data per disk.
</p>
<p>Double density disks have only a hole on one side (for write
protection).
</p>
<p>Double density uses a data transfer rate of 250 kb/s or 300 kb/s
depending on the drive type: 5 1/4 high density drives use 300 kb/s when
writing to a double density diskm 250 kb/s is used in all other
circumstances. The reason why double density disks in high density
drives need a higher data transfer rate is because these drives rotate
faster (360 rpm instead of 300 rpm).
</p>
</dd>
<dt> <em>HD (High density)</em></dt>
<dd><p>High density disks normally hold 1200KB (5 1/4) or 1440KB (3 1/2) of
data per disk. High density 3 1/2 disks are marked as such by the
presence of a second square hole, just opposed to the write protect
hole. 3 1/2 high density disks are the most commonly used type of disks
today.
</p>
</dd>
<dt> <em>QD (Quad density)</em></dt>
<dd><p>Quad density is a hybrid between double and high density. It only
exists for 5 1/4 disks, and holds 720KB of data. It can be obtained by
formatting DD disks in a HD drive. QD uses double density for the
density along the tracks (data transfer rate), and high density for the
density perpendicular to the tracks (spacing between tracks, and thus
number of tracks). This came to existence because these two aspects are
limited by two different factors: the density along the track is limited
by the quality of the media, whereas the density perpendicular to the
tracks is mainly limited by the drive mechanism (this density, expressed
in bits per inch comes nowhere near the limits of the media, even with
HD). Thus quad density is an easy way to double the capacity of an
ordinary double density disk, just by formatting it in a HD drive.
</p>
</dd>
<dt> <em>ED (Extra density)</em></dt>
<dd><p>Extra density refers to a disk density that can normally hold 2880KB of
data per disk. Extra density disks only exist as 3 1/2 disks. ED disks
are marked with a second squared hole opposed to the square hole, which
is a little bit closer to the middle of the edge than that of HD disks.
This format never really took off, because it only was released when
storage media with a much higher capacity, such as CD-Roms, tapes and
Zip disks became popular.
</p>
<p>ED uses a data transfer rate of 250 kb/s.
</p>
</dd>
<dt> <em>DS (Double sided)</em></dt>
<dd><p>Self explanatory.
</p>
</dd>
<dt> <em>SS (Single sided)</em></dt>
<dd><p>Self explanatory
</p>
</dd>
<dt> <em>MSS (Mixed size sectors)</em></dt>
<dd><p>Mixed sector size formats are formats which use sectors of several
different sizes on a single track. See section <a href="#Mixed-size-sectors">Mixed sector size (MSS) formats</a>, for
details.
</p>
</dd>
<dt> <em>2M (2 Megabytes)</em></dt>
<dd><p>2M is a high capacity format developed by Ciriaco de Celis. The basic
principle is the same as MSS: mix sectors of several sizes on a same
track, in order to minimize both slack space and header overhead. 2M is
different from MSS in that it uses a normal 18 sector format on its
first track. See section <a href="#g_t2M">2M formats</a>, for details.
</p>
</dd>
<dt> <em>rpm (Rotations per minute)</em></dt>
<dd><p>All 3 1/2 drives and 5 1/4 DD drives run at 300 rotations per minute,
whereas 5 1/4 HD drives run at 360 rotations per minute.
</p>
</dd>
<dt> <em>rps (Rotations per second)</em></dt>
<dd><p>See above.
</p>
</dd>
<dt> <em>tpi (tracks per inch)</em></dt>
<dd><p>Expresses how close cylinders are to each other. Usually, 5 1/4 double
density disks have 48 tpi, whereas 5 1/4 high density and quad density
disks have 96 tpi. 3 1/2 disks use 135.5 tpi.
</p>
</dd>
<dt> <em>XDF (eXtended Density Format)</em></dt>
<dd><p>XDF is a disk format used for the OS/2 distribution disks. Its
operating systems are similar to 2M and MSS disk, but it is faster due
to a more creative arrangement of sectors. See section <a href="#XDF">XDF formats</a>, for details.
</p>
</dd>
<dt> <em>XXDF (eXtended XDF)</em></dt>
<dd><p>XXDF is an Linux enhancement for XDF. It can store 1992 KB of data on an
ED disk instead of just 1840 available with the regular XDF
format. See section <a href="#XXDF">XXDF formats</a>, for details.
</p>
</dd>
<dt> <em>MFM (Multi Frequency Modulation)</em></dt>
<dd><p>MFM is a low level encoding of disk data. It is used for DD, HD and ED
disks, i.e. virtually all disks that are available today. The PC
hardware can only read MFM and FM disks. The doc at:
</p><table><tr><td> </td><td><pre class="example">http://www.moria.de/~michael/floppy/floppy.ps
</pre></td></tr></table>
<p>contains more detailed information about FM and MFM encoding.
</p>
</dd>
<dt> <em>FM (Frequency modulation)</em></dt>
<dd><p>FM is a low level encoding of disk data. It was used for SD disks, and
is now considered to be obsolete. The doc at:
</p><table><tr><td> </td><td><pre class="example">http://www.moria.de/~michael/floppy/floppy.ps
</pre></td></tr></table>
<p>contains more detailed information about FM and MFM encoding.
</p>
</dd>
<dt> <em>kb (kilobit)</em></dt>
<dd><p>1000 bits
</p>
</dd>
<dt> <em>kb/s (kilobit per second)</em></dt>
<dd><p>We express the raw data throughput to and from the disk in this unit,
which is also used in the documentation of the floppy disk controller.
</p>
</dd>
<dt> <em>B</em></dt>
<dd><p>Byte. A byte is 8 bits, and is the smallest individually addressable
unit of data.
</p>
</dd>
<dt> <em>KB (K-Byte)</em></dt>
<dd><p>1024 bytes. Sometimes also noted K.
</p>
</dd>
<dt> <em>KB/s (K-Byte)</em></dt>
<dd><p>We express the usable data throughput to and from the disk in KB/s.
Roughly, 1 KB/s = 8 kb/s. However, the usable data throughput is always
lower than the raw throughput due to header overhead, interleaving and
seek overhead.
</p>
</dd>
<dt> <em>MB (Megabyte)</em></dt>
<dd><p>Initially, 1 megabyte was 1024*1024 bytes (i.e. 1048576 bytes). However,
when talking of floppy disk capacity, we understand it as 1000KB, that
is 1000*1024 bytes, i.e. 1024000 bytes.
</p>
</dd>
<dt> <em>MB/s (million bytes per second)</em></dt>
<dd><p>We express (high) raw data throughput to and from the disk in kb/s,
which is also used in the documentation of the floppy disk controller.
</p>
</dd>
</dl>
<hr size="6">
<a name="Interesting-formats"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Acronyms" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Acronyms" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Interesting-formats-1"></a>
<h1 class="appendix">B. Interesting formats</h1>
<p>This table lists a few interesting formats. Some of them are not
included in the table of predefined formats due to lack of space. You
may use these by setting the geometry of the variable geometry device
using <code>setfdprm</code>. Most of the entries in the following table do
not describe a single format, but rather a family of formats which share
a common characteristic. For this reason, no precise parameters are
included.
</p>
<dl compact="compact">
<dt> <strong>80/90/160/180 KB 5.25"</strong></dt>
<dd><p>Original IBM PC, CP/M, Apple II, TRS-80, etc. Single density, FM
(not MFM), 40-track. Some systems also used "hard" sectoring, with
an index hole for each sector. These are probably readable on
standard FDCs if anyone cares to go to the effort. 160KB/180KB
formats were double-sided.
</p>
</dd>
<dt> <strong>320 KB 5.25"</strong></dt>
<dd><p>CP/M, Zenith Z-100, some forms of MS-DOS. 8-sector DD 40-track.
</p>
</dd>
<dt> <strong>400 KB 5.25"</strong></dt>
<dd><p>AT&T 7300/3B1: cpio format, 10 sectors, DS, 40 tracks.
</p>
<p>PC: MS-DOS, 10 sectors, DS, 40 tracks; formatted by various
utilities; readable by some versions of MS-DOS.
</p>
</dd>
<dt> <strong><720KB 3.5" formats</strong></dt>
<dd>
<ul>
<li>
Some dedicated word-processing systems use lower than normal capacity
floppies (some may be 40-track either via "stretching" or by having odd
drives; others may be single-sided or use fewer sectors per track, or
use "single density" or FM).
</li><li>
Atari ST 360 KB floppies: these are 9 sector 250kb/s 80-track
single-sided, using a slightly incompatible MS-DOS-like FAT. Very
common distribution format for Atari ST software.
</li><li>
Mac 400 KB: single-sided 80-tracks, Mac MFS or HFS file system, Group
Code Recording, zone bit recording, variable RPMs from 300 to 600 in 5
zones, and auto-eject mechanism. Impossible to read on normal PC drives
without some form of hardware assistance.
</li></ul>
</dd>
<dt> <strong>720 KB 3.5"</strong></dt>
<dd><ul>
<li>
PC: 9 sectors, DS, 80-track; very common.
</li><li>
Atari ST: same as Atari ST 360 KB except double-sided.
</li></ul>
</dd>
<dt> <strong>720 KB 5.25"</strong></dt>
<dd><p>"Quad Density": 9 sectors, DS, 80-track; name is rather misleading,
as it is double density 80 track.
</p>
</dd>
<dt> <strong>800 KB</strong></dt>
<dd><ul>
<li>
PC: 10 sectors, DS, 80 tracks; readable by MS-DOS; formatted by
many PC utilities; "almost standard".
</li><li>
Atari ST "Twister": 10 sectors, DS, 80-track; slightly incompatible
MS-DOS-like FAT; sector skewing (originated by David Small).
</li><li>
Mac 800 KB: same as Mac 400KB except double-sided.
</li></ul>
</dd>
<dt> <strong>880 KB</strong></dt>
<dd>
<ul>
<li>
PC: 11 sectors, DS, 80 tracks, interleaved(?). Formatted by various PD
utilities such as fdformat.
</li><li>
Amiga: uses "single-sector" tracks the size of 11 sectors; DS; 80
tracks. Written by a custom chip rather than a standard FDC; it is very
difficult to access these using a standard FDC, though it might be
possible in theory, using some trickery.
</li></ul>
</dd>
<dt> <strong>880 KB - 960 KB</strong></dt>
<dd><p>Atari ST: 11/12 sectors, DS, 80-track, interleaved(?); not very
reliable, formatted by various PD utilities.
</p>
</dd>
<dt> <strong>960 KB</strong></dt>
<dd><p>2m and Linux; 6 sectors interleaved(?), DS, 250kb/s?, 80-track, 1K
sectors(?).
</p>
</dd>
<dt> <strong>1001 KB</strong></dt>
<dd><p>"Japanese" format: 300kb/s, 77 tracks, HD drives/disks.
</p>
</dd>
<dt> <strong>1040 KB</strong></dt>
<dd><p>2m and Linux only; 13 sectors, DS, 300kb/s, 80-track.
</p>
</dd>
<dt> <strong>1120 KB</strong></dt>
<dd><p>2m and Linux only; 14 sectors interleaved, DS, 300kb/s, 80-track. Can
only be formatted on Linux; even on Linux, it is difficult to format
these on an ED drive.
</p>
</dd>
<dt> <strong>1200 KB 5.25" HD</strong></dt>
<dd><p>"AT": 360 rpm 500kb/s 80-track 15-sector MS-DOS.
</p>
</dd>
<dt> <strong>1360 KB 5.25" HD</strong></dt>
<dd><p>Highest "fdformat" noninterleaved 5.25" format. 360 rpm 500kb/s
17-sector MS-DOS.
</p>
</dd>
<dt> <strong>1440 KB 5.25" HD</strong></dt>
<dd><p>Interleaved 18-sector 360 rpm 500kb/s; highest "fdformat" 5.25" format.
18-sector MS-DOS.
</p>
<p>2m and Linux only: noninterleaved 1024-byte sector 18-sector-equivalent
360 rpm 500kb/s; 18-sector MS-DOS. A good substitute for 1.44MB 3.5"
floppies.
</p>
</dd>
<dt> <strong>1600 KB 5.25" HD</strong></dt>
<dd><p>2m and Linux only: interleaved? 500kb/s 80-track; 1 8KB sector, 1
2KB sector?
</p>
</dd>
<dt> <strong>1760 KB 3.5" HD</strong></dt>
<dd><p>2m and Linux only: 11 1KB sectors; 500kb/s, noninterleaved?
</p>
</dd>
<dt> <strong>1840 KB 3.5" HD</strong></dt>
<dd><p>2m and Linux only: 23-sector equivalent; 500kb/s, noninterleaved.
</p>
</dd>
<dt> <strong>1920 KB 3.5" HD</strong></dt>
<dd><p>2m and Linux only: 3 4KB sectors; 500kb/s, interleaved?
</p>
<p>2m and Linux only: 1 8KB sector, 1 4KB sector; 500kb/s, interleaved?
</p>
</dd>
<dt> <strong>2880 KB 3.5" ED</strong></dt>
<dd><p>"Extra Density" or "Extra High Density". 1 Mb/s, 36-sector, DS, 80-
track.
</p>
</dd>
<dt> <strong>3200 KB 3.5" ED</strong></dt>
<dd><p>Non-interleaved, 80 track, 40-sector 1 Mb/s. Highest capacity that
MS-DOS can read directly(?)
</p>
</dd>
<dt> <strong>3520 KB 3.5" ED</strong></dt>
<dd><p>2m and Linux only: 1 16KB sector, 1 4KB sector, 1 2KB sector?
Non-interleaved, 80 track 1 Mb/s. Highest capacity that 2m can format.
</p>
</dd>
<dt> <strong>3840 KB 3.5" ED</strong></dt>
<dd><p>2m and Linux only: 1 16KB sector, 1 8KB sector (or is it 3 8KB
sectors?). Non-interleaved, 80 track 1 Mb/s. Formatted only by Linux,
but readable and writeable by 2m.
</p></dd>
</dl>
<p>Linux is able to read almost any MFM disk. These include many CP/M disks
and also Commodore 1581 disks. Please get Michael Haardt’s documentation
on floppy drives for a detailed description of those formats. This can
be ftp’ed from the following location:
</p><table><tr><td> </td><td><pre class="example">http://www.moria.de/~michael/floppy/
</pre></td></tr></table>
<p>Commodore 1581 disks are not yet described in this documentation. Use
<code>setfdprm /dev/fd0 DD DS sect=10 cyl=80 swapsides</code>. If you want to
use these disks often, redefine one of the "default" formats to be
Commodore 1581, and then put it into the autodetection list for the
drive. The following example describes how to redefine format number 31
(minor device number 124) to be Commodore 1581:
</p><table><tr><td> </td><td><pre class="example">mknod /dev/fd0cbm1581 b 2 124
setfdprm /dev/fd0cbm1581 DD DS sect=10 cyl=80 swapsides
floppycontrol --autodetect /dev/fd0 31,7,8,4,25,28,22,21
</pre></td></tr></table>
<p>The two latter commands have to be issued after each reboot, so I
suggest you put them into your ‘<tt>/etc/rc</tt>’ files if you use many
Commodore 1581 disks.
</p>
<hr size="6">
<a name="Command-Index"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Interesting-formats" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Concept-Index" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Interesting-formats" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Concept-Index" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Command-Index-1"></a>
<h1 class="unnumbered">Command Index</h1>
<table><tr><th valign="top">Jump to: </th><td><a href="#Command-Index-1_pg_letter-D" class="summary-letter"><b>D</b></a>
<a href="#Command-Index-1_pg_letter-F" class="summary-letter"><b>F</b></a>
<a href="#Command-Index-1_pg_letter-G" class="summary-letter"><b>G</b></a>
<a href="#Command-Index-1_pg_letter-M" class="summary-letter"><b>M</b></a>
<a href="#Command-Index-1_pg_letter-S" class="summary-letter"><b>S</b></a>
<a href="#Command-Index-1_pg_letter-X" class="summary-letter"><b>X</b></a>
</td></tr></table>
<table border="0" class="index-pg">
<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Command-Index-1_pg_letter-D">D</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-diskd"><code>diskd</code></a></td><td valign="top"><a href="#diskd">10.1 diskd</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-diskseekd"><code>diskseekd</code></a></td><td valign="top"><a href="#diskseekd">10.2 diskseekd</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Command-Index-1_pg_letter-F">F</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-fdlist"><code>fdlist</code></a></td><td valign="top"><a href="#fdmount">10.3 fdmount</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-fdmount"><code>fdmount</code></a></td><td valign="top"><a href="#fdmount">10.3 fdmount</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-fdmountd"><code>fdmountd</code></a></td><td valign="top"><a href="#fdmount">10.3 fdmount</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-fdrawcmd"><code>fdrawcmd</code></a></td><td valign="top"><a href="#fdrawcmd">10.4 fdrawcmd</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-fdumount"><code>fdumount</code></a></td><td valign="top"><a href="#fdmount">10.3 fdmount</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-floppycontrol"><code>floppycontrol</code></a></td><td valign="top"><a href="#floppycontrol">10.5 floppycontrol</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-floppymeter"><code>floppymeter</code></a></td><td valign="top"><a href="#floppymeter">10.6 floppymeter</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Command-Index-1_pg_letter-G">G</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-getfdprm"><code>getfdprm</code></a></td><td valign="top"><a href="#getfdprm">10.7 getfdprm</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Command-Index-1_pg_letter-M">M</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-MAKEFLOPPIES-_0028making-floppy-devices_0029"><code>MAKEFLOPPIES (making floppy devices)</code></a></td><td valign="top"><a href="#Device-numbers">3. Device numbers</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Command-Index-1_pg_letter-S">S</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-setfdprm"><code>setfdprm</code></a></td><td valign="top"><a href="#setfdprm">10.9 setfdprm</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-setfdprm-_0028Adding-formats_0029"><code>setfdprm (Adding formats)</code></a></td><td valign="top"><a href="#Adding-new-formats">3.4 Adding new formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-superformat"><code>superformat</code></a></td><td valign="top"><a href="#superformat">10.10 superformat</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Command-Index-1_pg_letter-X">X</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-xdfcopy"><code>xdfcopy</code></a></td><td valign="top"><a href="#xdfcopy">10.11 xdfcopy</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
</table>
<table><tr><th valign="top">Jump to: </th><td><a href="#Command-Index-1_pg_letter-D" class="summary-letter"><b>D</b></a>
<a href="#Command-Index-1_pg_letter-F" class="summary-letter"><b>F</b></a>
<a href="#Command-Index-1_pg_letter-G" class="summary-letter"><b>G</b></a>
<a href="#Command-Index-1_pg_letter-M" class="summary-letter"><b>M</b></a>
<a href="#Command-Index-1_pg_letter-S" class="summary-letter"><b>S</b></a>
<a href="#Command-Index-1_pg_letter-X" class="summary-letter"><b>X</b></a>
</td></tr></table>
<hr size="6">
<a name="Concept-Index"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Command-Index" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[ > ]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[ >> ]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Concept-index"></a>
<h1 class="unnumbered">Concept index</h1>
<table><tr><th valign="top">Jump to: </th><td><a href="#Concept-index_cp_symbol-1" class="summary-letter"><b>2</b></a>
<a href="#Concept-index_cp_symbol-2" class="summary-letter"><b>8</b></a>
<br>
<a href="#Concept-index_cp_letter-A" class="summary-letter"><b>A</b></a>
<a href="#Concept-index_cp_letter-B" class="summary-letter"><b>B</b></a>
<a href="#Concept-index_cp_letter-C" class="summary-letter"><b>C</b></a>
<a href="#Concept-index_cp_letter-D" class="summary-letter"><b>D</b></a>
<a href="#Concept-index_cp_letter-E" class="summary-letter"><b>E</b></a>
<a href="#Concept-index_cp_letter-F" class="summary-letter"><b>F</b></a>
<a href="#Concept-index_cp_letter-G" class="summary-letter"><b>G</b></a>
<a href="#Concept-index_cp_letter-H" class="summary-letter"><b>H</b></a>
<a href="#Concept-index_cp_letter-I" class="summary-letter"><b>I</b></a>
<a href="#Concept-index_cp_letter-K" class="summary-letter"><b>K</b></a>
<a href="#Concept-index_cp_letter-L" class="summary-letter"><b>L</b></a>
<a href="#Concept-index_cp_letter-M" class="summary-letter"><b>M</b></a>
<a href="#Concept-index_cp_letter-N" class="summary-letter"><b>N</b></a>
<a href="#Concept-index_cp_letter-O" class="summary-letter"><b>O</b></a>
<a href="#Concept-index_cp_letter-P" class="summary-letter"><b>P</b></a>
<a href="#Concept-index_cp_letter-R" class="summary-letter"><b>R</b></a>
<a href="#Concept-index_cp_letter-S" class="summary-letter"><b>S</b></a>
<a href="#Concept-index_cp_letter-T" class="summary-letter"><b>T</b></a>
<a href="#Concept-index_cp_letter-V" class="summary-letter"><b>V</b></a>
<a href="#Concept-index_cp_letter-X" class="summary-letter"><b>X</b></a>
</td></tr></table>
<table border="0" class="index-cp">
<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_symbol-1">2</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-2M">2M</a></td><td valign="top"><a href="#g_t2M">6.8 2M formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-2M-_0028mixed-sector-sizes_0029">2M (mixed sector sizes)</a></td><td valign="top"><a href="#Mixed-size-sectors">6.6 Mixed sector size (MSS) formats</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_symbol-2">8</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-83-cylinders">83 cylinders</a></td><td valign="top"><a href="#More-cylinders">6.4 More Cylinders</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-A">A</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Adding-formats">Adding formats</a></td><td valign="top"><a href="#Adding-new-formats">3.4 Adding new formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-ALPHA-patches">ALPHA patches</a></td><td valign="top"><a href="#Location">1. Where to get fdutils and its documentation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-autodetection">autodetection</a></td><td valign="top"><a href="#Autodetection">7. How autodetection works</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-automounting">automounting</a></td><td valign="top"><a href="#fdmount">10.3 fdmount</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Available-Formats">Available Formats</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-B">B</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-bugs">bugs</a></td><td valign="top"><a href="#Location">1. Where to get fdutils and its documentation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Builtin-Formats">Builtin Formats</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-C">C</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-CMOS-type">CMOS type</a></td><td valign="top"><a href="#Drive-type-configuration">10.5.4 Drive type configuration and autodetection</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Command-list">Command list</a></td><td valign="top"><a href="#Commands">10. Command list</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-compile_002dtime-configuration">compile-time configuration</a></td><td valign="top"><a href="#Compile_002dtime-configuration">11. Compile-time configuration via GNU autoconf</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configuration-of-floppy-driver">configuration of floppy driver</a></td><td valign="top"><a href="#floppycontrol">10.5 floppycontrol</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configure-options">configure options</a></td><td valign="top"><a href="#Compile_002dtime-configuration">11. Compile-time configuration via GNU autoconf</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-CPIO">CPIO</a></td><td valign="top"><a href="#CPIO">2.5.3 CPIO (CoPy In/Out)</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-cylinders">cylinders</a></td><td valign="top"><a href="#More-cylinders">6.4 More Cylinders</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-D">D</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Default-Formats">Default Formats</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-detecting-a-disk-change">detecting a disk change</a></td><td valign="top"><a href="#Printing-options">10.5.3 Printing current settings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-determining-drive-type">determining drive type</a></td><td valign="top"><a href="#Printing-options">10.5.3 Printing current settings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-device-numbers">device numbers</a></td><td valign="top"><a href="#Device-numbers">3. Device numbers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-diffs">diffs</a></td><td valign="top"><a href="#Location">1. Where to get fdutils and its documentation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-direct-interaction-with-floppy-driver">direct interaction with floppy driver</a></td><td valign="top"><a href="#fdrawcmd">10.4 fdrawcmd</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-disk-absent-during-operation-_0028false-alert_0029">disk absent during operation (false alert)</a></td><td valign="top"><a href="#DCL-configuration">10.5.5 Configuration of the disk change line</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-disk-change-detection">disk change detection</a></td><td valign="top"><a href="#DCL-configuration">10.5.5 Configuration of the disk change line</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-disk-change-line">disk change line</a></td><td valign="top"><a href="#DCL-configuration">10.5.5 Configuration of the disk change line</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drive-type">drive type</a></td><td valign="top"><a href="#Drive-type-configuration">10.5.4 Drive type configuration and autodetection</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-dust-_0028shaking-it-off-from-a-drive_0029">dust (shaking it off from a drive)</a></td><td valign="top"><a href="#diskseekd">10.2 diskseekd</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-E">E</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-ejecting-a-disk">ejecting a disk</a></td><td valign="top"><a href="#One-time-actions">10.5.2 One time actions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Ext2">Ext2</a></td><td valign="top"><a href="#Ext2">2.6 Ext2 (Second Extended File System)</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-extended-formats">extended formats</a></td><td valign="top"><a href="#Extended-formats">6. Storing more data on a floppy disk</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-F">F</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Fdutils-_0028brief-list-of-supplied-utilities_0029">Fdutils (brief list of supplied utilities)</a></td><td valign="top"><a href="#fdutils">2.7.3 New Utilities</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file-name-of-floppy-devices">file name of floppy devices</a></td><td valign="top"><a href="#Device-names">2.3 What’s in a name</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file-systems-supported-by-linux">file systems supported by linux</a></td><td valign="top"><a href="#File-systems">2.2 File systems supported by Linux</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Fixed-format-devices">Fixed format devices</a></td><td valign="top"><a href="#Fixed-format-devices">3.2 Fixed format devices</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-floppy-device-name">floppy device name</a></td><td valign="top"><a href="#Device-names">2.3 What’s in a name</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-floppy-ioctls">floppy ioctls</a></td><td valign="top"><a href="#Floppy-ioctls">9. Floppy ioctls</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-flushing-floppy-cache">flushing floppy cache</a></td><td valign="top"><a href="#One-time-actions">10.5.2 One time actions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-format">format</a></td><td valign="top"><a href="#Autodetection">7. How autodetection works</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-format-_0028low-level-vs_002e-high-level_0029">format (low level vs. high level)</a></td><td valign="top"><a href="#Disk-organisation">2.1 How disks are organized</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Format-List">Format List</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Formats">Formats</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-formatting-disks">formatting disks</a></td><td valign="top"><a href="#Extended-formats">6. Storing more data on a floppy disk</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-formatting-disks-_0028non-XDF_0029">formatting disks (non XDF)</a></td><td valign="top"><a href="#superformat">10.10 superformat</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-formatting-XDF-disks">formatting XDF disks</a></td><td valign="top"><a href="#xdfcopy">10.11 xdfcopy</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-G">G</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Geometries">Geometries</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-geometry-information-_0028reading-back_0029">geometry information (reading back)</a></td><td valign="top"><a href="#getfdprm">10.7 getfdprm</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-geometry-information-_0028setting_0029">geometry information (setting)</a></td><td valign="top"><a href="#setfdprm">10.9 setfdprm</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Geometry-List">Geometry List</a></td><td valign="top"><a href="#geometry-list">3.3 The geometry list</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-H">H</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-high-capacity-formats">high capacity formats</a></td><td valign="top"><a href="#Extended-formats">6. Storing more data on a floppy disk</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-high-level-format">high level format</a></td><td valign="top"><a href="#Disk-organisation">2.1 How disks are organized</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-I">I</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-indentifying-unknown-disks">indentifying unknown disks</a></td><td valign="top"><a href="#Identifying-disks">2.4 What to do if you get an unidentified floppy disk</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-interleave">interleave</a></td><td valign="top"><a href="#Interleave">6.2 Using interleave</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-ioctl-list">ioctl list</a></td><td valign="top"><a href="#Floppy-ioctls">9. Floppy ioctls</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-K">K</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Kernel-_0028new-features_0029">Kernel (new features)</a></td><td valign="top"><a href="#kernel">2.7.1 New features of 1.2+ kernels</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-L">L</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-larger-sectors">larger sectors</a></td><td valign="top"><a href="#Larger-sectors">6.5 Larger sectors</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-List-of-available-commands">List of available commands</a></td><td valign="top"><a href="#Commands">10. Command list</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-low-level-format">low level format</a></td><td valign="top"><a href="#Disk-organisation">2.1 How disks are organized</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-low-level-interaction-with-floppy-driver">low level interaction with floppy driver</a></td><td valign="top"><a href="#fdrawcmd">10.4 fdrawcmd</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-M">M</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-mailing-list">mailing list</a></td><td valign="top"><a href="#Location">1. Where to get fdutils and its documentation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-making-floppy-devices">making floppy devices</a></td><td valign="top"><a href="#Device-numbers">3. Device numbers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Mixed-sector-size-formats-_00282M_0029">Mixed sector size formats (2M)</a></td><td valign="top"><a href="#g_t2M">6.8 2M formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Mixed-sector-size-formats-_0028XDF_0029">Mixed sector size formats (XDF)</a></td><td valign="top"><a href="#XDF">6.9 XDF formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Mixed-sector-size-formats-_0028XXDF_0029">Mixed sector size formats (XXDF)</a></td><td valign="top"><a href="#XXDF">6.10 XXDF formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-more-cylinder">more cylinder</a></td><td valign="top"><a href="#More-cylinders">6.4 More Cylinders</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-more-sectors-per-track">more sectors per track</a></td><td valign="top"><a href="#More-sectors">6.1 More sectors per cylinder</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-MSS">MSS</a></td><td valign="top"><a href="#Mixed-size-sectors">6.6 Mixed sector size (MSS) formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-MSS-_00282M_0029">MSS (2M)</a></td><td valign="top"><a href="#g_t2M">6.8 2M formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-MSS-_0028XDF_0029">MSS (XDF)</a></td><td valign="top"><a href="#XDF">6.9 XDF formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-MSS-_0028XXDF_0029">MSS (XXDF)</a></td><td valign="top"><a href="#XXDF">6.10 XXDF formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Mtools-_0028new-features_0029">Mtools (new features)</a></td><td valign="top"><a href="#mtools">2.7.2 New features of mtools-3.0</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-mtools-_0028nickel-tour_0029">mtools (nickel tour)</a></td><td valign="top"><a href="#Mtools">2.5.1 mtools</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-N">N</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-name-of-floppy-devices">name of floppy devices</a></td><td valign="top"><a href="#Device-names">2.3 What’s in a name</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-New-features">New features</a></td><td valign="top"><a href="#New-features">2.7 New Features of 1.2+ kernels</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-nickel-tours">nickel tours</a></td><td valign="top"><a href="#Nickel-tours">2.5 Nickel tours</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-O">O</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-OS_002f2-_0028XDF_0029">OS/2 (XDF)</a></td><td valign="top"><a href="#XDF">6.9 XDF formats</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-P">P</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-patches">patches</a></td><td valign="top"><a href="#Location">1. Where to get fdutils and its documentation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-printing-current-settings">printing current settings</a></td><td valign="top"><a href="#Printing-options">10.5.3 Printing current settings</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-R">R</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-raw-capacity">raw capacity</a></td><td valign="top"><a href="#floppymeter">10.6 floppymeter</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-raw-command">raw command</a></td><td valign="top"><a href="#fdrawcmd">10.4 fdrawcmd</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-reading-back-the-geometry-information">reading back the geometry information</a></td><td valign="top"><a href="#getfdprm">10.7 getfdprm</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-recognize-a-disk">recognize a disk</a></td><td valign="top"><a href="#Autodetection">7. How autodetection works</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Redefining-formats">Redefining formats</a></td><td valign="top"><a href="#Adding-new-formats">3.4 Adding new formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-resetting-controller">resetting controller</a></td><td valign="top"><a href="#One-time-actions">10.5.2 One time actions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-rotation-speed">rotation speed</a></td><td valign="top"><a href="#floppymeter">10.6 floppymeter</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-S">S</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-sector-skewing">sector skewing</a></td><td valign="top"><a href="#Sector-skewing">6.3 Sector skewing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-sectors-per-track">sectors per track</a></td><td valign="top"><a href="#More-sectors">6.1 More sectors per cylinder</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-setting-the-geometry-information">setting the geometry information</a></td><td valign="top"><a href="#setfdprm">10.9 setfdprm</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-shaking-off-dust-from-a-drive">shaking off dust from a drive</a></td><td valign="top"><a href="#diskseekd">10.2 diskseekd</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-skewing">skewing</a></td><td valign="top"><a href="#Sector-skewing">6.3 Sector skewing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-strange-noises-during-seek">strange noises during seek</a></td><td valign="top"><a href="#Timing-parameters">10.5.6 Timing Parameters</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-supported-file-systems">supported file systems</a></td><td valign="top"><a href="#File-systems">2.2 File systems supported by Linux</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-swapping-drives">swapping drives</a></td><td valign="top"><a href="#Drive-type-configuration">10.5.4 Drive type configuration and autodetection</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-T">T</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-tar">tar</a></td><td valign="top"><a href="#Tar">2.5.2 Tar (Tape ARchive)</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Thinkpad">Thinkpad</a></td><td valign="top"><a href="#DCL-configuration">10.5.5 Configuration of the disk change line</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-tracks">tracks</a></td><td valign="top"><a href="#More-cylinders">6.4 More Cylinders</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-V">V</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-Variable-format-devices">Variable format devices</a></td><td valign="top"><a href="#Variable-format-devices">3.1 Variable format devices</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
<tr><th><a name="Concept-index_cp_letter-X">X</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-XDF">XDF</a></td><td valign="top"><a href="#XDF">6.9 XDF formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-XDF-_0028formatting-and-copying-disks_0029">XDF (formatting and copying disks)</a></td><td valign="top"><a href="#xdfcopy">10.11 xdfcopy</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-XDF-_0028mixed-sector-sizes_0029">XDF (mixed sector sizes)</a></td><td valign="top"><a href="#Mixed-size-sectors">6.6 Mixed sector size (MSS) formats</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-XXDF">XXDF</a></td><td valign="top"><a href="#XXDF">6.10 XXDF formats</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
</table>
<table><tr><th valign="top">Jump to: </th><td><a href="#Concept-index_cp_symbol-1" class="summary-letter"><b>2</b></a>
<a href="#Concept-index_cp_symbol-2" class="summary-letter"><b>8</b></a>
<br>
<a href="#Concept-index_cp_letter-A" class="summary-letter"><b>A</b></a>
<a href="#Concept-index_cp_letter-B" class="summary-letter"><b>B</b></a>
<a href="#Concept-index_cp_letter-C" class="summary-letter"><b>C</b></a>
<a href="#Concept-index_cp_letter-D" class="summary-letter"><b>D</b></a>
<a href="#Concept-index_cp_letter-E" class="summary-letter"><b>E</b></a>
<a href="#Concept-index_cp_letter-F" class="summary-letter"><b>F</b></a>
<a href="#Concept-index_cp_letter-G" class="summary-letter"><b>G</b></a>
<a href="#Concept-index_cp_letter-H" class="summary-letter"><b>H</b></a>
<a href="#Concept-index_cp_letter-I" class="summary-letter"><b>I</b></a>
<a href="#Concept-index_cp_letter-K" class="summary-letter"><b>K</b></a>
<a href="#Concept-index_cp_letter-L" class="summary-letter"><b>L</b></a>
<a href="#Concept-index_cp_letter-M" class="summary-letter"><b>M</b></a>
<a href="#Concept-index_cp_letter-N" class="summary-letter"><b>N</b></a>
<a href="#Concept-index_cp_letter-O" class="summary-letter"><b>O</b></a>
<a href="#Concept-index_cp_letter-P" class="summary-letter"><b>P</b></a>
<a href="#Concept-index_cp_letter-R" class="summary-letter"><b>R</b></a>
<a href="#Concept-index_cp_letter-S" class="summary-letter"><b>S</b></a>
<a href="#Concept-index_cp_letter-T" class="summary-letter"><b>T</b></a>
<a href="#Concept-index_cp_letter-V" class="summary-letter"><b>V</b></a>
<a href="#Concept-index_cp_letter-X" class="summary-letter"><b>X</b></a>
</td></tr></table>
<hr size="6">
<a name="SEC_Foot"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1>Footnotes</h1>
<h3><a name="FOOT1" href="#DOCF1">(1)</a></h3>
<p>In that case, the <code>MAKEFLOPPIES</code> program
(<a href="#makefloppies">makefloppies</a>) no longer works to generate a correct name for
these formats, and you have to make them manually.
</p><h3><a name="FOOT2" href="#DOCF2">(2)</a></h3>
<p>The actual location of this
file depends on the value of the <code>sysconfdir</code> compile time
configuration variable (see section <a href="#Compile_002dtime-configuration">Compile-time configuration via GNU autoconf</a> for details)
</p><h3><a name="FOOT3" href="#DOCF3">(3)</a></h3>
<p>drives do not always
rotate at exactly 5 or 6 rotations per second, but some may be slightly
faster or slightly slower than spec
</p><h3><a name="FOOT4" href="#DOCF4">(4)</a></h3>
<p>The actual location of this
file depends on the value of the <code>sysconfdir</code> compile time
configuration variable (see section <a href="#Compile_002dtime-configuration">Compile-time configuration via GNU autoconf</a> for details)
</p><h3><a name="FOOT5" href="#DOCF5">(5)</a></h3>
<p>except of course if
several formats only differ in the number of sectors per track, in which
case the formats with the most sectors should come first
</p><h3><a name="FOOT6" href="#DOCF6">(6)</a></h3>
<p>Version
3.0 or higher
</p><hr size="1">
<a name="SEC_Contents"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1>Table of Contents</h1>
<div class="contents">
<ul class="toc">
<li><a name="toc-General-Introduction" href="#General-Introduction">General Introduction</a></li>
<li><a name="toc-Where-to-get-fdutils-and-its-documentation" href="#Location">1. Where to get fdutils and its documentation</a></li>
<li><a name="toc-Basic-usage-1" href="#Basic-usage">2. Basic usage</a>
<ul class="toc">
<li><a name="toc-How-disks-are-organized" href="#Disk-organisation">2.1 How disks are organized</a></li>
<li><a name="toc-File-systems-supported-by-Linux" href="#File-systems">2.2 File systems supported by Linux</a></li>
<li><a name="toc-What_0027s-in-a-name" href="#Device-names">2.3 What’s in a name</a></li>
<li><a name="toc-What-to-do-if-you-get-an-unidentified-floppy-disk" href="#Identifying-disks">2.4 What to do if you get an unidentified floppy disk</a></li>
<li><a name="toc-Nickel-tours-1" href="#Nickel-tours">2.5 Nickel tours</a>
<ul class="toc">
<li><a name="toc-mtools-1" href="#Mtools">2.5.1 mtools</a></li>
<li><a name="toc-Tar-_0028Tape-ARchive_0029" href="#Tar">2.5.2 Tar (Tape ARchive)</a></li>
<li><a name="toc-CPIO-_0028CoPy-In_002fOut_0029" href="#CPIO">2.5.3 CPIO (CoPy In/Out)</a></li>
</ul></li>
<li><a name="toc-Ext2-_0028Second-Extended-File-System_0029" href="#Ext2">2.6 Ext2 (Second Extended File System)</a></li>
<li><a name="toc-New-Features-of-1_002e2_002b-kernels" href="#New-features">2.7 New Features of 1.2+ kernels</a>
<ul class="toc">
<li><a name="toc-New-features-of-1_002e2_002b-kernels" href="#kernel">2.7.1 New features of 1.2+ kernels</a></li>
<li><a name="toc-New-features-of-mtools_002d3_002e0" href="#mtools">2.7.2 New features of mtools-3.0</a></li>
<li><a name="toc-New-Utilities" href="#fdutils">2.7.3 New Utilities</a></li>
</ul>
</li>
</ul></li>
<li><a name="toc-Device-numbers-1" href="#Device-numbers">3. Device numbers</a>
<ul class="toc">
<li><a name="toc-Variable-format-devices-1" href="#Variable-format-devices">3.1 Variable format devices</a></li>
<li><a name="toc-Fixed-format-devices-1" href="#Fixed-format-devices">3.2 Fixed format devices</a></li>
<li><a name="toc-The-geometry-list" href="#geometry-list">3.3 The geometry list</a></li>
<li><a name="toc-Adding-new-formats-1" href="#Adding-new-formats">3.4 Adding new formats</a></li>
</ul></li>
<li><a name="toc-Media-description-1" href="#Media-description">4. Media description</a>
<ul class="toc">
<li><a name="toc-Introduction" href="#Introduction-_0028Mediaprm_0029">4.1 Introduction</a></li>
<li><a name="toc-Syntax-2" href="#Syntax">4.2 Syntax</a>
<ul class="toc">
<li><a name="toc-Selecting-the-density-1" href="#Selecting-the-density">4.2.1 Selecting the density</a></li>
<li><a name="toc-Selecting-the-number-of-cylinders_002c-heads-and-sectors" href="#Selecting-the-number-of-cylinders-heads-and-sectors">4.2.2 Selecting the number of cylinders, heads and sectors</a></li>
<li><a name="toc-Selecting-non_002dstandard-sector-sizes-1" href="#Selecting-non_002dstandard-sector-sizes">4.2.3 Selecting non-standard sector sizes</a></li>
<li><a name="toc-Legacy-formats-1" href="#Legacy-formats">4.2.4 Legacy formats</a></li>
<li><a name="toc-Expert-options-1" href="#Expert-options">4.2.5 Expert options</a></li>
</ul></li>
<li><a name="toc-The-media-description-dictionary-in-_002fetc_002ffdmediaprm" href="#Media-definition-file">4.3 The media description dictionary in /etc/fdmediaprm</a></li>
</ul></li>
<li><a name="toc-Drive-descriptions-1" href="#Drive-descriptions">5. Drive descriptions</a>
<ul class="toc">
<li><a name="toc-Syntax-1" href="#Syntax-of-a-drive-description">5.1 Syntax</a>
<ul class="toc">
<li><a name="toc-Density-1" href="#Density">5.1.1 Density</a></li>
<li><a name="toc-Form-factor-1" href="#Form-factor">5.1.2 Form factor</a></li>
<li><a name="toc-Cmos-code-1" href="#Cmos-code">5.1.3 Cmos code</a></li>
<li><a name="toc-Other-parameters-1" href="#Other-parameters">5.1.4 Other parameters</a></li>
</ul></li>
<li><a name="toc-The-drive-definition-file-in-_002fusr_002flocal_002fetc_002ffddriveprm" href="#Drive-definition-file">5.2 The drive definition file in ‘<tt>/usr/local/etc/fddriveprm</tt>’</a></li>
</ul></li>
<li><a name="toc-Storing-more-data-on-a-floppy-disk" href="#Extended-formats">6. Storing more data on a floppy disk</a>
<ul class="toc">
<li><a name="toc-More-sectors-per-cylinder" href="#More-sectors">6.1 More sectors per cylinder</a></li>
<li><a name="toc-Using-interleave" href="#Interleave">6.2 Using interleave</a></li>
<li><a name="toc-Sector-skewing-1" href="#Sector-skewing">6.3 Sector skewing</a></li>
<li><a name="toc-More-Cylinders" href="#More-cylinders">6.4 More Cylinders</a></li>
<li><a name="toc-Larger-sectors-1" href="#Larger-sectors">6.5 Larger sectors</a></li>
<li><a name="toc-Mixed-sector-size-_0028MSS_0029-formats" href="#Mixed-size-sectors">6.6 Mixed sector size (MSS) formats</a></li>
<li><a name="toc-Smart-use-of-the-data-transfer-rate" href="#Smart-use-of-the-dtr">6.7 Smart use of the data transfer rate</a></li>
<li><a name="toc-2M-formats" href="#g_t2M">6.8 2M formats</a></li>
<li><a name="toc-XDF-formats" href="#XDF">6.9 XDF formats</a></li>
<li><a name="toc-XXDF-formats" href="#XXDF">6.10 XXDF formats</a></li>
</ul></li>
<li><a name="toc-How-autodetection-works" href="#Autodetection">7. How autodetection works</a>
<ul class="toc">
<li><a name="toc-Example" href="#Example">7.1 Example</a></li>
</ul></li>
<li><a name="toc-Configuring-the-floppy-driver-via-LILO-or-insmod" href="#Boottime-configuration">8. Configuring the floppy driver via LILO or insmod</a></li>
<li><a name="toc-Floppy-ioctls-1" href="#Floppy-ioctls">9. Floppy ioctls</a></li>
<li><a name="toc-Command-list" href="#Commands">10. Command list</a>
<ul class="toc">
<li><a name="toc-diskd-1" href="#diskd">10.1 diskd</a>
<ul class="toc">
<li><a name="toc-Warning" href="#Warning">10.1.1 Warning</a></li>
<li><a name="toc-Options-2" href="#Options-2">10.1.2 Options</a></li>
<li><a name="toc-Bugs" href="#Bugs">10.1.3 Bugs</a></li>
</ul></li>
<li><a name="toc-diskseekd-1" href="#diskseekd">10.2 diskseekd</a>
<ul class="toc">
<li><a name="toc-Options-5" href="#Options-5">10.2.1 Options</a></li>
<li><a name="toc-Bugs-4" href="#Bugs-4">10.2.2 Bugs</a></li>
</ul></li>
<li><a name="toc-fdmount-1" href="#fdmount">10.3 fdmount</a>
<ul class="toc">
<li><a name="toc-Options-3" href="#Options-3">10.3.1 Options</a></li>
<li><a name="toc-Security" href="#Security">10.3.2 Security</a></li>
<li><a name="toc-Daemon-mode" href="#Daemon-mode">10.3.3 Daemon mode</a></li>
<li><a name="toc-Diagnostics" href="#Diagnostics">10.3.4 Diagnostics</a></li>
<li><a name="toc-Bugs-5" href="#Bugs-5">10.3.5 Bugs</a></li>
</ul></li>
<li><a name="toc-fdrawcmd-1" href="#fdrawcmd">10.4 fdrawcmd</a>
<ul class="toc">
<li><a name="toc-Options-4" href="#Options-4">10.4.1 Options</a></li>
<li><a name="toc-Commands-1" href="#Commands-1">10.4.2 Commands</a>
<ul class="toc">
<li><a name="toc-Commands-available-on-all-FDCs" href="#Commands-available-on-all-FDCs">10.4.2.1 Commands available on all FDCs</a></li>
<li><a name="toc-Commands-available-on-82072-and-later" href="#Commands-available-on-82072-and-later">10.4.2.2 Commands available on 82072 and later</a></li>
<li><a name="toc-Commands-available-on-82072A-and-later" href="#Commands-available-on-82072A-and-later">10.4.2.3 Commands available on 82072A and later</a></li>
<li><a name="toc-Commands-available-on-82077-and-later" href="#Commands-available-on-82077-and-later">10.4.2.4 Commands available on 82077 and later</a></li>
<li><a name="toc-Commands-available-on-82077AA-and-later" href="#Commands-available-on-82077AA-and-later">10.4.2.5 Commands available on 82077AA and later</a></li>
<li><a name="toc-Commands-available-on-82078" href="#Commands-available-on-82078">10.4.2.6 Commands available on 82078</a></li>
</ul></li>
<li><a name="toc-Modes" href="#Modes">10.4.3 Modes</a></li>
</ul></li>
<li><a name="toc-floppycontrol-1" href="#floppycontrol">10.5 floppycontrol</a>
<ul class="toc">
<li><a name="toc-General-Options" href="#General-options">10.5.1 General Options</a></li>
<li><a name="toc-One-time-actions-1" href="#One-time-actions">10.5.2 One time actions</a></li>
<li><a name="toc-Printing-current-settings" href="#Printing-options">10.5.3 Printing current settings</a></li>
<li><a name="toc-Drive-type-configuration-and-autodetection" href="#Drive-type-configuration">10.5.4 Drive type configuration and autodetection</a></li>
<li><a name="toc-Configuration-of-the-disk-change-line" href="#DCL-configuration">10.5.5 Configuration of the disk change line</a></li>
<li><a name="toc-Timing-Parameters" href="#Timing-parameters">10.5.6 Timing Parameters</a></li>
<li><a name="toc-Debugging-messages" href="#Debugging">10.5.7 Debugging messages</a></li>
<li><a name="toc-Error-Handling-Options" href="#Error-handling-options">10.5.8 Error Handling Options</a></li>
<li><a name="toc-Write-error-reporting-1" href="#Write-error-reporting">10.5.9 Write error reporting</a></li>
<li><a name="toc-Other-drive-configuration-options" href="#Misc-options">10.5.10 Other drive configuration options</a></li>
</ul></li>
<li><a name="toc-floppymeter-1" href="#floppymeter">10.6 floppymeter</a>
<ul class="toc">
<li><a name="toc-Bugs-2" href="#Bugs-2">10.6.1 Bugs</a></li>
</ul></li>
<li><a name="toc-getfdprm-1" href="#getfdprm">10.7 getfdprm</a></li>
<li><a name="toc-makefloppies-1" href="#makefloppies">10.8 makefloppies</a>
<ul class="toc">
<li><a name="toc-Options-1" href="#Options-1">10.8.1 Options</a></li>
<li><a name="toc-Bugs-3" href="#Bugs-3">10.8.2 Bugs</a></li>
</ul></li>
<li><a name="toc-setfdprm-1" href="#setfdprm">10.9 setfdprm</a>
<ul class="toc">
<li><a name="toc-Options" href="#Options">10.9.1 Options</a></li>
<li><a name="toc-Bugs-6" href="#Bugs-6">10.9.2 Bugs</a></li>
</ul></li>
<li><a name="toc-superformat-1" href="#superformat">10.10 superformat</a>
<ul class="toc">
<li><a name="toc-Common-Options" href="#Common-options">10.10.1 Common Options</a></li>
<li><a name="toc-Advanced-Options" href="#Advanced-options">10.10.2 Advanced Options</a></li>
<li><a name="toc-Sector-skewing-options-1" href="#Sector-skewing-options">10.10.3 Sector skewing options</a></li>
<li><a name="toc-Examples-1" href="#Examples">10.10.4 Examples</a></li>
<li><a name="toc-Troubleshooting-1" href="#Troubleshooting">10.10.5 Troubleshooting</a></li>
<li><a name="toc-Bugs-1" href="#Superformat-bugs">10.10.6 Bugs</a></li>
</ul></li>
<li><a name="toc-xdfcopy-1" href="#xdfcopy">10.11 xdfcopy</a>
<ul class="toc">
<li><a name="toc-Options-6" href="#Options-6">10.11.1 Options</a>
<ul class="toc">
<li><a name="toc-Selecting-a-format" href="#Selecting-a-format">10.11.1.1 Selecting a format</a></li>
</ul></li>
<li><a name="toc-Misc-options-1" href="#Misc-options-1">10.11.2 Misc options</a></li>
<li><a name="toc-Options-for-power-users" href="#Options-for-power-users">10.11.3 Options for power users</a></li>
</ul>
</li>
</ul></li>
<li><a name="toc-Compile_002dtime-configuration-via-GNU-autoconf" href="#Compile_002dtime-configuration">11. Compile-time configuration via GNU autoconf</a></li>
<li><a name="toc-Acronyms-1" href="#Acronyms">A. Acronyms</a></li>
<li><a name="toc-Interesting-formats-1" href="#Interesting-formats">B. Interesting formats</a></li>
<li><a name="toc-Command-Index-1" href="#Command-Index">Command Index</a></li>
<li><a name="toc-Concept-index" href="#Concept-Index">Concept index</a></li>
</ul>
</div>
<hr size="1">
<a name="SEC_About"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#General-Introduction" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Command-Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1>About This Document</h1>
<p>
This document was generated by <em>Build Daemon user</em> on <em>May 24, 2012</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
</p>
<p>
The buttons in the navigation panels have the following meaning:
</p>
<table border="1">
<tr>
<th> Button </th>
<th> Name </th>
<th> Go to </th>
<th> From 1.2.3 go to</th>
</tr>
<tr>
<td align="center"> [ < ] </td>
<td align="center">Back</td>
<td>Previous section in reading order</td>
<td>1.2.2</td>
</tr>
<tr>
<td align="center"> [ > ] </td>
<td align="center">Forward</td>
<td>Next section in reading order</td>
<td>1.2.4</td>
</tr>
<tr>
<td align="center"> [ << ] </td>
<td align="center">FastBack</td>
<td>Beginning of this chapter or previous chapter</td>
<td>1</td>
</tr>
<tr>
<td align="center"> [ Up ] </td>
<td align="center">Up</td>
<td>Up section</td>
<td>1.2</td>
</tr>
<tr>
<td align="center"> [ >> ] </td>
<td align="center">FastForward</td>
<td>Next chapter</td>
<td>2</td>
</tr>
<tr>
<td align="center"> [Top] </td>
<td align="center">Top</td>
<td>Cover (top) of document</td>
<td> </td>
</tr>
<tr>
<td align="center"> [Contents] </td>
<td align="center">Contents</td>
<td>Table of contents</td>
<td> </td>
</tr>
<tr>
<td align="center"> [Index] </td>
<td align="center">Index</td>
<td>Index</td>
<td> </td>
</tr>
<tr>
<td align="center"> [ ? ] </td>
<td align="center">About</td>
<td>About (help)</td>
<td> </td>
</tr>
</table>
<p>
where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
</p>
<ul>
<li> 1. Section One
<ul>
<li>1.1 Subsection One-One
<ul>
<li>...</li>
</ul>
</li>
<li>1.2 Subsection One-Two
<ul>
<li>1.2.1 Subsubsection One-Two-One</li>
<li>1.2.2 Subsubsection One-Two-Two</li>
<li>1.2.3 Subsubsection One-Two-Three
<strong><== Current Position </strong></li>
<li>1.2.4 Subsubsection One-Two-Four</li>
</ul>
</li>
<li>1.3 Subsection One-Three
<ul>
<li>...</li>
</ul>
</li>
<li>1.4 Subsection One-Four</li>
</ul>
</li>
</ul>
<hr size="1">
<p>
<font size="-1">
This document was generated by <em>Build Daemon user</em> on <em>May 24, 2012</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
</font>
<br>
</p>
</body>
</html>
|