As we know, Intellivision has an General Instrument CP1610 16-bit CPU, although running at only 895 Khz. How does this CPU compare to the more common 6502 and Z80 processors?
CP1610 on Intellivision Wiki
Perhaps the closest comparison I can think of is a Z80 (lots of general-purpose registers, lots of Internal Operation cycles). The eight 16-bit registers can be thought of as four accumulators, X, Y, S, and PC. (Yes, PC is one of the numbered general-purpose registers, just as on ARM.)
With a higher clock rate, that might actually be a fun CPU to code for.
tokumaru wrote:
With a higher clock rate, that might actually be a fun CPU to code for.
Yeah, the autoincremented registers are cool.
If you want to try it out there's
SDK-1600 site where you can find tools and code samples.
And for running stuff on an actual Intellivision there's the Cuttle Cart 3 (unless it's finally gone out of stock).
Just from reading these posts it seems like some people want to program a 6809/6309 or even 68000 microprocessor.
How does the Intellivision's 894 Khz (NTSC)/1 Mhz (PAL) CP1610 CPU compare to a 1 Mhz MOS 6502 or 3.58 Mhz Z80?
mic_ wrote:
And for running stuff on an actual Intellivision there's the Cuttle Cart 3 (unless it's finally gone out of stock).
Although I found the CPU somewhat interesting, I have no interest on the Intellivision itself. I have never seen one in person (I don't think it was even sold here officially), and from what I've seen online the games are not particularly interesting. I mean, it's interesting just for being a game console, but not "I want to code for it" interesting.
3gengames wrote:
Just from reading these posts it seems like some people want to program a 6809/6309 or even 68000 microprocessor.
The Genesis/MD does interest me a lot, so yeah, I do want to program for the 68000 some day. And from what I understand you can even use the 68000 for music (like we use the CPU for music on the NES), you're not required to use the Z80. I would like to practice more Z80 though.
I wish I'd had a Genesis rather than an SNES as a kid. The 68k looks like a lovely processor to work with (much nicer than the 65816), but the Genny just doesn't speak to me the way Nintendo's console does.
CP1610 doesn't look fun to me. Decles? EEk. The register layout seems nice, but the instruction set is really minimalistic. No inclusive OR???
I guess this is what you have to do to set some bits in memory:
load register from memory
load other register with precomplemented mask
AND data register with mask register
complement mask register
XOR data register with mask register
store register to memory
considering each one of those instructions is 6-10 cycles, that's REALLY slow. The 6502 at the same clock rate should be faster for just about any algorithm.
The 68k is easy to program, and powerful, but after trying to emulate it, I'm just not much of a fan. It has really obnoxious instruction encoding, and I was a little let down due to its reputation as being so elegant.
kyuusaku wrote:
The 68k is easy to program, and powerful, but after trying to emulate it, I'm just not much of a fan. It has really obnoxious instruction encoding, and I was a little let down due to its reputation as being so elegant.
What platform were you trying to emulate?
cpow wrote:
What platform were you trying to emulate?
Neo Geo primarily, but the plan is for it to become multi-system like MAME/MESS (+computers).
kyuusaku wrote:
CP1610 doesn't look fun to me. Decles? EEk. The register layout seems nice, but the instruction set is really minimalistic. No inclusive OR???
I guess this is what you have to do to set some bits in memory:
load register from memory
load other register with precomplemented mask
AND data register with mask register
complement mask register
XOR data register with mask register
store register to memory
considering each one of those instructions is 6-10 cycles, that's REALLY slow. The 6502 at the same clock rate should be faster for just about any algorithm.
The 68k is easy to program, and powerful, but after trying to emulate it, I'm just not much of a fan. It has really obnoxious instruction encoding, and I was a little let down due to its reputation as being so elegant.
The 68000 only takes 8 cycles to load a VDP register with a value!
MOVE.W registerthatjustsohappenstohavetheneededvalue, (addressregsiterthatjustsohappenstohavetheneededdestinationaddress)
The 6502/NES only requires 4:
sta $2007 ; A happens to hold the value, instruction encodes the address to write to PPU
or also 8 for the 8086 when the VDP is port mapped:
out dx, ax ; AX happens to hold the value, DX happens to hold the port
One cool thing about the 68K is how easily you can maintain multiple stacks with the (A#)+ and -(A#) addressing modes. I kind of like the CP1610's approach better though forcing the SP to predecrement/postincrement on indirect writes/reads.
My post was intended to be a joke.
You may think it's strange that the CP1610 doesn't have an OR instruction, but remember the 6502 doesn't have a NOT instruction (XOR #$FF notwithstanding).
Also, decles are nothing to worry about. The CP1610 is fully capable of using 16-bit words (and is even more efficient in some operations when it can do so), and in fact the only reason they used 10-bit wide ROMs back in those days was to keep costs down. The 10-bit ROMs in the original games feed logical zero to the upper 6 bits to accommodate the 16-bit bus.