Re: Hardware emulation of 6509 using 6502?

From: silverdr_at_wfmh.org.pl
Date: Fri, 16 Mar 2018 16:49:28 +0100
Message-Id: <659F1893-9871-4AB8-9E26-7969D30946A8@wfmh.org.pl>
> On 15/03/2018 19:47, silverdr@wfmh.org.pl wrote:
>> Which makes it a different behaviour, giving different (and unwanted) UX, which smells like an ugly bug aka inaccurate emulation to me when the logic I try to argue against is applied.
> 
> I don't know who you're arguing against.
> 
> I've repeatedly pointed out that saying different SID revisions are emulating the original is a strawman based on Ship of Thesus and has no relation to a FPGA programmed with a fuse map built from source code designed to emulate a SID.

It's becoming increasingly philosophical rather than technical and therefore more an more OT but let's try last time before declaring EOT. Here is my view.

It started with us slightly disagreeing on what constitutes "emulation" and what constitutes "real thing". The first straw man I saw here was:

> On 2018-03-15, at 10:40, smf <smf@null.net> wrote:
> No matter how I look at it
> https://ultimate64.com/Ultimate-64
> doesn't look anything like
> http://www.mos6502.com/images/C64Internal/C64i_large.jpg


In response to which I built my own, smaller straw man:

> On 2018-03-15, at 13:22, silverdr@wfmh.org.pl wrote:
> Yes, but when I look at:
> http://e4aws.silverdr.com/resources/romrep/250469a.jpg
> it doesn't look like
> http://www.mos6502.com/images/C64Internal/C64i_large

Trying to show you (assuming most probably correctly that narrow boards made by CBM remain still "real thing" to you) that the argument you brought was in fact invalid.

You responded to this, accusing me of using appeal to extremes and entering the ship of Theseus territory:

> On 2018-03-15, at 13:55, smf <smf@null.net> wrote:
> You're entering https://en.wikipedia.org/wiki/Ship_of_Theseus territory there. I don't see that using the logical fallacy of appeal to extremes helps.

Both of which I fail to see in my example. I continue to say that, despite the obvious differences in implementation, both:

http://www.mos6502.com/images/C64Internal/C64i_large.jpg
http://e4aws.silverdr.com/resources/romrep/250469a.jpg

are the "real thing", and by extension

https://ultimate64.com/Ultimate-64

as well. To you OTOH Ultimate is:

> On 2018-03-15, at 10:40, smf <smf@null.net> wrote:
> [...] "real thing" definitely not [...]

In response to that I try to understand what constitutes "real thing" in contrast to "emulation" and I get from you:

> On 2018-03-15, at 17:07, smf <smf@null.net> wrote:
> It's not generally called emulation when they do it, because they have the right to make something different but slap the name on it.

Please note well: "It's not [...] emulation [...] /because/ they have [...] right [to slap the name on something different] (!)

Therefore we step out of technical and are entering legal territory with what can/should be called emulation and what not. I personally find it unconvincing but I respect your view:

> On 2018-03-15, at 20:51, silverdr@wfmh.org.pl wrote:
> OK - if we define "emulation" vs. "real thing" as above, then all fits. It is simply that my definition doesn't depend on who has the right to slap a name on a product, but yours is a valid one too. Only different than mine.

Still your response of today is:

> I don't define anything,

See above. Don't you?

> I leave it up to a dictionary.

Dictionary doesn't say anything about someone's right to slap a name on an emulation to make it real thing. I would expect something like" 

***********
emulation |ɛmjʊˈleɪʃ(ə)n|  [in computing] reproduction of the function or action of a different computer, software system, etc. except when done by the owner of intellectual rights pertaining to that different computer.
***********

if it was in fact the case.

> It only becomes vague when you consider Ship of Thesus,

Please leave your favourite ship of Theseus aside. I am NOT arguing whether my C64 with number of components replaced is still "the same" I bought in 1985. I don't argue whether wide boards/narrow boards/ultimate boards is "the same". I never have. I wanted to understand why second against first remains "real thing" while third against second (or first) does not. Why the third is "emulation" while the second is not. So far the only answer to that was that we don't call it emulation "when they do it, because they have the right to make something different but slap the name on it." and:

> Emulating hercules comes down to using the same addresses etc. It's just not made by hercules.

Again implying that it is an emulation rather than real thing, because it is not made by Hercules (rights owner).

> It also has abilities beyond the hercules, which fits with the "match or surpass" by imitation.
> 
> emulate
> ˈɛmjʊleɪt/
> "match or surpass (a person or achievement), typically by imitation."
> 
> imitate.
> "hers is not a hairstyle I wish to emulate"

I think we should leave hair styles out and stick to the specific, computing context of the dictionary definition:

> 		• COMPUTING
> reproduction of the function or action of a different computer, software system, etc.
> "software emulation of complete systems"

Which seems quite clear. Also because it doesn't say anything about matching or surpassing. Why? I believe we both agree that when I run "ZX Spectrum emulator" on my C64, I actually do emulation ("reproduction of the function or action of a different computer") even if we both know that it neither matches nor surpasses the ZX Spectrum. Also - in order to avoid returning back to Theseus and his ship - I understand "different computer" as "instance of different subclass of Computer class" rather than "different instance of the same subclass of Computer class". IOW ZX Spectrum is a different [sub]class than C64. The same as banana and tomato are different [sub]classes.

So why Ultimate is still emulation for you, while narrow board is not, if not for legal matters like "they had rights to put a name on it"?

You could say for example "because FPGAs are reprogrammable" and can be reprogrammed to "emulate" another computer. But this IMHO doesn't hold water either. FPGA is NOT a computer until it is programmed to be one. Once it is programmed to be a computer, it becomes a computer. And the same hardware logic structures can also be implemented in a non-reprogrammable device. What then? On the other hand you can program an FPGA to be - say - a 68000 based computer. On such one you can run for example VICE. In such case this would be called emulation in the above, dictionary based definition because one computer (the FPGA programmed to be a 68000 based computer) would "reproduce function or action of a different computer" - the C64 (or PET or whatever VICE can emulate).

You could say for another example "because this is not complete and/or 100% accurate". This doesn't change much. Narrow board is also not 100% accurate. This doesn't make it "emulation". My C64 with lots of components replaced with reprogrammable replacements is also not 100% accurate. This still is not an "emulation". And so on.

My definition of emulation in computing context, based on the dictionary is "reproduction of the function or action of a *different computer*". There has to be *computer* first, before it can emulate another one. Unprogrammed logic device, no matter how complex, is not a computer and therefore is not capable to emulate another one.

My last suggestion - after your response (if any) we may move further discussion off-list if we still want to discuss it ;-)

-- 
SD!
Received on 2018-03-16 17:00:02

Archive generated by hypermail 2.2.0.