background image

CHIP-8 User Notes

1  Do not use any of the CDP1802 three-cycle             

machine language instructions in CHIP-8
programs.

2. CDP1802 R5 is used as the CHIP-8 instruction
counter. It will he addressing the byte following a
0MMM instruction for machine language
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.

3. ................................................................................

4....................................................................................

RCA COSMAC VIP Instruction Manual

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.

6......................................................................................

7. Program bugs can destroy the CHIP-8 in-
terpreter at locations 0000-01FF. If you suspect
that this has happened, reload the interpreter.

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.

Summary of Contents for CDP18S711

Page 1: ......

Page 2: ...OSMAC VIP CDP18S711 Instruction Manual RCA Solid State Division Somerville N J 08876 Copyright 1978 by RCA Corporation All rights reserved under Pan American Copyright Convention Printed in USA 2 78 VIP 311 ...

Page 3: ...h 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 fr...

Page 4: ...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 ...

Page 5: ...6 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 Cir...

Page 6: ...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 o...

Page 7: ...scope RCA COSMAC VIP Instruction Manual 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 The output wires of the internally regulated power converter supplied with the COSMAC VIP CDP18S711 are connected to the V DC and GND pad...

Page 8: ...a standard TV receiver with the VIP output connected to the VHF or UHF antenna terminals Do not use transformerless TV receivers 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 C pressed and the Q light should be on When you release key C...

Page 9: ... 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 9 KEY OPERATION 0 A F B MW Memory Write MR Memory Read TW Tape Write TR Tape Read For any of these operations you must first enter a me...

Page 10: ...odels RQ 309DS RQ 212D and RQ 413S have yielded satisfactory results as has the Sony RCA COSMAC VIP Instruction Manual TC 150 In general better quality recorders provide more reliable operation 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 a...

Page 11: ...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 11 COSMAC VIP Operation 1 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 ca...

Page 12: ...y is useful in video game programs Only the least significant hex digit of VX is used to specify the key 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 instruction following the 2570 The subroutine itself could use another 2MMM instruction to branch to or call another subroutine This technique is kno...

Page 13: ...hine language subroutine at 0MMM subroutine must end with D4 byte three RAM bytes addressed by I contain the decimal equivalent of the value of V9 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...

Page 14: ...pattern as a list of five bytes at RAM location 020A as follows 020A F0 020B 90 020C F0 020D 90 020E F0 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 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 ...

Page 15: ...rd while the key is pressed This instruction is used to wait for keyboard input Applying CHIP 8 You should now be able to write some simple CHIP 8 programs of your own Here are some things to try 1 Wait for a key to be pressed and show it on the display in decimal form 2 The FX29 instruction sets I to the RAM address of a five byte pattern representing the least significant hex digit of VX If VX 0...

Page 16: ...different object appear on the screen move and make sounds 6 SHUFFLEBOARD Simulate shuffleboard type games on the screen 7 COMPUTER ART Design new programs to generate pleasing geometric moving patterns on the screen 8 INVISIBLE MAZE Try to move a spot through an invisible maze Tones indicate when you bump into a wall 9 LUNAR LANDING Program a graphic lunar landing game 10 COLLIDE Try to maneuver ...

Page 17: ...concepts by letting them preprogram the movements of a spot or object on the screen 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 ...

Page 18: ...e 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 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 ...

Page 19: ...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 RCA COSMAC VIP Instruction Manual While the video interface is turned on you should not use any of the 3 machine cycle CDP1802 instructions exc...

Page 20: ... fetching instructions from the ROM U10 at location 8000 since UOB is being held set The ROM contains the 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 U8 latche...

Page 21: ...pendix A for the cassette data code used In playback bit serial data from the cassette drives the tape light The serial data is amplified and shaped 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 t...

Page 22: ...e 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 give...

Page 23: ...ernal 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 The expansion interface pads provide access to all CDP1802 signals so that you can add any desired external circuits Only 5 out of the possible 14 CDP1802 input output instructions are used internally so that you can externally decode the N0 N...

Page 24: ...al 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 R...

Page 25: ...chool or lab Use video display for real time bar graphs of multiple variables RCA COSMAC VIP Instruction Manual 8 Provide a crystal controlled programmable pulse generator clock or timer Provide a programmable sequencer for light shows advertising displays holiday lighting etc 10 Automatic telephone dialer 11 Model railroad controller 12 Battery operated toy or robot controller 13 Detect tape play...

Page 26: ...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 Other Problems 27 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 ...

Page 27: ...atch 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 RCA COSMAC VIP Instruction Manual 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 ...

Page 28: ...48 byte RAM system Start pattern of bytes at location OFOO in a 4096 byte system 0700 F9 F3 E6 CF 9F 00 00 00 0708 81 12 07 C8 90 00 00 00 0710 81 13 E5 4F 90 00 00 00 0718 81 10 24 48 90 00 00 00 0720 F9 F3 E4 48 9F 00 00 00 0728 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...

Page 29: ...est program given below into memory 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 app...

Page 30: ... 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 31 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...

Page 31: ...removing them from recorder 14 Avoid exposing cassettes to heat or magnetic fields 13 Store cassettes in dust proof containers 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 ...

Page 32: ... 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 9...

Page 33: ... with key C pressed selects operating system at 8000 2 Enter four digit address followed by mode digit 5 A MR Memory Read 0 MW Memory Write B TR Tape Read F 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 4 Mode 0 can be used to insert temporary stops in a program for debugging purposes...

Page 34: ... 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 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 F...

Page 35: ...nter 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 ...

Page 36: ...Appendix C CHIP 8 Interpreter 37 CHIP 8 Operating System Standard Digit Display Format ...

Page 37: ...examine this register during CHIP 8 program debugging 3 4 RCA COSMAC VIP Instruction Manual 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 6 7 Program bugs can destroy the CHIP 8 in terpreter at locations 0000 01FF If you suspect that this has happened reload the interpreter 8 The CHIP 8...

Page 38: ... 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 VI...

Page 39: ... 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 0222 F065 VO VO MI 0224 4000 SKIP VO NE 00 0226 121C GO 021C 0228 7301 V3 01 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 0236 4004 SKIP VO NE 04 0238 71FF VI FF 023A 4006 S...

Page 40: ...ee your original picture Changing the OOEO instruction in the program to 120A prevents your picture from being erased when the program is started 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 V...

Page 41: ...oprocessor and Display Interface Circuits Fig E 2 ROM Circuits and Expansion Interface Fig E 3 Keyboard Decoding Audio Oscillator and Cassette Interface Circuits Fig E 4 RAM Circuits Fig E 5 Power Supply Circuit and Byte Input Output Interface ...

Page 42: ...68 RCA COSMAC VIP Instruction Manual Fig E 1 Microprocessor and Display Interface Circuits ...

Page 43: ...Fig E 2 ROM Circuits and Expansion Interface Appendix E Logic Diagrams 69 ...

Page 44: ...70 RCA COSMAC VIP Instruction Manual Fig E 3 Keyboard Decoding Audio Oscillator and Cassette Interface Circuits ...

Page 45: ...Appendix E Logic Diagram s 71 Fig E 4 RAM Circuits ...

Page 46: ...Fig E 5 Power Supply Circuit and Byte Input Output Interface 72 RCA COSMAC VIP Instruction Manuel ...

Page 47: ...Fig E 5 Power Supply Circult and Byte Input Output Interface 72 RCA COSMAC VIP Instruction Manual ...

Page 48: ...73 Appendix F Board Layout Parts List and Expansion Notes 1 Printed Circuit Board Layout 2 Parts List for RCA COSMAC VIP CDP18S711 ...

Page 49: ...74 RCA COSMAC VIP Instruction Manual ...

Page 50: ......

Page 51: ...t Static ROM Programmed CDP1832 CD4051 Ull 1 Binary 1 of 8 Decoder CD4028 U12 1 BCD to Decimal Decoder CD4515 U13 1 4 Bit Latch of 16 Decoder CA3401 U14 1 Quad Single Supply Op Amp CA555CE U15 1 Timer 2114 or TMS4045 U16 U19 4 1 K x 4 Bit Static RAM CD4508 U24 U25 2 Dual 4 Bit Latch CD4050 U26 U27 2 Hex Buffer Integrated Circuits Optional 2114 or TMS4045 U20 U23 4 1 K x 4 Bit Static RAM Capacitors...

Page 52: ......

Page 53: ...stal 7 101 S D V30 B Sl 1 SPDT Toggle Switch C K E7807 1 Panel Dress Nut for Switch C K 18SO22 1 Printed Circuit Board M 1651 0 1 Keyboard Centralab 1 Cover Thermoplastic 7 Rubber Feet C931802 4 18 Pin IC Socket C932402 1 24 Pin IC Socket C934002 1 40 Pin IC Socket CDP18S023 1 Power Supply Regulated 5 V dc 600 mA 110 V 50 60 Hz 6 Cable Straps 1 Speaker JI J2 2 44 Pin Connector MPM 201 1 User Manua...

Page 54: ......

Page 55: ... 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 ...

Reviews: