Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!sdrc!cinnet!kilian From: kilian@cinnet.com (Kilian Jacob) Newsgroups: comp.sys.amiga.programmer Subject: Re: Short Hello World Keywords: LVO Library Vector Offset .i hard coding Message-ID: <1991May11.211913.21863@cinnet.com> Date: 11 May 91 21:19:13 GMT Organization: Cincinnati Network, Cinti. OH Lines: 44 Subject: Re: Short Hello World >You miss the point, Kilian; the programs run the same, but if the jump >table changes (another posting noted that the 400 is already a >deprecated address for the old version of a superseded funcion), having >the jump table constants hard coded in your program means you have to >change your code for it to run again; using the ones the manufacturer >supplies in the header files (I shouldn't have said linker, I had my >mind on something Mike Schwartz said earlier), all you need to do is >rerun the assembly, and you're up and running again. >Yes, you're doing exactly the same thing the header file is doing, but >that's just the point; _you_ are doing it, but you are not the one who >controls where those jump points are located, so you should be using >the mechanism that lets the "owner" of those values tell you what they >are, and that is the names as defined in the appropriate include file. > >Kent, the man from xanth. > Ok - I see the point: If you use the .i files you would only have to reassemble your program (using the *new* .i files). Well, theoratically, you're right. In reality, though, there is no reason to change (or interchange, to be excact) library vector offsets. The only reason I see why OldOpenLibrary() one day might not have the offset -408 is that Commdore dicided to get rid of it. In that case neither program (the one that uses the .i files nor the one that doesn't) would work by simply reassemblying it. In both cases you would have to insert a sub.l d0,d0 before the function call and use OpenLibrary() instead. This might happen in two case: Either Commodore runs out of space in the Kickstart ROM and thus needs to get rid of obsolete functions (rather small chances that they remove OldOpenLibrary() -- it only takes up a couple of bytes.) or Commodore exceeds the limit of max. 5461 functions per library (2^15 bytes / 6 bytes per offset). Well, howmany functions are there in the current version of the exec.library? :-) -- /