Regarding page wrapping behavior of "new" vs "old" instructions in emulation mode.
Does this occur only for new instructions, or old instructions with new addressing modes as well?
i.e. does it happen with LDA depending on the addressing mode? or simply not at all?
65816 nuances
Re: 65816 nuances
I think it's safe to assume the designers created the big, shiny "full power" processor first; with 16-bit everything, and free of any page-wrapping behavior. Then they went to work implementing Emulation Mode, which selectively cripples certain stuff in order to reproduce 6502 behaviors. Crippling stuff takes extra effort, so they would minimize that. As Chromatix remarked upthread, it's the minimum hobbling they could do to ensure backwards compatibility.
In cases where the '816 has a new address mode, or even a whole new instruction, these new functions will never be invoked in code intended for a 6502. Thus the specification for Emulation Mode has no applicability. It's alright if some or all of the new functions are affected, and it's also alright if they aren't.
So, the designers wouldn't deliberately try make Emulation Mode affect the new functions. If there's any effect, it would be unintended -- an accidental and harmless side effect. That's not impossible, but it seems unlikely.
Hope that helps -- it's a fairly general observation.
-- Jeff
In cases where the '816 has a new address mode, or even a whole new instruction, these new functions will never be invoked in code intended for a 6502. Thus the specification for Emulation Mode has no applicability. It's alright if some or all of the new functions are affected, and it's also alright if they aren't.
So, the designers wouldn't deliberately try make Emulation Mode affect the new functions. If there's any effect, it would be unintended -- an accidental and harmless side effect. That's not impossible, but it seems unlikely.
Hope that helps -- it's a fairly general observation.
-- Jeff
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html
https://laughtonelectronics.com/Arcana/ ... mmary.html
Re: 65816 nuances
When you encounter questions like that, possibly the best answer is to obtain a real '816 and run some test code.
Re: 65816 nuances
Chromatix wrote:
When you encounter questions like that, possibly the best answer is to obtain a real '816 and run some test code.
Uplifting one of the WDC boards is a larger project for someone like me.
If I had a logic analyzer, I wouldn't necessarily need all that RAM. That's an even larger project.
- BitWise
- In Memoriam
- Posts: 996
- Joined: 02 Mar 2004
- Location: Berkshire, UK
- Contact:
Re: 65816 nuances
whartung wrote:
Uplifting one of the WDC boards is a larger project for someone like me.
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs
Re: 65816 nuances
BitWise wrote:
whartung wrote:
Uplifting one of the WDC boards is a larger project for someone like me.
Getting a new house, so my next six months are "indeterminate" right now as to what gets time.
Re: 65816 nuances
You don't need a whole computer for this. Just an '816 CPU, a logic analyser to watch how it responds, some switches to set the data bus manually and toggle the Phi2 clock, some resistors to avoid short-circuiting the bus, and a reset controller (which could also be manual). Stick all that in a decent breadboard.