Hugh Aguilar wrote:
This is my first design --- I don't want to go overboard with features...
Well, I have a new document (attached) with some more features --- hopefully I haven't gone overboard yet.
The new instructions are all minor improvements that seem easy and obvious. For example, in the 65c02 the direct,Y addressing mode can't be used with LDA and STA --- somewhat of weird hole in the instruction set --- I added that, as well as some other instructions to help with 16-bit data.
Mostly I upgraded the amount of documentation that I provide. I have a section that discusses C and Pascal compilers now. I still only provide Forth code, but I think with my documentation anybody should be able to write a C or Pascal compiler fairly easily --- there is not that much difference from Forth except that C and Pascal use local variables for everything, and they don't have a data-stack at all --- Forth mostly uses the data-stack, but has locals for use in the larger more complicated functions.
I expect that the 6502 forum guys will cheer when they read my final section:
Code:
Section 8.) conclusion
The 65VM02 is to the 65c02 what the eZ80 is to the Z80 --- a way to support large programs on an 8-bit processor.
The eZ80 had 24-bit registers, which are inefficient considering that most data are 16-bit.
In the 65VM02, only the FLDA and FSTA instructions use 24-bit addresses. Most direct-page pointers are 16-bit.
The eZ80 had only a very few registers (mostly just HL) that could be used as pointers, so there was a bottleneck.
In the 65VM02, the direct-page can be used for pointers, so you can have dozens of pointers.
The 65VM02 is efficient for large programs because it is founded upon the 65c02 that was efficient for small programs!
:-D