|
|
|
|
|
by cmrdporcupine
1862 days ago
|
|
It's true you don't have to bank switch... but... the 816 doesn't have 32 bit or even 24-bit registers, so working with memory regions over 64k (such as the video framebuffer) is surprisingly awkward. You end up fiddling with the bank registers a lot, and doing a lot of futzing around. Having screen resolutions that require a framebuffer >64k isn't a good match for it, for example. And the program counter is a 16-bit register, too, so you can't have programs over 64k without incrementing the program bank register at the end of the 64k region, etc. Also the stack and direct page can't be located out of the bottom 64k, etc. So while changing a bank register is easier than doing bank switching with a 6502, it's actually not that different. And using the 16-bit registers on the 816 require a mode change, so working back and forth between 8 and 16 bit values is also awkward. The 816 on paper sounds good at first. In practice, after working with it for a while (I wrote an emulator for an earlier version of her machine and then started working on software) I found I didn't enjoy the 816 as much as I thought I would and understand better now why Commodore and Atari made the jump to the 68000 instead of to the 816 or other modifications to the 6502. |
|
I am currently working on a compiler for the 65816 and has taken the approach of avoiding mode shifts as much as possible. I also lock the direct page and bank register to a fixed place while running normally. This simplifies it a lot.
Segmenting your functions/code block on 64K is not a huge limitation. How big functions do you write? LOL
The 65816 does require more discipline when programming than the 6502.
Yes, they all went 68000 which is no wonder as it was a step up further. The 16 revolution never really happened, we went from 8 to 32 bits computers.
Commodore did go back to modify the 6502 later, that was the Commodore 65. That the C65 project went as far as it did is beyond me. I would have stopped it immediately if I was shown it at the time, both from marketing and technical aspects. Today, I suppose it makes some minor sense to revive it as a curiosity, just for the sake of it.
I wonder how you can find the 65816 odd, when the Mega 65 comes with three altered variants of the 6502. Also considering that some well known 6502 programming idioms no longer works as before, as soon as you move the zero page or the stack. Having studied them all, I find the 65816 puts those 6502 variants to shame.