MEGA65 FORUM

65816 instruction set

append delete javierglez

I assumed 4510 was 65816 compatible, which instruction set I haven't studied either but I think it has 16 bit registers and memory access.
I was hoping how many algorithms from codebase64.org would benefit from keeping the same syntax while using 16 bit integers. From multiplication and Bresenham to binary trigonometry.
I expected C65 was a comfortable way to move c64 coding to a more advanced machine with the same flair.
Now if understand correctly is the C65 8-bit stuck yet has more memory and resolution ? If that is the case programming will be a pain in the ass.
I mean this machine seems tailored for people who used to like doing their own programming -
and for collectors - as it will never have commercial third party support.
Yes the accelerator capabilities make it a good replacement for Turbo Chameleon or VICE warp mode - but then who wants the advanced graphic capabilities.
I mean no one is developing software for these - people is just taking advantage of the acceleration for existing software but unusable slow -.
The NES- SuperNES evolution seems the way to go for me - you improve capabilities and improve programming -.
Forgive me if I'm making mistaken assumptions here.

Reply RSS

Replies

append delete #1. LGB

Warning! Strictly "IMHO" kind of reply without any flame war intended: Sorry, but I often see the opposite. Ie C64 coders wants SuperCPU (equipped with 65816) just for a "faster 6502" (minus the illegal opcodes though), and not so much using the other inventions of 65816, only the speed. And especially because C64 and C65 were 8 bit designs, I can't see why to move to 65816, where no Commodore machine was released with that CPU for real. Yes, it would be NES whatever, not so much a CBM-like machine then (so then it can be a Mega-NES project, but not a C65-Mega65 project). It's an interesting question, since if you feel that "easy programming" is the main factor, you can even find some more modern 32 bit CPU to do then, with FPU built-in, linear addressing of Gbytes of memory, multiple CPU codes, whatever. But I'm sorry, nothing offensive attitude from me here, just I can't see your point. Mega65 after all is an "greatly enhanced" C65, by definition, what do you expect exactly then? But to be fair, Mega65 has already great capabilities to break the barriers of a typical 65xx 8 bit design, like the ability to address the whole memory space with a specialized addressing mode. Also, already the 4510 in the C65 had some 16 bit math support, can be kind of useful (like INW, DEW opcodes). I could even demonstrated, that on Mega65 it's possible to software emulate an intel 8080 CPU kinda well, and running CP/M applications, which exploits the features discussed above (without this it would be ten fold slower, or even more ...). And maybe more comes with helps even math integer unit, etc. And who knows, as far as I know, since it's planned to have multiple "CPU personalities" maybe 65816 opcodes can be accessed anyway for a software requesting it. But since the major point of Mega65 (starting with the case design already!!!) is being a "mega"-"C65", and C65 is a kinda well defined machine, just replacing everything without a totally different specification would undermine the whole project, by its very roots and basic goals.

append delete #2. w4jbm

The lack of 16 bit instructions isn't a big deal in many applications. I like the 65816, but you can't just drop it in "under the hood" and have 16 magic. In greenfield code you can utilize its features, but mixed with legacy code and systems you'll be changing modes more often than it is worth. Most of the code you mention would need to be significantly modified if you wanted to take advantage of the 65816's enhancements.

Sweet 16 was a vintage example of where if you need 16 bit instructions you can synthesize them on the 6502. Uzebox is a modern example of some feeling 8 bits is enough for gaming.

The Mega 65 is exactly what it claims to be--the realization of Commodore's unfinished 8 bit succesor. It blazes when you compare it to the Spectrum Next that is in development with a selectable 3.5 or 7 MHz Z80 core. And as much as I love the 6502, the 6809 would be a tempting direction to move to 16 bits.

append delete #3. gardners

The M65's CPU remains 8-bit, but makes it much easier to work with >64KB RAM, which is really the main benefit of the 65816 as well, which gave 16MB address space. With the 45GS02, you have 32-bit memory space via special ZP indirect addressing. I fully concede that the decision is a rather arbitrary one at some levels, as to what to add, and what not to add. However, there are architectural factors at play as well, such as the 4510 had no spare opcodes to make it easy to switch modes to 16-bit mode as for 65816.

append delete #4. javierglez

LGB: yes your comments were polite but:
1) regarding NES, my point was to remark that the 65816 was successful and the 4502 wasn't.
2) I can get your point of some people just wanting a fast C64 - not me.
w4jbm:
1) yes I was talking about coding new apps - C65-specific.
2) The code I mention, the assembly snippets from codebase, would read the same. For instance, Bresenham listing would go unmodified, yet coordinates would go past 256.
gardners:
1) Thanks for answering. I'm just expressing my fears. I hope I made my point as a hobbyist.

Summarizing, as a C128 guy, I can agree forgetting it and finding a proper C64 replacement is a good idea, and this was the idea behind C65 , it's just that the C65 guts weren't it. IMO they were a mix of obsoletes, like early-80s bitplanes graphics. But then again I maybe wrong.
Anyway, the case and the drive are nice, and I hope you are successful.

Reply

(Leave this as-is, it’s a trap!)

There is no need to “register”, just enter the same name + password of your choice every time.

Pro tip: Use markup to add links, quotes and more.

Your friendly neighbourhood moderators: Deft, gardners, MARCOM