🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.ibm.pc
Article #26482

Re: 3.5-inch internal drive B: write

#26482
From: bevans
Date: Sat, 16 Apr 1988 17:06
108 lines
5502 bytes
>> 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
Technical Details
Message-ID: <63200039@convex>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att-cb!osu-cis!tut.cis.ohio-state.edu!rutgers!mit-eddie!bbn!oberon!sdcrdcf!otto!convex!authorplaceholder
References: <149@dogie.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att-cb!osu-cis!tut.cis.ohio-state.edu!rutgers!mit-eddie!bbn!oberon!sdcrdcf!otto!convex!authorplaceholder
From: bevans@convex.UUCP
Newsgroups: comp.sys.ibm.pc
Subject: Re: 3.5-inch internal drive B: write
Message-ID: <63200039@convex>
Date: 16 Apr 88 17:06:00 GMT
References: <149@dogie.edu>
Lines: 108
Nf-ID: #R:dogie.edu:-14900:convex:63200039:000:4938
Nf-From: convex.UUCP!bevans    Apr 16 12:06:00 1988