Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!pasteur!ucbvax!MTUS5.BITNET!JEMCCABE From: JEMCCABE@MTUS5.BITNET Newsgroups: comp.sys.atari.st Subject: GEMDOS bug (attn -- Alex) Message-ID: <8802190133.AA02942@ucbvax.Berkeley.EDU> Date: 18 Feb 88 18:04:00 GMT Sender: usenet@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 50 Date: 18 February 1988, 12:35:09 EST From: Jim McCabe JEMCCABE at MTUS5 To: INFO-ATARI16 at SCORE.STANFORD.EDU Subject: GEMDOS bug (attn -- Alex) [] I have found an annoying bug in GEMDOS, and it occurs so frequently that I'm sure someone out there must know how to avoid it. In a disk-storage-intensive program I'm working on, it becomes advantageous to be able to swap disks after loading the program. (For example, one might load the program, then insert a data disk...) I've noticed that GEMDOS is consistantly unable to read in the new directory tree from the new disk. After swapping disks, my application has no trouble locating files in the root directory, but all attempts to open files that are in a subdirectory of the new disk fail with an error -33 (file not found). I asked this question before, back in October '87. Mike Fischer (fischer@yale.arpa) was the only one to respond, and his answer was: > One > fix is to use Fsfirst with a path in the root directory to force > GEMDOS to access the disk after the swap. Then you should be able > to follow that by an Fopen for the file you really wanted. Note > however that if you are not specifying the complete pathname (with > a "^" immediately after the ":"), then you are asking for a file > relative to the current working directory, which hasn't been resent. > If this is your problem, then you also need to set the working > directory after the disk swap. I tried his advice, and it doesn't work (at least not on _my_ ST). Here's the order I perform his fix: (psuedocode) dsetdrv(0); { Set current drive to drive A } dsetpath('A:^'); { Current working directory = "A:^" } fsfirst('A:^*.*', 0); { Read first file from root directory } fopen('A:^MESSAGES.BBS^BOARD30.MSG'); { I know the fopen syntax is wrong here, but ignore that } And it still can't find the file! Can anyone help me, please?!?!? Thanks! +-----------------------+--------------------+------------------+ | Jim McCabe | Bitnet | UUCP | | G31 ECH MTU | ---------- | -------- | | Houghton, MI 49931 | jemccabe @ mtus5 | mccabe @ m-net | +-----------------------+--------------------+------------------+