Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!security!genrad!grkermit!masscomp!clyde!floyd!harpo!ihnp4!zehntel!hplabs!sri-unix!WANCHO@simtel20 From: WANCHO%simtel20@sri-unix.UUCP Newsgroups: net.micro.cpm Subject: Function 37 (clue!) Message-ID: <15648@sri-arpa.UUCP> Date: Tue, 17-Jan-84 13:07:00 EST Article-I.D.: sri-arpa.15648 Posted: Tue Jan 17 13:07:00 1984 Date-Received: Fri, 20-Jan-84 06:06:56 EST Lines: 28 From: "Frank J. Wancho" 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