Did you ever hear of the tragedy of the Capacitance Electronic Disc? I thought not. It’s not a story MCA would tell you. It’s an RCA legend. It’s said they had a laboratory so advanced, that in 1972, they could put a video on a vinyl record. The only thing they were unable to do was commercialize it, which of course, eventually they had to. Ironic. They could develop amazing technology, but it could never leave the lab. Oh yeah, and they had done the same thing with video games a few years before.

Don’t ask about the Studio I

Advertisement

The RCA Studio II is an easy console to mock. It’s black and white. The resolution is 64x32, a simple framebuffer, no sprites. The console came out later than the full-color Fairchild Channel F and the phenomenon Atari 2600. And there was a weird idea of “games” too. Even in the advertisement above, what are they playing? Patterns, a built-in title where you press keys to make different random patterns. No, that’s really it.

Patterns, with random shapes

Even in 1977, that was a bit much. I mean, we had had nearly a decade of Pong consoles by that point, right? So what’s the point, just its nice 1960’s cream home appliance look?

My RCA Studio II

Well, there are glimmers of something interesting here. There’s a historic interest: Joyce Weisbecker, generally considered the first female console game developer and often also the first indie developer, programmed for it. And there’s a story behind its CPU. It’s got a lot of memory on its system bus, 512 bytes (though half of that is the framebuffer). And that hardware has a very interesting story.

The circuit board of the RCA Studio II, folded open

The COSMAC Chipset

The CPU of the RCA Studio II is an RCA CDP1802, running at 1.78MHz. That’s some pretty good speed, but the CPU itself is of historical interest as well. It’s also known as the COSMAC, was the first chip to be made using the CMOS process, and oh yeah, went to space. That CMOS process, which produced low power static logic, helped there too, as it’s more resistant to cosmic rays.

Build the COSMAC ELF

The CDP1802 was the core of a popular kit computer, the COSMAC ELF. If you couldn’t afford the big S-100 bus CP/M computers that cost hundreds of dollars, in 1976 you could build one of these and get some computer experience. The CDP1802 lent itself well to this feature because of its primitive “DMA” functionality; essentially, the chip could be used to access memory, writing or reading directly for another peripheral. On the COSMAC ELF, that allowed you to write your bootstrap program directly to RAM one byte at a time, with no ROM and very few support chips.

The CDP1802 datasheet is worth a read. The chip has sixteen sixteen-bit registers, which is quite a lot for the time. And the registers are very flexible; any of them can serve as the program counter at any given time. For a CPU with 16-bit registers it’s also one of the most 8-bit CPUs I’ve ever seen. For example, branch instructions only can branch within a 256-byte “page”; if you think of a 16-bit address as 0xABCD, a branch only lets you control the CD. Compare this to the 6502, where the 8-bit branch value is added to the program counter as a signed number, and you can pass over that page boundary. (And the 6502 is more 8-bit than the Z80, which can even do some 16-bit math in a single instruction)

CDP1802 block diagram, showing a mux behind an 8-bit address bus

That might make more sense when you look at the block diagram of the CDP1802. Notice that there are only eight external pins on the address bus; the chip has a multiplexer to switch between the high eight bits, and the low eight bits. (This also complicates your memory access, of course)

Now let’s say you wanted some graphics. You could buy the COSMAC VIP, a more enthusiast focused niche machine in the 1977 computer space in the end, though it was also more affordable than the 1977 “Trinity” machines.

COSMAC VIP advertisement

But in the DIY spirit of the RCA CDP family, you could also buy the CDP1861 video chip and well, do-it-yourself. This graphics chip is known as “Pixie” graphics, and uses those DMA cycles to load graphics data from the system RAM, at a 64 pixels wide by 128 pixels tall monochrome resolution. Which isn’t terrible, considering, though it’s a bit low-res for the text-based applications that the Apple ][, Commodore PET, and Tandy TRS-80 all excelled at.

The amount of computers and game consoles that used this hardware is wild. Take a look at all the machines that the Emma 02 emulator supports for a taste– including even modern CDP1802 hobbyist machines like the “Membership Card”. The RCA CDP1802 family gave a lot of hobbyists their first taste of computing.

RCA

And arguably, it all came about because RCA didn’t know what to do with it. Let’s take a look at that article again. Specifically, the author.

COSMAC ELF by Joseph Weisbecker

Joseph Weisbecker didn’t just encourage hobbyists to use the chip. He made the chip. He built prototype machines out of discrete logic circa 1970, known as “FRED”, to prove its design. Unfortunately, they seemed reluctant to really get behind Weisbecker’s invention for home computing, instead trying and failing to sell it to markets like arcade games. It’s easy to see his Popular Computing article as just an attempt to get someone to use it.

Now, to be fair to RCA, in 1971 they sold off their mainframe computer division that had competed with IBM, and having made pretty much nothing but massive losses over that division’s life, they didn’t want to get back into anything that smelled of computer. But given that in the 1970s they instead invested in things ranging from TV dinners to rental cars, maybe we can criticize them a little bit.

The circuit board of the RCA Studio II

RCA had the CDP1802 in 1974 (and a two-chip version earlier), and the CDP1861 Pixie graphics chip in 1975. Look at the RCA Studio II circuit board again: it’s the CDP1802 (white chip to the right), the Pixie graphics, RAM and ROM. It really should’ve been able to beat Fairchild and Atari to market handily. The COSMAC VIP should’ve been earlier than any of the “Trinity”.

Should have, should have. But instead, we got what we got.

Studio II

Now, there are two pieces of information in the above post that might seem a little contradictory.

  • “The RCA Studio II is an easy console to mock. It’s black and white. The resolution is 64x32…”
  • “This graphics chip is known as ‘Pixie’ graphics… at a 64 pixels wide by 128 pixels tall monochrome resolution. Very nice.”

These two don’t add up. 32 pixels high versus 128 pixels high is a significant difference!

The circuit board of the RCA Studio II

The CDP1861 “Pixie” graphics chip displays 15kHz graphics intended to be displayed on a regular consumer TV. So those 128 vertical lines are the 128 scanlines that graphics are displayed on– so if you thought the borders on the Commodore 64 (which has a 200 pixel display area) were bad, you’ve not seen anything.

To achieve synchronization with the television using the limited CDP1802 DMA, the timing required is very precise. This places some constraints on the programmer:

  • Instructions that take three clock cycles should be avoided, as the program must complete an even number of cycles between interrupts. This includes “long branches” (jumps), so this is kind of an annoying constraint. (It also includes NOP)
  • The interrupt routine must load the first line to be drawn into the DMA register, and again, must take an even number of cycles.

The interrupt runs once, at the start of display, and from then on is using DMA cycles to grab the memory while the processor can go back to whatever it is doing (with an even number of cycles!). But the datasheet recognizes that 64x128 is a lot of RAM, and provides an option for lower resolutions. It’s not quite as simple as just a mode change, though.

Specifically, to get a lower resolution, you “just” need to time your CPU interrupt function so that it’s constantly overwriting the DMA address every single scanline; therefore, the lower vertical resolution is just reusing the previous line a few times before finally letting it advance. This saves a lot of RAM– but it also means that the interrupt is now running for the entire visual area of the screen, so none of your game code can run then.

The Pixie screen is 266 scan lines, so you lose about half your CPU time doing this. RAM was expensive in the 1970’s, so that was a win. Even on the COSMAC VIP with its luxurious 2kiB of RAM, it was pretty common to use this low resolution system.

Scripting

The constraints of the Pixie graphics system put a lot on the programmer. Since the RCA Studio II included built-in games in ROM anyway, it was pretty straightforward to also include an interpreted programming language. Running in the interpreter, you didn’t need to care about the timing requirements, and could also use some helper functions for putting graphics on screen.

RCA Studio II cartridge and its box

That’s right– for the most part, RCA Studio II games were generally written in bytecode, not in pure assembly like the competitor consoles. It was possible to jump out of the interpreter into assembly if you needed to, but I’m not sure how often it was done.

You might wonder if this is the same as CHIP-8. CHIP-8 was a famous interpreted bytecode language that had a 64x32 resolution, and is still popular today as a superminimal computer, and a target for beginning emulator developers. It was developed on the COSMAC VIP by Joseph Weisbecker to solve literally the same problem, so it’d make sense that it was the same.

But the “portable assembly language” on the Studio II not exactly the same. The biggest difference are those graphics handling functions, which are kind of a primitive form of software sprites, using XOR as a kind of collision detection.

Another fun thing about the cartridges for the RCA Studio II is that RCA manufactured everything in-house. That means that you get these single ROM chips, that just listen to the whole data bus. They also handle the weird multiplexed address bus I mentioned above. Paul Robson explains how the catridge bus works pretty well.

RCA Studio II cartridge is riveted shut

I’d show you the inside of my cartridge, except RCA riveted the cartridges shut. This system is so weird. Another thing about these cartridges, made possible by RCA’s pseudo-assembly, is that they are tiny. The smallest Atari 2600 and Channel F games are 2kiB. TV Arcade III - Tennis/Squash is 768 bytes– if you take a ROM you downloaded from the internet, anyway. (I won’t tell RCA if you don’t)

See, the memory map of the Studio II is very flexible, since the games are tiny and the vast majority of the 16-bit address is wide open. (Well, actually, the console’s RAM is mirrored anywhere that ROM isn’t present, but that’s not important) So the community developed the .ST2 file format that allows arbitrary mapping of the memory pages. That takes up 128 bytes of our header– TV Arcade III is actually a measly 512 bytes. I can barely get through a sentence without using that many. I mean, I know it’s just monochrome Pong, but…

Console Smallest commercial game ROM Size Mega Power
RCA Studio II TV Arcade I - Space War 256 bytes 0.002
Fairchild Channel F Space War 2kiB 0.015
Atari 2600 Combat 2kiB 0.015
Nintendo Famicom Galaxian 16kiB (8kiB PRG + 8kiB CHR) 0.125
SNK Neo Geo League Bowling 3,328kiB 26

And now, the problem

So, this post has been remarkably low on pictures of the RCA Studio II, or screenshots from it in action. Which is odd. I mean, I do have an RCA Studio II, don’t I? Yes! And it even sprouted some tails.

RCA Studio II with some wires sprouting out the back

I do. And this hasn’t been easy to reach this point! The RCA Studio II is RF-only, and even worse, required a special RF box that also provided power. The mods required are straightforward but still a bother, as the RF box of mine is long gone.

But unfortunately, despite all that, my Studio II is not working. The Pixie seems to be working– I get a black image, but it does have active sync, which is the Pixie’s main job in life.

Plain black screen

Hah, jokes on you, that was actually Space Harrier running on the SuperGrafx. But it’s the same concept.

I did try some troubleshooting; the Pixie working but not displaying an image could be an issue with those RAM chips, for example, and it is actually not too hard to find new ones today. Given how quickly they broke in half after removal, there may have been something wrong with them, but it didn’t solve the issue.

A broken white ceramic chip

That leaves the ROM or the CDP1802 CPU; both of which are proprietary. In many cases you could just use an EEPROM, but remember that weird multiplexed address bus layout? It’s a little more complicated. And I still haven’t confirmed the CDP1802 itself is good.

Back of the circuitboard, with a speaker

One thing I do know is good at least is the speaker, which like a Pong console is on the circuitboard, and on mine, turns on immediately on full blast whenever power is applied.

Schematic of the speaker. A single bit controls a 555 timer

An interesting thing about the speaker circuit is that it’s a 555 timer which is directly controlled by a single bit coming off of the CDP1802. In fact, CDP1802 assembly contains two instructions, REQ and SEQ, whose only purpose is to control the Q output, setting it high or low. Obviously, this isn’t good for much more than a beep.

By the way, it’s worth noting that the Studio II doesn’t actually boot to the cartridge, so I can’t use that to test whether the system works. It always boots to the internal ROM first.

Why aren’t we using the Studio XI today?

RCA Studio II serial number

So that’s the RCA Studio II. I’d really like to get mine working, but more to try to mess with the Pixie chip than to actually run the built-in games. I’m curious if it’s possible to build a cartridge with RAM onboard that can take over the internal ROM’s interrupt, and allow the Pixie to act as 128x64, using additional RAM to really unlock the additional power.

But for now I’m happy to have it as a historical artifact, even if mine doesn’t quite work. And while this post has lingered for awhile (I actually got this… over a year ago), I’m happy to get the story of this interesting console out there too. Because there’s another chapter.

Toshiba Visicom box with a lens flare

Look forward to it!