Beiträge von climatex

    Here's a prime example of a BIOS that uses 1,44MB step rate timings, ignoring the data in the Diskette Parameter Table altogether. The floppy drive is unable to recalibrate as the heads just "glide" in-between sectors, due to the high step frequency, i.e. they are not indexed on a proper sector - "temporarily out of alignment" even when read with IMD.

    The solution is to use a conservative SRT that allows the motor to seek into a sector proper and recalibrate back to track 0 using the "8FORMAT /UNFUCK" command.

    Zitat von "mister-freeze

    Is it possible that the drive was on a sub-zero track at that moment? Did you have the Track 0 signal at that moment?


    I guess I'd be speculating about that now, but once I have time I will recreate the issue and check again.


    Zitat von frank128

    Overwise formating DSSD makes no sense.


    Why not? Formatting means initializing each track with a sector map. By default, 8FORMAT without /FAT12 won't even create a filesystem; but it doesn't mean you cannot use an 8FORMAT-formatted disk in a non-DOS, non-PC environment or anything like.


    But you're barking up at the wrong tree here - 8TSR cannot force the PC BIOS to start using FM modulation. All floppies originally supported for the PC, regardless of double, high or extended density, use MFM encoding. What the utility does is that it overrides the BIOS INT 13h calls that return the drive geometry, to return 77 tracks, the custom sector size (if non-512 byte), conservative drive timings, EOT (sectors per track) and the rest of the data, that are open for real mode applications under INT 1eh, which is the Diskette Parameter Table. Sadly, the signal modulation is not one of them.


    Even if the PC BIOS could be tricked to support FM by intercepting the controller calls... remember that 8" SD are 128byte sectors. Attempting to use any other PHYSICAL sector size for a floppy, other than 512 bytes, through BIOS calls (i.e. including the DOS kernel) will cause buffer underruns or overflows. 99.9% of applications expect to see 512 bytes to come from a PC floppy drive per each sector - this means not more and not less.

    This means that if you tried to format e.g. DSDD and installing the resident portion to memory, TESTREAD will report that there's 1kB sectors on the drive that can be utilized from BIOS. This is because TESTREAD expects that the returned buffer might be bigger, or smaller, than 512 bytes.

    But - do any meaningful DOS drive operation on that floppy and you will get a system crash - DOS expects 512 bytes exactly and the BIOS call overwrites past the internal DOS buffer.


    // edit

    Zitat von frank128

    Of course, only MFM with 512 byte blocks...


    With 8FORMAT itself, you can do FM with a geometry of 26x128byte, and MFM with 128, 256, 512 and 1024-byte sectors. Again, be advised that DOS and DOS apps expect to see a 512 byte buffer. However, if the logical sector size specified in the FAT is different - that's another story. (Yes, DOS supports 128bytes per logical sector on a floppy)

    Hi Frank,


    By formatting with a single density, the recording mode is set to FM, with 2 bits per each databit at 500kHz at a practical data rate of 250kbps. 8FORMAT accesses the floppy controller directly to make this possible.


    However, TESTREAD.COM is a testing application for invoking BIOS INT 13h, i.e. if the resident 8TSR portion (the "driver" that hacks in the 8 inch drive geometry to the BIOS) works properly.


    And there we are - the PC BIOS always reads floppies using the standard MFM bit encoding, whatever the drive is - 360K, 720K, 1.2M, 1.44M etc. So, if you try reading FM formatted disks this way, the BIOS will ignore that and subsequently fail on the read operation.

    You can try 8FORMAT A: DSSD /V /MFM to create a non-standard format, i.e. 26x128B sectors but with MFM. If it passes through the Verify stage, TESTREAD shall also :)

    Hi,


    Jozef here, the author of 8FORMAT and of said article.


    With a properly connected 8" drive that has a functional Track 0 sensor, the PC floppy disk controller won't ram the head assembly below this point, i.e. with no accompanied "machine gun" sound caused by the head assembly repeatedly striking upon the detent during seeking/controller recalibration, or any (reasonable) threat of permanent hardware damage. The aforementioned problem of some "higher torque" stemming from a slow step rate time (SRT) is just nonsense.


    With regards to the issue caused by the fast step rate (very short SRT) used during the BIOS POST floppy seek, I have seen it happen on 2 differrent drives; the Shugart 800 and the Magnetic Peripherals (CDC) drive. Both are old, full-height 8" drives. By "temporarily throwing the drive out of alignment", it was meant that the head is not positioned correctly on a track the PC FDC wanted it to, due to the stepper motor not indexing right when used on a high speed, and ends up in-between tracks or on a completely different track.


    But here's the catch: recalibrating the controller using the same fast BIOS step rate did NOT mitigate the problem unless a conservative speed of 6ms per step was used. Which is what the undocumented command of 8FORMAT does.

    I have proven this with a Shugart drive that was reading and writing its disks fine right until a reboot, with the associated fast BIOS POST seek (a 286 PhoenixBIOS that also does not have it as a configurable setting). Right after booting to DOS, the drive did not read any FAT12 formatted disks AT ALL.
    This I have later confirmed with Dave Dunfield's ImageDisk (IMD) using the Alignment test. If the drive were exactly a track (or two) away, the read data would show a different track number. However, all I got were question marks, like if the drive was mechanically misaligned and the head being somewhere in the gaps. Also note that DOS performs a recalibration of the controller with the default BIOS SRT each time any floppy errors occur, and this was by itself not enough to fix the drive. Thus, 8FORMAT with the resident driver (8TSR) modifies the BIOS Diskette Parameter Table to a slow step rate of 6 milliseconds to avoid these situations. It's a floppy drive, so there's no rush.


    Now, the SA 800 and the CDC are considerably older drives than Frank's Mitsubishi. If said drive were having problems with the high step rate (low SRT), it would manifest right away with General Failure or Sector not found errors, even on disks that have been written to on the very same drive just moments ago. Since no such issues have been reported, you can sleep tight :)