<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 17 Jan 1984 11:07:00 MST (Tue)
From   : "Frank J. Wancho" <WANCHO@simtel20>
Subject: Function 37 (clue!)

At the extreme risk of prolonging this discussion, I'm surprised that
no one noticed Jerry's not-so-subtle clue in his last message:

     fn 37 can wipe out the diredctory of a HARD (not removable) disk.

Most, if not all BIOSes are set up with hard disk logical drives
having CKS set to ZERO.  This is a crude but somewhat effective way to
indicate to CP/M that the drive is fixed rather than removable, and
not to bother doing the checksum calculation/compare.  This would be
fine in a single-user environment, but potentially devastating in a
multi-user one.

Function 37 "RESET DRIVE" is actually misnamed.  It should have been
named "RESET WRITE PROTECT VECTOR", which write-enables the indicated
drives, as opposed to "resetting" them.  A subtle but significant
difference.  An unsynchronized Function 37, combined with the fact
that hard disk drive integrity via checksum is bypassed, will indeed
cause unpredicatable results.

The correct and safe sequence is:

Function 25: Return Current Disk (needed for Function 14 below)
Function 13: Reset Disk System (ends up selecting A)
Function 14: Select Disk (to reselect the original current drive)

--Frank
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>