Path: utzoo!attcan!uunet!microsoft!brianw
From: brianw@microsoft.UUCP (Brian Willoughby)
Newsgroups: comp.sys.apple
Subject: Re: 35 track floppies (was BASIC.SYSTEM v1.3 Bug)
Summary: 40 tracks are easy and invisible to the user
Message-ID: <7865@microsoft.UUCP>
Date: 28 Sep 89 04:37:25 GMT
References: <890921211121.002635@DOCKMASTER.ARPA> <7834@microsoft.UUCP> <12994@athertn.Atherton.COM>
Reply-To: brianw@microsoft.UUCP (Brian Willoughby)
Organization: Microsoft Corp., Redmond WA
Lines: 109

In article <12994@athertn.Atherton.COM> paul@athertn.Atherton.COM (Paul Sander) writes:
>In article <7834@microsoft.UUCP>, brianw@microsoft.UUCP (Brian Willoughby) writes:
>> One caveat, I do make it a habit of modifying each version of ProDOS I
>> get so that it will access 40 track 5.25 disks.
[...]
>> BTW, why don't you Apple II ProDOS
>> developers just support 40 track 5.25 drives in the standard release
>> ProDOS?
>
>Probably because there are still lots of 35 track 5.25" floppy drives out
>there.  Many of them are even DISK ][s!

Yes, but supporting 40 tracks does not force all disks to become 40 track
disks.  If I'm running Pascal, DOS 3.3 or my modified ProDOS, and I stick
in a 35 track disk, then the OS will not write beyond track 35 on that
disk.  That's because DOS 3.3 has a VTOC which would mark those sectors
as not available, and Pascal and ProDOS have a 'total number of blocks on
this disk' value in the directory which will not allow the OS to allocate
blocks greater than the maximum.  The hard problem is not *preventing* an
erroneous 40 track write to a 35 track disk, but *allowing* a write to
the entended blocks/sectors by indicating that there is free space out
there beyond track 35.  That necessitates a custom formatter to produce
disks with 40 track directory sizes, but you do not need to modify Pascal
or DOS 3.3 to use these 40 track disks, just ProDOS.

>>          That is the only occasion that even tempts me to delve into the
>> dark expanses of ProDOS machine code.  (DOS 3.3 had many factors which
>> demanded modification!)
>
>What does DOS 3.3 have to do with it?  This is a hardware limitation for some
>drives and a media compatibility problem in general.

There is no compatibility problem, and it has everything to do with DOS
(IMHO) because DOS broke the 'rules' and hard-coded specific information
about the Disk ][ which prevented attaching any other drive (3.5", hard
disk, etc.).  ProDOS improved on DOS by not hard-coding limits of any
particular drive.  In case you didn't know why I'm complaining, ProDOS
returns an I/O ERROR *before* it even *attempts* to access blocks greater
than 280.  That is the ONLY hard-coded limitation within the ProDOS code
(i.e. my modification changes *1* byte to allow accessing 320 blocks, if
I can find that byte in each new version of ProDOS).  If you have a 35
track disk, then ProDOS should never seek beyond track 35 because each
and every disk has the total number of blocks encoded into the directory,
and that controls where ProDOS puts new files.  All I am asking is that
if a 5.25 disk directory indicates to ProDOS that a file has blocks
beyond 280, then ProDOS should at least *attempt* to read it before
returning an incorrect I/O ERROR message.  In fact, I don't think there
should be any hard-coded limit, ProDOS should always use the value read
from the volume currently online for the number of blocks on that volume.

One caveat (there goes another) with my modified ProDOS, if you
accidently place a 40-track disk in a drive only capable of 35 (which I
often do because my drive 2 is a 35er), the ProDOS track seek function
will enter an endless loop trying to move the head to an impossible
track.  In my opinion, the track seek routine doesn't have to be coded
with such limiting assumptions.  I also don't think that to be a serious
drawback because 40 track disks shouldn't be in the drives of people who
only own 35 track disks (for the most part).

>As I understand it (it's been a while, so this might have changed), 35 tracks
>were defined as the standard size for 5.25" floppies, though some manufacturers
>discovered that stretching things to 40 tracks worked okay.  This was before
>77 track 5.25" floppies came out, but they never really caught on anywhere but
>AT class IBM machines and clones (and maybe on Commodore machines).

In my admittedly limited experience, no other drive (except the TI-99) is
limited to less than 40 tracks.  If you pop the lid on your drive and
look at the size of the 'window' compared to the position of the head
while formatting a disk, you will notice that the 35th track is nowhere
near the limit.  Why did they make the window for the drive head so large
if 35 tracks was the standard?  Also, according to one source, there were
two drives made by Shugart which were used in Disk ][ units.  The first
one used by Apple was 35 track, and the second was the SA-490 mechanics
version (I'm not absolutely sure about that number) which accesses 40
tracks and handles half-tracks better.  I found this out before I
purchased my first drive, because Apple Disk ][ drives were >$550.  I
wanted a Shugart drive, for the same quality as Apple's, but I only paid
$199.  That was many years ago, and the few people I know with genuine
Apple Disk ]['s seem to all have the 35 track version.  BTW, I can
actually get 41 tracks, but since I've never read about anyone using that
many, I've never tried to *use* a 41 track disk.

>A better solution would be to write installable drivers for 40-track floppies,
>and distribute software on 35-track floppies.

Great idea!  But I think that ProDOS 8 checks the slot ROMs for the
driver addresses on booting, so these drivers would have to be loaded in
on every ProDOS startup.  They would also take up memory, when a simple
change in one byte would make them unnecessary.

Regarding distribution, 35-track is the only way.  Microsoft still
distributes non-OS/2 software on 360K floppies, which is a real pain, but
the only way to support everyone.  Nothing prevents you from copying them
onto larger capacity disks (we don't use copy protection).

Written correctly, I don't see how a 40-track ProDOS would cause any
difficulties for 35-track drive owners.  I don't know why I'm trying to
convince you, though, because Apple is who I need to convince :-)

>-- 
>Paul Sander        (408) 734-9822  | If you must describe both quantity and
>paul@Atherton.COM                  | quality of someone else's code, try
>{decwrl,pyramid,sun}!athertn!paul  | "awful lot."  -- independent discovery

Brian Willoughby
UUCP:           ...!{tikal, sun, uunet, elwood}!microsoft!brianw
InterNet:       microsoft!brianw@uunet.UU.NET
  or:           microsoft!brianw@Sun.COM
Bitnet          brianw@microsoft.UUCP