Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!tut.cis.ohio-state.edu!mailrus!csd4.milw.wisc.edu!leah!rpi!shadow From: shadow@pawl.rpi.edu (Deven T. Corzine) Newsgroups: comp.sys.amiga Subject: Re: problem using "assign" Message-ID: Date: 10 Jun 89 23:05:08 GMT References: <7144@ecsvax.UUCP> <17283@louie.udel.EDU> <7145@ecsvax.UUCP> Sender: usenet@rpi.edu Distribution: na Organization: Pi-Rho House, Troy, NY Lines: 62 In-reply-to: kms@ecsvax.UUCP's message of 10 Jun 89 02:03:21 GMT In article <7145@ecsvax.UUCP> kms@ecsvax.UUCP (Ken Steele) writes: >LC is located in sys:u and hello.c is located in sys:src >(call me mr. originality). LC1 and LC2 are located in L1:c, >everything else is in L2:. [sys:U?] >What seems to happen is this. If L1: is already in the drive, >then LC exits after the first disk swap (to L2:) with the error that >it can't find LC2. If L2: is in the drive, then LC exits >with the error that it can't find LC1. >Any suggestions? Your problem is (again) that the correct disk is not in the drive. LC is simply a driver program which parses arguments and serves to coordinate compilation at a higher level. (Unix "cc" works the same way.) When you try to compile something, LC will Execute() each stage of the compiler and (if the -L switch is specified) it will Execute() the linker as well. What it comes down to is that even though you may have LC: in your path (you should) it will not get executed unless it is immediately available. Execute() will follow the path, but it will ONLY actually ask for the disk containing C: if it can't find the executable. This means you must assign c: (as well as lc:) to L1:c, so AmigaDOS will request the disk back to continue with the compiler passes. In older versions of Lattice C, it used to Execute() "LC:LC1" instead of "LC1", so it would not follow the path. This has been changed, but can cause inconvenience for those with only a floppy drive available. If you can afford the memory, making LC1 and LC2 resident (either with ARes (if you use ARP 1.3) or Resident (with AmigaDOS 1.3)) will both save you a lot of time loading the passes, and keep you from having to have the disk in the drive. If you have less than 1 Meg of memory, you won't be able to do this. With 1 Meg, you're pushing it, but can perhaps get a workable system if you get rid of as much other ram as possible. (RAD:, other resident programs, etc.) If you've over 1 Meg, you can probably keep LC, LC1, LC2 and BLINK all resident and compile most things unless they're quite large. With over 2 Meg, you're home free. Alternatively, you can try cramming the necessary executables (lc, lc1, lc2, blink, maybe omd and one or two others) along with ALL the (compacted) include files and at least lc.lib and amiga.lib onto a single floppy... Then you can compile programs in ram (not on a floppy) with everything assigned to that single disk. For complicated programs, reassign libs: to l2:libs during linking. Anyway, I think you get the idea... [the lengths we must go to avoid disk swapping and thrashing... *sigh*] Deven -- shadow@[128.113.10.2] Deven T. Corzine (518) 272-5847 shadow@[128.113.10.201] 2346 15th St. Pi-Rho America deven@rpitsmts.bitnet Troy, NY 12180-2306 <> "Simple things should be simple and complex things should be possible." - A.K.