Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!knuth!mjbtn!raider!elgamy!elg From: elg@elgamy.RAIDERNET.COM (Eric Lee Green) Newsgroups: comp.sys.amiga.advocacy Subject: Re: 8-bit death Message-ID: <00674275937@elgamy.RAIDERNET.COM> Date: 15 May 91 02:52:17 GMT References: <1991May13.224027.9132@NCoast.ORG> <3626.tnews@templar.actrix.gen.nz> <1991May12.181436.20304@NCoast.ORG> <3691.tnews@templar.actrix.gen.nz> Organization: Eric's Amiga 2000 @ Home Lines: 31 From article <1991May13.224027.9132@NCoast.ORG>, by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): > And using a non-interrupt entry point runs the risk of somebody accidentally > typo'ing a #define and making every program in existence break as a result. This is the second time I've seen this, and I don't understand it. First of all, the Amiga doesn't have any "system call" entry points. It has shared libraries, some of which are located on disk (e.g. the IEEE math simulation libraries for machines without a math chip) and some of which happen to be built-in to the ROM. The compilers generate calls to these libraries by using base pointer and offset (i.e., a jump table starts at the library base pointer). How could typo'ing a #define break every program in existence? When all those programs already have the correct offsets into the library jump table compiled into them? Oh, you mean if one of the OS people accidently insert a function into the jump table in the wrong place? But that'd be caught early in the test-debug cycle, long before the library was released to the general public. And nobody types in #defines for these offsets... they're automagically generated from the Commodore-supplied library description files, or linked in via a Commodore-supplied stub code library (amiga.lib). Not that it matters, anyhow. Even if you were using direct offsets (like some of the assembly language folks like to do), typo'ing would just mean that your program would crash (i.e., would call the wrong function). It wouldn't make any other program break. They already have those offsets compiled into them. So tell me, what exactly do you mean by "typo'ing a define and making every program in existence break"? Because I just don't see how it could happen, on the Amiga. -- Eric Lee Green (318) 984-1820 P.O. Box 92191 Lafayette, LA 70509 elg@elgamy.RAIDERNET.COM uunet!mjbtn!raider!elgamy!elg