[comp.sys.amiga.programmer] 2.0 Compatibility problem

kskelm@happy.colorado.edu (05/15/91)

In article <21541@cbmvax.commodore.com>, jesup@cbmvax.commodore.com (Randell Jesup) writes:
> 	A slight exaggeration.  I'd guess more like 90% of what you'd find
> at, say, the King of Prussia B. Daltons' Software, including some pretty
> ancient and horrible games.  How would I know that?  Should be easy to guess...

   OK.  Here we come to an interesting problem.  I've been told time and
again by EVERYONE, that there is no functional hardware difference between
a 3000 and earlier machines (beyond the new enhancements, obviously).

   The problem is this: my software package runs on EVERY machine under 1.3,
and I worked to get it 2.0 compatible, which it IS, on every machine BUT the
A3000.  That is, it works FINE on a 3000 under 1.3, but not 2.0; An A3000/2.0
is the ONLY platform it refuses to run on.

   Any ideas there?

  Appreciate your time,

     Kevin Kelm
+------------------------------------------------------------+
|      ///  Kevin "Visionary will be done RSN" Kelm          |
|     ///  kskelm@happy.colorado.edu                         |
| \\\/// "Reality is subjective-- if you can make your own,  |
|  \XX/ then who's crazy? That's entertainment software!"-me |
| C code run.  Run, code, run--PLEASE!                       |
+------------------------------------------------------------+

chrisg@cbmvax.commodore.com (Chris Green) (05/15/91)

In article <1991May14.152100.1@happy.colorado.edu> kskelm@happy.colorado.edu writes:
>   OK.  Here we come to an interesting problem.  I've been told time and
>again by EVERYONE, that there is no functional hardware difference between
>a 3000 and earlier machines (beyond the new enhancements, obviously).
>
>   The problem is this: my software package runs on EVERY machine under 1.3,
>and I worked to get it 2.0 compatible, which it IS, on every machine BUT the
>A3000.  That is, it works FINE on a 3000 under 1.3, but not 2.0; An A3000/2.0
>is the ONLY platform it refuses to run on.
>

	Does it work on an A2000 with a 68030 card, under 2.0 with the data and
code caches enabled? If not, than you've got either a self-modifying code
problem with the code cache, or a 68020/030 instruction set compatibility
problem (on the 020/030/010, MOVE SR,xxx is a privileged instruction).
	The other thing you might have problems with is that the A3000 has memory
above the 16M addressing limit of the 68000.
-- 
*-------------------------------------------*---------------------------*
|Chris Green - Graphics Software Engineer   - chrisg@commodore.COM      f
|                  Commodore-Amiga          - uunet!cbmvax!chrisg       n
|My opinions are my own, and do not         - killyouridolssonicdeath   o
|necessarily represent those of my employer.- itstheendoftheworld       r
*-------------------------------------------*---------------------------d

kskelm@happy.colorado.edu (05/17/91)

>>   The problem is this: my software package runs on EVERY machine under 1.3,
>>and I worked to get it 2.0 compatible, which it IS, on every machine BUT the
>>A3000.  That is, it works FINE on a 3000 under 1.3, but not 2.0; An A3000/2.0
>>is the ONLY platform it refuses to run on.
>
>	Does it work on an A2000 with a 68030 card, under 2.0 with the data and
>code caches enabled? If not, than you've got either a self-modifying code
>problem with the code cache, or a 68020/030 instruction set compatibility
>problem (on the 020/030/010, MOVE SR,xxx is a privileged instruction).
>	The other thing you might have problems with is that the A3000 has memory
>above the 16M addressing limit of the 68000.

    The software works fine on *EVERY* platform but A3000 under 2.0; it works
on a 500, a 1000, a 2000, a 2500 (all in both 1.3 and 2.0), and it works
on a 3000 in 1.3, but *NOT* in 2.0.

    It is written in Benchmark Modula-2, so I would *assume* it has no
self-modifying code.  Most perplexing.

+------------------------------------------------------------+
|      ///  Kevin "Visionary will be done RSN" Kelm          |
|     ///  kskelm@happy.colorado.edu                         |
| \\\/// "Reality is subjective-- if you can make your own,  |
|  \XX/ then who's crazy? That's entertainment software!"-me |
| C code run.  Run, code, run--PLEASE!                       |
+------------------------------------------------------------+

tscott@isis.cs.du.edu (Tony D Scott) (05/17/91)

In your previous post you were saying that the software did not run under
2.0 on an A3000.  Did it by chance have a 68040 board in it.  I had a 
similar problem, and found that it did not have some sort of FPU code 
installed (or running???).  Why this caused a crash, I have no idea, since
I was not even running any FPU instructions. Everything was strictly FFP.
Anyway, have you tried it on different A3000's?  Perhaps there is a program
which is commonly run under 2.0 (ARexx for example) that comes on a 3000,
and is not running on the other machines. 
  In short, it's probably not a hardware thing.  Just software and
coincidence.
 
Tony Scott
KarmaSoft
tscott@isis

chrisg@cbmvax.commodore.com (Chris Green) (05/18/91)

In article <1991May16.200647.1@happy.colorado.edu> kskelm@happy.colorado.edu writes:
>
>>>   The problem is this: my software package runs on EVERY machine under 1.3,
>>>and I worked to get it 2.0 compatible, which it IS, on every machine BUT the
>>>A3000.  That is, it works FINE on a 3000 under 1.3, but not 2.0; An A3000/2.0
>>>is the ONLY platform it refuses to run on.
>>
>>	Does it work on an A2000 with a 68030 card, under 2.0 with the data and
>>code caches enabled? If not, than you've got either a self-modifying code
>>problem with the code cache, or a 68020/030 instruction set compatibility
>>problem (on the 020/030/010, MOVE SR,xxx is a privileged instruction).
>>	The other thing you might have problems with is that the A3000 has memory
>>above the 16M addressing limit of the 68000.
>
>    The software works fine on *EVERY* platform but A3000 under 2.0; it works
>on a 500, a 1000, a 2000, a 2500 (all in both 1.3 and 2.0), and it works
>on a 3000 in 1.3, but *NOT* in 2.0.
>

	What are the symptoms of the crash? lockup? guru( what number)?
strange behaviour? 
-- 
*-------------------------------------------*---------------------------*
|Chris Green - Graphics Software Engineer   - chrisg@commodore.COM      f
|                  Commodore-Amiga          - uunet!cbmvax!chrisg       n
|My opinions are my own, and do not         - killyouridolssonicdeath   o
|necessarily represent those of my employer.- itstheendoftheworld       r
*-------------------------------------------*---------------------------d

kskelm@happy.colorado.edu (05/18/91)

>>>	Does it work on an A2000 with a 68030 card, under 2.0 with the data and
>>>code caches enabled? If not, than you've got either a self-modifying code
>>>problem with the code cache, or a 68020/030 instruction set compatibility
>>>problem (on the 020/030/010, MOVE SR,xxx is a privileged instruction).
>>>	The other thing you might have problems with is that the A3000 has memory
>>>above the 16M addressing limit of the 68000.
>>
>>    The software works fine on *EVERY* platform but A3000 under 2.0; it works
>>on a 500, a 1000, a 2000, a 2500 (all in both 1.3 and 2.0), and it works
>>on a 3000 in 1.3, but *NOT* in 2.0.
>
>	What are the symptoms of the crash? lockup? guru( what number)?
>strange behaviour? 

   Well, on my publishers' machines, it apparently resets the system and
reboots immediately.

   It also exhibits strange behavior-- suddenly the software's right hand
doesn't know what the left is doing-- even though I'm *SURE* that a graphic
buffer has been properly loaded, the software suddenly doesnt think it is (I'll
have to work that one out one my own).

   ...Oh, yah... and I find that my executable generator does consistently
"break" under 2.0 (on any machine)... seems you folks have changed the DOS code
loader a bit???  Made it stricter? 

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

In article <1991May18.105312.1@happy.colorado.edu> kskelm@happy.colorado.edu writes:
>
>>>    The software works fine on *EVERY* platform but A3000 under 2.0; it works
>>>on a 500, a 1000, a 2000, a 2500 (all in both 1.3 and 2.0), and it works
>>>on a 3000 in 1.3, but *NOT* in 2.0.

>   Well, on my publishers' machines, it apparently resets the system and
>reboots immediately.
>
>   It also exhibits strange behavior-- suddenly the software's right hand
>doesn't know what the left is doing-- even though I'm *SURE* that a graphic
>buffer has been properly loaded, the software suddenly doesnt think it is (I'll
>have to work that one out one my own).

	The most common A3000-related problem is over-running a memory
allocation by one byte - on an machine without >24bit addressed memory, it 
usually kills the first byte of a pointer.  If it's a string, the byte used
to overwrite with is a 0, which is what was already there.  2.0 can modify
this since the order and type of memory allocations would change.

	I STRONGLY advise running it under both enforcer and mungwall.  They're
very good at catching bugs, particularily memory-allocation types.  Beyond 
that, all I can advise is to try to isolate where the problem starts (also,
since it's modula, turn on any runtime checking you can).

>   ...Oh, yah... and I find that my executable generator does consistently
>"break" under 2.0 (on any machine)... seems you folks have changed the DOS code
>loader a bit???  Made it stricter? 

	Perhaps.  Care to specify what you do that's funny?  Or send me
a copy of an dumpobj of the file (or a (small) file uuencoded).  If you
followed the existing format you should have had no problems.

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.commodore.com  BIX: rjesup  
Disclaimer: Nothing I say is anything other than my personal opinion.
Thus spake the Master Ninjei: "To program a million-line operating system
is easy, to change a man's temperament is more difficult."
(From "The Zen of Programming")  ;-)

jay@deepthot.cary.nc.us (Jay Denebeim) (05/20/91)

In article <1991May17.054910.18214@mnemosyne.cs.du.edu> tscott@isis.cs.du.edu (Tony D Scott) writes:
>In your previous post you were saying that the software did not run under
>2.0 on an A3000.  Did it by chance have a 68040 board in it.  I had a 
>similar problem, and found that it did not have some sort of FPU code 
>installed (or running???).  Why this caused a crash, I have no idea, since
>I was not even running any FPU instructions. Everything was strictly FFP.
>Anyway, have you tried it on different A3000's?  Perhaps there is a program
>which is commonly run under 2.0 (ARexx for example) that comes on a 3000,
>and is not running on the other machines. 

For what its worth, all 3000's have a FPU.

>  In short, it's probably not a hardware thing.  Just software and
>coincidence.
> 
>Tony Scott
>KarmaSoft
>tscott@isis

--

 |_o_o|\\
 |. o.| || The           Jay Denebeim
 | .  | ||  Software
 | o  | ||   Distillery
 |    |//        Address: UUCP:     mcnc.org!deepthot.uucp!jay
 ======                   Internet: jay@deepthot.cary.nc.us
                 BBS:(919)-460-7430      VOICE:(919)-460-6934

piusn@ghsaar.UUCP (Pius Nippgen) (05/23/91)

In article <1991May16.200647.1@happy.colorado.edu> kskelm@happy.colorado.edu writes:

>    The software works fine on *EVERY* platform but A3000 under 2.0; it works
>on a 500, a 1000, a 2000, a 2500 (all in both 1.3 and 2.0), and it works
>on a 3000 in 1.3, but *NOT* in 2.0.
>

If you run Kickstart 2.0 on Amiga 3000, there is build up a MMU-Table,
which doesn't like you accessing not existing memory.
If you access not existing memory for instance $300000 the system will
stop for 250 microseconds. If you access very often such not existing
memory, your amiga will hang up.
Maybe this behaviour is the reason for your problems.
You can use the excellent enforcer on Fish Disk 454 or 474
for detecting the exact details.

--
Best regards,
Pius Nippgen        VOICE: +49 6843 1522
Bergstrasse 12      UUCP:  ..uunet!cbmvax!cbmehq!cbmger!kbsaar!ghsaar!piusn
D-6657 Gersheim 8   GERMANY