COSMAC FRED and cassette data storage


Last updated Oct 5 2018. Edited by Herb Johnson, (c) Herb Johnson, except for content written by others. Contact Herb at www.retrotechnology.com, an email address is on that page..

Introduction:

A number of technical people, personally interested in vintage video gaming or in early RCA COSMAC systems, worked during late 2017 into 2018, to obtain documents and audio-cassettes with binary program data from archives of RCA prototypes and documents and tapes. Others worked on COSMAC emulators and re-documenting the recovered games and programs. This Web page discusses details about work done from Dec 2017 to Feb 2018, on digitized WAV files of analog audio cassettes from the Hagley Library RCA collection. This page describes and references "FRED 2" RCA COSMAC development systems.

Another Web page, COSMAC coin-op arcade prototype, is about prior work done from Dec 2017 to Feb 18 2018, to recover hardware information and cassette-stored programs to emulate one RCA COSMAC prototype, a coin-operated arcade-style demonstration system.

And another Web page, Sarnoff Collection COSMAC tapes, follows the effort from Feb to June 2018, to digitize the Sarnoff Collection's archive of RCA COSMAC cassette tapes, produced on those FRED-class systems, and to decode them into useful binary programs and audio. A description of those tape formats is in progress below.

Background: Early COSMAC 1802 development systems of the 1970's from RCA, as well as hobby-class 1802 systems and RCA video-game systems, supported audio cassettes for program storage and retrevial. This Web page discusses some of the technical features of cassette encoding and decoding, and digital archiving of old audio cassettes used in that way. "FRED 2" was RCA's designation for early COSMAC microprocessor development systems, built and used at RCA to develop and demonstrate both video-gaming technology and COSMAC hardware software development technology. I'll reference many other Web pages for details on processing audio/data cassettes, or work about COSMAC hardware (physical systems or simulated).

Technical discussion of audio cassettes for data, a common feature of mid-1970's microcomputers, is on this linked Web page.

The Hagley acquired part of the RCA Sarnoff Library several years ago, including some of the audio data tapes discussed here. Here's a Web page with background on the former Sarnoff Library, and where all the materials went. A number of prototype COSMAC systems from the RCA Sarnoff Library, are part of The Sarnoff Collection, including a FRED 2 system. That FRED 2 system and others, may incorporate the data recording format discussed here.

- Herb

Hagley Library, RCA COSMAC programs on audio cassette

Brief background: The audio tape cassette holds the game-program itself, as binary information. The bits for the COSMAC's instruction codes, are represented as audio tones. The tones are encoded or decoded by electronics, from or to binary data. What sounds like bird-song noise to human ears, is binary data to or from the computer's electronics. The cassette "stores" a program and its data; that's "loaded" into the computer, and then "run" to start and play the game. It was "saved" to cassette, when the game program was developed, on that or another COSMAC computer.

In late 2017, some old RCA Sarnoff Library's "FRED" or COSMAC cassette tapes, were digitized by the Hagley Library. The digitization was a result of inquiries, as discussed in 2017 in the AtariAge.com forum of classic gaming, about a "coin-op" COSMAC machine or prototype.

The "techs" were looking for tapes for and information about that system. A number of persons contacted and visted The Hagley, and The Hagley digitized a number of identified tapes to confirm their methods of digitizing. Some WAV files have been shared via that discussion forum.

Ed Keefe responds

I asked Ed Keefe, a developer of a COSMAC 1802 software simulator for several kinds of COSMAC computers, for more information about the WAV file and the binary format of the original audio encoding. (NOte: most of the persons on the AtariAge forum, use pseudonyms to identify themselves, therefore I can't easily identify "who" contacted the Hagley, or obtained the WAV files, etc. I'll update any identify information as it's obtained. LIkewise, the WAV files are being "shared" via a DropBox Web site; it's unlikely that site will persist for months or years. Not my job to be their archivist. :( Content obtained from the Hagely Library, is obliged to be identified as from "Hagley Museum & Library, Wilmington, DE 19807" and to reference the specific Hagley archive designation for that material.- Herb)

Ed Keefe responded: "Here is a Web link to get you started [on WAV file format. On RCA's audio encoding of binary data,] RCA had multiple formats. One is based on a single frequency with 2 pulses for a "0" and 4 pulses for a "1". The other was similar to the "Kansas City Standard" which used two different frequencies to represent ones and zeros." Subsequently, the "two frequencies for one's and zeros" is documented as "VIP" format. The 2/4 (actually 2/5) pulse encoding has been called for convenience the "FRED" format, for now only documented by inspection of tapes.

Note: Marcel van Tongeren has further information in his note below. - Herb

Andy Modla responds

Andy Modla worked at RCA in the era on COSMAC products. Currently he's obtaining and working with Hagley and Sarnoff Collection content, about the coin-op COSMAC and other COSMAC video-game prototypes. In private email, Andy said: "I used Audacity software to analyze the [Hagley-produced] wav files. From the wave form I noticed 2 cycles represent 0 and 5 cycles of audio represent 1. [here's an] attached screen print. Not sure what the audio freq is, I think it is 1000 HZ.

Anyway my next step was to isolate a single track in Audacity and export as raw 8bit PCM file (no headers). I wrote Processing/Java code that reads in the PCM file and looks for patterns of 2 and 5 cycle lengths disregarding the base cycle frequency. It was trial and error but I achieved no parity errors on the data for coin arcade "tag/bowling" and coin "swords". I now think this WAV to hex byte conversion is working better than I thought in my last email because I got the swords and tag/bowling games to work [in an emulator] except for display graphics timing and delays that are too long.- Andy

Hagley WAV file examined

I examined the file named "AUD_2464_09_B41_ID01_01 Tag-Bowling.wav", which is one of the Hagley COSMAC tape files. My visual inspection of the audio data - using an audio program which shows an "oscilloscope" display of the two audio channels - shows a series of waveforms in patterns of both five cycles and two cycles, with quiet breaks of a few cycles between each of those. Those two patterns likely represent a "1" or "0" as Ed Keefe suggested. Ed said he knew of four cycles. I also discussed this with Andy Modla who is writing a program to convert audio data; he reported five cycles, "probably 1000 Hertz".

My review of the WAV file data format, with a hex file editor, says that WAV file was created with the following specifications. In "PCM" format, 2 channels, 96K samples/sec, 24 bits per sample. To explain that information, I'll have to explain how the WAV file provides that information.

I went to the Web page Ed recommended on the WAV file format, and found this WAV file description:

The canonical WAVE format starts with the RIFF header:

  Offset  Length   Contents
  0       4 bytes  'RIFF'
  4       4 bytes  
  8       4 bytes  'WAVE'

Next, the fmt chunk describes the sample format:

  12      4 bytes  'fmt '
  16      4 bytes  0x00000010     // Length of the fmt data (16 bytes)
  20      2 bytes  0x0001         // Format tag: 1 = PCM
  22      2 bytes       // Channels: 1 = mono, 2 = stereo
  24      4 bytes    // Samples per second: e.g., 44100
  28      4 bytes   // sample rate * block align
  32      2 bytes    // channels * bits/sample / 8
  34      2 bytes    // 8 or 16

I examined this file named "AUD_2464_09_B41_ID01_01 Tag-Bowling.wav", which is one of the Hagley COSMAC tape files. Inspection of the beginning of the file in a hex editor shows:

'RIFF'
70 E8 F4 04
'WAVE'

'fmt '
12 00 00 00    <--length of format data is 18 bytes
01 00           <-- PCM
02 00           <-- 2 channels
00 77 01 00     <-- 017700h samples/second = 96,000
00 CA 08 00     <-- 08CA00h sample rate = 576,000
06 00           <-- 2 X 24 / 8 = 6
18 00           <-- 18h = 24d bits/sample
00 00           <-- unknown
'data'          <-- digitized data follows

So my analysis says the WAV file was created as 2 channels, PCM endoded, 96K samples/sec, 24 bits per sample. Since the audio source was one channel, apparently there's a copy of the same "audio" in each channel.

- Herb Johnson

Early COSMAC cassette data formats, Sarnoff and Hagley archives

As noted in the introduction of this Web document, the Sarnoff Collection COSMAC tape collectionas produced on FRED-class COSMAC-like systems, is being digitized and reviewed from Feb to June 2018. A number of people as named in this and related Web pages, are decoding them into useful binary programs and audio.

In late June 2018, Marcel van Tongeren, the developer of the EMMA 02 COSMAC emulator program, see "Analog and digital processing in EMMA 2", provided me with a summary of the tape formats he's found. - Herb

5.2 / 6.2 KHz tone format:
I believe this is the first tape format defined by RCA and was used in first FRED as described in the July 1972 FRED manual ( page 7/8), maybe also in the SYSTEM 00, but I’m not sure. It uses a 5.2 KHz short tone for a 0, and a 6.2 KHz short tone for a 1 as well as a longer 4.2 KHz stop tone. Every byte has a start-bit ‘1', then 8 bits followed by a parity bit: so a total of 10 bits.

This format is used on [Sarnoff Collection archive tape] S.572.96 which contains games for the same FRED as mentioned above (as described in the July 1972 FRED manual) and these games use the same CPU as SYSTEM 00.

Pulse Mode (PM) System, start bit 1:
This is the 2/5 pulse system as we discussed earlier used in the later FREDs from March 1973 and described in the same pdf above but in FRED Note #9 and #10 somewhere to the end of the document. So 5 pulses for a ‘1', 2 pulses for a ‘0'. Every byte has a start-bit ‘1’, then 8 bits followed by a parity bit: so a total of 10 bits.

This format is used on S.572.82 which contains games for the same FRED as mentioned above (as described in the July 1972 FRED manual) and these games use the same CPU as SYSTEM 00.

PM System, start bit 0:
Same as previous but using Start-bit 0. I don’t know what HW uses this, possibly one of the later FREDs as well? Very few tapes using this so far so.

This format is used on 'AUD_2464_09_B41_ID03_01 New Studio 2-5 Game Set (BA) X2’ as well as 'AUD_2464_09_B41_ID08_02 Secret Number' from the Hagley Library Sarnoff collection. Both tapes include Studio II games but that in itself doesn’t really provide proof on which system this was used. Other Studio II games from tapes mostly use the VIP tape format.

FRED 2 and tape formats:
I’m not sure which tape format was used in the FRED2 as described on your site. Possibly also the FRED2 started with a 5.2/6.2 tone format but maybe more likely it used the PM System. If [someone has] proof of either please let me know.

The last format [?] is kind of a mystery to me and definitely not used in Studios or coin-op, as far as I know those didn’t support any tapes. All SW for those was as far as I can tell saved on FREDs and possibly also developed on them or more dedicated systems. I did add some info on the programs from the tapes below which might give additional details. Maybe we can updated that later when we have more info from other tape conversions. - Marcel

In Oct 2018, Marcel reviewed these results and created a Web page on the COSMAC tape formats he found and how to read them as WAV files.

Following the FRED prototypes, RCA produced a number of small COSMACs for development, the Studio II game system, and the VIP which supported cassettes. Here's a Web page about VIP tape format. - Herb

FRED 2 hardware, software for cassette data

The Sarnoff Collection exhibited what is likely a FRED 2 system, in early 2018. Here's a Web page I constructed about that FRED 2 system. That page provides some context of the Sarnoff Collection and of the FRED 2 computer, and a general description of the hardware.

SPecific to the cassette operation of that FRED 2 computer; I believe it is much like the cassette hardware described in documentation provided by an RCA engineer, Billy Joe Call, which resides at the Hagley Library; and made available to Paul Robson for further review by myself and others. Those sources are described and referenced below; I try to interpret some of the hardware schematics.

Documentation of FRED cassette hardware and software

Previously, in July 2016 there was a request to the Hagley Library by Paul Robson, regarding some RCA COSMAC FRED documents, which are part of the archive of Billie Joe Call papers at the Hagley Library. Paul obtained copies of the documents, and with permission he made those documents available under some specific conditions. Paul made those documents available on the Yahoo discussion group "cosmacelf" files archives; and as part of a FRED simulator he produced by Aug 2016. Links to all these resources appear below, the details are complicated.

Here's my FRED 2 and coin-arcade hardware cassette documents, which are relevant pages I extracted from the BJC archive. They are a single ZIP file of PDF's; with a summary of where they came from.

At this time, I believe the BJC archive documents "FRED" hardware for cassette, as operating largely in CMOS-logic hardware, not in bit-banged software. Review of the BJC documents, shows the use of serial/parallel shift registers, clocking logic, and DMA access of the shift registers into or from memory. The hardware also includes an LM 567 tone-detector chip set (I believe) to 4.1KHz, and the software supports tone generation. I believe the tone is used to turn the tape recorder off or on under tape-recorded control.

From a review of the oldest of the RCA/COSMAC cassettes, they are binary encoded as a series of two or five cycles at some audio frequency or pulse-width. That's very different from COSMAC VIP cassette operation of timed operation of the Q output or an EF input, to produce long or short cycles/pulses to represent 0's and 1. But they still follow the byte format of a "start" bit, 8 data bits, and a "parity" bit - as used later in the VIP tape format. Reports on actual audio recordings, suggest the start bit may be a "1" or may be a "0", from tape to tape.

Readers of this description: Please review these pages; consider going to Paul Robson's Web site to look at his FRED simulator and interpretation of a FRED computer; and other references. Please inform me of any suggestions, changes or corrections to this description accordingly. I'd like to provide here, a better summary of the FRED's hardware and data coding for cassette operation. - Herb Johnson

Links and background to B J Call's FRED documentation

Because of the conditions for distribution of copies of BJ Call's documents from the Hagley Library, and in order for anyone else to find the origin of those documents, I am obliged to explain and make certain references as below. I'm sorry this is complicated.

In 2016, Paul provided "four FRED folders box 191" as obtained by him, from the Hagley Library from their archive of Billie Joe Call papers. Paul provided the following attribution and credit statement: The original documents here were provided by: Lucas R. Clawson, Reference Archivist / Hagley Historian, Manuscripts and Archives Department, Hagley Museum and Library. These documents can be freely shared but please keep this attribution file with them, or put a similar text on any page hosting them."

In my personal correspondence with Paul Robson, he quoted his request to the Hagley for these as "from the collection of a "Billie Joe Call" (accession no. 2464.54)". Likewise, they were provided as four large PDF documents titled "Fred Folder 1[,2,3,4], Acc. 2464, Box 919.pdf". But: On the Hagley Library on-line finding aids, documents for the "RCA Solid State Division records", papers of Billie Joe Call are part of "RCA Solid State Division records (Accession 2464.75), Hagley Museum and Library, Wilmington, DE 19807"; and inventoried as "I. Billie Joe Call papers, 1974-1991", BOX M&A 191, folders 22-29 (and BOX M&A 920, folder 1-16). To add to the confusion, folder 22 is titled "File #1, FRED2..."; folder 23, "File #2...", and so on. There is no document for 2464.54, and no other Billie Joe Call documents. In March 2018, a Web search for the BJC and SSD documents yields this Hagley Library finding aid Web link.

Paul Robson's FRED and FEL-1 emulator, and Hagley/BJC FRED documentation

In any event: several PDF's representing four "folders" were made available, on the Yahoo discussion group "cosmacelf" Web site, in their file archive, in a folder by Paul Robson "paul31415926536", named "Fred", dated July 11 2016; in a subfolder named "Hagley Library Documents" described "Scan Files provided by the Hagley Library". Here's a 2018 Web link to that subfolder. Of course I'm providing all the information relevant to those documents, in the likely event they are moved or disappear; and in keeping with the terms of release. The terms apply to me and the copies I'm providing here.

Paul used the documents to establish a software simulation of a FRED system and the FEL-1 software (documented in the BJC papers) for that system. FEL-1 is a predecessor of the CHIP-8 graphics interpreter used in subsequent COSMAC systems.


Contact information:
Herb Johnson
New Jersey, USA
To email @ me, see
see my home Web page.

This page and edited content is copyright Herb Johnson (c) 2017. Copyright of other contents beyond brief quotes, is held by those authors. Contact Herb at www.retrotechnology.com, an email address is available on that page..