Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!decwrl!ucbvax!dewey.soe.berkeley.edu!oster From: oster@dewey.soe.berkeley.edu (David Phillip Oster) Newsgroups: comp.sys.mac Subject: Re: Possible LSC improvements Message-ID: <21529@ucbvax.BERKELEY.EDU> Date: Fri, 30-Oct-87 12:25:06 EST Article-I.D.: ucbvax.21529 Posted: Fri Oct 30 12:25:06 1987 Date-Received: Wed, 4-Nov-87 21:28:23 EST References: <6523@prls.UUCP> <9370001@hpfclp.HP.COM> <1365@elrond.CalComp.COM> <2354@mulga.oz> Sender: usenet@ucbvax.BERKELEY.EDU Reply-To: oster@dewey.soe.berkeley.edu.UUCP (David Phillip Oster) Organization: School of Education, UC-Berkeley Lines: 49 In article <2354@mulga.oz> jteh@mulga.oz (J.T. Teh) writes: >One flame that a friend of mine has for LS_Cv2.11 is that it does not >support MFS. He says it bombs without any messages on Finder 4.1 (MFS). >Perhaps Richard Siegal may have something to say about that. The actual problem is bad, but not quite this bad. LSC V2.11 does support MFS, what it does not support is running a program: 1.) compiled with LSC V2.11 2.) running under a System file of version 2.0 or _older_ 3.) on a machine with 128K ROMs or newer The symptom: you get a system alert (the bomb) before your main() procedure even gets called. The cause: LSC inserts preamble code before your main procedure, that initializes your initialized data. It uses a memory manager call, HGetState() to determien whethe a handle is locked or not. On some macs this trap does not exit. Instead of directly comparing the trap address with that of the UnImplemented() trap, the preamble code looks at the version number of the ROM. If you are running on a 128K ROM or newer machine, it assumes the trap is there and calls it. In fact, if you are using old system software on a new machine, that trap is a direct branch to SystemAlert(). The fix: this would be easy to fix, just change that preamble code to make the correct check. The excuse: So far, each of my complaints has been answered with: "Apple does not recommend the use of System files older than version 3.2 on machines with 128k ROMs." This means that if you want to test your programs under the old, MFS only versions of Apple's system software, you must buy an old, unenhanced Mac to test on. (Natural this is a problem only for programmers trying to do high quality work. My standard testing procedure is to thoroughly test under _every_ version of Apple's system software, starting with the current version and working backwards.) Conclusion: LSC Version 2.11 does support MFS, and does support old, MFS only versions of Apple's system software, it just currently doesn't support old versions of system software running on new ROMs. I am annoyed about this because my customers don't care about these subtle distinctions, they expect my software _work_, no excuses. I hope LSC will be fixed in the next version. --- David Phillip Oster --A Sun 3/60 makes a poor Macintosh II. Arpa: oster@dewey.soe.berkeley.edu --A Macintosh II makes a poor Sun 3/60. Uucp: {uwvax,decvax,ihnp4}!ucbvax!oster%dewey.soe.berkeley.edu