Path: utzoo!attcan!uunet!cbmvax!daveh From: daveh@cbmvax.UUCP (Dave Haynie) Newsgroups: comp.sys.m68k Subject: Re: How plug compatible is 68010? Message-ID: <4300@cbmvax.UUCP> Date: 20 Jul 88 16:05:28 GMT References: <224@bcsfse.UUCP> Organization: Commodore Technology, West Chester, PA Lines: 51 in article <224@bcsfse.UUCP>, bill@bcsfse.UUCP (Bill Sears) says: > I have a UNIX computer with a 68000 processor. I have heard that > the 68000 has a problem with restarting an instruction and thus virtual > memory systems are impossible (??). I have also heard that the 68010 > corrects the bug in the 68000, and that it is plug-compatible. The 68000 has a design flaw, in that it was never designed to handle virtual memory. In that the bus error exception used to indicate a page fault doesn't save enough information to restart or continue the instruction. There have been novel ways around this -- Apollo used two 68000s in some of their earlier machines, but without some kind of special hardware you're SOL trying to implement virtual memory on a 68000. Fortunately, the 68010 does it right. It actually uses instructuion continuation rather than restart. And the fact that it works immediately implies one software difference between it and the 68000 -- the exception stack that you get from a bus error is longer, in that it's saving internal context stuff that's necessary to continue the instruction after you RTE. The other software difference is based in support for virtual machines. The 68000 lets a User-mode program execute the MOVE SR, instruction. If you're building an operating system or some-such under a 68000, that OS will be able to tell that it's not really running in Supervisor mode via the MOVE SR instruction. On the 68010, that instruction causes an exception in User mode, so that the actual results of that instruction to a User mode program are defined by the Supervisor program. And the 68010 add the MOVE CC, instruction to let a User mode program at the condition codes it's allowed to look at. > What I'm wondering is, is it really 100% pin-compatible with the 68000? Yup. > Can I buy a 68010, replace the 68000 in my computer and still run all of the > existing software and have everything work? Is it that easy? Probably depends on your system. If no one's using MOVE SRs, you'll be OK. If you can add an exception handler that'll handle MOVE SRs, you'll still be OK. If your system uses bus error for something and doesn't know about 68010 type exceptions, you may be in trouble. It works OK on an Amiga, but the Amiga OS know about the 68010 differences. It may or may not work on other 68000 based computers, depending on what their software does. > Bill Sears ...!uw-beaver!ssc-vax!voodoo!bcsfse!bill > FSE development project > Do-it-yourselfers motto: "Shit!! That broke easy." -- Dave Haynie "The 32 Bit Guy" Commodore-Amiga "The Crew That Never Rests" {ihnp4|uunet|rutgers}!cbmvax!daveh PLINK: D-DAVE H BIX: hazy "I can't relax, 'cause I'm a Boinger!"