[comp.sys.amiga.misc] Mac emulating Amiga

Greg_Goss@mindlink.UUCP (Greg Goss) (04/01/91)

> student@COVAX.CO.IUP.EDU writes:
> 
> An Amiga emulator on any PC would have to be the Amiga itself without
> a keyboard or RAM.
> 
> Carlos


Well?  Why not?  Isn't that how we emulate the MSDOS machines?

.../greg

student@COVAX.CO.IUP.EDU (student) (04/02/91)

     Whoever seriously considers an Amiga emulator on a Mac likely knows
very little about both the hardware and software of both systems.  The
custom chips: How in the world will you emulate the blitter or copper
at anything remotely approaching their speed?  The operating systems:
The reason AMAX exists is the inherent simplicity of the Mac's OS.  The
Amiga emulates the Mac; I don't think that could work vice-versa.
What about the Amiga's hardware multitasking?  How can the Mac properly
emulate multitasking when it can't even do it right with its own OS?!
I could go on, but I'm not going to, since I just don't have the time
to list the multitude of other problems.  The final word, in my opinion:
An Amiga emulator on any PC would have to be the Amiga itself without
a keyboard or RAM.

Carlos
Disclaimer: Don't bother.  You think I have the time?

es1@cunixb.cc.columbia.edu (Ethan Solomita) (04/02/91)

In article <9104012131.AA03364@covax.co.iup.edu> student@COVAX.CO.IUP.EDU (student) writes:
>
>     Whoever seriously considers an Amiga emulator on a Mac likely knows
>very little about both the hardware and software of both systems.  The
>custom chips: How in the world will you emulate the blitter or copper
>at anything remotely approaching their speed?  The operating systems:
>The reason AMAX exists is the inherent simplicity of the Mac's OS.  The
>Amiga emulates the Mac; I don't think that could work vice-versa.

	The reason that AMax can emulate the Mac OS has nothing
to do with its perceived simplicity, but because it REQUIRES you
to somehow get the Mac OS on disk and load it before you BOOT!

>What about the Amiga's hardware multitasking?  How can the Mac properly
>emulate multitasking when it can't even do it right with its own OS?!

	Multitasking has NOTHING to do with hardware. The Mac and
Amiga both have the same CPU and that is the key. Although
programs that directly access the hardware, even legally, on the
Amiga will crash on a Mac->Amiga emulator, any programs which
legally call the system can have hardware access "emulated",
although I can't account for the speed.

>I could go on, but I'm not going to, since I just don't have the time
>to list the multitude of other problems.  The final word, in my opinion:
>An Amiga emulator on any PC would have to be the Amiga itself without
>a keyboard or RAM.
>
>Carlos
>Disclaimer: Don't bother.  You think I have the time?

	In order for it to be full-speed, yes it would need the
hardware. But I don't believe it is impossible with a
well-written emulator to achieve reasonable speed, at least on a
machine with a Motorola 680x0 processor.

BTW: people who know better than I (no ego trips please 8) please
correct any misconceptions. Is it possible to trap all attempts
to use the hardware, even direct access?

	-- Ethan

Q: How many Comp Sci majors does it take to change a lightbulb
A: None. It's a hardware problem.

kskelm@happy.colorado.edu (04/02/91)

In article <5356@mindlink.UUCP>, Greg_Goss@mindlink.UUCP (Greg Goss) writes:
>> student@COVAX.CO.IUP.EDU writes:
>> 
>> An Amiga emulator on any PC would have to be the Amiga itself without
>> a keyboard or RAM.
>> 
>> Carlos
> 
> 
> Well?  Why not?  Isn't that how we emulate the MSDOS machines?
> 

    Why not?  Because I rather DOUBT Commodore/Amiga would be dippy enough
to sell off its custom chip! Without these, you wouldn't have too much of a
machine!

peter@sugar.hackercorp.com (Peter da Silva) (04/03/91)

In article <9104012131.AA03364@covax.co.iup.edu> student@COVAX.CO.IUP.EDU (student) writes:
>      Whoever seriously considers an Amiga emulator on a Mac likely knows
> very little about both the hardware and software of both systems.

Yep.

> The reason AMAX exists is the inherent simplicity of the Mac's OS.

No, the simplicity of the Mac's hardware. The Mac's O/S is amazingly complex,
given how little it does.

> What about the Amiga's hardware multitasking?  How can the Mac properly
> emulate multitasking when it can't even do it right with its own OS?!

Since it wouldn't be running its own O/S, who cares?
-- 
Peter da Silva.   `-_-'
<peter@sugar.hackercorp.com>.

tell@oscar.cs.unc.edu (Stephen Tell) (04/03/91)

In article <1991Apr2.000456.26982@cunixf.cc.columbia.edu> es1@cunixb.cc.columbia.edu (Ethan Solomita) writes:
>In article <9104012131.AA03364@covax.co.iup.edu> student@COVAX.CO.IUP.EDU (student) writes:

>Although
>programs that directly access the hardware, even legally, on the
>Amiga will crash on a Mac->Amiga emulator, any programs which
>legally call the system can have hardware access "emulated",
>although I can't account for the speed.

>BTW: people who know better than I (no ego trips please 8) please
>correct any misconceptions. Is it possible to trap all attempts
>to use the hardware, even direct access?

If the writers of an emulator wanted to, they could emulate the hardware
exactly.  Just use the MMU to trap accesses to the addresses of the
custom chips, then when such a trap comes in figure out what custom
chip register was accessed and simulate the register in software.
This is much like using the Emulator traps on the 680x0 to run 68881 code
without a real 68881 chip installed.  Of course, this asumes that you have
an '020 + MMU, '030, or '040.  Even then, programs that count on the
speed of a particular custom chip access are out the window, for example
display hacks that write to the chips and expect things to happen on
a precise per-frame basis.  It may be too slow to be usable; you might
have to patch the graphics.library rom image to go directly to the
real display instead of to the simulated custom chips.

I believe the correct term for this idea is a "virtual machine."  You appear
to have hardware, but you really don't.  IBM was into this a lot for their
mainframes.  You can run several different operating systems on their own
virtual machine all on the same physical machine.  Multiple layers of virtual
machines are possible.  Look at an operating systems textbook for more info.

The bridgeboard does somthing similar for the PC side.  The PC display and I/O
addresses are really just dual-ported memory, which is accessed from the Amiga
side to give the illusion that there is hardware there.  Its not quite
the same because there is some hardware; the dual port memory and I think
some stuff to give the Amiga an interupt when it needs to go find out what
the PC side wants.


-- 
Steve Tell       tell@cs.unc.edu    H: +1 919 968 1792   #5L Estes Park apts
CS Grad Student, UNC Chapel Hill.   W: +1 919 962 1845   Carrboro NC 27510
Duke Blue Devils:  1991 NCAA Basketball National Champions! We're Number 1 !!
UNLV 90-91 record:  "34 and DUKE."  

v125lqbx@ubvmsb.cc.buffalo.edu (Brian T McColpin) (04/04/91)

In article <5356@mindlink.UUCP>, Greg_Goss@mindlink.UUCP (Greg Goss) writes...
<> student@COVAX.CO.IUP.EDU writes:
<> 
<> An Amiga emulator on any PC would have to be the Amiga itself without
<> a keyboard or RAM.
< 
<Well?  Why not?  Isn't that how we emulate the MSDOS machines?

That's not emulation.  That's simply putting an Amiga inside a Mac, just
as we simply put an IBM inside our Amigas.  Emulation is a different beast
entirely.

nikolai@guru.pub.uu.oz.au (nikolai kingsley) (04/04/91)

student@COVAX.CO.IUP.EDU (student) writes:

> 
>      Whoever seriously considers an Amiga emulator on a Mac likely knows
> very little about both the hardware and software of both systems.  The
> custom chips: How in the world will you emulate the blitter or copper
> at anything remotely approaching their speed?  The operating systems:
 
oh, easy.  utterly easy-peasy.  you emulate them in software. yep, in 
addition to all the other stuff the cpu does (like make the mouse move in 
jerky fits and stars when you format disks), the CPU now has to do the 
custom chip stuff as well.  that should keep the (derogatory term used to 
describe macintosh users that sounds quite a bit like self-abusers) happy 
for a while... until system 7 comes out. :-)

####   #   #  #   #    VsyeRossiiskaya Chrezvyychayynaya
#   #  #   #  #  #     Comissiya  po  Borbye s
####    ####  ###      Kontr'revolutsei, Sabotazhem y
#   #      #  #  #     Spekulyatsiyei
####       #  #   #    nikolai  O:-) (Melbourne)

daveh@cbmvax.commodore.com (Dave Haynie) (04/24/91)

In article <2864@borg.cs.unc.edu> tell@oscar.cs.unc.edu (Stephen Tell) writes:
>In article <1991Apr2.000456.26982@cunixf.cc.columbia.edu> es1@cunixb.cc.columbia.edu (Ethan Solomita) writes:
>>In article <9104012131.AA03364@covax.co.iup.edu> student@COVAX.CO.IUP.EDU (student) writes:

>>Although >programs that directly access the hardware, even legally, on the
>>Amiga will crash on a Mac->Amiga emulator, any programs which legally call 
>>the system can have hardware access "emulated", although I can't account 
>>for the speed.

>If the writers of an emulator wanted to, they could emulate the hardware
>exactly.  Just use the MMU to trap accesses to the addresses of the
>custom chips, then when such a trap comes in figure out what custom
>chip register was accessed and simulate the register in software.

That's certainly possible, although extremely slow, if all you're attempting
to emulate is the register level behavior of certain classes of hardware
devices.  Most of this wouldn't be required to run the Amiga OS on a Mac,
since you could supply keyboard, hard disk, mouse, etc. drivers for these
resources that know about the Mac equivalents.  You would, however, get in
trouble, for example, if the Mac equivalents couldn't generate interrupts,
or dealing with Mac floppy transfers (the entire system would have to block
during floppy access, since there's no floppy DMA on a Mac).  Using traps
might let you deal with the small class of programs (eg, games) that directly
access this hardware.  But that's just the beginning of your problems.

Next comes directly poked sprites.  A hardware trap via MMU would be required
to simulate sprites.  But it'll be far too slow to model the realtime behavior
most video type games expect out of their sprites.  Not to mention collision
detection.  Similarly, blitter activity could be emulated via traps, and even
around as fast as the real blitter on an '020 or '030 system.  But keep in
mind that the actual blitter rendering is not happening to screen memory.  Why?
Because the Amiga is bitplane oriented, while color Macs use packed pixels.
So every screen write would happen to shadow memory, then get converted to
packed pixels and actually drawn to the Mac's display memory.  That's what you
call slow.

Next we get to impossible.  That's the Copper.  An independent, parallel 
display list processor.  If the Mac can't generate interrupts when video beam
counter gets to a prespecified X,Y position on screen, it can't begin to
emulate the Copper's WAIT instruction, even in software.

>I believe the correct term for this idea is a "virtual machine."  You appear
>to have hardware, but you really don't.  

True, but when folks speak of virtual machine, like in the IBM context, that's
not generally talking about hardware.  The concept here is that an operating
system, which normally expects to run in kernel/supervisor mode, can be tricked
by the real operating system into thinking its in kernel mode, when in fact it
is a user mode application running under some other real kernel.  This is not
only useful for IBM's tricks, but for when you're cross-developing one OS on 
a machine with a different OS.  

>Steve Tell       tell@cs.unc.edu    H: +1 919 968 1792   #5L Estes Park apts
-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
      "That's me in the corner, that's me in the spotlight" -R.E.M.