[comp.sys.amiga.programmer] Weird 2000 vs 3000 problem

tll@nntp-server.caltech.edu (Tal Lewis Lancaster) (05/27/91)

I a program that runs fine on a 2000.  But when I try it on a 3000 it
crashes.  

The program has 2.0 specific code and was compiled under
SAS/C 5.10a. 

The 2000 is running with a GVP-a3000 with 2.0 (Kickstart 37.74,
Workbench 37.33).  When I have Enforcer running there are no complaints.

The 3000 is running under 2.0 (Kickstart 37.130, Workbench 37.46).  
Enforcer makes a bunch of complaints and the the machine locks up.  The
best guess as to the location where Enforcer complains is during a 
particular UNLINK statement.


Does anybody have any ideas?  


Thanks,


Tal Lancaster

jesup@cbmvax.commodore.com (Randell Jesup) (05/28/91)

In article <1991May27.060647.3462@nntp-server.caltech.edu> tll@nntp-server.caltech.edu (Tal Lewis Lancaster) writes:
>I a program that runs fine on a 2000.  But when I try it on a 3000 it
>crashes.  

>The 3000 is running under 2.0 (Kickstart 37.130, Workbench 37.46).  
>Enforcer makes a bunch of complaints and the the machine locks up.  The
>best guess as to the location where Enforcer complains is during a 
>particular UNLINK statement.

	A common cause of something like this is running 1 byte past the end
of a string.  This puts a null byte in the high byte of the next longword.
Of course, if all your memory is below 0x00ffffff and the next longword is
a ptr, this has no effect.  On an A3000, there's memory above that, so the
address can be trashed.  This is what was wrong with Less on the fish-disks.

-- 
Randell Jesup, Jack-of-quite-a-few-trades, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Disclaimer: Nothing I say is anything other than my personal opinion.
"No matter where you go, there you are."  - Buckaroo Banzai