Lines Matching +full:interleave +full:- +full:mode
27 * fdformat program - formats floppy disks, and then adds a label to them
69 #define uppercase(c) ((c) >= 'a' && (c) <= 'z' ? (c) - 'a' + 'A' : (c))
103 static int n_flag = 0; /* format the diskette in NEC-DOS format */
110 static int interleave = 1; /* interleave factor */ variable
129 * ON-private functions from libvolmgt
176 while ((i = getopt(argc, argv, "B:b:dDeEfhHlLmMxqt:UvVZ?")) != -1) { in main()
197 /* format a MS-DOS diskette */ in main()
231 /* interleave factor */ in main()
232 interleave = atol(optarg); in main()
233 if (interleave <= 0) { in main()
235 "%s: invalid interleave\n"), myname); in main()
294 if (optind < argc -1) { in main()
298 if (optind == argc -1) { in main()
302 usage(gettext("switches -D, -L and -H incompatible")); in main()
306 usage(gettext("switches -D, -L and -E incompatible")); in main()
310 usage(gettext("switches -H and -E incompatible")); in main()
318 usage(gettext("switch -M required for NEC-DOS")); in main()
322 usage(gettext("switches -D, -L and -M incompatible")); in main()
326 usage(gettext("switches -d and -M incompatible")); in main()
371 gettext("%s: %s is mounted (use -U flag)\n"), in main()
380 if ((fd = open(real_name, O_NDELAY | O_RDWR | O_EXCL)) == -1) { in main()
497 if (ioctl(fd, DKIOCGAPART, &allmap) == -1) { in format_diskette()
508 if (ioctl(fd, FDIOGCHAR, &fdchar) == -1) { in format_diskette()
537 if (ioctl(fd, DKIOCGGEOM, &fdgeom) == -1) { in format_diskette()
584 (void) strcpy(fd_vtoc->v_asciilabel, in format_diskette()
589 (void) strcpy(fd_vtoc->v_asciilabel, in format_diskette()
598 (void) strcpy(fd_vtoc->v_asciilabel, in format_diskette()
612 (void) strcpy(fd_vtoc->v_asciilabel, in format_diskette()
630 (void) strcpy(fd_vtoc->v_asciilabel, in format_diskette()
638 (void) strcpy(fd_vtoc->v_asciilabel, in format_diskette()
656 allmap.dka_map[1].dkl_cylno = num_cyl - 1; in format_diskette()
657 allmap.dka_map[0].dkl_nblk = 2 * (num_cyl - 1) * spt * in format_diskette()
663 allmap.dka_map[3].dkl_nblk = 2 * (num_cyl - 1) * spt * in format_diskette()
672 fd_vtoc->v_nparts = 3; in format_diskette()
674 fd_vtoc->v_part[0].p_start = 0; in format_diskette()
675 fd_vtoc->v_part[0].p_size = ((num_cyl - 1) * 2 * spt * in format_diskette()
677 fd_vtoc->v_part[1].p_start = ((num_cyl - 1) * 2 * spt * in format_diskette()
679 fd_vtoc->v_part[1].p_size = 2 * spt * (m_flag ? 2 : 1); in format_diskette()
681 fd_vtoc->v_part[2].p_start = 0; in format_diskette()
682 fd_vtoc->v_part[2].p_size = num_cyl * 2 * spt * (m_flag ? 2 : 1); in format_diskette()
685 bpb->b_nfat = 2; in format_diskette()
687 bpb->b_spcl = 2; in format_diskette()
689 bpb->b_mediadescriptor = (char)0xF0; in format_diskette()
690 bpb->b_fatsec[0] = 9; in format_diskette()
691 bpb->b_fatsec[1] = 0; in format_diskette()
694 bpb->b_spcl = 1; in format_diskette()
696 bpb->b_mediadescriptor = (char)0xF9; in format_diskette()
697 bpb->b_fatsec[0] = 7; in format_diskette()
698 bpb->b_fatsec[1] = 0; in format_diskette()
700 bpb->b_spcl = 1; in format_diskette()
702 bpb->b_mediadescriptor = (char)0xF0; in format_diskette()
703 bpb->b_fatsec[0] = 9; in format_diskette()
704 bpb->b_fatsec[1] = 0; in format_diskette()
707 bpb->b_spcl = 2; in format_diskette()
709 bpb->b_mediadescriptor = (char)0xFD; in format_diskette()
710 bpb->b_fatsec[0] = 2; in format_diskette()
711 bpb->b_fatsec[1] = 0; in format_diskette()
713 bpb->b_spcl = 2; in format_diskette()
715 bpb->b_mediadescriptor = (char)0xF9; in format_diskette()
716 bpb->b_fatsec[0] = 3; in format_diskette()
717 bpb->b_fatsec[1] = 0; in format_diskette()
735 * -- CAUTION -- in format_diskette()
736 * The SPARC fd driver is using a non-zero value in in format_diskette()
738 * 9 sectors/track, 1024 bytes/sector mode of operation in format_diskette()
752 if (ioctl(fd, FDIOSCHAR, &fdchar) == -1) { in format_diskette()
762 if (ioctl(fd, DKIOCSAPART, &allmap) == -1) { in format_diskette()
775 if (interleave != 1 && interleave != fdgeom.dkg_intrlv) { in format_diskette()
776 fdgeom.dkg_intrlv = interleave; in format_diskette()
777 if (ioctl(fd, DKIOCSGEOM, &fdgeom) == -1) { in format_diskette()
808 if (interleave != 1) { in format_diskette()
810 "Formatting %s, %d cylinders, %d sectors per trk, interleave=%d in %s\n"), in format_diskette()
811 capacity, num_cyl, spt, interleave, real_name); in format_diskette()
869 * of low-level, device-dependent code. in format_diskette()
872 if (ioctl(fd, FDRAW, &fdr_seek) == -1) { in format_diskette()
895 * ASSUME the fd driver is going to set drive-select in format_diskette()
905 if (ioctl(fd, FDRAW, &fdr_form) == -1) { in format_diskette()
1089 if (strstr(mp->mnt_special, "/dev/fd") == NULL && in check_mount()
1090 strstr(mp->mnt_special, "/dev/disket") == NULL && in check_mount()
1091 strstr(mp->mnt_special, "/dev/c") == NULL) { in check_mount()
1096 (void) strcat(raw_device, mp->mnt_special + strlen("/dev/")); in check_mount()
1108 if (fstat(mfd, &stbuf) == -1 || !S_ISCHR(stbuf.st_mode)) { in check_mount()
1139 if (!_dev_unmount(mp->mnt_special)) { in check_mount()
1142 myname, mp->mnt_special); in check_mount()
1147 gettext("%s: %s is mounted (use -U flag)\n"), in check_mount()
1148 myname, mp->mnt_special); in check_mount()
1169 "\n usage: %s [-dDeEfHlLmMqUvx] [-b label] [-B file] [-t dostype] [devname]\n"), in usage()
1174 " -b label install \"label\" on media\n")); in usage()
1176 " -B file install special boot loader on MS-DOS media\n")); in usage()
1179 " -d format MS-DOS media\n")); in usage()
1182 " -D format 720KB (3.5\") or 360KB (5.25\") Double-density diskette\n")); in usage()
1184 " -e eject the media when done\n")); in usage()
1188 " -E format 2.88MB (3.5\") Extended-density diskette\n")); in usage()
1190 " -f \"force\" - don't wait for confirmation\n")); in usage()
1193 " -H format 1.44MB (3.5\") or 1.2MB (5.25\") High-density diskette\n")); in usage()
1196 " -l format 720KB (3.5\") or 360KB (5.25\") Double-density diskette\n")); in usage()
1199 " -L format 720KB (3.5\") or 360KB (5.25\") Double-density diskette\n")); in usage()
1201 " -m format 1.2MB (3.5\") Medium-density diskette\n")); in usage()
1203 " -M format 1.2MB (3.5\") Medium-density diskette\n")); in usage()
1205 " -q quiet\n")); in usage()
1208 " -t dos format MS-DOS media (same as -d)\n")); in usage()
1210 " -t nec format NEC-DOS media (with -M only)\n")); in usage()
1213 " -U unmount media if it's mounted\n")); in usage()
1215 " -v verify each block of the media\n")); in usage()
1217 " -x skip the format, only install SunOS or DOS label\n")); in usage()
1297 fd_vtoc->v_sanity = VTOC_SANE; in write_SunOS_label()
1304 fd_vtoc->v_sectorsz = DEV_BSIZE; in write_SunOS_label()
1306 (void) strncpy(fd_vtoc->v_volume, volname, sizeof (fd_vtoc->v_volume)); in write_SunOS_label()
1309 if (ioctl(fd, DKIOCSVTOC, fd_vtoc) == -1) { in write_SunOS_label()
1320 * MS-DOS Disk layout:
1322 * ---------------------
1324 * |-------------------|
1326 * |-------------------|
1328 * |-------------------|
1330 * |-------------------|
1332 * |-------------------|
1339 * The following is a copy of MS-DOS 3.3 boot block.
1344 * for the 3.5" high-density 1.44MB floppy format.
1397 '\n', 'N', 'o', 'n', '-', 'S', 'y', 's',
1448 if ((bfd = open(bootfile, O_RDONLY)) == -1) { in valid_DOS_boot()
1460 gettext("%s: read of MS-DOS boot file failed, "), myname); in valid_DOS_boot()
1471 gettext("%s: invalid MS-DOS boot loader image\n"), myname); in valid_DOS_boot()
1499 (gettext("%s: using \"%s\" for MS-DOS boot loader\n"), in write_DOS_label()
1504 bpb->b_bps[0] = getlobyte(512); in write_DOS_label()
1505 bpb->b_bps[1] = gethibyte(512); in write_DOS_label()
1506 /* MS-DOS 5.0 supports only 1 reserved sector :-( */ in write_DOS_label()
1507 bpb->b_res_sec[0] = 1; in write_DOS_label()
1508 bpb->b_res_sec[1] = 0; in write_DOS_label()
1511 bpb->b_totalsec[0] = getlobyte(totalsec); in write_DOS_label()
1512 bpb->b_totalsec[1] = gethibyte(totalsec); in write_DOS_label()
1513 bpb->b_spt[0] = fdchar.fdc_secptrack; in write_DOS_label()
1514 bpb->b_spt[1] = 0; in write_DOS_label()
1515 bpb->b_nhead[0] = fdchar.fdc_nhead; in write_DOS_label()
1516 bpb->b_nhead[1] = 0; in write_DOS_label()
1517 bpb->b_hiddensec[0] = 0; in write_DOS_label()
1518 bpb->b_hiddensec[1] = 0; in write_DOS_label()
1520 bpb->b_rdirents[0] = getlobyte(rdirsec); in write_DOS_label()
1521 bpb->b_rdirents[1] = gethibyte(rdirsec); in write_DOS_label()
1528 gettext("%s: write of MS-DOS boot sector failed"), myname); in write_DOS_label()
1533 bootlen -= 512; in write_DOS_label()
1535 fat_bsize = 512 * bpb->b_fatsec[0]; in write_DOS_label()
1539 *fat_rdir = bpb->b_mediadescriptor; in write_DOS_label()
1542 bootclen = (bootlen + 512 * (int)bpb->b_spcl - 1) / in write_DOS_label()
1543 (512 * (int)bpb->b_spcl); in write_DOS_label()
1547 * pre-allocate any clusters used by boot loader if in write_DOS_label()
1559 for (i = 0; i < (int)bpb->b_nfat; ++i) in write_DOS_label()
1562 gettext("%s: write of MS-DOS File Allocation Table failed, "), in write_DOS_label()
1567 rdirsec = bpb->b_rdirents[0]; in write_DOS_label()
1587 dostime = tp->tm_sec / 2; in write_DOS_label()
1588 dostime |= tp->tm_min << 5; in write_DOS_label()
1589 dostime |= tp->tm_hour << 11; in write_DOS_label()
1590 dosday = tp->tm_mday; in write_DOS_label()
1591 dosday |= (tp->tm_mon + 1) << 5; in write_DOS_label()
1592 dosday |= (tp->tm_year - 80) << 9; in write_DOS_label()
1600 gettext("%s: write of MS-DOS FAT failed, "), in write_DOS_label()
1613 gettext("%s: write of MS-DOS root directory failed, "), in write_DOS_label()
1627 gettext("%s: write of MS-DOS boot sectors failed"), myname); in write_DOS_label()
1665 "%s: write of NEC-DOS boot sector failed, "), in write_NEC_DOS_label()
1671 fatsec = bpb->b_fatsec[0]; in write_NEC_DOS_label()
1672 for (i = 0; i < (int)bpb->b_nfat * (int)fatsec; ++i) { in write_NEC_DOS_label()
1674 fat_rdir[0] = bpb->b_mediadescriptor; in write_NEC_DOS_label()
1691 gettext("%s: write of NEC-DOS File Allocation Table failed, "), myname); in write_NEC_DOS_label()
1698 rdirsec = (int)htols(bpb->b_rdirents[0]) * 32 /1024; in write_NEC_DOS_label()
1700 rdirsec = (int)htols(bpb->b_rdirents[0]) * 32 /1024; in write_NEC_DOS_label()
1720 dostime = tp->tm_sec / 2; in write_NEC_DOS_label()
1721 dostime |= tp->tm_min << 5; in write_NEC_DOS_label()
1722 dostime |= tp->tm_hour << 11; in write_NEC_DOS_label()
1723 dosday = tp->tm_mday; in write_NEC_DOS_label()
1724 dosday |= (tp->tm_mon + 1) << 5; in write_NEC_DOS_label()
1725 dosday |= (tp->tm_year - 80) << 9; in write_NEC_DOS_label()
1734 gettext("%s: write of NEC-DOS root directory failed, "), myname); in write_NEC_DOS_label()
1753 gettext("%s: write of NEC-DOS root directory failed, "), myname); in write_NEC_DOS_label()