M680*0 "small model"

Steve Villee steve at anasazi.UUCP
Wed Jun 19 03:47:33 AEST 1985


> 
>      In the endless debate over the relative performance of various micros,
> much discussion centers around whether "small model" 80*86 code can outperform
> M680*0 code developed for 24+ bit addresses and 32 bit integers (a
> "huge model").  In fact, Intel has recently been running a glossy ad which
> is implicitly based on this type of comparison.  Overlooked in the debate,
> however, is the fact that the M680*0 has a logically consistent subset of
> addressing modes and operations which constitute a "small model". 
> 
>      From now on, let's compare apples to apples. 
> 
> 
> ================================
> Jim Hanko, UNIX group, Motorola Microsystems, Tempe, AZ U.S.A
> {seismo | ihnp4 } ! ut-sally ! oakhill ! mot ! hanko
> ================================
> Disclaimer: the opinions expressed here are my own, but anyone may adopt them.

I don't think it's quite fair to compare this "small model" with
the small model provided by the Intel 8086 or 8088.  If your 68000 system
has an MMU, it might be almost reasonable, but even there, many OS's
are not set up to let user programs address the range ffff8000 to ffffffff.
So it might well be that all code and data would have to fit in the
first 32K.  In any case, this 68000 "small model" does not readily
upgrade to something analogous to the Intel medium model (separate
code and data, with 64K for each).

The real problem is if your 68000 system does not have an MMU.  This
is the case with the Macintosh, Jackintosh, Amiga, etc. that are in
the same price league with the IBM PC and clones.  In this case, you
are limited to one "small model" process running at once, and it is
very unlikely that the range ffff8000 to ffffffff is available.  You
also have to watch out for the interrupt vectors.

Don't get me wrong.  I'm no fan of the 8086 architecture.  But at least
things like PC/IX are possible on an 8086 system without an MMU,
with lots of small model processes running that the OS can switch
between easily.  While there is no rigid memory protection, it's
pretty tough to step on other processes accidentally.  You have
go into assembly language and muck with the ES or something.

A fairer "small model" for the 68000 would use (Am,Dn.W) addressing
modes, with the 16-bit pointer in Dn and some kind of base address
in Am.  This would provide closer to the same capability that Intel
small model provides.  But of course this would be slower than the
large model!

--- Steve Villee (asuvax!anasazi!steve)
    International Anasazi, Inc.
    2219 East University Drive
    Phoenix, Arizona 85034
    (602) 275-0302



More information about the Comp.lang.c mailing list