Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utcs!mnetor!seismo!brl-adm!caip!topaz!nike!ucbcad!ucbvax!UHUPVM1.BITNET!ACS19 From: ACS19@UHUPVM1.BITNET.UUCP Newsgroups: net.micro.atari16 Subject: megamax bug, YES!! Message-ID: <8607200204.AA19611@ucbvax.Berkeley.EDU> Date: Sat, 19-Jul-86 20:09:59 EDT Article-I.D.: ucbvax.8607200204.AA19611 Posted: Sat Jul 19 20:09:59 1986 Date-Received: Sun, 20-Jul-86 07:57:41 EDT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: ACS19%UHUPVM1.BITNET@WISCVM.ARPA Organization: The ARPA Internet Lines: 22 Well, I hate to say it, but there is a definite bug in Megamax C. The relative addressing did not work. When I was replacing a system vector with the address of a routine, the relative offset from the PC was not correct, and the system would crash every time I would call the routine via (*ptr)(var1,var2,..) Example of what I am doing... long *vector= ..... /*vector address*/ .... ... xbios(38,install); .... ... install() *vector=(long)routine_name; .... ... basically, that is it. The relative offset (as I examined the routine in SID) was incorrect by about 24 bytes. If anyone from Megamax is out there, I can send the source to you, so you can try it for yourself.