6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri Sep 20, 2024 5:21 pm

All times are UTC




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Mon Apr 22, 2019 3:39 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10938
Location: England
For me, the official opcodes of the 6502 are enough to make a machine interesting and worth investigating, whether it's a TTL remake, an FPGA implementation, or an emulator.

But one could add more fidelity:
  • some C02 opcodes
  • some undefined opcodes
  • accurate cycle counts
  • cycle accurate bus behaviour
  • cycle accurate interrupt behaviour
and all of these could be of interest, especially for intricately optimised game code or software protection code. But every one of those is an extra constraint, which makes the project more difficult to make, more difficult to verify, more complex and so perhaps more costly, and is likely to reduce clock speed.

I think choosing an appropriate degree of compatibility boils down to what a 6502 is for: is it a means of performing a computation, or a means of running a large body of existing software very accurately.

It might be the case, if you want to sell something, or maximise your audience, you might want to appeal to people who think of a home computer as being a games console. But I'm not at all sure why that audience might want something which runs at a high clock speed... so, it seems to me that the two goals, of high performance and a great degree of compatibility, wouldn't often be seen together.

(Not wanting to derail any specific threads or projects!)


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 22, 2019 6:00 pm 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
Quote:
it seems to me that the two goals, of high performance and a great degree of compatibility, wouldn't often be seen together.
A pertinent insight, Ed -- thanks for sharing that.

Regarding fidelity, I've added another point to your list:
  • some C02 opcodes
  • some undefined opcodes
  • accurate cycle counts
  • cycle accurate bus behaviour
  • cycle accurate interrupt behaviour
  • hardware compatibility; such as drive strength. Also,TTL vs CMOS voltage levels

Regarding the TTL 6502, Drass mentions dealing with a drive strength issue here. "The solution was to install a 100 Ohm series resistor on the A14 pin at the CPU to “weaken” it a little." :shock:

cheers
Jeff

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 22, 2019 6:23 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10938
Location: England
A very good point! Which brings up another: the clock-to-Q time of outputs and other nanosecond-level timing can be important, to interoperate with memory and peripherals, and may not come for free.


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 22, 2019 8:55 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
BigEd wrote:
A very good point! Which brings up another: the clock-to-Q time of outputs and other nanosecond-level timing can be important, to interoperate with memory and peripherals, and may not come for free.

Then a 6502A running at 1 MHz is - to some extend - incompatible to a 6502 due to its slightly faster timing. Then you may also differentiate between different lots from the same manufacturer, not to speak from CPUs of different brands like MOS itself vs. Synertek vs. Rockwell etc.


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 23, 2019 12:32 pm 
Offline
User avatar

Joined: Sun Oct 18, 2015 11:02 pm
Posts: 428
Location: Toronto, ON
BigEd wrote:
I think choosing an appropriate degree of compatibility boils down to what a 6502 is for: is it a means of performing a computation, or a means of running a large body of existing software very accurately.
And even then, “very accurately” is a likely to be a subjective compromise. As we discovered during the TTL CPU project, it would be a monumental effort to model the “unstable” opcodes accurately. Their almost complete absence in popular software might prompt some to ignore them, and yet others to be excited by the esoteric challenge. There is no right answer, of course, and much depends on personal aspirations and predilections.

Quote:
It might be the case, if you want to sell something, or maximise your audience, you might want to appeal to people who think of a home computer as being a games console. But I'm not at all sure why that audience might want something which runs at a high clock speed... so, it seems to me that the two goals, of high performance and a great degree of compatibility, wouldn't often be seen together.
As a corollary to the above, in many instances the motivation is simply to learn, or to have fun, in which case we’re dealing with an audience of one, and “whatever floats your boat” might be the operative design principle.

_________________
C74-6502 Website: https://c74project.com


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 23, 2019 12:34 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10938
Location: England
Well said!


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: