Wednesday, February 21, 2018

Studio II Place in History

SYSTEM 00 designed and built by Joe Weisbecker 1971
3D photo of the SYSTEM 00 Personal Computer at the Sarnoff Collection, College of New Jersey, Trenton, NJ. The photo also shows the VIP computer and Studio II game console on the far right.


Studio II Brief History

The Studio II was a 2nd generation video game system. Due to internal delays at RCA it finished second place in a race to be the first video game system controlled by a computer microprocessor and use ROM (Read-Only-Memory) based game cartridges. It was announced for sale about a month (January 1977) after Fairchild Channel "F" ROM cartridge game consoles (November 1976). 

The Studio II displayed in low resolution black and white on a broadcast TV receiver, showing 64 horizontal by 32 vertical square pixels. It used plug-in interchangeable game cartridges with 1024 bytes ROM (Read Only Memory) that stored games. 

During 1977 we were working on a Studio III game console that displayed in color and improved the sound. But after Atari introduced their Atari Video Computer System (later renamed Atari 2600) in September, 1977,  these RCA and Fairchild products were no longer competitive. The Atari VCS features were superior to the Studio II, Studio III, and Fairchild game systems. 

RCA canceled the Studio II product due to poor sales at the end of 1977. I was fortunate that Phil Baltzer added me to his team at David Sarnoff Research Center as a Member of Technical Staff employee starting January 1, 1978. Otherwise I would be looking for work elsewhere.

Joseph Weisbecker designed the Studio II game system. It  was a milestone product that came out of work spanning almost a decade. Joe developed a series of prototypes and products for consumer/arcade games and educational computing devices beginning in 1971 and ending about 1980.  


Studio II Development Chronology 

The following sections are in chronological order covering a decade of work by Joseph A Weisbecker and others. This is an outline of material I think is important and that relates to the Studio 2. I would like to expand this outline, but it will take a full time accomplished technology historian and writer to give it full depth and provide us with a biography of Joe Weisbecker's full life's work.


1971 SYSTEM 00

The SYSTEM 00 is a personal computer (photo above) that Joe Weisbecker designed and built at home with discrete logic TTL integrated circuits. It had the foundation architecture and instruction set for what would become the COSMAC CDP1802 microprocessor used in the Studio II game console. I chose 1971 as the starting date based on schematic diagrams annotated with dates from October through December 1971, in the SYSTEM 00 Manual written by Joe Weisbecker.

This computer used an oscilloscope as a display with a resolution of 32 wide x 32 high pixels. It also used a punched card reader that allowed you to load a program on cards as you dropped them in sequence into the reader. There were no card reader motors, it used gravity to scan the cards as they fell. Joe wrote a game called "Deduce" for SYSTEM 00.


1972-75 FRED

FRED (Flexible Recreational Educational Device) prototypes were forerunners to the RCA COSMAC computer systems. Because RCA got out of the computer business in 1971, its management would not support any project with computer in its title, so Joe named it FRED.

The FRED 1 was built with discrete logic TTL integrated circuits. Later FRED 2 used the CDP1801 microprocessor integrated circuit adding more instructions and features of the SYSTEM 00. There was a version of FRED 2 computer (1974) that was used to develop computer games running the 1801 microprocessor.

The FRED 2 computer had a cassette tape recorder interface to write and read programs into computer memory.


1974-1975 COSMAC MicroTutor

This board was used to teach 1801 microprocessor programming and logic.


1975 RCA ARCADE GAME 

The RCA Arcade games used the RCA 1801 microprocessor, a pair of integrated circuits. The Arcade games never sold but were placed in a shopping mall to measure the concept marketability. Four games were planned, Swords, Bowling/Tag, Mines, and Chase II.

The Arcade Games used an interpreter language, named FEL-1 ( FRED 2 Experimental Language),  to code games. It was the predecessor to the Studio II interpreter used to write games for the Studio II and III consoles. There were variations of FRED interpreters written.

During this time the two chip 1801 was combined into a single integrated circuit, the CDP1802 and more instructions were added.


1976 COSMAC ELF

This 1802 microprocessor computer training tutor, COSMAC ELF, was published as a four part series in Popular Electronics starting with the August 1976 edition before I started working on Studio II game programming.

1976-1977 STUDIO II

The Studio II developed from the RCA Arcade Game systems and used the CDP1802 microprocessor. Like the arcade games it used yet another version of an interpreter for writing games.


1977-1978 STUDIO III

Plans were under way for Studio III game consoles. RCA stopped manufacturing the Studio II at the end of 1977. The Studio III was manufactured and sold outside the USA, but not by RCA directly. Various manufacturers sold Studio III clones for use with both NTSC and PAL (Europe/Asia) TV receivers.

I wrote a pinball game for the Studio III. Phil Baltzer asked me to document the game code to help game developers who would later write games for the Studio III. The document is in the Weisbecker papers at the Hagley Library, Accession 2464, Box 873, Folder 6, "STUDIO, Pinball Game Documentation", 1977. There no author listed, because as Phil Baltzer explained to me, even though I wrote the document, I was not an official member of technical staff at the RCA David Sarnoff Research Center, that was publishing it. I was an employee of RCA Distributor and Special Products working in Phil's team, so my name could not appear on a Research Center document.

1977 STUDIO IV

The Studio IV game console was being developed in the fall months of 1977. There exists a Studio IV interpreter binary code tape in The College of New Jersey, Sarnoff Collection, 1/1/1978 from Joe Weisbecker. Joe demonstrated the Studio IV interpreter on a modified VIP computer to a group of us during the first week of January 1978.

1977-1980 COSMAC VIP

The RCA MicroComputer Products division, Lancaster, PA sold the COSMAC VIP as a kit and assembled board, latter adding plug-in boards for more RAM, color, and sound, etc. There were two interpreters for the VIP, CHIP8 was a simplified streamlined version of the Studio II interpreter, and CHIP8X an expanded interpreter for sound and color programming. The VIP used cassette tape recorders for storing programs. The tape format had evolved and was refined from the FRED cassette recording formats.

The early COSMAC VIP prototypes were used as program development boards for the Studio III game consoles since they had similar architectures.

I wrote an integer BASIC for the VIP and it was published as a technical document by the David Sarnoff Research Center in 1978. It was sold as a plug-in 4K ROM cartridge for the VIP computer.

The MicroComputer Products division also published several VIP computer game manuals and guides, that have listings of my games and other programs for the VIP computer.

A RCA COSMAC VIP and VIP II terminal were also developed and sold that ran BASIC (not my code though).


Sources and References

https://en.wikipedia.org/wiki/RCA_Studio_II

https://en.wikipedia.org/wiki/Second_generation_of_video_game_consoles

https://en.wikipedia.org/wiki/Fairchild_Channel_F

https://en.wikipedia.org/wiki/Atari_2600

http://www.exemark.com/Microcontrollers/PopularElecwebc.pdf

Hagley Museum and Library: Manuscripts and Archives Department, Wilmington, Delaware.
   Joseph A. Weisbecker papers, 1962-1982, Accession 2464, Box 872, 873, 874, 875.
   Billie Joe Call papers, 1974-1991, Accession 2464, Box 919, 920.

Sarnoff Collection, The College of New Jersey, Trenton, NJ

My Entry Into Video Game Programming

RCA Studio II Home TV Programmer

Public domain photo of the Studio II console by Evan-Amos:

https://en.wikipedia.org/wiki/RCA#/media/File:RCA-Studio-II-FL.jpg

Electronic Games

"ARE YOU"

was the heading for an employment section advertisement in The Philadelphia Inquirer, Philadelphia, Pennsylvania, Sunday Main Edition, June 27, 1976, top of page 99.

I thought it was a unique and unusual ad seeking an electronic game programmer without naming the company behind the ad.

The ad asks four question that if you answer affirmatively, will invite you to send your resume.

"Turned on by really small microprocessor systems and their possibilities?"

Absolutely, In 1976, I built a home computer from a kit, the IMSAI 8080, that utilized the Intel 8080 microprocessor. I wanted to learn about programming microcomputers. 

In early 1975 the first home computer kit available was the MITS Altair 8800 computer. An digital electrical engineer colleague at SPERRY-UNIVAC, where I worked, had built an Altair. He experienced problems with its poor build instructions, but was eventually able to resolve them. I think his digital design experience at work helped him complete the build. 

Because of his experience, I decided against the Altair, and instead I bought the IMSAI 8080. In retrospect sometimes I regret this decision, only because the Altair was the first with its place in history. But at the time I thought the IMSAI had a much more attractive front panel, a better power supply and was cheaper. I built the IMSAI without any problems and it powered up and ran the first time.

"Hooked on electronic games and have ideas of your own?"

Yes, I enjoyed playing a star trek like battle game on a UNIVAC computer during lunch time break, and found the idea of building and writing a game more compelling than playing.

"Above being pampered by BASIC, ALGOL, or FORTRAN?"

Sure I can write low level code. I was on the team that wrote a FORTRAN compiler in computer hardware machine assembler language for UNIVAC operating systems. I did not like BASIC, even though I used it.  And although ALGOL was not used in systems programming at UNIVAC, I did like its elegance. But I was very comfortable with and enjoyed coding in machine languages because I was interested in hardware level programming.

I had used ALGOL in a programming course at the University of Pennsylvania, Moore School of Electrical Engineering several years earlier. At that time ALGOL was being used as an operating systems programming language by Burroughs, a mainframe computer competitor of SPERRY-UNIVAC. In 1986 the two companies merged to form UNISYS.

There was an ongoing trend in software development, and at UNIVAC to improve the quality and speed of writing code by using higher level programming languages, rather than machine level assembler languages of the computer hardware instruction set. I endorsed this trend. Finally in the mid 80's there was a suitable programming language "C" that replaced assembler for many coding tasks for operating systems.

Studio II game programming used an interpreter language, an acknowledgement that there was a need to write code in higher level languages.


"Ready to swim in the mixed sea of hard-and software?"

Yes, I envisioned integrated circuit microprocessor systems being built into many devices. I wanted to learn more about computer hardware design principles too, even though I favored software development.

RCA Studio II Game System

I sent my resume to the Inquirer black box. To my delight I was called in for an interview at the RCA David Sarnoff Research Center in Princeton, NJ. I spoke with Philip Baltzer and Joseph Weisbecker (who both collaborated on writing the ad) . RCA was developing a new video game system and needed a software programmer to write video games for the new RCA Studio II Home TV Programmer. 

The game console was to be built by the RCA, Distributor and Special Products Division, headquartered in Deptford NJ, and manufactured in North Carolina. Next I interviewed at the RCA DSP Division that would become my official employer. I would be paid by the DSP Division, but work 99 percent of my time in the Princeton labs with Phil Baltzer's group. 

I started work after Labor Day, on September 7, 1976. In retrospect things moved slowly at RCA since I was interviewed in early July and was not hired until about the third week in August.

I gave two weeks notice to UNIVAC and during this time the first personal computer show was held in Atlantic City, NJ, the weekend before Labor Day, August 28, 1976. During the show my wife and I dined with Phil Baltzer's lab group. This is the show where Steve Jobs demonstrated the Apple I, and I remember visiting the Apple booth. 
Phil Baltzer and Joe Weisbecker told me one reason I was hired was because I stood out among the interviewed programmers for having built my own personal computer kit and my enthusiasm for computers for personal use.

After starting work, I learned that programming games for the Studio II required writing in a pseudo code language designed for game construction, instead of the 1802 microprocessor instruction set. This was not a problem for me except that Joe Weisbecker used paper and pencil to code games in hexadecimal numbers of the game interpreter instruction set. I quickly realized this would not only be a tedious error-prone way to write game code, but would be hard to refactor and reorganize the code to compress a game to fit into small memory cartridge ROMs. Plus it would be harder to add or change game features. I needed a tool to help me increase my productivity.

Fortunately the Sarnoff Labs had available a modem dial-up time sharing service on an IBM 370 mainframe computer located at a RCA data center in Cherry Hill, NJ. I found I could utilize the 370's machine code macro assembler to write mnemonics for the interpreter instructions as macros, and generate a hexadecimal character program file for a game. With the mainframe online I could edit and save my programs and make changes as needed using a line oriented editor with the paper terminal modem hookup. 

When I printed the game hexadecimal codes on a 30 cps paper terminal the output could be simultaneously transferred to a Studio II development board via a UART interface card (serial data send to/from the terminal). With some help with parts and UART chip information from colleagues Tom Chen and Bille Joe Call, I built a UART interface card and wrote code to get it to convert the ASCII hex digits into binary and load into RAM on the development board. This saved a lot of development time and provided quick turn-around for bugs and added game features.

Now I was ready to write my first Studio II game in earnest....