RCA MCDS, Microboard Computer Development System


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

[RCA dev sys]

Background and interests

This Web page describes a specific RCA COSMAC "Microboard Computer Development System" from 1982 and its ROM codes; and RCA Run-Time BASIC ROMS from the same period, from another owner. The MCDS is apparently RCA model 18S693 or 18S694. The station includes one of RCA's COSMAC 1802 development board sets; an RCA video terminal/keyboard with COSMAC chips; an RCA brand CRT monitor; and a Panasonic audio cassette recorder - all as RCA provided in their product. The station represents a complete and inexpensive microprocessor software development system and controller of the late 1970's, without then-expensive floppy disk drives. Programming in BASIC and in assembly language was standard at the time; often done on time-shared minicomputers or mainframes, or on more-expensive diskette-based development systems.

Because there's intense technical interest today in RCA's COSMAC products, this Web page has details about the cards and chips of this system; and an analysis of the ROMs. There's a number of online communities of COSMAC owners and builders in the 21st century, which can be found with a Web search.

The station is owned by the Vintage Computer Federation which has a museum at InfoAge in Wall, NJ. Also, I acquired a VP3303 video terminal; part of this Web page describes it.

Emulation: As of early March 2017, Marcel van Tongeren worked to include these ROM codes to run this Development System in emulation, under his EMMA 2, 1802 emulator. The BASIC 3 should operate similar to other BASIC 3s in the emulator. The ELF emulator already has a BASIC 3 V1.1 binary available. Marcel says this RCA Dev Sys was supported similarly to the RCA MicroDisk Development System MS2000 emulation. See his Emulation notes below. He and I discussed refinements to his emulator's runtime disassembler. The result was an execution-based disassembly of the UT62 ROM, which I converted to a UT62 source based on UT71.

Run-Time BASIC: In June 2020, "cellarcat" uncovered a set of "RCA Run-Time BASIC" ROMS on an RCA development board. As discussed in cosmacelf groups.io, that person made the ROM binaries available. The codes were provisionally verified as the code of that name as described by RCA. This page is updated to include that code and descriptions. In fact, content from this Web page helped to identify the ROM's operation and memory-space.

Background:This is one of several models of COSMAC 1802 development kits, boards and systems sold by RCA in the mid-1970's and into the 1980's. RCA also produced the Studio II video game system, based on the 1802. RCA produced the first CMOS microprocessor and chip set, in the mid-1970's. Its low-power and the SOS-version's radiation resistance, were critical for use in early amateur and scientific satellites and spacecraft; and for industrial use such as automotive controls.

More 1802: This Web page is one of many I publish which describe RCA's COSMAC 1802 processor and products using that processor. Some of these pages support Lee Hart's 1802 Membership Card product. - Herb Johnson

Microboard Computer Development System 18S693

[RCA dev sys]

[RCA dev sys]

The chassis is a five-slot card cage, with a lable "Microboard Computer Development System". "RCA Solid State Division, Somerville NJ". "Microprocessor Workshop Hardware model CDP18S950". IN the chassis are two boards and the backplane; the system includes a terminal keyboard, a CRT monitor, and an audio cassette recorder. The image on the left, is the development system ROM and I/O board. On the right, is the CPU board. Here's a one-page tech summary for the 18S693 system.

[RCA dev sys]

[RCA dev sys]

The CPU board is model CDP18S601 CPU 2. Here's a PDF of 14 pages about this board, from the Microboards manual. It has the 1802 microprocessor and 1851 I/O chip. Eight 1K X 4 bit, NEC D444C static RAMs. No ROMS but 4 sockets for them. Chips date from 1982. The Microboards RCA manual says "The CDP18S601 Microboard Computer contains a CDP1802 CPU, a crystal-controlled clock, read-write memory, parallel I/O ports, a serial communications interface, power on reset, and an expansion interface. Four on-board sockets are provided for read-only memory, enabling the user to select 4 or 8 kilobytes of mask-programmable ROM or PROM, or 2708, 2758, or 2716 EPROM's, depending on the applications."

The development system ROM and I/O board is RCA model CDP18S652B; "RCA COSMAC Microboard Combination Memory and Tape I/O Module". Chips date from 1982. Has 10 of up to 12 2716 UV PROMS. Also two 1K X 4 bit, NEC D444C static RAM; there's positions for two more. Chips date from very early 1982. Look at the photo; the IC's are arranged "head to head" not all in the same orientation! That's baaaad design mojo.

The 1982 "RCA Microboards Manual" says: "By means of the CMOS programmable I/O Interface CDP1851, the CDP18S601 provides the Prototyping System with 20 programmable I/O lines. The software customizes each of these lines as input, output, bidirectional, or bit-programmable with or without unique handshaking signals for each application. A serial communications interface, provided with both 20-milliampere loop and EIA RS232C capability, is driven by the Q and EF4 serial I/O lines of the CPU. Because of its CMOS design and low current requirements, the power supply and cooling requirements are minimal. "

[RCA dev sys]

[RCA dev sys]

A Panasonic portable cassette tape player recorder was associated with the system. Cables from the I/O card loaded and saved programs to the audio cassette tape. The RCA TC-1110 9-inch video monitor displays text from the video terminal. The RCA VP3301 terminal keyboard unit is itself an RCA 1802 product, probably with RCA's CDP1869 and CDP1870 video chip set. It has a serial connection to the development system.

Another VP3303 video terminal

[RCA term]

In April 2017, I acquired my own RCA VP3303 terminal. It looks the same as the VP3301 terminal in the RCA Development system. It did not take long to power up and go-test this unit. I had to construct a video/audio cable to operate it with a video monitor and 8-ohm speaker. In the photo, it's operating a small monitor similar to the 9-inch CRT monitor of the Dev Sys.

The keyboard unit has a flat keyboard, with keys of zero travel; it's like typing on a picture of a keyboard. There's an audio tone when a key is actuated, if an external speaker is attached. the back of the unit has the power, video, serial and other connectors. On the edge, there's DIP switches to set serial and other features. It's powered by a wall wart with two DC voltages.

ROM content

the ten ROMS on the board are 2716's. They are: six ROMS labeled BASIC, three labled EDIT ASM, one labled UT62. They have been read. Here are binary and Intel hex record files of the contents.

ROM BASIC 1/3 says "RCA 1981 BASIC3 V0.0"
ROM EDIT ASM 1 says "MCDS TAPE EDITOR VERSION 0.0"
ROM EDIT ASM 3 says "MCDS ASSEMBLER VER.0.0"
ROM UT62 REV 2 says nothing useful about content.

In early 2017, I'm working on a general disassembler for 1802 binary code. So I've generated simple source codes from the ROM binaries. See the notes with the files for details. I've disassembled UT62, see below.

1802 disassemblers

I've not made available, the 1802 disassembler I use, because it's not quite satisfactory yet. It's not complicated in operation but it's complicated to use. It's up to the user to create a table of addresses which he/she identifies as code or data or ASCII text, or other features. I'll consider releasing a version, if I'm asked about it sufficiently.

Meanwhile, there's a number of available 1802 disassemblers. The linked Web page describes and links to a few of them. In addition, as I describe on this Web page, Marcel van Tongeren's EMMA 02 emulator includes an active disassembler. Read this Web page for his disassembly work on the MCDS ROMS and a link to his EMMA 02 Web site.

UT62 source disassembled from UT71; later recovered source

I have sources for the UT71 ROM, on this linked Web page. It's similar to the UT62 code in these ROMS. I didnt' have a UT62 source ASM file in 2017. So, I've combined that UT71 listing and source, with the UT62 disassembly produced by Marcel van Tongeren's EMMA 2 emulator, to produce a useful UT62 "source". A rough result was completed in April 2017. In Aug 2017 I corrected several errors, to produce a listing file which matched Marcel's ROM disassembly - and thus the binary in this ROM set. Until July 2020, that's what I distributed.

The UT62 documentation is not available. Some basic operations of UT62 may be documented as part of UT61. Here's a PDF of UT61 docs and here's the text from the 1982 RCA Microboards manual. Look at the section below on "emulation", and in the text file, for more UT62 commands.

In July 2020, Ed Keefe produced scans of pages from MPM-293 - "User Manual for the RCA Microboard Computer Development System (MCDS) CDP18S693 and CDP18S694". The scans contain source listings for UT62. As of July 2020 members of the cosmacelf groups.io email list, were manually reproducing that source to recover the ASM file and reproduce the assembled code. The original RCA source, is in an early RCA COSMAC assembly syntax. An almost-OCRable set of images of the UT62 source, was made available by Ed Keefe, as a Web link posted in the cosmacelf groups.io discussion "UT3 and UT62 Source Code".

So in July 2010, I obtained Ed's UT62 source images, and modified my previous disassembly in A18 or Intel-like syntax, to "follow" the actual code and use the same symbols of the original source. It's still in rough form. Much of the UT62 code commentary was not edited into the source as of 10 July 2020. Other UT62 sources may emerge from efforts in groups.io cosmacelf. Thanks to Gregory Simmons of cosmacelf groups.io for error checking my previous 2017 work: he found four errors in my reassembled binary!

Here's an A18 compatible source for UT62, based on the RCA-syntax original source listing. Included is the 2017-dumped ROM binary - do NOT modify that file! It is the only automated means, to binary-compare to changes produced by the UT62/A18 ASM file after it's edited and reassembled. I've included a lower-resolution PDF of the UT62 sources as well.

Meanwhile in cosmacelf groups.io, Gregory Simmons produced a hand-entered UT62 source in the original RCA syntax; and David Schultz used a resident ASM8 assembler to assemble it. They are in the ab8im and UT62 folders on the mentioned Web site. - Herb

Emulation

Marcel van Tongeren, the author of the EMMA 2, 1802 emulator, has sent some notes about operating the ROMS in simulation. We discussed how his emulator can also disassemble operating code, by monitoring execution. From our discussions, he refined his disassembler to produce listing that can be assembled with assemblers like A18. The April 2017 version of EMMA 2 has that refined disassembler, and emulates this Development System. Here's some notes from Marcel. He also provided me with a disassembly of UT62. See my notes on the UT62 ROM monitor. - Herb

Mar 8th 2017: Iím now assuming the UT62, BASIC3 and ASM all use the same I/O structure as the RCA MicroDisk Development System MS2000. At least the tape functions in BASIC3 work when I use that. So after starting in the UT62 and typing B for BASIC and C for a cold start. I did [a PSAVE and PLOAD of a simple BASIC program.] I got a nice .wav file as a result.

OUT 4: tape motor where 0x40 is for SAVE on tape 0, 0x81 SAVE/tape 1, 0x40 LOAD/tape 0, 0x80 LOAD/tape 1 and 0 tape off (not sure if a tape 1 can be selected somewhere or if there just is a tape 0 option).

OUT 5: bit 0 is the tape output
EF2: tape input

I think it also uses OUT 1 to select I/O group where tape I/O is group 2. So the above only works when I/O group 2 is selected. Having said that it does a LOT of OUT 1 with 1 and 2 before and after it does a SAVE or LOAD, why so many I donít understand.

If these assumptions are correct then I guess also I/O group 1 is for the printer with OUT 6 data out and EF1 printer ready. Just a guess for now.

The MS2000 uses the I/O group 1 for the video terminal UART as well but so far it looks like the UT62 just uses Q and EF4 with a max of 1200 baud - Marcel.

Marcel later provided these UT62 commands:

A: Assembler (calls ASM ROMS, assembles file)
B: BASIC (calls BASIC3 ROMs)
C: Load from tape (0 or 1) 
   and then show the loaded data on screen (I think)
D: Memory Display
E: Tape Editor (calls Edit ROMs, creates file)
F: Memory Fill
I: Memory Insert
J: Rewind
M: Memory Move
P: Program Run
R: Read from tape (0 or 1) (to local file)
S: Memory Substitute
W: Write to tape (0 or 1), (from local file)
   UT62 will ask from starting address (FROM) and end (TO) 
   and then TAPE# (0 or 1)

June 2020: RCA Run-time BASIC

The "CDP18S842 Run-Time Basic" description in the 1982 RCA Microboards manual says "Run-time Basic CDPI8S842 is a variant of BASIC2 CDPI8S840 and of BASIC3 CDPI8S841. It is available in six EPROMs and is especially suited for custom Microboard applications not requiring disk I/O." The six ROMs can be contained on a COSMAC CDPI8S652 ROM/RAM and tape I/O board; on reseet they execute the BASIC 2 or BASIC 3 program in memory, just above the Run-Time BASIC ROMS.

In June 2020, a person on the cosmacelf groups.io discussion list posting as "cellarcat", described obtaining a CDP18S652 board with six 2716 ROMS labled "RCA Runtime BASIC". They made a binary dump of the ROMs and made it available on the cosmacelf file archives. In the discussion thread "RCA Runtime Basic", a number of people discussed the ROMs and their code. Marcel van Tongeren, developer of EMMA 02, determined the ROM order to be "6-2-3-4-5-1" as based on the ROM numbered designations; and located in memory space from 0000H to 2FFFH; with the interpreted-BASIC program in ROM or RAM (?) at 3000H and above.

"cellarcat" noted a description of Runtime BASIC on my Web site, on my MCDS Web page, from my exerpted RCA note on CDP18S842. Runtime BASIC depends on RCA's BASIC 2 or 3 to create a BASIC program, which Runtime BASIC can then execute from ROM. Marcel verified the results in the EMMA 02 emulator. Later, he produced a simple disassembly of the ROM binary.

In addition, I used my 1802 disassembler which, while crude, seems to confirm the ROM order in memory. Here's the combined binary file of the RCA Run-Time BASIC code, of the six 2716's for 12K of ROM memory. Check the cosmacelf groups.io file archives in a "Runtime Basic" folder, or check the cosmacelf discussion, for additional information. - Herb

RCA MCDS descriptions and documents

The 1982 "RCA Microboards Manual" says:

RCA COSMAC Microboard Computer Development Systems (MCDS) 

RCA's Low-Cost Microboard Computer Development System (MCDS) CDP18S693 Combines: 

- CMOS Microprocessor Architecture CDP1802A 
- CMOS Microboard Computer Module CDP18S601 
- CMOS Microboard Memory and Tape I/O Module CDP18S652 
- ROM-Based Basic 3 Interpreter with Full Floating-Point Arithmetic 
- ROM-Based Monitor Program UT62 
- Cassette I/O Unit for Mass Memory Storage 
- RS232C or 20-mA Terminal Interface with Baud Rates to 1200 
- Five-Card Chassis and Case 
- Five-Volt Power Supply 

Add a data terminal and you have a CMOS Microcomputer Development System at a surprising, unbelievably low cost. 

With the CDP18S693 Microboard Computer Development System YOU can:
 
- Develop CDP1802 and/ or Microboard software
- Program with floating-point Basic 3 
- Use the system as a dedicated controller 
- Expand system with any of the extensive Microboard family 
- Expand system to use ROM-based Assembler/Editor 
- Expand memory to full 65 kilobytes 
- Extend I/O capabilities with analog and/ or digital I/O Microboards 

BASIC 3, the assembler, monitor and editor are described in the Microboard Manual as below:

Basic 3 is a 12-kilobyte high-level language that can be easily learned and readily used by the beginning programmer. Features of the Basic 3 Interpreter include full floating-point arithmetic, line editing capabilty, "trace" debugging for program creation, "cold or warm" start capability, tape control, up to 6682 multiple- character variables, 26 string variables or string arrays, and 26 one- or two-dimensional arrays. Because Basic 3 provides the CDP1802 microprocessor I/O constructs, it allows the user to develop his entire program in Basic. However, Basic 3 also allows calls to user machine- language subroutines if desired. A separate manual (MPM-841) describes the Basic 3 language and how to use the interpreter.

The ROM-based Monitor program UT62 (2 kilobytes) allows the user to (l) inspect and modify memory, (2) to store and retrieve data on tape, (3) start execution of the Basic 3 Interpreter, the Editor, the Assembler, or a user-generated program at any address, and (4) debug programs. The twelve UT62 Monitor commands are Memory Move, Memory Fill, Memory Substitute, Memory Display, Memory Insert, Program Run, Read Tape, Write Tape, Rewind Tape, Run Basic, Run Editor, and Run Assembler. The Monitor program also includes Read and Type routines for communication between the MCDS and the data terminal and for I/O data transfers.

The resident ROM-based Editor program is supplied with the CDP18S694 and is an option for the CDP18S693. It allows the user to create ASCII files on cassette tape. These files can be Level I CPD1802 language, Basic 3 instructions with line numbers, or simply text. The Editor output file becomes the input file for the Assembler. The Editor commands include: Move pointer to beginning of buffer, Move pointer to end of buffer, Move pointer by n characters, Move pointer by n lines, Define input tape, Append lines, Insert text, Delete n characters, Delete n lines, Save n lines, Get saved text, Find text, Substitute text, Define output tape, Type n lines, Write n lines to output tape, Write entire buffer to output tape, Print n lines, Return to UT62, and Quit session and restart Editor.

The resident ROM-based Assembler program is also supplied with the CDP18S694 and is an option for the CDP18S693. It allows the user to convert a Level I source file on tape (source code) into an executable machine language program on another tape (object code). The object code can then be loaded into memory by the UT62 Monitor program for execution, or it can be placed in an EPROM by the PROM programmer. The Assembler permits the user to write programs using convenient mnemonic expressions rather than machine language. It is a two-pass assembler with COSMAC Level I syntax. The Assembler also provides error messages to assist in debugging.

The full Basic 3 Interpreter and the Monitor are supplied with both the CDP18S693 and the CDP18S694. The Assembler, Editor, and PROM programmer software are supplied with the CDP18S694 but are also available as options for use with the CDP18S693. The run-time Basic 3 is an option for both systems.

Oct 2020: Microboard PROM programmer

Over time, I've accumulated information on the RCA Microboard which reads and/or programs EPROMs. The earlier version of this board was named CDP18S480 and the later version for the MCDS system was named CDP18S680. It would appear the boards are the same but produced at different times with slightly different labeling. I also acquired an unused PC board, likely the '680 version. The board supports reads of 1702 and 1842 EPROMS, and read/write of 2704, 2708, 2758 and 2716 EPROMs; with software support.

In October 2020, I edited and produced some documentation. It's based on posted information by Joe Blackburn and Dale "HamHack" Cunningham in cosmacelf groups.io that date; and information provided by "Capt Hugh"; and a PC board I acquired (and a photo of one acquired by Joe Blackburn). Here's that document and it's subject to update. Thanks to those persons for their (assumed) permission to redistribute their materials.

Dale said this about his board and system: "I have little idea of how this came into our families possession as my father doesn't even recall its existence. The only documentation I have is the 'MB-601A Microboard Computer Card Manual' and a user guide for the Data-media Terminal unit that I recall attached to it which broke and was abandoned at the repairers in the 80's. There were 2 Panasonic tape decks and I suspect we probably had some software on tape, but they seem to be lost to time now as Dad seem to think he has cleaned out all the cassette tapes." Dale provided good photos of the board he has, and called out some components not visible in the photo. Here's his board: the component side and the solder side.. Whether it's a '480 or a '680 I do not know. Component dates suggest it was constructed in early 1982.

Documentation notes -9V is needed for 1702 operations and -5V and +12V as PROMs require. Additionally, programming voltages of 20V to 25V are needed. "Read the fine manual" as below for details. Dave gave me some preliminary analysis: "The programmer only uses the TPB, Data bus, the I/O primary address's N0-N2, EF1, MRD, and the CLEAR. So looks like as you have said should be able to access with the I/O lines and latch the data bus into the 1852s to then push through to write to the ROM. I am however no expert in these things and learning as I go."

The document so far (Oct 22 2020), consists of how-to information from "MPM-293 User Manual for the RCA COSMAC Microboard Computer Development System (MCDS) CDP18S693 and CDP18S694", which covers the 'S680; provided by "Capt Hugh". It does not include documents from "MPM-222A Operator's Manual" for PROM Programmer CDP18S480. Photos for the boards are from an unknown third party and from Dale "HamHack". It will include a parts list which I will construct from the board photos.

On Oct 23, Ed Keefe uploaded the docs for the CDP18S480. HEee's the PDF which includes a schematic and instructions almost the same as for the 'S680.

I've also accumulated the cosmacelf groups.io posts on this subject; the posts of the people named above. Here's those posts, slightly edited. If those who posted object, I will remove their content from this document. But it explains and identifies the content in the document I've accumulated.

RCA described the software as "a magnetic tape cassette containing the operating software" and either part of an MCDS system or as an upgrade called "PROM Programmer package CDP18S680". It appears the tape software loads or runs below the stack which starts at 07FFH and data loaded above 0800H.

However, David Schultz posts in cosmacelf groups.io Oct 22 2020, "Another source of information is the program PROM25 included with MicroDOS. ... A quick look [at the binary] shows references to several PROM types .. 2758, 1842, 1702, 2704, etc. ... " MicroDOS is available on the groups.io file area. Recovery of that apparently binary file, show this string: "PROM PROGRAMMER, VERSION 1.1 ENTER V,C,P,F,S,U: ". I disassembled the file with my 1802 disassembler: so far here's the binary and the ASM source.

Meanwhile, OCt 24, Dale Cunningham posted "I have had a further chat with my Father, still unsure how or why He had [the COSMAC system while] in a Small Mining Town on the West Coast of Tasmania, Australia named Savage River, around 1984-1987. But it did prompt him to have a look through a few things. He found a cassette tape which hopefully contains the programmer software. He's going to upload me a Wave file once he has captured it. Hopefully it has survived in a useful state." Indeed, the tape did survive, a WAV file was made. I contacted Dale and suggested he look at my Web page on processing COSMAC tapes from the Sarnoff Collection into WAV files which EMMA 02 could restore under emulation to program binary code.

Dale responded: "I got the Tape audio file from my Dad soon after the post. Got it into Audacity, and found your web pages and realised that EMMA 02 would do probably the job. After a bit trail and error I think I have got the data off the file and it seems to run on EMMA 02 MCDS emulator." Soon after that, he uploaded the binary program file (as Intel hex) from the cassette to the cosmacelf groups.io files. I acquired the hex, converted to binary, and performed a disassembly similar to the disassembly for the PROM25 ROM. Here's the files and disassembled ASM file for the cassette version of the PROM program.

The two programs, on cassette and on PROM for MicroDOS, have very similar code. But the PROM version has in addition, at the end of the PROM, a bunch of code and text which looks like a series of 1802 mnemonics, and some data or code which is unclear. Of course, I'd like feedback from anyone who works with these two codes and who can clarify and refine the disassembly. Thanks so very much to Dale Cunningham for sharing this PROM board information, and for the cascade of work past and recent which led to a rapid-response to publish accumulated information on the product and its codes. - regards, Herb Johnson

Other RCA Microboards & docs

I'd appreciate a manual for the CDP18S652B and for use of BASIC 3, Editor, and Assembler - Herb

182S652B bare board, component side
182S652B bare board, solder side
Here's a one-page tech summary for the 18S693 system.
These notes suggest the '652 had 1K of RAM at 8C00-8FFFH,
ROM was at 8000H-87FFH for UT62, B000H-DFFF for BASIC 3, 9000-A7FFH for ED/ASM.

182S842, docs on BASIC 2 and 3??, Microboards manual.
docs on the Editor and Assembler
18S601 CPU board, from the Microboards manual.
Dev Sys 18S693 and 694 general description, Microboards manual
UT60, 61, 62 brief description, Microboards manual

The 1982 "RCA Microboards Manual" says: "CDP18S652, RCA COSMAC Microboard Combination Memory and Tape I/O Module. The RCA CDP18S652 Microboard is available primarily as a replacement part for RCA COSMAC Microboard Computer Development Systems (MCDS) ... Logic and layout diagrams, a parts list, and other user information are supplied in the User Manual for the RCA COSMAC Microboards Computer Development System (MCDS) CDP18S693 and CDP18S694, MPM-293; and in the User Manual for the Color Microboard Computer Development System (CMCDS) CDP18S695, MPM-295. " The UT61 ROM monitor is described on page 266-267, as part of CDP18S640A1 documentation.

The 1982 RCA Microboards Manual is available from bitsavers.org. It has perhaps 12 pages of notes on this system, which are mostly described on this Web page.


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