[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

1328.0. "68010 question" by UTROP1::TRAMONTINA () Wed Apr 13 1988 11:50

    Hi,
    
    I am an Atari ST owner who's confused by the fact that on the Amiga
    everybody has an 68010 installed and in the Atari world 'nobody'
    has. OK on the Atari the 68000 is soldered on the board, on the
    Amiga it's in an socket (I think).
    
    The other problem is the instruction(s) that are perfectly legal
    on an 68000 in user mode. But will cause problems on an 68010, 68020
    (execption, Privileged Instruction (???)). On the Amiga there's
    a public domain program to handle the exception in such a way the
    program gets the wanted results (the statusregister I beleive) and
    the machine doesn't crash (or as we (Atarians) say "Bombe out").
    
    What I want to ask is:
    
    -	Does somebody have the source code of that program, if so will
    you send me a copy?
    
    -	If no source available how is it done?
    Just execute the same instruction in the traphandler because that's
    always in supervisor mode. And pass over the results?
    
    I anybody could help me I would be very pleased.
    
    Renato.
    
    (UTROP1::TRAMONTINA)
                                                              
T.RTitleUserPersonal
Name
DateLines
1328.1WJG::GUINEAUWed Apr 13 1988 12:2412
I can't remember exactly the differences, but I think if the ST operating
system doesn't expect a 68010 there, you'll have more than just your
own programs to deal with...

I think on the 68010, the "get processor status" instruction is now privleged
so executing it in other than super mode causes an exception. I think there was
also some additional info added to the interrupt stack frame or something
like that??

John

1328.2STAR::BANKSIn Search of MediocrityWed Apr 13 1988 13:025
    I think the biggest problem is the difference in the exception and/or
    trap stack frames.  The 68010 pushes an extra word, and since the
    program is just expected to know this stuff when it unwinds the stack,
    you'd better know which processor you're running on beforehand or you
    might not unwind the right amount. 
1328.3seen that hack..MTBLUE::PFISTER_ROBSteak knife, puta hole in my headWed Apr 13 1988 13:566
The guilty instruction is a MOVESR  which is well documented in ALL of the
Amiga RKM books as a no-no.  Fred Fish wrote a hack that caught the invalid
instruction processor trap, and either simulated it, or did it in `supervisor'
mode.  I'll see if I can't dig up what exactly he did...

Robb
1328.4BAGELS::BRANNONDave BrannonWed Apr 13 1988 16:3821
    re: .0
    
    "on the Amiga everybody has an 68010 installed"
    Why?  Psygnosis in the UK is famous for copy protected games that
    won't run on a 68010.  I seem to remember AmigaBasic also has
    problems with it.  Decigel and the 1.2 enhancements to the OS,
    will let you run stuff on the 68010, but I believe the performance
    boost is only 5-10%.  Depends on if the stuff you're doing is
    uses the 68000 a lot.  The performance boost on the ST might be
    greater, on the Amiga a lot of stuff is off-loaded to custom chips
    instead of the 68000.
    
    The ST's version of GEM appears to be the main reason why the 68010
    won't run.  I saw mention on usenet of some German folks that had
    "fixed" GEM so that it can run on 68010 and 68020.  Atari hasn't
    done that yet.  GEM is basically doing the bad things that Motorola
    says don't do if you want to be compatible with the 68xxx family.
    Both in the use of address fields and stack manipulation.
    
    -dave
    
1328.5LEDS::ACCIARDIWed Apr 13 1988 17:2611
    AmigaBASIC runs fine with the 68010.  You might be referring
    to it's 24 bit address limitations, which would prevent it from
    running from 32 bit ram on an '020.
                           
    Apparently plenty of people have yelled at Psygnosis about their
    '010 and '020 incompatibilities.  Their latest ad in AmigaWorld
    makes special mention that '... runs on Amigas with 68000, 68010,
    and 68020 uprocessors...'
    
    Ed.
    
1328.6TRCT02::PINTERatomicus et citeroxWed Apr 13 1988 19:505
Um. Yeah, the MOVESR was replaced in 1.2 with a call to a supervisor mode
routine which plucked the condition codes correctly. All recent programs use
this routine (called GETCC?, I forget) rather than the MOVESR.

DECIgel isn't required anymore either...