Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.sys.acorn Subject: Re: Emulation + would have posted Message-ID: <17216@cbmvax.commodore.com> Date: 8 Jan 91 06:32:49 GMT References: <7619@castle.ed.ac.uk> <2574@krafla.rhi.hi.is> Reply-To: daveh@cbmvax.commodore.com (Dave Haynie) Organization: Commodore, West Chester, PA Lines: 47 In article <2574@krafla.rhi.hi.is> kvj@rhi.hi.is (Kristjan Valur Jonsson) writes: >In <7619@castle.ed.ac.uk> as@castle.ed.ac.uk (A Stevens) writes: >Perhaps the problem is that the emulator guys want to reprogram the >BBC OS ROMS in ARM code, and they surely would need Acorn's permission >to do that. That would mean a rather nice speed increase. (Imagine calling >the 6502 routines every time a char is written on the screen) That's not likely the problem. If all you're doing is re-implementing a set of BIOS function calls, especially on a totally different CPU, there should be no legal problems. A number of the alternate CPU based emulators for the Amiga work this way. For instance, much of "The C64 Emulator" from ReadySoft uses real 680x0 code for ROM calls and the like. You have the option of loading a real C64 ROM from your C64 to support the programs that jump into ROM at arbitrary points, rather than via the defined entry points. Having the ROM calls run by the native CPU, rather then by emulating 6510 code, make some difference. In reality, though, most of the time such emulators spend is in emulating the I/O chips. While a 6510 or 6502 at 1MHz isn't all that difficult for a reasonably fast 16 or 32 bit chip to emulate, the registers in something like a VIC chip, and the associated ugly tricks, like raster interrupts coupled with software timing loops for doubling up on sprites or switching video modes in mid-screen, that kind of thing, is what makes doing a real emulator more difficult. >I understand that when buying emulators for other computers (eg. Mac emulators >for the Commodore Amiga) , that often are hardware based, one has to obtain >the necessary roms himself. That wouldn't be too hard with a Spectrum >emulator, would it? The Mac "emulators" really aren't emulators. The Amiga and the Mac both use 680x0 CPUs, so all that needs to be "emulated" is any I/O registers that can't be replaced functionally in the Mac OS, if any. These things are more along the lines of what I call a "hostile port" of the Mac OS to the Amiga. But since the Mac OS is so complicated, it's not the kind of thing a company can hack up a BIOS replacement for in a short time. So you need the real thing, which can be made arbitrarily hard to get by the vendor if desired. That, of course, depends on the vendor's motive. There may be little need to prevent Spectrum code from running on an Arc system. >Kristjan Valur Jonsson. -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "Don't worry, 'bout a thing. 'Cause every little thing, gonna be alright" -Bob Marley