RCA Cassette Player CDP18S711 User Guide

Download from Www.Somanuals.com. All Manuals Search And Download.  
ACKNOWLEDGMENT  
COSMAC VIP has been created by Joe Weisbecker of  
the RCA Laboratories, Princeton, N.J. so that everyone can  
have fun and useful personal computer experiences. The  
elegant and simple hardware system design and the  
powerful video output together with the customized CHIP-8  
language interpreter constitute a fresh and promising  
approach to personal computers.  
If questions arise regarding the VIP software or  
hardware, write to  
VIP  
RCA Solid State Division  
Box 3200  
Somerville, N.J. 08876  
or telephone  
Area code 201 526-6141  
Information furnished by RCA is believed to be accurate  
and reliable. However, no responsibility is assumed by  
RCA for its use; nor for any infringements of patents or  
other rights of third parties which may result from its use.  
No license is granted by implication or otherwise under  
any patent or patent rights of RCA.  
Trademarks Registered  
Marca(s) Registrada(s)  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
I.  
Getting Started ...................................................................................................................5  
What This Manual Covers .................................................................................................5  
The Power Supply ..............................................................................................................6  
What You See .....................................................................................................................7  
Turning It On  
......................................................... ......................................................7  
II. COSMAC VIP Operation ..................................................................................................9  
Using the Operating System .............................................................................................9  
Memory Write ........................................................ ..........................................................9  
Memory Read ......................................................... ....................................................... 10  
Tape Write .............................................................. ....................................................... 10  
Tape Read ............................................................... ....................................................... 10  
Testing Your Cassette System ............................... ....................................................... 11  
III. CHIP-8 Language Programming .......................... ....................................................... 13  
Branch Instructions ............................................... ....................................................... 13  
How to Change and Use the Variables ................. ....................................................... 13  
Using the Display Instructions .............................. ....................................................... 14  
Applying CHIP-8 .................................................... ....................................................... 16  
Some Program Ideas .............................................. ....................................................... 17  
IV. Machine Language Programming ................................................................................. 19  
VIP Machine Coding ....................................................................................... .............. 19  
Putting Machine Coding and CHIP-8 Language Together ......... ............................... 19  
Machine Language Programming Summed Up ........................... ............................... 20  
V.  
Logic Description .......................................................................................... ................. 21  
How Memory is Addressed ............................................................ ............................... 21  
How the Input/Output Works ........................................................ ............................... 21  
VI. Expansion Considerations and Connections ................................. ............................... 23  
Using the Byte Input/Output .......................................................... ............................... 23  
Using the Expansion Interface ....................................................... ............................... 24  
Some Expansion Ideas .................................................................... ............................... 24  
VII. Troubleshooting Hints ................................................................................................... 27  
No Sound ......................................................................................................................... 27  
No Display ....................................................................................................................... 27  
Other Problems .............................................. ............................................................... 27  
Signal Tracing ................................................ ............................................................... 27  
Last Resorts .................................................... ............................................................... 28  
Appendix A - Test and Operating Data ................... ............................................................... 29  
Byte Pattern for Displaying "COSMAC" .... ............................................................... 29  
Beeper Program ............................................. ............................................................... 29  
Cassette Attachment Diagram ...................... ............................................................... 30  
Cassette Phase Test ........................................ ............................................................... 30  
Cassette Data Test .......................................... ............................................................... 31  
Cassette Recording Guidelines ...................... ............................................................... 32  
Memory Test Program.................................................................................................... 32  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents (Continued)  
Appendix B - Operating System ................................................................................................. 33  
Operating System Listing .................................................................................................33  
Operating System Register Table ....................................................................................34  
Operating System Summary ............................................................................................34  
Appendix C - CHIP-8 Interpreter ................................................. ............................................35  
CHIP-8 Interpreter Listing ................................................. ............................................35  
CHIP-8 Memory Map .......................................................... ............................................36  
CDPI802 Register Use for CHIP-8 Interpreter ................. ............................................36  
CHIP-8/Operating System Standard Digit Display Format ..........................................37  
CHIP-8 User Notes .................................................................................. .........................38  
Appendix D - Video Games ........................................................................ ................................39  
1. VIP Kaleidoscope .......................................................................................... ...............40  
2. VIP Video Display Drawing Game .............................................................. ...............41  
3. VIP Wipe Off ................................................................................................. ...............42  
4. VIP Space Intercept ...................................................................................... ...............43  
5. VIP 4096-Bit Picture ..................................................................................... ...............44  
6. VIP Figure Shooting at Moving Target ....................................................... ...............45  
7. VIP Tick-Tack-Toe Game ...................................................... .....................................46  
8. VIP Spooky Spot ..................................................................... .....................................48  
9. VIP Jackpot ............................................................................. .....................................49  
10. VIP Snake Race ..................................................................... .....................................51  
11. VIP Card Matching Game ................................................... .....................................52  
12. VIP Armored Vehicle Clash ................................................. .....................................54  
13. VIP Hi-Lo ..................................................................................................... ...............56  
14. VIP Hex Reflex ............................................................................................ ...............57  
15. VIP Dot-Dash ............................................................................................... ...............58  
16. VIP A-Mazing .............................................................................................. ...............60  
17. VIP Deduce .................................................................................................. ...............62  
18. VIP Shooting Stars ...................................................................................... ...............63  
19. VIP Strike-9 ................................................................................................. ...............64  
20. VIP Card Game (like the well-known acey-ducey) .................................. ...............66  
Appendix E - Logic Diagrams .................................................................... ................................67  
Fig. E-1 - Microprocessor and Display Interface Circuits ............ ................................68  
Fig. E-2 - ROM Circuits and Expansion Interface ........................ ................................69  
Fig. E-3 - Keyboard, Decoding, Audio Oscillator, and Cassette  
Interface Circuits ............................................................ ................................70  
Fig. E-4 - RAM Circuits ........................................ ...........................................................71  
Fig. E-5 - Power Supply Circuit and Byte Input/Otaput Interface ...............................72  
Appendix F - Board Layout, Parts List, and Assembly Instructions ........................................73  
1. Printed Circuit Board Layout ......................................................................................74  
2. Parts List for RCA COSMAC VIP CDP18S711 .........................................................75  
3. COSMAC VIP Expansion Notes ..................................................................................77  
a. Soldering the PC Board ..................................................................................77  
b. Voltage Regulator Option ..............................................................................77  
c. Additional 2048-Byte RAM Option ...............................................................77  
Appendix G - Data Sheets .............................................................................................................79  
CDP 1832 512-Word x 8-Bit Static Read-Only Memory ...............................................81  
CDP 1861 Video Display Controller (Video Interface) ..................................................85  
CDP 1802 COSMAC Microprocessor .............................................................................97  
Download from Www.Somanuals.com. All Manuals Search And Download.  
1
1. Getting Started  
COSMAC VIP (Video Interface Processor)  
CDP18S711 is a complete computer on a single  
printed-circuit card. It includes the following:  
With COSMAC VIP you can easily create pictures  
on the display screen and move them around. This  
feature is invaluable for video games and not usually  
available with computers costing several times as  
much. The software you need to use your computer is  
provided free instead of at added cost or not at all.  
Simplified operation was a primary design goal so  
that you don't have to waste a lot of time learning and  
remembering complex operating procedures.  
COSMAC VIP uses state-of-the-art devices coupled  
with an efficient design. Full expansion capability  
allows you to inexpensively tailor COSMAC VIP to  
specific applications such as model railroad control,  
music synthesis, or color graphics. You will soon.dis  
cover that COSMAC VIP provides a refreshingly  
new, lower-cost alternative to conventional computers  
which have been aimed more toward mathematics  
and business than fun.  
*RCA CDP1802 Microprocessor (91 instructions)  
*2048-byte RAM  
*Built-in hex keyboard (modern reliable touchpad  
type)  
*Graphic video display interface (standard video  
output)  
*100-byte-per-second audio cassette interface  
*Regulated power supply (wall-pack type)  
*Crystal clock  
*Sound circuits (for signal tones and games)  
*512-byte ROM operating system  
*Comprehensive documentation  
*20 ready-to-use video game programs  
*Unique CHIP-8 language (31 easy-to-use in-  
structions)  
*On-card RAM expansion up to 40% bytes  
*On-card parallel 1/0 port  
*Connector for extensive external expansion  
capability  
What This Manual Covers  
T'his manual serves several purposes. It lets you get  
started playing video games with minimum effort. just  
set up your system as described in this section and learn  
how to use the operating system and cassette interface as  
described in the next section. You can immediately use  
all the video games in Appendix D without going any  
further.  
COSMAC VIP was designed for home hobby use. Just  
add an inexpensive video display and an audio cassette  
recorder for program storage. You don't need expensive,  
hidden extras such as power supply, computer terminal,  
external keyboard, or additional RAM. COSMAC VIP  
provides everything needed for years of creative  
computer fun for the whole family. With COSMAC VIP  
you're immediately ready to play video games,  
experiment with computer art or animation, write your  
own programs with a new language called CHIP-8, or get  
hands-on experience using machine language.  
If you want to learn to write your own programs,  
Section III describes an easy language to start with called  
CHIP-8. Most of the programs in Appendix D were  
designed using this language. CHIP-8 looks somewhat  
like machine language but is quicker to learn and easier  
to use than many of the more common high-level  
languages. It also requires much less RAM, which save8  
you a lot of money.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
6
RCA COSMAC VIP Instruction Manual  
CHIP-8 includes a real time clock, random number  
generator, decimal conversion, and digit or graphic  
display capability. It only uses 512 bytes of RAM leaving  
over 1024 bytes for programs in a 2048-byte system.  
(You can get an additional 2048 bytes of RAM by  
plugging four more RAM chips into your card.)  
will facilitate setting up the cassette system and iden-  
tifying hardware problems in the rare case where they  
occur. Hex notation is used in this manual unless noted  
otherwise. (One byte equals two hex digits.)  
The Power Supply  
With the aid of the User Manual for the CDPI802  
COSMAC Microprocessor, MPM-201, you can explore  
the fascinating world of machine language programming.  
You can even combine, machine language programs with  
CHIP-8 programs or develop your own interpretive  
languages.  
The output wires of the internally regulated power  
converter supplied with the COSMAC VIP CDP18S711  
are connected to the +V DC and GND pads at the back  
left comer of the PC card. The power converter output is  
regulated +5 V DC at 600 mA. If you wish to add more  
RAM to your system, however, you may need a  
higher-current power supply. A 2048-byte system  
requires about 350 mA (600 mA worst case). A  
4096-byte system should require average current of  
about 600 mA. If, however, your RAM chips require  
above average power, you may need to supply as much  
as 900 mA at 5 V DC, regulated. You can also use your  
own unregulated 8 to 10 V DC power supply by adding  
voltage regulator U28 (plus heatsink) to your COSMAC  
VIP card and cutting the printed circuit link called LKI.  
Never apply more than +5 V DC to the card unless the  
U28 regulator has been added and link LKI cut.  
For hardware hackers, COSMAC VIP provides  
complete external interface capabilities. Some  
suggestions for inexpensive external devices and  
applications are listed in Section VI. Logic diagrams,  
data sheets, trouble -shooting hints, and test programs are  
provided so that you can explore the hardware in as much  
detail as you want.  
This manual assumes that you are familiar with  
computer basics from reading one or more of the  
excellent magazines devoted to home computing. You  
should understand RAM, ROM, memory addressing,  
instructions, bytes, etc. The use of a scope  
Photograph of COSMAC VIP (Video Interface Processor) CDP18S711 The  
cables in the upper right are for the video display and for cassette  
operation. Cable on the upper left goes to the power converter.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
1. Getting Started  
7
C pressed and the Q light should be on. When you release  
key C the tone and Q light should both go off. (The tone  
occurs whenever the Q light is on.) You should now see a  
random pattern of small square spots on the display. Push  
hex keys 8008 in sequence and you should see 8008 at  
the bottom left of the screen and 64 at the lower right.  
Adjust your display controls for the best picture (white  
spots on a-black background). You can experiment with  
changing the values of RI, R2, and R4 on the COSMAC  
VIP card to improve picture quality although this step  
shouldn't be necessary. Certain modulators work better  
with an R4 of 1 kilohm instead of 200 ohms. If you don't  
What You See  
You must now decide on the video display for your  
computer. The video pad at the back right comer of the  
COSMAC VIP card provides a video signal which you  
can connect directly to the high-impedance input of most  
standard video monitors. The horizontal sync frequency  
is 15,720 Hz and the vertical sync frequency is 60 Hz.  
One solution to your video display need is a commercial  
video monitor having a suitable input -- not rf or antenna  
input. Another option is your TV receiver used with a  
relatively inexpensive FCC-approved modulator. Do not  
use a standard TV receiver with the VIP output connected  
to the VHF or UHF antenna terminals. Do not use  
transformerless TV receivers.  
get  
a
video picture refer to Section VII for  
troubleshooting hints.  
After completing the above set-up procedure, you are ready  
to enter and run programs on your COSMAC VIP.  
The COSMAC VIP operating system, explained in the  
next section, permits you to load programs into memory  
from the hex keyboard, verify them, and record them  
on cassettes for later reuse.  
Turning It On  
After attaching a suitable video display, apply power.  
Make sure the RUN switch is in the down (or reset)  
position. Hold hex key C down while you flip the RUN  
switch up. You should hear a tone with key  
Download from Www.Somanuals.com. All Manuals Search And Download.  
9
11. COSMAC VIP Operation  
COSMAC VIP is operated with the RUN switch and  
KEY  
OPERATION  
hex keyboard. The PWR light shows that power is on.  
The Q light is activated by various programs. A tone is  
sounded whenever the Q light is on. The TAPE light  
glows when cassette input data is present. When using  
COSMAC VIP, always start with the RUN switch in the  
down (or reset) position. Flipping the RUN switch up  
initiates execution of machine language programs  
beginning at memory location 0000. If you have  
previously stored the CHIP-8 Ian_ guage interpreter  
program at locations 0000-01FF, execution of a program  
written in this language will begin at 0200. To manually  
terminate execution of any program, flip RUN down.  
MW (Memory Write)  
MR (Memory Read)  
TW (Tape Write) TR  
(Tape Read)  
0
A
F
B
For any of these operations you must first enter a  
memory address. Enter the 4 hex digits of any memory  
address using the hex keyboard (most significant digit  
first). You will see the address at the lower left of the  
screen and the byte contained in that address at the lower  
right. Remember that addresses and bytes are always  
entered and shown in hex form. Suppose you entered  
0200. You will see 0200 at the bottom left of the screen  
and the byte stored at 0200 at the lower right.  
Using the Operating System  
With COSMAC VIP you can load programs into  
memory from the hex keyboard or cassette recorder,  
record the contents of memory on cassettes, show the  
contents of memory bytes in hex form on the display,  
and examine the contents of CDP1802 microprocessor  
registers. These functions are performed with the aid of a  
special program called an operating system. This  
operating system is contained in a ROM so that it's ready  
to use as soon as power is turned on. It is located at  
memory locations 8000-81FF. A machine code listing  
and summary of this operating system is provided in  
Appendix B.  
Memory Write  
If you want to change this byte, press the 0 key. Now  
press two digits of the new byte (most significant digit  
first) and it will be stored at 0200 replacing the original  
byte. You will see this change on the screen. If you enter  
another byte it will be shown and stored at the next  
higher address in sequence (0201 in this example). You  
can load any, sequence of bytes directly from the hex  
keyboard in this manner. If you make a mistake, flip  
RUN down. With key C pressed, flip RUN back up.  
Enter the address at which you made the error. Press key  
0 and resume entering your program.  
To use the operating system hold key C down on the  
hex keyboard when you flip RUN up. You will hear a  
tone. Release key C and you're ready to use the  
operating system.  
After selecting the operating system you can do four  
different operations as shown in the following table:  
Note the random bit pattern on the screen above the  
hex display. This pattern is the binary data  
Download from Www.Somanuals.com. All Manuals Search And Download.  
10  
RCA COSMAC VIP Instruction Manual  
TC-150. In general, better quality recorders provide  
more reliable operation.  
contained in the last 256-byte page of the on-card RAM.  
If you have a 2048-byte RAM, you are seeing locations  
0700-7FF on the screen. Bit 7 of the byte at 0700 is in  
the upper left comer. Try storing a sequence of eight AA  
bytes followed by eight 55 bytes starting at location  
Your tape recorder must have an 8-ohm earphone or  
external speaker jack and a microphone input jack.  
Connect the cassette recorder to the COSMAC VIP  
tape-in tape-out pads on the right-hand side of the card as  
shown in the cassette attachment diagram in Appendix  
A.  
0700. Keep repeating this sequence to draw  
a
checkerboard pattern on the screen. There are 32 rows of  
spots on the screen. Each row represents 8 memory bytes  
(64 bits). Locations 0700-0707 are shown in the top row,  
0708-07OF in the next row down. Draw a bit map on  
paper and you can construct pictures on the TV screen by  
entering the proper byte sequences. The byte pattern for  
displaying the word COSMAC is shown in Appendix A.  
After properly connecting your cassette recorder you  
can try recording and playing back a cassette using the  
operating system as described below. Follow the cassette  
recording guidelines provided in Appendix A for best  
results. If you run into trouble, use the cassette phase and  
data test procedures described in Appendix A for  
troubleshooting.  
Memory Read  
The memory is divided into 256-byte pages for  
recording. You can record 1 to 15 consecutive pages on  
tape. The low-order byte of your starting address should  
be 00. Select the operating system by holding key C  
down while flipping RUN up. Enter the 4-digit address  
of the first page to be recorded on tape. Press key F and  
you're ready to record. Rewind a blank cassette and place  
your cassette unit in the record mode. Wait about 10  
seconds and tap the hex key that represents the number  
of pages you want to record on tape. The screen will go  
blank and you'll hear a tone while recording. When the  
specified number of pages has been recorded on the  
cassette, the tone will end and the last memory byte  
recorded on tape will be shown on the screen.  
Suppose you wish to examine the contents of a  
memory location. Flip RUN up while pressing key C.  
Enter the address of the location you want to examine.  
Press key A for the Memory Read mode. You will see  
the memory address and the byte stored at that address  
on the screen. Press any hex key to step through memory  
and see the contents. Memory locations examined are  
left unchanged. If a program doesn't run properly you  
can use this mode to verify that it was stored correctly in  
memory.  
You can now enter and run the short beeper program  
shown in Appendix A. Flip RUN up with key C pressed.  
Release key C and enter address 0000. Press key 0 to  
select the Memory Write mode. Now enter the beeper  
program one byte at a time using the hex keyboard. Flip  
RUN down to reset the computer. Flip RUN up to  
execute the beeper program you just loaded into  
locations 0000-OOOC. You can load and run any  
COSMAC VIP program in this manner. For most of the  
game programs you will first have to load the CHIP-8  
interpreter (Appendix C) into locations 0000-OIFF  
followed by the game program starting at location 0200.  
Tape Read  
To load memory from a previously recorded cassette,  
first select the operating system (RUN and key C). Enter  
the memory address of the first page to be loaded  
(usually 0000). Press key B to select the Tape Read  
mode. Rewind and play the cassette. Immediately press  
the hex key representing the number of pages you want  
to load into memory from the cassette. The tape recorder  
tone control should be set to maximum high. The volume  
control should be set for a steadily glowing tape light  
when data is being read from the tape. The screen will go  
blank while the program is loaded from the tape into  
memory. It will show the last byte loaded into memory  
at the end of loading.  
Tape Write  
Any program you load into memory will be lost when  
you turn off power. Unless it is safely stored, you will  
have to key it in by hand again the next time you want to  
use it. The cassette interface is provided so that after  
keying in a program you can then record it on an audio  
cassette; and when you want to use the program again,  
all you have to do is play it back into the memory from  
the cassette. This playback usually takes less than 30  
seconds.  
The COSMAC VIP cassette interface was designed to  
work with most standard audio cassette recorders.  
Panasonic models RQ-309DS, RQ-212D, and RQ-413S  
have yielded satisfactory results as has the Sony  
If the Q light and tone come on while a tape is being  
read, an error occurred. Flip RUN down, rewind the  
cassette, and try again. You may h ' ave to readjust the  
cassette volume control. Be sure that the cassette  
contains at least as many pages as you specify to be  
loaded. For most of the game programs, load the  
CHIP-8 interpreter program (Appendix C) into 0000-  
Download from Www.Somanuals.com. All Manuals Search And Download.  
11. COSMAC VIP Operation  
1
After recording and checking a program cassette, you can  
break out the tabs at the top of the cassette to prevent  
accidental erasure. In the event you wish to record on a  
cassette after you have broken out the tabs, you can do so  
simply by pasting tape over the tab holes. You can record and  
keep your own cassette software library starting with the game  
programs in Appendix D. Cassette recording or playback  
should require 5 + 2.5N seconds. N is the number of pages  
recorded on tape. Recording or loading the entire 2048-byte  
RAM (8 pages) will require less than 30 seconds. Ile next  
section describes how you can design your own programs  
using a unique easy-to-learn programming language called  
CHIP-8.  
01FF, then load the game program starting at 0200.  
Record a cassette from 0000 to the end of the game  
program. When you load this tape, starting at 0000, you  
will be ready to play the game.  
Testing Your Cassette  
System  
Test your cassette system by entering the beeper  
program at 0000 (Appendix A). Store 25 at 06FF. Now  
record 7 pages on a cassette starting at 0000. Load these  
7 pages back into memory from the cassette starting at  
0000. If no errors occur you should see "06FF 25" on  
the screen after loading is complete. Flip RUN down,  
then up, and the beeper program should be running.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
III. CHIP-8 Language Programming  
instruction following the 2570. The subroutine itself  
CHIP-8 is an easy-to-learn programming language  
that lets you write your own programs. To use the  
CHIP-8 language, you must first store the 512-byte  
CHIP-8 language program at memory locations 0000 to  
01FF. The CHIP-8 language program is shown in  
Appendix C in hex form so you can enter it directly in  
memory using the hex keyboard. You can then record it  
on a memory cassette for future use. Each CHIP-8  
instruction is a two-byte (4-hex-digit) code. There are  
31, easy-to-use CHIP-8 instructions as shown in Table L  
could use another 2MMM instruction to branch to (or  
call) another subroutine. This technique is known as  
subroutine nesting. Note that all subroutines called (or  
branched to) by 2MMM instructions must end with  
00EE. Ignoring this rule will cause hard-to-find  
program bugs.  
How to Change and  
Use the Variables  
The CXKK instruction sets a random byte value into  
VX. This random byte would have any bits matching 0  
bit positions in KK set to 0. For example, a C407  
instruction would set V4 equal to a random byte value  
between 00 and 07.  
When using CHIP-8 instructions your program must  
always begin at location 0200. There are 16 one-  
byte variables labeled 0-F. VX or VY refers to the value  
of one of these variables. A 63FF instruction sets  
variable 3 to the value FF (V3=FF). I is a memory  
pointer that can be used to specify any location in RAM.  
An A232 instruction would set I= 0232. 1 would then  
address memory location 0232.  
A timer (or real-time clock) can be set to any value  
between 00 and FF by a FX15 instruction. This timer is  
automatically decremented by one, 60 times per second  
until it reaches 00. Setting it to FF would require about 4  
seconds for it to reach 00. This timer can be examined  
with a FX07 instruction. A FX18 instruction causes a  
tone to be sounded for the time specified by the value of  
VX. A value of FF would result in a 4-second tone. The  
minimum time that the speaker will respond to is that  
corresponding to the variable value 02.  
Branch Instructions  
There are several types of jump or branch instructions  
in the CHIP-8 language. Instruction 1242 would cause  
an unconditional branch to the instruction at memory  
location 0242. Instruction BMMM lets you index the  
branch address by adding the value of variable 0 to it  
before branching. Eight conditional skip instructions let  
you test the values of the 16 one-byte variables or  
determine if a specific hex key is being pressed. This  
latter capability is useful in video game programs. (Only  
the least significant hex digit of VX is used to specify  
the key.)  
A FX33 instruction converts the value of VX to  
decimal form. Suppose 1=0422 and V9=A7. A F933  
instruction would cause the following bytes to be stored  
in memory:  
0422  
0423  
0424  
01  
06  
07  
A 2570 instruction would branch to a subroutine  
starting at location 0570. 00EE at the end of this  
subroutine will return program execution to the  
Since A7 in hex equals 167 in decimal, we see that the  
Download from Www.Somanuals.com. All Manuals Search And Download.  
14  
RCA COSMAC VIP Instruction Manual  
Table I - CHIP-8 Instructions  
Instruction  
Operation  
1MMM  
BMMM  
2MMM  
00EE  
Go to 0MMM  
Go to 0MMM + V0  
Do subroutine at 0MMM (must end with 00EE)  
Return from subroutine  
3XKK  
4XKK  
5XY0  
9XY0  
EX9E  
EXAl  
6XKK  
CXKK  
7XKK  
8XY0  
8XY1  
8XY2  
8XY4  
8XY5  
FX07  
Skip next instruction if VX = KK  
Skip next instruction if VX n.e. KK  
Skip next instruction if VX = VY  
Skip next instruction if VX n.e. VY  
Skip next instruction if VX = Hex key (LSD)  
Skip next instruction if VX n.e. Hex key (LSD)  
Let VX = KK  
Let VX = Random Byte (KK = Mask)  
Let VX=VX+ KK  
Let VX = VY  
Let VX = VX/VY (VF changed)  
Let VX = VX & VY (VF changed)  
Let VX=VX +VY(VF=00 if VX+VY l.e. FF,VF=01 if VX +VY>FF)  
Let VX = VX - VY (VF = 00 if VX < VY, VF = 01 if VX g.e. VY)  
Let VX = current timer value  
FX0A  
FX15  
Let VX = hex key digit (waits for any key pressed)  
Set timer = VX (01 = 1/60 second)  
FX18  
Set tone duration = VX (01 = 1/60 second)  
Let I = 0MMM  
Let I = I + VX  
Let I = 5-byte display pattern for LSD of VX  
Let MI = 3-decimal digit equivalent of VX (I unchanged)  
Let MI = V0:VX (I = I + X + 1)  
AMMM  
FX1E  
FX29  
FX33  
FX55  
FX65  
Let V0: VX MI (I = I + X + 1)  
00E0  
Erase display (all 0's)  
DXYN  
Show n-byte MI pattern at VX-VY coordinates.  
I unchanged. MI pattern is combined with existing display via EXCLUSIVE-OR function.  
VF = 01 if a 1 in MI pattern matches 1 in existing display.  
Do machine language subroutine at 0MMM (subroutine must end with D4 byte)  
0MMM  
three RAM bytes addressed by I contain the decimal  
equivalent of the value of V9.  
Using the Display  
Instructions  
If 1 =0327, a F355 instruction will cause the values of  
VO, V1, V2, and V3 to be stored at memory locations 0327,  
0328, 0329, and 032A. If 1=0410, a F265 instruction would  
set V0, V1, and V2 to the values of the bytes stored at RAM  
locations 0410, 0411, and 0412. FX55 and FX65 let you  
store the values of variables in RAM and set the values of  
variables to RAM bytes. A sequence of variables (V0 to  
VX) is always transferred to or from RAM. If X = 0, only  
VO is transferred.  
An 00E0 instruction erases the screen to all 0's. When the  
CHIP-8 language is used, 256 bytes of RAM are displayed  
on the screen as'an array of spots 64 wide by 32 high. A  
white spot represents a I bit in RAM, while a dark (or off)  
spot represents a 0 bit in RAM. Each spot position on th ' e  
screen can be located by a pair of coordinates as shown in  
Fig. 1.  
The VX byte value specifies the number of horizontal  
spot positions from the upper left corner of the display. The  
VY byte value specifies the number of vertical spot  
positions from the upper left corner of the display.  
The 8XYI, 8XY2, and 8XY4, and 8XY5 instructions  
perform logic and binary arithmetic operations on two  
1-byte variables. VF is used for overflow in the arithmetic  
operations.  
The DXYN instruction is used to show a pattern of spots  
on the screen. Suppose we wanted to form the  
Download from Www.Somanuals.com. All Manuals Search And Download.  
III. CHIP-8 Language Programming  
15  
Fig. 1 - Display screen coordinate structure.  
pattern for the digit "8" on the screen. First we make  
up a pattern of bits to form "8" as shown in Fig. 2.  
pattern will be shown on the screen in the upper left  
corner.  
You can write a program to show the "8" pattern on  
the screen as follows:  
0200 A20A I=020A  
0202 6100 V1=00  
0204 6200 V2=00  
0206 D125 SHOW 5MI@VlV2  
0208 1208 GO 0208  
020A F090  
020C F090  
020E F000  
Fig. 2 - Patternof bitsjorming digit 8.  
The first column of this program shows the memory  
locations at which the instruction bytes in the second  
column are stored. The third column indicates the  
function performed by each instruction in shorthand  
form. Only the bytes in the second column are actually  
stored in memory.  
In this example we made the "8" pattern five spots  
high by four spots wide. Patterns to be shown on the  
screen using the DXYN instruction must always be one  
byte wide and no more than fifteen bytes high. (Several  
small patterns can be combined to form larger ones on  
the screen when required). To the right of the."8" pattern  
in Fig. 2 are the equivalent byte values in hex form. We  
could now store this pattern as a list of five bytes at  
RAM location 020A as follows:  
With the CHIP-8 interpreter stored at 0000-OIFF, you  
can load the above program in memory and run it. Set VI  
and V2 to different values to relocate the “8" pattern on  
the screen. The VX-VY coordinates always specify the  
screen position of the upper lefthand bit of your pattern.  
This bit can be either 0 or 1. The last digit of the DXYN  
instruction specifies the height of your patterns or the  
number of bytes in your pattern list.  
020A  
020B  
020C  
020D  
020E  
F0  
90  
F0  
90  
F0  
When a pattern is displayed, it is compared with any  
pattern already on the screen. If a 1 bit in your ,pattern  
matches a I bit already on the screen, then a 0 bit will be  
shown at this spot position and VF will be set 1,6 it value  
of 01. You can test VF following a DXTN instruction to  
determine if your pattern  
Suppose we now want to show this pattern in the  
upper left corner of the screen. Well assign V I= VX and  
V2=VY. Now we let VI=V2=00 and set I=020A. If we  
now do a D125 instruction, the "8"  
Download from Www.Somanuals.com. All Manuals Search And Download.  
RCA COSMAC VIP Instruction Manual  
16  
touched any part of a previously displayed pattern. This  
feature permits programming video games which require  
knowing if one moving pattern touches or hits another  
pattern.  
I =V2 (LSDP)  
SHOW 5MI@V4V5  
V6=03  
TONE=V6  
V6=20  
0218 F229  
021A D455  
021C 6603  
021E F618  
0220 6620  
0222 F615  
Because trying to display two I spots at the same  
position on the screen results in a 0 spot, you can use the  
DXYN instruction to erase a previously displayed  
pattern by displaying it a second time in the same  
position. (The entire screen can be erased with a single  
00E0 instruction.) The following program shows the "8"  
pattern, shows it again to erase it, and then changes VX  
and VY coordinates to create a moving pattern:  
TIME=V6  
0224 F607 V6=TIME  
0226 3600 SKIP;V6 EQ 00  
0228 1224 GO 0224  
022A 7301 V3+01  
022C 00E0 ERASE  
022E 1202 GO 0202  
This program continuously increments V3, converts it to  
decimal form, and displays it on the screen.  
0200 A210 I=0210  
0202 6100 V1=00  
0204 6200 V2=00  
0206 D125 SHOW 5MI@VlV2  
0208 D125 SHOW 5MI@VlV2  
020A 7101 V1+01  
020C 7201 V2+01  
020E 1206 GO 0206  
0210 F090  
The FX0A instruction waits for a hex key to he  
pressed, VX is then set to the value of the pressed key,  
and program execution continues when the key is  
released. (If key 3 is pressed, VX=03). A tone is heard  
while the key is pressed. This instruction is used to wait  
for keyboard input.  
0212 F090  
0214 F000  
Applying CHIP-8  
You should now be able to write some simple CHIP-8  
programs of your own. Here are some things to try:  
The "8" pattern byte list was moved to 0210 to make  
room for the other instructions. Try changing the values  
that VI and V2 are incremented by for different  
movement speeds and angles. A delay could be inserted  
between the two DXYN instructions for slower motion.  
1. Wait for a key to be pressed and show it on the  
display in decimal form.  
Show an 8-bit by 8-bit square on the screen and  
make it move left or right when keys 4 or 6 are held  
down.  
2.  
4.  
The FX29 instruction sets I to the RAM address of a  
five-byte pattern representing the least significant hex  
digit of VX. If VX =07, then I would be set to the  
address of a "7" pattern which could then be shown on  
the screen with a DXYN instruction. N should  
always be 5 for these built-in hex-digit patterns.  
Appendix C shows the format for these standard hex  
patterns. The following program illustrates the use of  
the FX29 and FX33 instructions:  
Show an 8-bit square on the screen. Make it move  
randomly around the screen.  
Show a single bit and make it move randomly  
around the screen leaving a trail.  
Program a simple number game. Show 100  
(decimal) on the screen. Take turns with another  
player. On each turn you can subtract 1-9 from the  
number by pressing key 1-9. The first player to  
reach 000 wins. The game is more interesting if you  
0200 6300 V3=00  
0202 A300 I=0300  
are only allowed to press  
horizontally or vertically adjacent to the last key  
pressed.  
a
key which is  
MI=V3 (3DD)  
VO:V2=MI  
V4=00  
0204 F333  
0206 F265  
0208 6400  
020A 6500  
020C F029  
020E D455  
0210 7405  
0212 F129  
0214 D455  
0216 7405  
V5=00  
I =VO (LSDP)  
SHOW 5MI@V4V5  
V4+05  
I=Vl(LSDP)  
SHOW 5MI@V4V5  
V4+05  
If you are unsure of the operation of any CHIP-8  
instruction, just write a short program using it. This step  
should clear up any questions regarding its operation. In  
your CHIP-8 programs be careful not to write into  
memory locations 0000-01FF or you will  
Download from Www.Somanuals.com. All Manuals Search And Download.  
111. CHIP-8 Language Programming  
17  
lose the CHIP-8 interpreter and will have to reload it.  
You can insert stopping points in your program for  
debugging purposes. Suppose you want to stop and  
examine variables when your program reaches the  
instruction at 0260. Just write a 1260 instruction at  
location 0260. Flip RUN down and use operating system  
mode A to examine variables V0-VF. The memory map  
in Appendix C shows where you can find them.  
9. LUNAR LANDING - Program a graphic lunar  
landing game.  
10. COLLIDE - Try to maneuver a spot from one  
edge of the screen to the other without hitting  
randomly moving obstacles.  
Il.  
CAPTURE - Try to chase and catch randomly  
moving spots within a specified time limit.  
12. LEARNING EXPERIENCES - Program graphic  
hand and eye coordination exercises for young  
children or those with learning disabilities.  
After the above practice you are ready to design more  
sophisticated CHIP-8 programs. Always prepare a  
flowchart before actually writing a program. The last  
352 bytes of on-card RAM are used for variables and  
display refresh. In a 2048-byte RAM system you can use  
locations 0200-069F for your programs. This area is  
enough for 592 CHIP-8 instructions (1184 bytes). In a  
4096-byte RAM system you can use locations  
0200-0E8F. This area is equal to 1608-CHIP-8  
instructions (3216 bytes).  
13. NUMBER RECOGNITION - Show groups of  
objects or spots on the screen. Young child must  
press key representing number of objects shown  
to score.  
WALL BALL - Program a wall-ball-type paddle  
game for one player.  
Some Program Ideas  
15. FOOTBALL - Each player enters his play via the  
hex keyboard and the computer moves the ball on  
the screen.  
Here are a few ideas for programs to write using the  
CHIP-8 language:  
16. BLACKJACK - Play "21" against the com  
puter dealer.  
1. INTOXICATION TESTER - Display a six digit  
random number on the screen for several seconds.  
You must remember this number and enter it from  
the keyboard within ten seconds after the screen  
goes blank to prove that you're sober and score.  
17. HOLIDAY DISPLAYS  
-
Design custom,  
animated displays for birthdays, Halloween,  
Christmas, etc.  
METRIC CONVERSION - Help children learn  
metric by showing lengths on screen in inches and  
requiring centimeter equivalent to be entered to  
score.  
2. NUMBER BASE QUIZ - Display numbers in  
binary or octal on the screen. You must enter  
their decimal equivalent to score points.  
18.  
3. DICE - Push any key to simulate rolling dice  
displayed on the screen.  
19. TURING MACHINE - Simulate a simplifed  
Turing machine on the screen.  
4. PUPPETS - Show large face on the screen. Let  
small children move mouth and roll eyes by  
pushing keys.  
TIMER - Use the computer to time chess games,  
etc.  
20.  
21.  
HEXAPAWN - Program Hexapawn so that the  
computer learns to play a perfect game.  
BUSY BOX - Let small children push keys to  
r
make different object appear on the screen,  
move, and make sounds.  
22. NIM - Program Nim with groups of spots  
shown on the screen.  
6. SHUFFLEBOARD - Simulate shuffleboard  
type games on the screen.  
23. BLOCK PUZZLES - You can simulate a variety  
of sliding block-type puzzles on the screen.  
7. COMPUTER ART - Design new programs to  
generate pleasing geometric moving patterns on  
the screen.  
24. BOMBS AWAY - Show a moving ship at the  
bottom of the screen. Try to hit the ship by  
releasing bombs from a moving plane at the top of  
the screen.  
8. INVISIBLE MAZE - Try to move a spot  
through an invisible maze. Tones indicate when  
you bump into a wall.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
18  
RCA COSMAC VIP Instruction Manual  
The next section will discuss machine language  
programming. You can even combine machine language  
subroutines with CHIP-8 programs if desired.  
25. PROGRAMMED SPOT - Introduce children to  
programming concepts by letting them  
preprogram the movements of a spot or object on  
the screen.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
19  
IV. Machine Language Programming  
The latched Q line output performs several functions  
in the COSMAC VIP system. When set, it holds the Q  
light on and generates a continuous speaker tone. Ile Q  
line is also used for serial output data to a cassette  
recorder. You can use the Q output line as a control  
signal in an expanded system if you avoid conflicts with  
its normal functions.  
VIP Machine Coding  
For a complete description of machine language  
instructions, refer to the User Manual for the CDP1802  
COSMAC  
Microprocessor  
MPM201A.  
Your  
COSMAC VIP computer incorporates the following  
special machine-language input and output instructions:  
You can store a machine language program starting at  
location 0000. It will be executed when you flip the  
RUN switch up. Initially P=0, X=0, R0=0000, Q=0, and  
R1=0XFF, where 0X= last page of on-card RAM. (0X =  
07 in 2048-byte RAM system). The operating system  
uses the last 84 bytes of on-card RAM. You should  
avoid using these last 84 RAM bytes when writing  
machine language programs. With a 2048-byte RAM,  
locations 07AC-07FF would be reserved for use by the  
operating system. Note that Rl initially contains the  
address of the last on-card RAM byte. Your machine  
language program can use Rl to determine the amount of  
RAM in your system when required.  
CODE  
OPERATION  
Turn display on (Bus -> MX,D)  
Input port byte + MX,D (Optional)  
Turn display off (MX -> Bus,RX+1)  
MX(LSD) -> Hex keyboard latch,  
RX+1  
MX -> Output port, RX+1 (Optional)  
MX -> Bus,RX+l  
69  
6B  
61  
62  
63  
64  
One 64 instruction is always executed by the  
Operating System. It can also be used in expanded  
systems if desired. Instructions 65, 66, 67, 6A, 6C, 6D,  
6E, and 6F are also available for use in expanded  
systems.  
The External Flag lines are used as follows:  
Putting Machine Coding and  
CHIP-8 Language Together  
USE  
FLAG  
EF1  
Generated by the video interface  
(CDPI861)  
The operating system and the CHIP-8 language  
interpreter use a video display format that is 64 bits wide  
by 32 bits high. This 256-byte display can easily be  
modified by writing your own video refresh interrupt  
routine as explained in the CDP1861 data sheet provided  
in Appendix G. Display formats up to 64 bits wide by  
128 bits high are possible with no hardware  
modification. The 4096-bit picture program in Appendix  
D uses a machine language refresh interrupt routine that  
provides a format 64 bits wide by 64 bits high.  
EF2  
EF3  
EF4  
Serial data from cassette player  
Hex key pressed signal  
Not used in basic system  
EF4 can be used for system expansion. EF3 can also  
be used in expanded systems if no key will be depressed  
at the same time that an external device is using EF3.  
EF1 can only be used by an external device when the  
display is turned off. EF2 should not be used in  
expanded systems.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
20  
RCA COSMAC VIP Instruction Manual  
While the video interface is turned on, you should not  
use any of the 3-machine-cycle CDP1802 instructions  
(except those used for sync in the refresh interrupt  
routine itself). If you are not using the video interface,  
then you can use the CDP1802 3-cycle instructions in  
your machine language programs. When you initiate a  
machine language program at 0000 by flipping RUN up,  
the video interface will be off. You must turn it on with a  
69 instruction to use the COSMAC VIP graphic display  
capability.  
The CHIP-8 language described in the previous  
section, permits machine language subroutines to be  
called with a 0MMM instruction. A D4 machine  
language instruction at the end of the machine language  
subroutine returns control to the CHIP-8 instruction  
following the 0MMM instruction. In Appendix C, the  
CDP1802 register use for the CHIP8 language is  
provided. R5 is used as the CHIP-8 program counter.  
When you call a machine language subroutine with a  
0MMM instruction, R5 will be addressing the CHIP-8  
instruction following the 0MMM. The machine language  
subroutine could retrieve the next two CHIP-8 program  
bytes as parameters by addressing with R5 and  
incrementing it by 2 before returning control to the  
CHIP-8 program with a D4 instruction. RC, RD, RE, and  
RF are available for use in machine language  
subroutines. RA is the CHIP-8 memory pointer (1).  
Changing the high-order byte of RB will cause any  
desired RAM page to be displayed. R3 is the machine  
language subroutine program counter.  
Machine Language  
Programming Summed Up  
In summary, COSMAC VIP provides you with an  
easy-to-use language called CHIP-8. You can insert  
machine language subroutines in CHIP-8 programs for  
greater flexibility or expanded I/0 capability. You can  
write complete machine language programs to fully  
utilize CDP1802 capabilities. The operating svstem  
facilitates debugging machine language programs by  
permitting you to examine general registers R3-RF. (See  
operating system register table in Appendix B).  
Advanced programmers can even develop their own,  
interpretive language tailored to special requirements.  
Direct execution of machine language code starting at  
location 0000 together with the expansion interface  
permits the COSMAC VIP system to be used as a  
low-cost development system as well as a personal  
recreational or educational computer.  
CHIP-8 uses the operating system refresh interrupt  
routine contained in ROM for display. You can use this  
ROM interrupt routine for 256-byte display in your own  
machine language programs. First initialize R1 to 8146  
and R2 as a stack pointer before turning on the video  
interface with a 69 instruction. Set the desired display  
page into RB.1. This interrupt routine uses R0 as the  
display refresh pointer and modifies RB.0. R8.1 and  
R8.0 are decremented by 1 during each interrupt unless  
they are equal to 00. Interrupts occur 60 times per second  
when the video interface is turned on. This rate is  
controlled by a crystal clock so that R8.0 and R8.1 can  
be used as real-time clocks when needed. -  
Download from Www.Somanuals.com. All Manuals Search And Download.  
21  
V. Logic Description  
operating system program which uses a 64 instruction to  
generate an N2 pulse. This-N2 pulse sets U6A so it no  
longer holds U6B in its set state. From this point on, the  
selection,of RAM or ROM locations is controlled by the  
most significant address bit latched into U6B each cycle  
by TPA.  
A complete set of logic diagrams is provided in  
Appendix E. Power requirements for a system with 2048  
bytes of RAM is 5 V DC at 350 mA. If you wish to  
expand the system you can use your own higher current  
power supply.  
This system is designed around the CDP1802  
microprocessor Wfl. Refer to the CDP1802 data sheet  
and User Manual for the CDPI802 COSMAC  
Microprocessor MPM-201A for a complete description  
of its operation. The CDP1802 requires a square-wave  
clock input at pin 1 for operation. This system uses a  
1.7609-MHz clock. One half of U3 is connected as a  
U8 latches an additional 4 address bits to provide the  
1-9-bit address required in a 4096-byte RAM system.  
U9A decodes 2 of these address bits into 4 lines which  
are used to select up to four 1024-byte RAM sections.  
Each 1024-byte section of RAM consists of two 4 x  
1024-bit RAM IC's (U16-U23 in Fig. E-4). Only the first  
two sections of RAM (U16-U19) are used in a 2048-byte  
system. U9B in Fig. E-2 is wired as a simple gate that  
inhibits selecting any section of RAM when either the  
ROM is selected or a positive RAM inhibit signal is  
generated on pin 19 of the expansion interface by  
external circuits.  
free-running  
crystal-controlled  
oscillator.  
A
3.52180-MHz crystal is used in this circuit. The output of  
this 3.52180-MHz oscillator is then divided by 2 using  
U4 to provide the 1.7609MHz input clock for the  
CDP1802. Because each CDP1802 machine cycle equals  
8 clock cycles, each machine cycle is about 4.54 us in  
duration. TPA and TPB are timing pulses generated once  
each machine cycle by the CDP 1802 microprocessor.  
Memory read (MRD) and write (MWR) signals are  
supplied to the RAM at appropriate times by the  
CDP1802. Data is transferred between memory,  
CDP1802, input, or output via an 8-bit data bus. Pull-up  
resistors are provided on this bus for compatibility with  
TTL signal swings provided by some RAMs.  
How Memory Is Addressed  
A debounced RUN level goes high when the RUN  
switch is flipped up. This signal causes the CDP1802 to  
begin fetching instructions from memory. When the  
RUN switch is down, the CDP1802 is held in a reset  
state and U6A (in Fig. E-2) is reset. U6B is held set by  
U6A. The CDP1802 starts fetching instructions from the  
ROM (U10) at location 8000 since UOB is being held  
set. The ROM contains the  
How the Input/Output Works  
Ull and U12 in Fig. E-3 are used to decode the  
input/output instruction codes used in the system.  
U13 provides the hex keyboard interface. This  
interface permits a program to determine which key is  
Download from Www.Somanuals.com. All Manuals Search And Download.  
RCA COSMAC VIP Instruction Manual  
into 5-volt pulses by U14B. The output of U14B is  
connected to the CDP1802 EF2 input line. The operating  
system reads tape data by examining the timing of the  
transitions on the EF2 input line. Cassette read and  
record timing is derived from the crystal-controlled clock  
so that no adjustments are necessary.  
pressed. A 62 machine instruction causes the least  
significant 4 bits of memory byte to be latched into U13.  
These 4 bits are decoded to bring one of the 16 U13  
output lines low. If the key that corresponds to this  
output line is pressed, the CDPI802 EF3 input will go  
low. The 4-bit codes latched into U13 correspond to the  
equivalent key positions. After the program send8 a 4-bit  
code to U13, it subsequently examines the EF3 line to  
see if the key corresponding to this code is pressed or  
not. In this manner, a program can determine when any  
specific key is pressed or can sequentially scan all keys  
while waiting for any one to be pressed. Key debounce  
delays must be provided in the program when required.  
A program can also cause a speaker tone to occur when a  
key is pressed. Only one key at a time should be pressed  
with this method of interfacing the keyboard.  
Video output is provided by the unique CDP1861  
video display interface IC (U2 in Fig. E-1). Refer to the  
CDP1861 data sheet. in Appendix G for a description of  
its operation. This chip provides one of the lowest cost  
and most useful display interface capabilities available  
for any microcomputer. The values of the resistors RI  
and R4 in Fig. E-1 of Appendix E connected to output  
pins 6 and 7 of U2 can be adjusted for best results with  
your video display. 61 and 69 machine language  
instructions are used to generate the required on and off  
pulses for U2. The down position of the RUN switch  
resets the internal U2 circuits. When a program is  
initiated, by flipping RUN up, U2 will remain off until a  
69 instruction is executed. No CDP1802 interrupt or  
DMA requests are generated by U2 until it is turned on  
by a 69 instruction. U I and U2 are both driven by the  
same clock. They must remain in sync to provide proper  
operation of the display.  
U15 generates an audible tone when pin 4 is high. The  
output on pin 3 drives a small speaker. The 10 ohm  
resistor R48 in series with the speaker output can be  
raised in value to lower the volume if desired. The  
CDP1802 latched Q-line output drives the tone generator  
and also turns on the Q light. Q can be set high (1) or low  
(0) by machine language instructions. The RC network  
connected to pins 2, 6, and 7 of U15 determines the  
frequency of the tone. You can increase or decrease the  
value of R to adjust this frequency to suit your taste.  
Q is also shaped by U14A in Fig. E-3 to form a signal  
suitable for recording on an audio cassette. Audio  
cassette recorders can't cope with square waves. Tle  
divider on the output of U 14A reduces the signal to  
about 50 mV which is suitable for the microphone input  
of most recorders. During recording, the operating  
system program in ROM converts memory bytes into bit  
serial form and transmits them to the recorder via the Q  
line. See the cassette data test page of Appendix A for  
the cassette data code used.  
In general, the logic of this system has been kept  
simple and straight-forward by the use of software to  
replace hardware. This design not only yields a low cost  
system, but one that should prove extremely reliable  
because of the reduced number of components that can  
cause failures. This system will not become obsolete for  
a long time. RAM, ROM, and microprocessor are all  
state-of-the-art devices and not obsolescent types that are  
about to be replaced by better ones. The cassette and  
video interfaces are optimum for long life. Also designed  
into the system are full expansion capability for added  
RAM, ROM, input, output, and full color graphics.  
In playback, bit serial data from the cassette drives the  
tape light. The serial data is amplified and shaped  
Download from Www.Somanuals.com. All Manuals Search And Download.  
23  
V1. Expansion Considerations and  
Connections  
The COSMAC VIP was designed primarily as a  
self-contained graphic system for home use. Enough  
RAM and input/output features are provided for years of  
computer fun without adding anything to your system. If,  
however, you do want to expand your system, a variety  
of features have been included to make expansion as  
easy and inexpensive as possible. You can easily  
increase RAM to 4096 bytes by adding U20-U23  
to your PC card. Use the same type or a compatible type  
of RAM as used for U16-U19. You may, however,  
have to add a higher-current power supply when  
expanding RAM.  
buffered Q output line (W) can be used as an output  
strobe for transferring the latched output byte to an  
external device such as a printer. The EF3 (X) and EF4  
(L) input fines can be used to indicate the status of an  
external device. Don't forget that EF3 is shared with the  
hex keyboard.  
Table 11 - Input/Output Port Terminal Connections  
(See Fig. E-5, Appendix E)  
Pin Signal  
Description  
Using the Byte  
Input/Output  
First, you may wish to add some external com-  
puter-controlled devices such as relays, input sensing  
switches, or even a low-cost printer. The printer will  
require an 8-bit parallel input or output port and some  
"hand-shaking" signals. One parallel input port and one  
parallel output port are available on the PC card as  
shown in Fig. E-5 in Appendix E. These ports are  
provided by U24, U25, U26, and U27 along with  
the associated resistors and two IN914 diodes. The 22  
input/output port connection pads (A-Z) along the  
back right edge of the PC card are connected to a  
standard 44-pin card socket on the COSMAC VIP board.  
You can plug your external circuits or devices into this  
socket. Table II gives the input/output port terminal  
connections.  
The  
8
buffered  
output  
signals  
(M,N,P,R,S,T,U,V) will each drive up to 2  
TTL loads. A 63 machine language instruction will  
latch a memory byte into U24 for output. The 8 latched  
output lines can be used to drive individual relay driver  
circuits, power amplifiers, lights, battery motor drivers,  
etc. The  
Download from Www.Somanuals.com. All Manuals Search And Download.  
24  
I
RCA COSMAC VIP Instruction Manual  
also latch high-order address bits to select external  
devices if desired. When using external circuits to  
generate DMA requests, interrupt requests, or input flag  
signals, isolate these signals with 1N914 diodes as shown  
for EF3 and EF4 in the optional parallel input/ output  
port logic. Refer to the User Manual for the CDPI802  
COSMAC Microprocessor, MPM-201A, for specific  
examples of input/output attachment techniques.  
A single photocell input could be provided via the  
buffered EF4 line. You can attach the photocell  
directly between the L and Z pads. Experimentally  
adjust the pull-up resistor on pad L for best  
operation. No photocell amplifier should be required  
to drive the COS/MOS input. An, externally supplied  
positive pulse- on. Pins 2_and 14 of U25,can be used as  
an input,byte- strobe when yow want to latch an input  
byte into U25. A 68 can be used to store  
this input byte in RAM.  
Some Expansion Ideas  
Using the Expansion  
Interface  
The August and September 1976 issues of Popular  
Electronics contain descriptions of a COSMAC ELF  
microcomputer using the CDP1802. These articles  
illustrate some input/output attachment techniques.  
The 44-pin card socket for the expansion interface  
pads along the back left edge of the PC board permits  
extensive expansion. If you expand beyond the  
capabilities of the power converter provided with the  
VIP, you will, of course, have to provide your own power  
supply. Output signals should only drive COS/MOS  
loads, and must be externally buffered with a. CD4050  
or CD4049 IC to drive TTL loads. Keep any wires  
connected to the expansion pad signals as short as  
possible. Excessive stray capacitance on these signal  
lines can interfere with proper operation of the computer.  
Input signals should also be buffered with COS/MOS  
circuits. Refer to the. machine language programming  
section (Section IV) and the logic diagrams (Appendix E)  
to avoid conflicts with normal COSMAC VIP use of  
these signals. The external option terminal connections  
are given in Table III.  
The following lists some things that with some  
exercise of your ingenuity could be added to your system  
at relatively low cost:  
1. Manually operated photoelectric paper-tape strip  
reader. Only requires  
photocells.  
a
tape guide and  
8
2.  
Scanning circuit for multiple input lines from  
sensing devices using CD4515 IC.  
3. Full alphanumeric keyboard.  
4. Low-cost printer.  
5. Multi-digit numeric display.  
6. Calculator chip.  
You can latch up the required high order address bits  
with the trailing edge of TPA when adding external  
memory. You must provide a Positive level on pad 19 to  
disable internal RAM when external RAM is addressed.  
The operating system will always use the highest page of  
internal (on-card) RAM, even when you add external  
RAM.  
7. Individual photocells or switches.  
8. Output relays to control solenoids, bells,  
whistles, sirens, lights, or motors.  
9. Sound-generating circuits that can be controlled  
by program.  
If you wish to substitute an external ROM or  
battery-powered COS/MOS RAM for U10, you can use  
the signal on pad X to select it. Remove U10 when  
substituting an external ROM. If you do use an external  
ROM for your own operating system you may no longer  
be able to use the CHIP-8 interpreter because it requires  
some of the operating system subroutines.  
10. Analog-to-digital input circuits.  
11.  
12. Digital-to-analog output circuits.  
Read-Only Memory for fixed program.  
Alpha wave monitor input to control pictures on  
TV or output devices.  
13.  
The expansion interface pads provide access to all  
CDP1802 signals so that you can add any desired  
external circuits.  
14. Temperature- or pressure-sensing devices.  
Only 5 out of the possible 14 CDP1802 input/output  
instructions are used internally, so that you can externally  
decode the N0, N1, and N2 lines and use them with MRD  
to obtain the use of the remaining 9 input/output  
instruction codes. You can  
15.  
16.  
Computer terminal.  
A second hex keyboard for multi-player video  
games.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
V1. Expansion Considerations and Connections  
.25  
Table III - External Option Terminal Connections  
(See Fig. E-2, Appendix E)  
Pin Signal  
Description  
Negative-going memory-write pulse Early  
timing pulse for M address clocking, etc.  
Memory address lines. High-order address byte  
appears on these lines during TPA time.,  
followed by low-order address byte  
8-bit, 2-way tri-state data bus  
Low for memory read machine cycles  
Chip select for operating system  
Optional power for external logic  
CDP1802 clock output  
Flag input lines #3 and #4  
(Flag 3 also used for hex keyboard)  
Crystal frequency  
Flag input line #1  
Low-order 3 bits of N during  
6N instruction  
Video spot output  
Video sync output  
Timing pulse for clocking memory byte out, etc.  
State code bit (+5 V for SI /S3, GND for SO/S2)  
Pulling to GND causes interrupt (22-KE2 input)  
State code bit (+5 V for S2/S3, GND for SO/Sl)  
Pull to GND for DMA-OUT cycles  
Q flip-flop output line  
Pull to GND for DMA-IN cycles  
+5 V when running, GND when RUN switch down  
Internal RAM-disable input  
GND when RAM pages C, D, E, and F selected  
Optional power for external logic (same as Y-Z)  
Download from Www.Somanuals.com. All Manuals Search And Download.  
I
26  
RCA COSMAC VIP Instruction Manual  
Some possible applications for expanded systems  
include:  
8. Provide a crystal-controlled, programmable  
pulse generator, clock, or timer.  
Provide a programmable sequencer for light  
shows, advertising displays, holiday lighting, etc.  
1. Counting packages, parts, cars, or people via  
photocell or switch input.  
9.  
2. Composing poetry or pictures with printer output.  
10. Automatic telephone dialer.  
3. Video target games using photocell light gun.  
4. Monitor burglar alarm switches.  
11. Model railroad controller.  
12. Battery-operated toy or robot controller.  
5. Monitor water level and temperature in fish  
tank and regulate automatically.  
13. Detect tape-player tones and control slide  
projector.  
6. Measure motor speed with photocell.  
You will soon discover that the potential applications  
of a computer such as the COSMAC VIP are only  
limited by your imagination and the ability to develop  
appropriate interface circuits.  
7. Monitor and control experiments in home,  
school, or lab. Use video display for real time  
bar graphs of multiple variables.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
27  
VIL Troubleshooting Hints  
This section is aimed at helping you diagnose and fix  
Other Problems  
hardware problems should they occur. First, check all  
IC's to make sure they are properly inserted in the PC  
card. An IC inserted in the wrong direction can be  
permanently damaged. Check that the +5 V DC supply  
voltage ripple does not exceed 0.2 volt. Visually inspect  
the PC card for solder shorts or bad solder joints. Try to  
avoid zapping your PC card with static electricity  
charges. Discharge youself, if necessary, by touching a  
grounded object before touching any IC's or PC card  
wiring.  
Using operating system mode 0, load bytes into RAM  
using all 16 hex keys. If a key doesn't work or shows the  
wrong value on the display screen, check the keyboard  
and U13.  
If everything except the cassette interface works,  
check U14. Review the cassette recording guidelines in  
Appendix A. Use the cassette phase and data test  
procedures described in Appendix A to find out what's  
wrong.  
No Sound  
If you can run some programs but not others, you  
may have a bad RAM bit. Load and use the memory test  
program provided in Appendix A. Try changing RAM  
chips, one at a time.  
If everything works but you don't hear any sound  
from the speaker you probably have a bad U15, bad  
speaker, or bad connection. Flip RUN up with key C  
down. Hold any key down and the Q light should come  
on. Check the Q line if it doesn't. The Q line should be at  
+5 V with a key held. If the Q light is on, but with no  
tone, check U15 and your speaker connections.  
If nothing seems to work and you can't run the  
operating system, check your power supply and PC card  
wiring for shorts again. If everything still seems OK you  
will have to start signal tracing.  
Signal Tracing  
No Display  
Check the U3 oscillator output. If not present, replace  
U3. If the 3.521280-MHz signal is present, check the U4  
divider. Replace U4 if it isn't toggling. Make sure you  
use a 7474 type. With RUN up, you should see TPA and  
TPB pulses being generated at pins 33 and 34 of U1 If  
they are not present, check the RUN level to make sure  
the switch is working, then replace U1.  
If you get no display but do get operating system key  
tones, check the video output signal. First, select the  
operating system to make sure video should be present.  
The video signal should be 0.5 volt peak to peak or  
higher. You should see negative-going vertical and  
horizontal sync pulses and positive-going video pulses.  
The sync pulses should be about 25% of the total swing.  
Check your display system and interconnections if you  
have the video signal present. Make sure you are using  
the correct high-impedance input setting, for example.  
Check the output of U6B to make sure that the ROM  
is initially selected when RUN is first flipped  
Download from Www.Somanuals.com. All Manuals Search And Download.  
28  
RCA COSMAC VIP Instruction Manual  
up with key C down. With RUN up, check bus and  
address lines to see if any look different from the others.  
They will, of course, be at different levels or bouncing  
around but you might spot something suspicious that  
would indicate a short or open for one of these lines.  
Last Resorts  
As a last resort, try replacing Ul and the ROM. Check  
the supply voltage at all chips. Examine the PC card for  
hairline breaks in the printed conductors. Fill up  
plated-through holes with solder to insure continuity.  
Check all signals. They should swing between ground  
and +4 or 5 volts. If you see a logic signal at some  
intermediate voltage, like +1 or 2 volts, check the source  
IC.  
Try operating with only a 1024-byte RAM (U16 and  
U17). Try the other two RAM chips in these sockets.  
Check U5 inputs and outputs to verify that all stages are  
inverting properly.  
Once you get the operating system running, over 90%  
of the hardware will be operating properly. There are no  
critical adjustments to be made or maintained. All system  
timing is controlled by the crystal clock. With reasonable  
care your COSMAC VIP system should run for years  
without any problems.  
If you don't get a pulse at pin 10 of U2 when you flip  
RUN up with key C down, U12 may he bad. This pulse  
is a difficult pulse to see and you might have to  
breadboard a latch or use a latching logic probe to catch  
it. If you get the display on pulse at pin 10 of U2, you  
should then see U2 output pulses on pins 2, 3, and 9. If  
you don't, try replacing U2.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
29  
Appendix A - Test and Operating Data  
Byte Pattern for Displaying "COSMAC"  
The following figure shows how the word "COSMAC" would be formed by spots (or bits) on the  
display screen.  
The following bytes when loaded into memory will cause the word "COSMAC" to be shown on  
the display in a 2048-byte RAM system. Start pattern of bytes at location OFOO in a 4096-byte  
system.  
0700  
0708  
0710  
0718  
0720  
0728  
F9 F3 E6 CF 9F 00 00 00  
81 12 07 C8 90 00 00 00  
81 13 E5 4F 90 00 00 00  
81 10 24 48 90 00 00 00  
F9 F3 E4 48 9F 00 00 00  
00 00 00 00 00 00 00 00  
Beeper Program  
This machine- language program flashes the Q light and beeps at a rate determined by the byte at  
location 0002. Change this byte for faster or slower rates.  
0000 7A F8 0F BF 2F 9F 3A 04  
0008 31 00 7B 30 01 00 00 00  
Download from Www.Somanuals.com. All Manuals Search And Download.  
30  
RCA COSMAC VIP Instruction Manual  
Cassette Attachment Diagram  
Cassette Phase Test  
For best results your cassette recorder should not  
reverse the phase of an input signal on playback. When  
playing back a tape recorded on another recorder, it  
should not reverse the phase of the output signal. You  
may have to reverse the internal head connections on  
some cassette recorders to eliminate unwanted phase  
reversals.  
Run this program to generate a phase test signal on the  
tape out line. Record one minute of this test signal, then  
play it back and observe the cassette recorder output on a  
scope. It should appear as shown in B or C below. Save  
this tape to test new recorders on which you want to play  
tapes you have recorded on a previously tested machine.  
If the playback signal appears upside down from that  
shown in B or C, you will have to reverse the internal  
head connection leads on the out-of-phase recorder.  
To check for phase reversals, load the machine  
language test program, given below, into memory.  
Test Program  
0000  
0008  
0010  
0018  
F8 04 AA 7B F8 0C FF 01  
3A 06 7A F8 0C FF 01 3A  
0D 2A 8A 3A 03 F8 60 FF  
01 3A 17 30 00 00 00 00  
Signals  
Download from Www.Somanuals.com. All Manuals Search And Download.  
31  
Appendix A - Test and Operating Data  
Cassette Data Test  
Load the following machine language program into memory:  
0000 90 B6 B3 F8 33 A6 F8 OA  
0008 A3 D3 F8 6F AC F8 40 B9  
0010 93 F6 DC 29 99 3A 10 F8  
0018 10 A7 F8 08 A9 06 B7 F8  
0020 80 FE DC 97 F6 B7 DC 29  
0028 89 3A 23 17 87 F6 DC 30  
0030 17 30 31 35 00 00 00 00  
Rewind a blank cassette and put recorder into record  
mode. Wait 10 seconds and flip RUN up to initiate the  
program. The byte at location 0033 will be continuously  
recorded on tape. Flip RUN down to stop recording after  
a minute or so. You can play this tape to check the  
signals shown below. You can also load the tape into  
memory for testing purposes. Load 7 pages starting at  
0100. You can use this tape to determine the proper  
volume control setting for your recorder. You can change  
the recorded byte at 0033 if desired. Bits on tape consist  
of one cycle at 2 kHz for  
"0" or one cycle at 0.8 kHz for "1". Data format is 4  
seconds of continuous "0's" for sync followed by the  
specified number of data bytes. Bytes always begin with  
a "1" start bit (S) followed by 8 data bits (0-7), and end  
with a parity bit (P). Odd byte parity is used in this code.  
The waveforms below show how a 35 byte would appear  
on tape. The operating system translates memory bytes to  
bit serial output via the Q output line. Bit serial input  
from tape is received via input flag 2 and translated into  
parallel form for storage in memory by the operating  
system software.  
A-OUTPUT OF U14A  
B-OUTPUT FROM CASSETTE (TAP IN PAD ON CARD)  
C-OUTPUT OF U14B  
* WAVEFORMS SHOWN FOR PANASONIC MODEL RO-413S RECORDER.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
32  
RCA COSMAC VIP Instruction Manual  
18. When recording give the page key a short tap to  
start.  
Cassette Recording Guidelines  
Use the last byte of a tape block as a program  
identification and check code. It will appear on the  
display screen after the tape is loaded.  
1. Use high quality tape (Maxell UD or  
equivalent).  
19.  
2. Use shortest tapes possible. You can shorten  
tapes to several minutes in length if you enjoy  
splicing.  
When loading a cassette into memory, the tape  
must contain as many pages as you specify to be  
loaded. If you try to load 8 pages from a 7-page  
tape the loading operation won't terminate  
properly.  
20.  
3. Keep heads and pinch rollers clean.  
4. Keep heads aligned for tape interchangeability.  
5. Avoid recording too close to beginning of tape.  
21. You may have to record with the EAR plug out  
for some tape recorders.  
Always use AC adaptor with recorder for best  
results.  
6. Make sure cassette is properly seated in  
recorder.  
22.  
If you have trouble with a cassette try others.  
You can have a had spot on tape or a warped  
cassette.  
7
Memory Test Program  
8. Highest setting of tone control is usually best.  
This machine language program should be loaded into  
0000-007F. It checks RAM locations 0000-07FF (UI8  
and U19) for proper data storage. Flip RUN up to start  
test. Beeps sound during test. Entire 1024 byte section  
of RAM being tested is shown on screen. Program stops  
with tone on if a bad RAM bit is found. Error byte is at  
007F. This byte should be 00 or FF for no error. For  
example, if byte is 01 or FE then bit 0 was bad. The  
error byte is also shown on the screen.  
9. Set recorder volume control so that TAPE light  
glows steadily on playback. This setting should  
be lower than highest-volume setting. Excessive  
TAPE light flickering indicates a bad tape or  
misaligned heads.  
10. A dirty recorder volume control can cause tape  
dropouts.  
11. Make sure cassette connection plugs make good  
contact.  
Set location 0020=00 and location 0023=80 to test  
RAM locations 0080-03FF (U16 and U17).  
12. Rewind cassettes before removing them from  
recorder.  
0000 90 B1 B2 B3 F8 17 A3 D3  
0008 42 70 22 78 22 52 C4 C4  
0010 C4 94 80 91 AO 30 08 F8  
0018 0A Al F8 7F A2 E2 69 F8  
0020 04 B4 F8 00 A4 94 B7 84  
0028 A7 7A E2 F8 00 A5 F8 FF  
0030 A6 85 57 94 BA 84 AA 8A  
0038 52 87 F3 3A 45 9A 52 97  
0040 F3 3A 45 30 47 86 5A 1A  
0048 9A 52 94 FC 04 F3 3A 37  
0050 07 52 85 F3 3A 6C F8 FF  
0058 A5 93 A6 31 60 7B 30 31  
0060 17 97 52 94 FC 04 F3 3A  
0068 29 7A 30 6A 7B 30 6D 00  
0070 00 00 00 00 00 00 00 00  
0078 00 00 00 00 00 00 00 00  
13. Store cassettes in dust-proof containers.  
14. Avoid exposing cassettes to heat or magnetic  
fields.  
15. Before recording, wind cassette to one end and  
fully rewind.  
16. Cassette recorders will give you problems once in  
a while (they don't like certain cassettes, etc.). If  
one gives you problems most of the time replace  
it.  
17. Make sure that MIKE plug is connected before  
recording. You will hear a tone even if MIKE plug  
is out. On most recorders the TAPE light will  
glow while recording.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
33  
Appendix B - Operating System  
Operating System Listing  
8000-81FF. This listing can be used to verify the  
contents of the ROM if required.  
The following shows the machine language code for  
the ROM operating system. ROM is addressed at  
8000 F8 80 B2 F8 08 A2 E2 D2  
8008 64 00 62 0C F8 FF Al F8  
8010 0F B1 F8 AA 51 01 FB AA  
8018 32 22 91 FF 04 3B 22 B1  
8020 30 12 36 28 90 A0 E0 D0  
8028 El F8 00 73 81 FB AF 3A  
8030 29 F8 D2 73 F8 9F 51 81  
8038 A0 91 B0 F8 CF Al D0 73  
8040 20 20 40 FF 01 20 50 FB  
8048 82 3A 3E 92 B3 F8 51 A3  
8050 D3 90 B2 BB BD F8 81 BI  
8058 B4 B5 B7 BA BC F8 46 Al  
8060 F8 AF A2 F8 DD A4 F8 C6  
8068 A5 F8 BA A7 F8 Al AC E2  
8070 69 DC D7 D7 D7 B6 D7 D7  
8078 D7 A6 D4 DC BE 32 F4 FB  
8080 0A 32 EF DC AE 22 61 9E  
8088 FB 0B 32 C2 9E FB 0F 3A  
8090 8F F8 6F AC F8 40 B9 93  
8098 F6 DC 29 99 3A 97 F8 10  
80A0 A7 F8 08 A9 46 B7 93 FE  
80A8 DC 86 3A AD 2E 97 F6 B7  
80B0 DC 29 89 3A AD 17 87 F6  
80B8 DC BE 3A 9E DC 69 26 D4  
80C0 30 C0 F8 83 AC F8 0A B9  
80C8 DC 33 C5 29 99 3A C8 DC  
80D0 3B CF F8 09 A9 A7 97 76  
80D8 B7 29 DC 89 3A D6 87 F6  
80E0 33 E3 7B 97 56 16 86 3A  
80E8 CF 2E BE 3A CF 30 BD DC  
80F0 16 D4 30 EF D7 D7 D7 56  
80F8 D4 16 30 F4 00 00 00 00  
<eom>  
8100 30 39 22 2A 3E 20 24 34  
8108 26 28 2E 18 14 1C 10 12  
8110 F0 80 F0 80 F0 80 80 80  
8118 F0 50 70 50 F0 50 50 50  
8120 F0 80 F0 10 F0 80 F0 90  
8128 F0 90 F0 10 F0 10 F0 90  
8130 F0 90 90 90 F0 10 10 10  
8138 10 60 20 20 20 70 A0 A0  
8140 F0 20 20 7A 42 70 22 78  
8148 22 52 C4 19 F8 00 A0 9B  
8150 B0 E2 E2 80 E2 E2 20 A0  
8158 E2 20 A0 E2 20 A0 3C 53  
8160 98 32 67 AB 2B 8B B8 88  
8168 32 43 7B 28 30 44 D3 F8  
8170 0A 3B 76 F8 20 17 7B BF  
8178 FF 01 3A 78 39 6E 7A 9F  
8180 30 78 D3 F8 10 3D 85 3D  
8188 8F FF 01 3A 87 17 9C FE  
8190 35 90 30 82 D3 E2 9C AF  
8198 2F 22 8F 52 62 E2 E2 3E  
81A0 98 F8 04 A8 88 3A A4 F8  
81A8 04 A8 36 A7 88 31 AA 8F  
81B0 FA 0F 52 30 94 00 00 00  
81B8 00 D3 DC FE FE FE FE AE  
81C0 DC BE F1 30 B9 D4 AA 0A  
81C8 AA F8 05 AF 4A 5D 8D FC  
81D0 08 AD 2F 8F 3A CC 8D FC  
81D8 D9 AD 30 C5 D3 22 06 73  
81E0 86 73 96 52 F8 06 AE F8  
81E8 D8 AD 02 F6 F6 F6 F6 D5  
81F0 42 FA 0F D5 BE F6 AE 32  
81F8 DC 3B EA 1D 1D 30 EA 01  
<eom>  
Download from Www.Somanuals.com. All Manuals Search And Download.  
34  
RCA COSMAC VIP Instruction Manual  
Operating System Register Table  
Memory Register  
Memory Register  
Address  
Byte  
Address  
Byte,  
0XB0  
0XB1  
0XB2  
0XB3  
0XB4  
0XB5  
0XB6  
0XB7  
0XB8  
0XB9  
0XBA  
0XBB  
0XBC  
0XBD  
0XBE  
0XBF  
0XC0  
0XC1  
0XC2  
0XC3  
0XC4  
0XC5  
0XC6  
0XC7  
0XC8  
0XC9  
0XCA  
0XCB  
0XCC  
0XCD  
0XCE  
0XCF  
R3.0  
R4.0  
R5.0  
R6.0  
R7.0  
R&0  
R9.0  
RA.0  
RB.0  
RC.0  
RD.0  
RE.0  
RF.0  
R3.1  
R4.1  
R5.1  
R6.1  
R7.1  
R8.1  
R9.1  
RA.1  
RB.1  
RC.1  
RD.1  
RE.1  
RF.1  
0X = 07 for 2048-byte RAM  
0X = 0B for 3072-byte RAM  
0X = 0F for 4096-byte RAM  
R5 = CHIP-8 language program counter  
RA = CHIP-8 language I pointer  
R3 = Machine Language Subroutine Program Counter  
4. Mode 0 can be used to insert temporary stops in a  
program for debugging purposes. Insert  
Operating System Summary  
a
"branch-to-itself" instruction at the desired stopping  
point.  
1. RUN up with key C pressed selects operating  
system at 8000.  
The operating system uses the top 84 bytes of RAM  
(0XAC-0XFF). Avoid using these byte locations in  
your programs.  
2. Enter four-digit address followed by mode digit:  
5.  
A
0
B
F
MR (Memory Read)  
MW (Memory Write)  
TR (Tape Read)  
6. The operating system searches for and uses the top  
(highest) 256-byte page of on-card RAM. When  
RUN is flipped up to execute a program, beginning  
at 0000, the following initial conditions exist:  
TW (Tape Write)  
3. CDP1802 microprocessor registers are stored as  
shown in table above. They may be examined after  
a program is run by using operating system mode A.  
P=0, Q=0, R0=0000, and R1 =0XFF where 0X highest  
page of on-card RAM.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
35  
Appendix C - CHIP-8 Interpreter  
locations 0000-0IFF (2 pages). This interpreter will  
CHIP-8 Interpreter Listing  
allow you to run the games in Appendix D or write your  
own programs using the CHIP-8 instruction set  
described in section III.  
To use the CHIP-8 language you must first load the  
following interpreter program into memory  
0000 91 BB FF 01 B2 B6 F8 CF  
0008 A2 F8 81 B1 F8 46 Al 90  
0010 B4 F8 1B A4 F8 01 B5 F8  
0018 FC A5 D4 96 B7 E2 94 BC  
0020 45 AF F6 F6 F6 F6 32 44  
0028 F9 50 AC 8F FA 0F F9 F0  
0030 A6 05 F6 F6 F6 F6 F9 F0  
0038 A7 4C B3 8C FC 0F AC 0C  
0040 A3 D3 30 1B 8F FA 0F B3  
0048 45 30 40 22 69 12 D4 00  
0050 00 01 01 01 01 01 01 01  
0058 01 01 01 01 01 00 01 01  
0060 00 7C 75 83 88 95 B4 87  
0068 BC 91 EB A4 D9 70 99 05  
0070 06 FA 07 BE 06 FA 3F F6  
0078 F6 F6 22 52 07 FA 1F FE  
0080 FE FE F1 AC 9B BC 45 FA  
0088 0F AD A7 F8 D0 A6 93 AF  
0090 87 32 F3 27 4A BD 9E AE  
0098 8E 32 A4 9D F6 BD 8F 76  
00A0 AF 2E 30 98 9D 56 16 8F  
00A8 56 16 30 8E 00 EC F8 D0  
00B0 A6 93 A7 8D 32 D9 06 F2  
00B8 2D 32 BE F8 01 A7 46 F3  
00C0 5C 02 FB 07 32 D2 1C 06  
00C8 F2 32 CE F8 01 A7 06 F3  
00D0 5C 2C 16 8C FC 08 AC 3B  
00D8 B3 F8 FF A6 87 56 12 D4  
00E0 9B BF F8 FF AF 93 5F 8F  
00E8 32 DF 2F 30 E5 00 42 B5  
00F0 42 A5 D4 8D A7 87 32 AC  
00F8 2A 27 30 F5 00 00 00 00  
<e0m>  
0100 00 00 00 00 00 45 A3 98  
0108 56 D4 F8 81 BC F8 95 AC  
0110 22 DC 12 56 D4 06 B8 D4  
0118 06 A8 D4 64 0A 01 E6 8A  
0120 F4 AA 3B 28 9A FC 01 BA  
0128 D4 F8 81 BA 06 FA 0F AA  
0130 0A AA D4 E6 06 BF 93 BE  
0138 F8 1B AE 2A 1A F8 00 5A  
0140 0E F5 3B 48 56 0A FC 01  
0148 5A 30 40 4E F6 3B 3C 9F  
0150 56 2A 2A D4 00 22 86 52  
0158 F8 F0 A7 07 5A 87 F3 17  
0160 1A 3A 5B 12 D4 22 86 52  
0168 F8 F0 A7 0A 57 87 F3 17  
0170 1A 3A 6B 12 D4 15 85 22  
0178 73 95 52 25 45 A5 86 FA  
0180 0F B5 D4 45 E6 F3 3A 82  
0188 15 15 D4 45 E6 F3 3A 88  
0190 D4 45 07 30 8C 45 07 30  
0198 84 E6 62 26 45 A3 36 88  
01A0 D4 3E 88 D4 F8 F0 A7 E7  
0lA8 45 F4 A5 86 FA 0F 3B B2  
01B0 FC 01 B5 D4 45 56 D4 45  
01B8 E6 F4 56 D4 45 FA 0F 3A  
01C0 C4 07 56 D4 AF 22 F8 D3  
01C8 73 8F F9 F0 52 E6 07 D2  
01D0 56 F8 FF A6 F8 00 7E 56  
0lD8 D4 19 89 AE 93 BE 99 EE  
01E0 F4 56 76 E6 F4 B9 56 45  
01E8 F2 56 D4 45 AA 86 FA 0F  
01F0 BA D4 00 00 00 00 00 00  
01F8 00 00 00 00 00 E0 00 4B  
<eom>  
Download from Www.Somanuals.com. All Manuals Search And Download.  
36  
RCA COSMAC VIP Instruction Manual  
CHIP-8 Memory Map  
CDP1802 Register Use for CHIP-8  
Interpreter  
R0 = DMA pointer (page 0X for display refresh)  
R1 = INTERRUPT routine program counter  
R2 = Stack pointer  
R3 = INTERPRETER subroutine program counter  
R4 = CALL subroutine program counter  
R5 = CHIP-8 instruction program counter  
R6 = VX pointer (R6.1 must not be changed)  
R7 = VY pointer (available for machine-language subroutines)  
R8 = Timers (R8.1 = timer, R8.0 = tone duration)  
R9 = Random number (+1 in INTERRUPT routine)  
RA = I pointer  
RB = Display page pointer (RB.1 = 0X)  
RC =Available  
RD = Available  
RE = Available  
RF = Available  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix C - CHIP-8 Interpreter  
37  
CHIP-8/Operating System Standard Digit Display Format  
Download from Www.Somanuals.com. All Manuals Search And Download.  
RCA COSMAC VIP Instruction Manual  
CHIP-8 User Notes  
1 Do not use any of the CDP1802 three-cycle  
machine language instructions in CHIP-8  
programs.  
5.  
R7, RC, RD, RE, and RF can be used as  
working registers in machine language  
subroutines. Changing other registers can cause  
the CHIP-8 interpreter to malfunction.  
2. CDP1802 R5 is used as the CHIP-8 instruction  
counter. It will he addressing the byte following a  
0MMM instruction for machine language  
6......................................................................................  
subroutines and can be used to pass 2-byte  
parameters. Refer to the operating system register  
table in Appendix B to examine this register during  
CHIP-8 program debugging.  
7. Program bugs can destroy the CHIP-8 in-  
terpreter at locations 0000-01FF. If you suspect  
that this has happened, reload the interpreter.  
3. ................................................................................  
8. The CHIP-8 interpreter uses subroutines and  
digit patterns contained in the operating system  
ROM. If you modify this operating system, the  
CHIP-8 interpreter should not be used.  
4....................................................................................  
Download from Www.Somanuals.com. All Manuals Search And Download.  
39  
A
In the listing for each game, the first column is the  
This Appendix contains program listings for twenty  
video games. These games, which illustrate en-  
tertainment applications of COSMAC VIP, were  
developed by Joe Weisbecker (games, 1 through  
8), Joyce Weisbecker (games 9 and 10), Jef  
Winsor (games 11, 12, and 13), Tom Chen  
(games 14,15, and 16), and Phil Baltzer (games  
17 through 20).  
memory location at which the instruction bytes in  
the second column are stored. The comments in  
the third column indicate the function of the  
instruction byte. The comments are not stored in  
memory.  
The game titles are listed below:  
Game Title .....................................................  
1. VIP Kaleidoscope ...........................................................  
2. VIP Video Display Drawing Game .................................  
3. VIP Wipe Off ..................................................................  
4. VIP Space Intercept .......................................................  
5. VIP 4096-Bit Picture .......................................................  
6. VIP Figure Shooting at Moving Target ...........................  
7. VIP Tick-Tack-Toe Game ...............................................  
8. VIP Spooky Spot ............................................................  
9. VIP Jackpot ....................................................................  
10. VIP Snake Race ...........................................................  
11. VIP Card Matching Game ............................................  
12. VIP Armored Vehicle Clash .........................................  
13. VIP Hi-Lo ......................................................................  
14. VIP Hex Reflex..............................................................  
15. VIP Dot-Dash ...............................................................  
16. VIP A-Mazing ...............................................................  
17. VIP Deduce ..................................................................  
18. VIP Shooting Stars .......................................................  
19. VIP Strike-9 ..................................................................  
20. VIP Card Game (like the well-known acey-  
Download from Www.Somanuals.com. All Manuals Search And Download.  
40  
RCA COSMAC VIP Instruction Manual  
entry. Pushing key 0 causes your pattern to be  
continuously repeated forming a fascinating, changing  
kaleidoscope display on the screen. A "44444442220"  
key sequence provides a very nice effect Experiment to  
find other nice patterns. The subroutine at 0232-0274  
causes your pattern to be duplicated in the four quadrants  
of the screen.  
1. VIP Kaleidoscope  
This program uses the CHIP-8 INTERPRETER at  
0000-01FF. Four spots appear in a group at the center of  
the screen. Press keys 2, 4, 6, or 8 to create a pattern.  
Keep your pattern smaller than 138 key depressions.  
Push key 0 to terminate pattern  
023C 7101 V1+01  
0200 6000 V0=00  
023E 4008 SKIP;V0 NE 08  
0240 7201 V2+01  
0202 6380 V3=80  
0204 611F V1=1F  
0242 A277 I=0277  
0244 6AEO VA=E0  
0246 8A12 VA=VA&Vl  
0248 6B1F VB=1F  
0206 620F V2=0F  
0208 2232 DO 0232  
020A A200 I=0200  
020C F31E I=I+V3  
024A 81B2 VI=Vl&VB  
024C 3AOO SKIP;VA EQ 00  
024E 7201 V2+01  
0250 6AFO VA=FO  
0252 8A22 VA=VA&V2  
0254 6BOF VB=OF  
0256 8282 V2=V2&VB  
0258 3AOO SKIP; VAEQ 00  
025A 7101 V1+01  
020E F00A V0=KEY  
0210 F055 MI-V0:V0  
0212 4000 SKIP;V0 NE 00  
0214 121C GO 021C  
0216 7301 V3+01  
0218 3300 SKIP;V3 EQ 00  
021A 1208 GO 0208  
021C 6380 V3=80  
021E A200 I=0200  
0220 F31E I=I+V3  
025C 6BIF VB=1F  
025E 81B2 Vl=Vl&VB  
0260 D121 SHOW 1MI@VlV2  
0262 8A10 VA=Vl  
0222 F065 VO:VO=MI  
0224 4000 SKIP;VO NE 00  
0226 121C GO 021C  
0228 7301 V3+01  
0264 6B1F VB=1F  
0266 8B25 VB=VB-V2  
0268 DAB1 SHOW 1MI@VAVB  
026A 6A3F VA=3F  
026C 8A15 VA=VA-VI  
026E DABI SHOW 1MI@VAVB  
0270 8B20 VB=V2  
022A 4300 SKIP;V3 NE 00  
022C 121C GO 021C  
022E 2232 DO 0232  
0230 121E GO 021E  
0232 4002 SKIP;V0 NE 02  
0234 72FF V2+FF  
0272 DAB1 SHOW 1MI@VAVB  
0274 00EE RET  
0276 0180  
0236 4004 SKIP;VO NE 04  
0238 71FF VI+FF  
023A 4006 SKIP;V0 NE 06  
0278 0000  
Download from Www.Somanuals.com. All Manuals Search And Download.  
41  
Appendix D - Video Games  
initial values for VO-V9. In this program, locations  
0300-03FF are used for the picture. After drawing a  
picture, you can change M(0208) from OOEO to 120A.  
Write locations 0000-03FF (4 pages) to tape to save your  
picture. When you load these four pages back into  
memory you will see your original picture. Changing the  
OOEO instruction in the program to 120A prevents your  
picture from being erased when the program is started.  
2. VIP Video Display Drawing Game  
This program uses the CHIP-8 INTERPRETER at  
0000-01FF. A flashing spot appears in the upper left  
corner of the screen. You can move the spot by holding  
key 2, 4, 6, or 8. Press key 5 and you can draw a picture  
with the spot. Press key 0 and the spot can be moved  
without drawing or used to erase a previously drawn  
line. 0245-024E is a list of  
0200 A245 I=0245  
0202 F965 VO:V9=MI  
0204 A24F I=024F  
0206 0236 MLS@0236  
0208 OOEO ERASE  
020A F915 TIME-V9  
020C FA07 VA=TIME  
020E 3AOO SKIP;VA EQ 00  
0210 120C GO 020C  
0212 D121 SHOW 1MI@V1V2  
0214 3FOO SKIP;VF EQ 00  
0216 D121 SHOW 1MI@VIV2  
0218 E3A1 SKIP;V3 NE KEY  
021A 8030 VO=V3  
021C E4AI SKIP;V4 NE KEY  
O~U 8040 VO=V4  
0228 E6A1 SKIP;V6 NE KEY  
022A 71FF V1+FF  
022C E7AI S&IP;V7 NE KEY  
022E 7101 V1+01  
0230 E8A1 SKJP;V8 NE KEY  
0232 7201 V2+01  
0234 120A GO 020A  
0236 OlF8  
0238 03BB  
023A E2D4  
023C D121 SHOW 1MI@V1V2  
023E 4FOO SKIP;VF NE 00  
0240 D121 SHOW 1MI@V1V2  
0242 1224 GO 0224  
0244 0100  
0246 0000  
0248 0005  
024A 0204  
024C 0608  
0220 4000 SK1P;VO NE 00  
0222 123C GO 023C  
0224 E5A1 SKIP;V5 NE KEY  
0226 72FF V2+FF  
024E 0880  
Download from Www.Somanuals.com. All Manuals Search And Download.  
67  
Appendix E - Logic Diagrams  
Fig. E-1  
Microprocessor and Display Interface  
Circuits  
Fig. E-2  
Fig. E-3  
ROM Circuits and Expansion Interface  
Keyboard, Decoding, Audio Oscillator,  
and Cassette Interface Circuits  
Fig. E-4  
Fig. E-5  
RAM Circuits  
Power Supply Circuit and Byte  
Input/Output Interface  
Download from Www.Somanuals.com. All Manuals Search And Download.  
RCA COSMAC VIP Instruction Manual  
68  
Fig. E-1 - Microprocessor and Display Interface Circuits  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix E - Logic Diagrams  
69  
Fig. E-2 - ROM Circuits and Expansion Interface  
Download from Www.Somanuals.com. All Manuals Search And Download.  
70  
RCA COSMAC VIP Instruction Manual  
Fig. E-3 - Keyboard, Decoding, Audio Oscillator,  
and Cassette Interface Circuits  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix E - Logic Diagram's  
71  
Fig. E-4 - RAM Circuits  
Download from Www.Somanuals.com. All Manuals Search And Download.  
72  
RCA COSMAC VIP Instruction Manuel  
Fig. E-5 - Power Supply Circuit and Byte Input/Output Interface  
Download from Www.Somanuals.com. All Manuals Search And Download.  
72  
RCA COSMAC VIP Instruction Manual  
Fig. E-5 - Power Supply Circult and Byte Input/Output Interface  
Download from Www.Somanuals.com. All Manuals Search And Download.  
73  
Appendix F -  
Board Layout, Parts List, and Expansion Notes  
1. Printed Circuit Board Layout  
2. Parts List for RCA COSMAC VIP CDP18S711  
Download from Www.Somanuals.com. All Manuals Search And Download.  
74  
, RCA COSMAC VIP Instruction Manual  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix F - Board Layout, Parts List, and Assembly Instructions  
-76  
2. Parts List for RCA COSMAC VIP CDP18S711  
Type  
Number  
Qty.  
Description  
Integrated Circuits - Supplied  
CDP1802  
CDPI 861  
SN74L00N  
SN7474N  
CD4049  
CD4013  
CD4011  
CD4042  
CD4556  
CDPR566  
CD4051  
CD4028  
CD4515  
CA3401  
CA555CE  
2114 or TMS4045  
CD4508  
Ul  
U2  
U3  
U4  
U5  
U6  
U7  
U8  
U9  
U10  
Ull  
U12  
U13  
U14  
U15  
U16-U19  
U24,U25  
U26,U27  
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
2
2
COSMAC Microprocessor  
Video Interface  
Quad NAND Low Power  
Dual D-Type Flip-Flop  
Hex Inverting Buffer  
Dual D-Type Flip-Flop  
Quad 2-Input NAND Gate  
Quad Clocked "D" Latch  
Dual Binary 1 of 4 Decoder  
512 x 8-Bit Static ROM (Programmed CDP1832)  
Binary 1 of 8 Decoder  
BCD-to-Decimal Decoder  
4-Bit Latch/] of 16 Decoder  
Quad Single-Supply Op-Amp  
Timer  
1 K x 4-Bit Static RAM  
Dual 4-Bit Latch  
Hex Buffer  
CD4050  
Integrated Circuits - Optional  
2114 or TMS4045 U20-U23  
4
1 K x 4-Bit Static RAM  
Capacitors - Supplied  
Cl,Cl0  
C2  
C3  
C4,C5  
C6,C7,C13  
C8,C12  
C9  
C11  
2
1
1
2
3
2
1
1
1
4.7 uF 35 V Electrolytic  
100 uF 16 V Electrolytic  
0.0047 uF 50 V Poly Film (472)  
0.47 uF 50 V  
0.0 1 uF 50 V Poly Film (103)  
1 uF 50 V Electrolytic  
22 uF 16 V Electrolytic  
470 pF 500 V Disc  
C14  
33 pF ± 10% 1 kV  
(Continued on next page)  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
76  
RCA COSMAC VIP Instruction Manual  
2. Parts List for RCA COSMAC VIP CDP18S711 (Continued)  
Type  
Number  
Qty.  
Description  
3.3 K ohm  
Resistors - Supplied (1 /4 W except as noted)  
RI  
1
R3 R5 RIS  
Rl6, R33  
R39, R40  
R2, R17  
R6-RI4  
7
2
10 K ohm  
1 K ohm  
R19, R20  
R22-R30, R36 28  
R41-R47  
R18, R21  
R31, R32  
R37, R38  
R50  
22 K ohm  
100 ohm  
2
470 ohm  
R34  
R35, R49  
R52  
1
3
100 K ohm  
1 megohm  
R48  
1
1
1
10 ohm 1/2 W  
4.7 K ohm  
200 ohm  
R51  
R4  
Miscellaneous - Supplied  
I N914  
CR1 through  
CR5  
5
3
Diode  
HP5082-4494  
Red LED  
1
1
1
1
1
1
7
4
1
1
1
6
1
2
1
1
1
3.521280 MHz Crystal  
7 101 -S-D-V30-B Sl  
E7807  
18SO22  
SPDT Toggle Switch; C&K  
Panel Dress Nut for Switch; C&K  
Printed Circuit Board  
Keyboard, Centralab  
Cover, Thermoplastic  
Rubber Feet  
18-Pin IC Socket  
24-Pin IC Socket  
40-Pin IC Socket  
M-1651.0  
C931802  
C932402  
C934002  
CDP18S023  
Power Supply, Regulated; 5 V dc, 600 mA; 110 V 50/60 Hz  
Cable Straps  
Speaker  
JI,J2  
44-Pin Connector  
MPM-201  
MPM-920  
VIP-311  
User Manual for the CDP1802 COSMAC Microprocessor  
Instruction Summary for the CDP 1802 COSMAC Microprocessor  
RCA COSMAC VIP Instruction Manual  
Connectors, cables, hardware  
Miscellaneous - Optional  
LAD66A2CD  
1
2
1
Heat Sink; IERC  
4-40 1/4" Binder Hd. Machine Screws and Nuts  
Voltage Regulator  
7805  
U28  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix F - Board Layout, Parts List, and Assembly Instructions  
77  
3. COSMAC VIP Expansion Notes  
a. Soldering the PC Board  
regulator IC) to the card together with an appropriate  
In the event you wish to make some changes or  
add components requiring soldering, you should have  
some experience building electronic kits. The PC  
board pads are small and close together requiring  
extra caution when soldering to avoid shorts or solder  
bridges. Use a low-heat, small-tipped, grounded  
soldering iron. Keep it clean. Use small gauge, rosin  
core 60/40 solder. Preheat the connection and apply  
just enough solder to "wet" the connection. Avoid  
using excessive amounts of solder because it will flow  
through the plated-through holes and form "blobs"  
on the top of the card. Excessive or protracted heat  
from the soldering iron can damage some of the  
components.  
heat sink. Make sure the U28 lead pads on the PC DC  
card don't touch the heat sink. Disconnect the +5 V  
supply at the + V DC and GND pads and connect your  
unregulated 8-10 V DC power supply to these pads.  
This on-card regulator will handle up to I ampere of  
current and is useful for system expansion. Do not use a  
plastic cover for your PC card when this on-card  
regulator option is used. Air How is needed to permit  
the regulator to operate properly.  
c. Additional 2048-Byte RAM Option  
To increase your COSMAC VIP RAM to a total of  
4096 bytes, add U20-U23 to the PC card by plugging  
units into the four sockets provided. Measure the power  
supply current to be sure it does not exceed the capacity  
of the +5 V DC power pack supplied with the VIP (600  
mA). If you require additional power supply current use  
a regulated +5 V DC supply capable of supplying I  
ampere or use an unregulated 8-10 V DC supply with  
the voltage regulator option on the cards.  
b. Voltage Regulator Option  
An unregulated 8-10 volt DC power supply can  
be used with the COSMAC VIP card if desired. Cut  
LK1 on the PC card. Add U28 (a 7805, 5-volt  
Download from Www.Somanuals.com. All Manuals Search And Download.  

PYLE Audio Stereo Amplifier PWMA30 User Guide
Q Logic Switch 50372 03 A User Guide
Ramsey Electronics Fan EDF1 User Guide
RCA CRT Television 20V500T User Guide
Renesas Computer Hardware M38C29T 64LCA User Guide
Ricoh Copier A251 User Guide
RIDGID Air Compressor GP90135 User Guide
Samson Network Router Wireless System Manager for Windows 95 User Guide
Sears Saw 113197411 User Guide
Sears Treadmill 831297940 User Guide