home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #3
/
MONSTER.ISO
/
faq
/
fantom.faq
< prev
next >
Wrap
Text File
|
1993-09-28
|
8KB
|
146 lines
"I put in a floppy, do DIR, put in another floppy, do DIR, and get
the directory of the *first* floppy!"
This is called Phantom Directory, and it is dangerous. DOS did not
notice that you changed disks, so it will write the right thing to the
wrong disk, scrambling both the directory and the files. DOS dectects that
you have changed the disk with a switch and wire called ChangeLine.
This is normally a problem only on AT-class machines (286, 386,
486, etc), and with 720K, 1.2M and 1.44M drives. XT-class machines did not
usually support changeline, and 360K drives did not have the switch.
CHKDRV.ZIP in IBMHW forum LIB 1 (22K) is a program to test the
floppy change line. However it only tests A: and B:. External drives such
as D: etc. are not supported the same way, so cannot be tested as simply.
"What do I do to avoid trashing my disks?"
If you are at the DOS prompt, A:> or B:> or C:>, you can press ^C
(hold down the Ctrl key and tap the C key) right after changing the disk.
This tells DOS to "flush the buffers", to forget all it knows about the
current disk. Next time you ask to read or write the disk DOS will have to
physically read it, not rely on it's buffers.
If you are in an application program, don't switch disks while the
program is running. It may do it's own buffering. Exit completely out of
the program to DOS, change the disk, and do ^C. Then you can re-start your
application.
"Why does this happen?"
All drives (except 360K drives) have a switch that detects either
door opened or disk ejected. On AT-class machines , most versions of DOS
rely on this switch to tell when the disk has been changed, and DOS needs
to re-read the disk. If the disk has not been changed, DOS uses the copy
of the disk's directory held in memory. The wire in the drive cable that
carries this signal is called ChangeLine.
"Can I fix it so I don't have to be doing ^C all the time?"
DC JUMPER
If this happens on a newly installed or seldom used drive, check
the DC jumper, usually at the rear of the drive. There should be a jumper
on the DC pins. Some drives do not support DC on pin 34, but instead carry
a Standard Ready (SR) signal on the same pin, just the opposite of DC! If
your drive has pin 34 set to SR, then even if you change your disk, your AT
think it has the first disk. If there is a jumper on the drive labeled
"SR", put it in the other position if available, otherwise remove it. If
your drive has always had ChangeLine problems then odds are that one of
these jumpers is the problem.
"But it USED to work!"
What if the drive used to work correctly, but has just started this
Phantom Directory trouble?
STICKY SWITCH
The most common cause seems to be a sticky switch. Sometimes it
gets jammed with dust, and a blast of compressed air in the disk slot frees
it. On 3.5" drives, the switch is often a tiny pin at the lower left of
the drive slot, next to the switch that detects 1.44M or 720K diskettes.
On other drives it is an infrared photo detector, and a scrap of oxide or
a clump of dust gets in its eye. The switch or detector is tiny, and not
available separately, so if blowing and jiggling doesn't fix it you are in
trouble.
CABLES AND CONTROLLERS
Another possibility is that pin 34 in the drive cable is bad.
Because it is on the edge of the cable, it is slightly more likely to be
not plugged in all the way, or to have been pinched. Look at the cable,
and wiggle both ends to loosen any tarnish on the pins. If you have a
continuity tester, check that wire 34 conducts. Cables are cheap and
should be considered replaceable.
It is possible for a controller to go bad.
I tend to doubt that bad cables or bad controllers cause most of
the phantom directory problems we see. Why should pin 34 go bad so much
more often than any other? We don't see data pin troubles nearly as often
as pin 34 related troubles. I think the switch goes bad.
CUSTOM DOS
Some versions of DOS are customized for certain non-standard
hardware. Many laptops are much happier with the DOS supplied with them
than with any other version. Try the original DOS if you have phantom
directory troubles.
OTHER SOFTWARE
One of the reasons a DISKCHANGE failure can occur is a conflict
with a memory-resident program that affects access to the disk, such as
disk cacheing software, network drivers, and computer viruses. To rule out
the possibility of a software-related problem, try cold-booting your PC
from an original DOS boot diskette (i.e., one with no memory resident
programs or viruses on it) and see if the disk drives work as normal. If
so, you may want to look into a software conflict or virus problem. (Thanks
to A. Goretsky (McAfee) 76702,1714 for this tip!)
DRIVPARM
Here is a trick that worked for me with a $10 720K drive and DOS
5.0. The drive did not reliably detect disk change. In CONFIG.SYS I put:
DRIVPARM=/d:1 /h:2 /s:9 /t:80
and now it is safe to use. Other suggestions I have seen:
DEVICE=C:\DOS\DRIVER.SYS /D:1 /F:7
DRIVPARM=/D:0 /F:1
DRIVPARM modifies DOS's drive parameter table for an existing
drive. /d:1 means B:, A: would be /d:0. /h:2 is 2 heads, /s:9 is 9
sectors per track, /t:80 is 80 tracks. Note that I did *not* use the /c
switch, which enables Disk Change detection. Now DOS thinks B: is some odd
2 head, 9 sector 80 track device, and doesn't assume it has a Disk Change
switch.
DRIVPARM was introduced in DOS 3.2. It is an internal DOS command,
do not use DEVICE= to load it. My book says it does not work correctly in
3.3. It worked for me in 5.0, but I have not tried it in 6.0, nor with
DR-DOS. It may not work correctly with backup programs that need to know
the true state of Disk Change.
DRIVER.SYS was introduced in DOS 3.2. It is a device driver so you
must use DEVICE= to load it. (If it works you can then try DEVICEHIGH= to
load the driver in high memory.) It's main purpose is to assign a new
letter to an existing drive. It can make your B: also function as D:.
(this is handy for copying disks in the same drive (COPY B:*.* D:), but
SUBST will do the same with less fuss.) You must specify either the
drive's physical type, or the head, sector and track count. You may have
to modify (or add) your LASTDRIVE line in CONFIG.SYS.
If you already use DRIVER.SYS to set up an unusual drive, and you
have changeline problems, be sure you don't have "/C" on the DRIVER.SYS
command line.
If you don't use DRIVER.SYS on the troublesome drive already (most
internal drives should have no need for it), try DRIVPARM first. Test it.
If it doesn't work try DRIVER.SYS, but note that it creates a new logical
drive, and you will have to access the drive through it's new "name"
(generally D:) to get the benefit.
A NEW DRIVE
This used to be the last resort, but the way drive prices have
fallen it makes a lot of sense. Remember, the data is often worth more
than the drive. Buy a new drive, and insist on documentation for the DC
jumper, and test it after you install it.
AUTHOR:
If any part of this document is unclear, or incomplete, or if you
know anything I have not mentioned, please tell me. Leave a message either
on the IBMHW forum or in my E-Mail box. If I don't reply in a few days,
post a message on IBMHW to ALL or Sysop.
Paul Reid 71031,3603