Page 1 of 2
Intellivision's CP1610 CPU
Posted: Fri Dec 16, 2011 3:57 am
by Beeper
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?
Posted: Fri Dec 16, 2011 8:08 am
by tepples
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.)
Posted: Fri Dec 16, 2011 10:38 am
by tokumaru
With a higher clock rate, that might actually be a fun CPU to code for.
Posted: Fri Dec 16, 2011 1:08 pm
by Wave
tokumaru wrote:With a higher clock rate, that might actually be a fun CPU to code for.
Yeah, the autoincremented registers are cool.
Posted: Fri Dec 16, 2011 1:57 pm
by mic_
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).
Posted: Fri Dec 16, 2011 2:12 pm
by 3gengames
Just from reading these posts it seems like some people want to program a 6809/6309 or even 68000 microprocessor.
Posted: Mon Dec 19, 2011 12:25 am
by Beeper
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?
Posted: Mon Dec 19, 2011 4:38 am
by tokumaru
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.
Posted: Mon Dec 19, 2011 3:00 pm
by adam_smasher
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.
Posted: Mon Dec 19, 2011 3:54 pm
by kyuusaku
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.
Posted: Mon Dec 19, 2011 4:00 pm
by cpow
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?
Posted: Mon Dec 19, 2011 7:51 pm
by kyuusaku
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).
Posted: Mon Dec 19, 2011 10:00 pm
by psycopathicteen
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)
Posted: Mon Dec 19, 2011 10:38 pm
by kyuusaku
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.
Posted: Mon Dec 19, 2011 11:47 pm
by psycopathicteen
My post was intended to be a joke.