[comp.sys.ibm.pc] 3.5-inch internal drive B: write

bevans@convex.UUCP (04/17/88)

>> I have:
>> ...  an Everex 1800B (Club AT) with
>> ... a 3.5"/1.44MB floppy (B:)
>> ... and DOS 3.3.
>> 
>> I can read both 720KB and 1.44MB disks (written on a different
>> machine) in drive B:, but I can't format or write an already
>> formatted disk of either kind in that drive.  

Yup.  Classic behavior.  I helped work on a Floppy controller to talk to
3.5" drives and I witnessed a entire plethora of failures (we did get it to
work).  And yes, you've got to have DOS 3.3 to talk to 720K and 1.44M 3.5"
drives, although, 3.2 will also work with a 720K (only) 3.5" drive, also.
You see, it works this way ...

When DOS boots up, it determines drive media type by attempting to "walk"
the floppy drive head across the media to track 50.  If it can, (i.e., no
errors returned from the controller) it assumes that the media (drive) is an
80 track device.  If not, 40 tracks are assumed.  That's how the machine
"knows" what media type it is attempting to boot from (9 sectors/track are
assumed w/40 track device and 15 sectors/track w/80 track device;  its in
the BIOS).   

If the media is formatted, DOS can tell what kind it is by attempting to
read Track 0 by trying a various number of sector/track combinations (but
DOS doesn't pass this info to the DOS disk-write services because DOS makes
certain assumptions that a drive/disk combination may change at any time).
It does this drive parm permutation from looking at internal drive tables
set up in the INT 13 code (and only 3.3 has the 1.44m drive parms built in).
That's why DOS has to know from the outset what a drive type AND media type
is before writing or formatting.

Now then:

Drive      Tracks   Sectors/Track   Sector Size     Data Rate  RPM
------------------------------------------------------------------
360k         40            9             512          250K     300
720          80            9             512          250K     300
1.2M         80           15             512          500K     360
1.44M        80           18             512          500K     300

If DOS is confronted with a device that it KNOWS is 80 tracks, it STILL has
to know how many sectors/track and the **FORM FACTOR**.  That's how DOS
knows the DRIVE TYPE, in addition to the media type.

So the following two lines in CONFIG.SYS will tell DOS that a 1.44M logical
drive and a 720K logical drive are installed:

DEVICE=C:\DRIVER.SYS /D:1 /T:80 /S:18 /H:2 /F:7   /* 1.44M drive type */
DEVICE=C:\DRIVER.SYS /D:1 /T:80 /S:09 /H:2 /F:2   /* 720K  drive type */
                                           ^^^^
>> The behavior is:  I go FORMAT B:<cr>, get the standard "insert &c"
>> message, do so, and hit <cr>.  I see the usual line that tracks
>> head/cylinder counts during formatting, but it stays at 0/0 for
>> about 3 seconds (the drive access light is on), then comes the
>> dreaded message: Invalid media or Track 0 bad - disk unusable/
>> Format failure.  It isn't the physical disk, which formats fine
>> in the nearby PS/2.  I've tried specifying /n:18/t:80 (though the
>> manual says not to), and I even tried installing DRIVER.SYS (though
>> it's an internal drive).
>> 

When formatting, DOS also needs to know what to tell the format routine,
(INT 13, Func #(I forget)) what to do.  It doesn't matter if the drive is
internal or external, for a 1.44m drive, DRIVER.SYS has to be installed, AND
you HAVE (yeah, i know what the DOS book says B-) ) to tell FORMAT what to
do with the media you're formatting.

What's happening is if DRIVER.SYS is installed, AND the FORMAT program left
w/o a clue to the media type, FORMAT gets confused because it makes certain
assumptions about the device (which are wrong) and reports "bad media --
format failure".  So:

format b: /N:18 /T:80  /* 1.44m */
format b: /N:09 /T:80  /*  720k */

Now you *could* write a file on a 1.44m disk that DOS _thought_ was a 1.2m.

What happens is *if* the file requires more than 15 sectors, DOS will write
on what it *thinks* is sector X of the next available track and mark it so
in the FAT.  But it wasn't sector X, it was sector Y on 1.44m media and DOS
reports read errors, truncation, etc.

>> ... the Club folks tell me my BIOS is the correct one ...

Its helpful if your BIOS is up-to-date, but is doesn't HAVE to be.  DOS 3.3
was designed to let 3.5" drives be installed in _older_ PCs and overlays the
INT13 code in those BIOS, too.

Hope this helps,
Bruce Evans

*************************************************************************

Bruce C. Evans
Convex Computer Corporation
701 N. Plano Road
Richardson, TX 75081

UUCP: {ihnp4,uiucdcs,ut-sally,sun}!convex!bevans (america)
UUCP: {cvxfr,connie,eurodem}!convex!bevans (europe)

Views!?  Opinions?!  Are the above mine?  Absotively impossible, I just
found the above growing in my refrigerator one morning ...

"This time it was right, it would work, and nobody would have to get 
 nailed to anything ..." - Douglas Adams

bkliewer@iuvax.cs.indiana.edu (Bradley Dyck Kliewer) (04/19/88)

>So the following two lines in CONFIG.SYS will tell DOS that a 1.44M logical
>drive and a 720K logical drive are installed:
>
>DEVICE=C:\DRIVER.SYS /D:1 /T:80 /S:18 /H:2 /F:7   /* 1.44M drive type */
>DEVICE=C:\DRIVER.SYS /D:1 /T:80 /S:09 /H:2 /F:2   /* 720K  drive type */
>                                           ^^^^
>format b: /N:18 /T:80  /* 1.44m */
>format b: /N:09 /T:80  /*  720k */
>
>Its helpful if your BIOS is up-to-date, but is doesn't HAVE to be.  DOS 3.3
>was designed to let 3.5" drives be installed in _older_ PCs and overlays the
>INT13 code in those BIOS, too.

But, there must be something in the BIOS that DOS needs.  I have a 1.44M in
a _very_ old IBM AT, and try as I may, I cannot get it to work even with
DOS 3.3 and the parameters you give above.  I use a device driver from 
Bastech (and I'd rather not since it is copy protected).  Even with the
Bastech driver, I still have major problems formatting 720K diskettes (the
format program is also Bastech's).  I get ERROR CLEARING FAT on about 60%
of 720K floppies.  I can read and write other 720K's fine, and I have no
problems with the ones I can format.  So far, I haven't had any problems with
1.44M's, but then I haven't used many since they are rather expensive.

Bradley Dyck Kliewer                Hacking...
bkliewer@iuvax.cs.indiana.edu       It's not just an adventure
                                    It's my job!