What If: 65c832

Artur

New Member
May 20, 2019
5
3
3
I personally didn't find coding for the 65816 a pleasant experience for various reasons. It's a very mixed breed. But that's just me.

Looks like there wasn't enough interest for this 32-bit big brother when fully 32-bit CPUs like the Motorola 68020 was already available in 1984.
 
  • Like
Reactions: BruceMcF

BruceMcF

Active Member
May 19, 2019
100
30
28
I personally didn't find coding for the 65816 a pleasant experience for various reasons. It's a very mixed breed. But that's just me.

Looks like there wasn't enough interest for this 32-bit big brother when fully 32-bit CPUs like the Motorola 68020 was already available in 1984.
Yeah, demand for the 65816 other than the SNES seems like it was mostly for stretching the life cycle of boards designed to work with a 65c02 by letting you squeeze some more functions into the same sized ROMs ... and that was only a fraction of demand for the 65c02.

What appeals to me is the variety of better Forth threading models offered by the 65816 compared to the 6502 ... and that relative comparison is crucial, since it's not like it beats it's family cousin the 68K for a straightforward direct threaded model.

Once I've ported a Forth, my assembly language programming is mostly focused on writing the occasional a new primitive to speed up an inner loop.

With Nintendo opting for a different 32 bit data bus, 64 bit instruction processor for its Nintendo 64 (though perhaps the 32bit instructions were used more heavily in games and the 64bit was more marketing gloss) ... there went the biggest potential market for a 65816 upgrade.
 
  • Like
Reactions: DJ Retro

Artur

New Member
May 20, 2019
5
3
3
It gets better: Nintendo didn't even use an official WDC part but second licensed Ricoh 5A22 but they didn't feel like to pay extra for BCD features.

The NES and SNES are similar in spirit and design. It was important (I think) to help existing NES developers to adapt the new architecture relatively quickly.
In fact NES titles without fancy mappers can be ported to SNES with less effort than to other systems.

It helps a lot if the original is written in mostly C - this is what we do in MegaCat Studios as well. Since cc65 has no idea of the 65816 it is mostly generating code for 6502 and we revert to assembly for extra speed if needed - but we can threat the SNES as a big NES with MMC3 mapper.
 
  • Like
Reactions: DJ Retro

BruceMcF

Active Member
May 19, 2019
100
30
28
It gets better: Nintendo didn't even use an official WDC part but second licensed Ricoh 5A22 but they didn't feel like to pay extra for BCD features.
Unlike Sega and then Sony and Microsoft, Nintendo always intended to sell their video game hardware at a profit ... they were never a fan of "sell the system at a loss, make it up on games licensing". So if they are looking to add money to include hardware multiply support, maybe it's best if it comes from not paying for a chip feature they don't feel like they'll need. At the very least it will make the accountants happier if they can pull it off! :)

And with almost 50m lifetime sales, even a slice of the license fee Nintendo paid Ricoh was a health cashflow for a good number of years.
 
  • Like
Reactions: DJ Retro

Alynna

New Member
Sep 21, 2019
14
5
3
43
Denver
I am quite interested in the 65832 and as soon as I find out whether I can talk about FPGA projects on this forum I will say more :)
 
  • Like
Reactions: codewar65
May 22, 2019
409
211
43
... as soon as I find out whether I can talk about FPGA projects on this forum ...
Of course you can. :) Mike may not have set up a specific section for FPGA boards, but you're free to talk about them in the "Other SBC" section for now. I'll push to see if we can get a MIST/MISTer/FPGA topic area set up. (We still don't have a "General" area, so this could take a while...)
 

Alynna

New Member
Sep 21, 2019
14
5
3
43
Denver
Well I am an owner of the MiST board, the MiSTer board, a Turbo Chameleon 64, and a Vampire v500v2+ and would love to moderate an FPGA section if one opens up.
 

codewar65

New Member
Sep 25, 2019
17
4
3
If I had won the lottery, or had money to blow; I'd order 65C832's from WD, just to get them into circulation.
 
Last edited:
May 22, 2019
409
211
43
... they apparently have a 4GB, 32-bit variant for ASIC and FPGA use ...

I find myself really wanting to learn FPGA design.
 

Alynna

New Member
Sep 21, 2019
14
5
3
43
Denver
I'll move discussion of the core i'm trying to develop (and maybe get a full hardware implementation ASIC based built) over in the "other SBC" board :)
 
  • Like
Reactions: TomXP411

GregZone

New Member
Sep 29, 2019
21
13
3
I’m not convinced the 65C832 would’ve necessarily have been advantageous for the X16. I mean, a 32 bit CPU which is then massively constrained by having only an 8 bit external data bus is an interesting design decision. The data sheet confirms what is plainly obvious: “Four memory cycles are required to transfer 32-bit values.”

The 65C832 seems to be comparable with the Motorola 68008, which was released 8 years earlier (1982), and which also ran at a max 10Mhz and was (even back in 1982) seen as seriously speed constrained due to the bottleneck of attempting to take advantage of cheaper byte-wide memory implementation & cheaper overall system design (at the time). I believe the 68008 was seen in the Sinclair QL, but otherwise didn’t make a huge impact.

Using these 8bit data bus constrained 32bit processors (versus say an 8bit / 16bit processor like the 65C816), would’ve really only been beneficial for math crunching tasks which would benefit from the internal 32 bit ALU & registers. For the more general computing tasks (eg. gaming etc.), I suspect the 32 bit internals / 8 bit externals wouldn’t have provided that much of a benefit over say the 65C816; If any benefit at all, after you trade-off 32bit data handling bus bottleneck, versus any 32bit ALU coding advantage (that's actually useful for your application).

So my preferred processor for the X16 would likely still remain the 65C816 :)
 
  • Like
Reactions: codewar65

codewar65

New Member
Sep 25, 2019
17
4
3
My vision for a beautiful modern 32bit 65x02 would be one that was able to handle 8/16/32 data on a 8/16/32 bit bus, a larger relocatable system stack, a larger relocatable zero page, and direct access to 4GB of RAM, running at an insane speed. I'd keep it RISC with the base instruction set with a few new addressing modes to handle larger hunks of memory and relocations. No floating point support (use a co-processor). :)
 

GregZone

New Member
Sep 29, 2019
21
13
3
My vision for a beautiful modern 32bit 65x02 would be one that was able to handle 8/16/32 data on a 8/16/32 bit bus, a larger relocatable system stack, a larger relocatable zero page, and direct access to 4GB of RAM, running at an insane speed. I'd keep it RISC with the base instruction set with a few new addressing modes to handle larger hunks of memory and relocations. No floating point support (use a co-processor). :)
I do understand where you are coming from. :cool:

If I roll back the clock, I originally cut my teeth on the Motorola 6800 as my first 8bit microprocessor in the late 70's. That evolved into designing my own 6809 based system, which was a significant step up to a 16bit internal / 8bit external CPU with some advanced addressing modes & a much tidier and nicer instruction set (it even had an 8bit x 8bit -> 16bit unsigned multiply instruction! MUL). The 6809 was my all time favourite CPU to machine code for!

However, when the 68000 was released offering a full 32bit internal / 16bit external design, with a (then) massive and flat 24bit address space, and 10x the clock speed, it had all the processing power that I could only ever dream of getting my hands on! I so desperately wanted to get one of these amazingly powerful huge 64pin DIL chips. But, sadly they cost the equivalent of several months worth of pay packets for a teenager in the early 80's. So, the dream of making my own 68000 system never eventuated... and then shortly after I got my Commodore 64, which took over my programming interest with it's awesome colour graphics!

But, it's fair to say that after having started out with the 6800, with it's 16bit index register and dual A & B accumulators, I never really fully "enjoyed" machine code programming on the 6502. It was always more work than the 6800, and nowhere near as much fun as the awesome 6809!

This is the reason I hope for the 65C816 to be the final X16 choice. It at least provides some of the 8/16bit enhancements that I enjoyed in the 6809.

I believe using the 65C816 would provide broader appeal. Still satisfying those who just want to work in 65C02 mode, but also providing a broader experience with native mode access to 16bit registers / ALU etc. My fingers remain crossed! 🤞
 
  • Like
Reactions: BruceMcF

BruceMcF

Active Member
May 19, 2019
100
30
28
I’m not convinced the 65C832 would’ve necessarily have been advantageous for the X16. I mean, a 32 bit CPU which is then massively constrained by having only an 8 bit external data bus is an interesting design decision.
Yes, I would prefer "WDC" to be used to extend each existing 65816 opcode in a useful way. EG, WDC" "direct A addressed operation" operates on B, WDC "zero page absolute" addressed arithmetic instruction is a Modify-Write instruction that stores the result at the zero page location (yes, this is redundant for LD/ST they might do something else), WDC "increment/decrement" increments/decrements by 2, WDC ROL is a nybble rotate, etc.
 

BruceMcF

Active Member
May 19, 2019
100
30
28
Or just make the CPU a module just like VERA is, that way you can put anything you want.
The kit buildable version is socketed. So, yeah, as long as it's pin compatible with the 6502 or 65816 (depending on which one they go with), they are doing that.
 

GregZone

New Member
Sep 29, 2019
21
13
3
Or just make the CPU a module just like VERA is, that way you can put anything you want.
Yeah, just think of the 40pin DIL socket as a CPU module socket. :)

So, even if only a 65C02 is specified, it will still be possible to use a 40pin DIL "module" to allow plugging in a 65C816 -> 65C02 adapter.

eg. Like this one: http://bit.ly/33nk4l2
 

Alynna

New Member
Sep 21, 2019
14
5
3
43
Denver
Yes, I would prefer "WDC" to be used to extend each existing 65816 opcode in a useful way. EG, WDC" "direct A addressed operation" operates on B, WDC "zero page absolute" addressed arithmetic instruction is a Modify-Write instruction that stores the result at the zero page location (yes, this is redundant for LD/ST they might do something else), WDC "increment/decrement" increments/decrements by 2, WDC ROL is a nybble rotate, etc.

You should take a look into how i'm planning to use WDM. :)
For the most part, the WDM extended instructions simply goes into 32 bit mode before it executes the instruction, then goes back to the previous mode.