Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!indri!nic.MR.NET!umn-d-ub!umn-cs!ns!logajan From: logajan@ns.UUCP (John Logajan) Newsgroups: comp.sys.atari.st Subject: GFA BASIC Bug (or feature?) Message-ID: <1217@ns.UUCP> Date: 21 Mar 89 17:47:43 GMT Organization: Network Systems Corp. Mpls MN Lines: 24 Thanks entirely to Hans-Ch. Eckert of Berlin, West Germany for solving this "problem" I had with GFA Basic! To wit: GFA BASIC apparently moves valid strings around when it does garbage collection. Thus if you poke, or otherwise put, a machine language routine in a string, it will from time to time, be moved around. Eckert's fix is to get the new VARPTR(X$) value *EVERY* time the machine language routine is called. My accidental fix (because I didn't understand the problem) was to move the machine language routine into an integer array. (Gee, I hope they don't do garbage collections on arrays????) GFA Basic Programming rule #978 1.) Either get the new pointer before each call to a machine-language "string" or 2.) Place the mach-lang routine in a "fixed" location. (I would have said in an integer array, but I have just raised doubts in my own mind whether such arrays can be counted on not to hop around.) -- - John M. Logajan @ Network Systems; 7600 Boone Ave; Brooklyn Park, MN 55428 - - ...rutgers!umn-cs!ns!logajan / logajan@ns.network.com / john@logajan.mn.org -