Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!cbmvax!daveh From: daveh@cbmvax.cbm.UUCP (Dave Haynie) Newsgroups: comp.sys.atari.st Subject: Re: a 68010 for your st? Message-ID: <1569@cbmvax.cbmvax.cbm.UUCP> Date: Tue, 17-Mar-87 14:30:53 EST Article-I.D.: cbmvax.1569 Posted: Tue Mar 17 14:30:53 1987 Date-Received: Thu, 19-Mar-87 00:50:16 EST References: <682@viper.UUCP> Distribution: world Organization: Commodore Technology, West Chester, PA Lines: 65 in article <682@viper.UUCP>, john@viper.UUCP (John Stanley) says: > > I've been discussing this with a small group of Amiga users. They are having > the same problems upgrading to 68010's as we are. Aparently there > is either an alternate "kick-start" disk for use with 68010 Amigas and/or > there are some people experimenting with a method of detecting the different > CPU's and booting the correct Amiga os based on what's in the machine. > > Either way, it means they have two different operating systems for the > different cpus. This is a major problem all users wanting to upgrade are > going to have to face regardless of the machine (ST or Amiga) they're using. WRONG!!! The Amiga works just dandy with a 68010, 68020, etc. No alternate KickStart or other major modification is necessary (well, of course, you'd need some interface hardware for a 68020). The Amiga's OS was designed from the start to support any of the 680xx chips running at any speed, and knows which chip is in the system, and provides processor independent ways of doing the things that cause problems in other OSs. There are two major problems with running the 68010 or 68020 on a system that was originally intended for the 68000. The first of these problems is the use of the 68000's MOVE from SR instruction. The newer processors allow this instruction only in Supervisor mode so an operating system running in User Mode can't see the "S" bit and tell that its really not in Supervisor mode, where most OSs like to be. The 68010 give you a MOVE from CCR instruction to access the condition codes. The Amiga's Exec provides a processor independent function, "GetCC()", which allows a program to get condition codes from any processor. A (very) few developers have ignored this; fortunately for any application that does ignore this and uses the MOVE from SR, its a small matter to install an exception handler that'll trap the exception this causes, read the condition codes via GetCC(), and then resume normal operation. The other big problem when upgrading processors is the fact that the newer processors store much more information on their exception stacks than the 68000 does. The 68010, for instance, stores information on the internal processor state to support instruction continuation necessary for virtual memory systems. Unfortunately, lots of 68000 programmers like to play around with what's on the stack after an exception. If you switch from a 68000 to a 68010, there's going to be different stuff there, and if your program depends on that stuff, it'll probably die with the 68010 or 68020 in place. The Amiga's ExecBase structure contains a field that tells a program the type of processor in use; thus, any exception handling code can use this to examine exception stacks in a way appropriate to the processor currently in use. Unfortunately, this is a much more complicated problem than the MOVE from SR problem, so there's no real way to fix programs that don't watch out for other processors in place other than rewriting the offending code (this if of course true for all 68000 systems, not just the Amiga or Atari). All of the Amiga's OS software works on any processor, and probably more than 95% of all commercial and public domain software are well (the Amiga ROM Kernal Manual talks about 68010 and 68020 compatibility right on the 5th page of its preface; all the developers work from this book). > John Stanley (john@viper.UUCP) > Software Consultant - DynaSoft Systems > UUCP: ...{amdahl,ihnp4,rutgers}!{meccts,dayton}!viper!john -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dave Haynie Commodore Technology // /| ___ __ __ __ {ihnp4|caip|rutgers}!cbmvax!daveh |\ // /_| | / \ / \ / \ Commodore rarely admits to knowing me, \\// / | +--+ | | | | | | much less sharing my personal opinions. \/ / | |___ \__/ \__/ \__/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~