Sunday, October 1, 2023

Finally, an MOS 7600/7601 Video Game Array data sheet

A quick one. Many of you are aware of my rather abnormal fascination with the MOS 7600/7601, MOS Technology's dedicated "Pong-on-a-chip" (from the company that brought you my favourite CPU, the MOS 6502) that's actually a rather sophisticated microcontroller for the era. I own several 7600 systems now, including the Coleco Telstar Arcade, Radofin SC8000 and Commodore TV Games series, the Coleco Telstar Gemini and the Allied Leisure Name of the Game II. Compared with the General Instruments AY-3-8500, which was entirely hard-coded logic circuits, the MOS part has a programmable mask ROM in multiple variants and even more transistors than the 6502 itself.

The 7600 is now fairly well understood thanks to Sean Riddle's die photo, which Ken Shirriff exhaustively explored, but no one had ever found a data sheet — until earlier this summer. This data sheet is dated "Preliminary April 1976/Revision 1 June 1976," consistent with the earliest 7600 I've seen from 42nd week 1976, and gives the 7600 an official name, the Video Game Array (an unfortunate acronym collision). It specifically covers the original 7600-001 variant, an NTSC TV-compatible part that plays Pong in tennis, hockey and handball/squash/racquetball variations as well as a target practice mode, and is the variation present in most Pong consoles that used the MOS VGA. The mask ROM is explicitly stated as 512 words in size, which is read and executed by the "frame processor," acting as a combination I/O chip and CPU. The FP reads the opcodes from ROM, acquires player input, maintains the score, and sets up the display and audio output for the chip's analogue output stages.

The part that's gratifying is that the pinout and circuitry Ken and Sean independently figured out is nicely confirmed by the documentation, including the external colour support circuitry generated independently for player 1's paddle ("bat"); player 2's; and the ball, background, walls and score numbers. For even lower-cost systems, it supports a rainbow sweep system that just generates a rainbow colour pattern instead and is generated internally on-chip, though I have yet to find one of these systems myself. Interestingly, this mode requires a 3.595314MHz crystal instead of the usual NTSC colourburst frequency 3.579545MHz oscillator, which is one "line frequency" greater than the standard subcarrier (and that may be why I haven't encountered one yet, since ~3.58MHz crystals are substantially more common). It doesn't appear that the 7600 supported any other clock rates.

This data sheet confirms virtually all of our informed conjecture and fills in a few more gaps, but it appears to be missing at least two pages (between figures 4.1B and 4.6), does not have a complete pinout (only block diagrams), and since it comes from the beginning of the line naturally completely lacks a production history. We also don't know if there were pinout differences between the -001 and the later -002 through -004 variants, though this particular data sheet warns that "[f]uture games of the VGA series (MPS 7600-XXX) may make use of an expanded switch matrix ... Designers may wish to take account of this fact when producing printed circuit board layouts incorporating the VGA." The best understanding presently remains that there were only ever four game versions and Commodore, MOS' new owners that same year, discontinued production around 1978.

No comments:

Post a Comment

Comments are subject to moderation. Be nice.