Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!sri-spam!mordor!styx!lll-lcc!pyramid!voder!apple!dgold From: dgold@apple.UUCP (David Goldsmith) Newsgroups: comp.sys.mac Subject: Re: Should we support 64K ROMs anymore? Message-ID: <342@apple.UUCP> Date: Mon, 1-Dec-86 17:15:13 EST Article-I.D.: apple.342 Posted: Mon Dec 1 17:15:13 1986 Date-Received: Tue, 2-Dec-86 00:56:20 EST References: <385@runx.OZ> <1366@hoptoad.uucp> Reply-To: dgold@apple.UUCP (David Goldsmith) Organization: Apple Computer Inc., Cupertino, USA Lines: 37 In article <1366@hoptoad.uucp> tim@hoptoad.UUCP (Tim Maroney) writes: >It was, after all, only 64K of code originally, which is only a few >man-months of effort in a high-level language; Apple has, in my opinion, >over-estimated the difficulty of re-implementing the Mac OS, because they >fail to separate design from implementation (obviously, the design part is >already done) and because they employed only assembly language and the >atrocity called Lisa Pascal (slow compiler, producing slow code that had to >be hand-optimized) in implementation, causing long delays. However, >everyone seems to have accepted Apple's estimates. You are welcome to try this; however, you will find that 50% of the existing applications break, because they rely on features of the ROM above and beyond those documented in IM, including those which are not "features" but actually implementation details. Many commercial applications: - Rely on undocumented low memory variables which are in fact internal to the ROM's implementation. If it's not in IM, you're not supposed to do anything but look at it when debugging. - Rely on behavior specific to the ROM's implementation rather than its interface. - Depend on values coming back in registers which are not part of a ROM call's interface, or depend on the global state (such as current GrafPort) being set a certain way which isn't part of the interface, and so on. The 128K ROM has many places where it specifically sets a certain register to a certain value before returning so a specific application won't break. - Some applications do things which are incorrect and just happen to work, and changing one tiny thing makes them break. Maintaining and enhancing the ROM is hard because so many applications go beyond IM in what they do. Of course, if you'd rather have a machine which didn't run any of your existing software, implementing the ROMs would be a snap. You're welcome to try. -- David Goldsmith Apple Computer, Inc. MacApp Group AppleLink: GOLDSMITH1 UUCP: {nsc,dual,sun,voder,ucbvax!mtxinu}!apple!dgold CSNET: dgold@apple.CSNET, dgold%apple@CSNET-RELAY