GARTHWILSON wrote:
How much and what kind of programming experience do you have with the 65's or other processor? It may be valuable to consider what you want to do with your design.
with 65xx based processors, not much. In the past I made a few CPUs based on the 6502 and mostly programmed with those.
This and my SBC Project helped me greatly to better adapt to the weirdness of the 6502.
to be honest i find it hard to judge my own skill with writing for these CPUs, i wouldn't call myself an expert by any means, but i wouldn't count myself as a novice either (atleast i'd like to think so).
and about this projects, mainly it's just to learn about the CPU, but at the same time it's for a faster softcore version of the 6502 that I (and maybe others) can use for future FPGA based Projects.
having the ability to add convenient instructions is just a bonus that comes with designing it from scratch.
GARTHWILSON wrote:
There's an awful lot of criticism for the 65816's mode bits; but in my '816 Forth, I put it in native mode in the reset routine and never touch that bit again, and I leave A in 16-bit and the index registers in 8-bit almost full time, seldom touching the M & X bits. IOW, it's not an issue. The '816 also has a lot of the instructions mentioned here, like long relative branching, TYX, TXY, and loads more. It's already there.
that is how i thought about my idea of the "Enable Carry" flag as well, i would just leave it disabled for the whole program unless i need it in a specific function.
and i somewhat knew some of these were already in the 65816 so i thought it would be nice to have them here as well, because they are useful.
GARTHWILSON wrote:
What instruction may seem to be lacking are absent probably because they would not be used much and they're easily and efficiently simulated with other instructions, like BSR (branch to subroutine), or because they would require slowing the clock down (for a given silicon geometry), or would take too much expensive silicon real estate to justify the small benefit.
how do you even simulate BSR? you would need to add a 16 bit signed value to the PC...
anyways, this is one of the reasons i ask about the instruction set on here before i actually implement it, and to see what instructions can be replaced by a 6502 macro/function, to see if it's actually worth implementing that instruction.
plus unlike any real CPU i don't have to worry about selling or even producing this CPU, so i can affort to care less about actual resource usage and complexcity.
I feel like we now re-talked about the same point in 3 different replies.
GARTHWILSON wrote:
The '02 is a very poor target for a C compiler, at least until someone makes super intelligent one that can figure out the intent and change the entire approach to fit the 6502's way of doing things. The 65816 seems to be much better suited for C compilers, although the processors with lots of internal registers seem to be even better suited for C compilers. One thing a few of us would like is a really efficient way to do NEXT in ITC Forth.
well good thing i never planned to program C for the 6502...
I know you really like your 65816, but personally i'm currently more comfortable with my 8 bit data bus and a 16 bit Memory space.
one day when i get to 16 bits i'll be sure to look into some 65816 projects.