RCA CDP18S711 III. CHIP-8 Language Programming, 0200 A20A I=020A 0202 6100 V1=00 0204 6200 V2=00

Page 14
III. CHIP-8Language Programming

III. CHIP-8Language 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.

Fig. 2 - Patternof bitsjorming digit 8.

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:

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"

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

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.

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.

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

Image 14
Contents Page RCA COSMAC VIP CDP18S711 Instruction Manual VIP-311ACKNOWLEDGMENT Contents Contents Continued 1. Getting Started What This Manual CoversThe Power Supply 1. Getting Started What You SeeTurning It On Memory Write Using the Operating System11.COSMAC VIP Operation Tape Read Memory ReadTape Write Testing Your Cassette System 11.COSMAC VIP OperationBranch Instructions How to Change and Use the VariablesIII.CHIP-8Language Programming Using the Display Instructions 0206 D125 SHOW 5MI@VlV2 0208 1208 GO 020A F090 III. CHIP-8 Language Programming0200 A20A I=020A 0202 6100 V1=00 0204 6200 V2=00 020C F090 020E F000Applying CHIP-8 Some Program Ideas 111. CHIP-8Language Programming25.PROGRAMMED SPOT - Introduce children to programming concepts by letting them preprogram the movements of a spot or object on the screen IV. Machine Language Programming VIP Machine CodingMachine Language Programming Summed Up How the Input/Output Works V. Logic DescriptionHow Memory Is Addressed 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-bitcodes latched into U13 correspond to the equivalent key positions. After the program send8 a 4-bitcode 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 Using the Byte Input/Output V1. Expansion Considerations and ConnectionsI RCA COSMAC VIP Instruction Manual Using the Expansion InterfaceSome Expansion Ideas Table III - External Option Terminal Connections Pin SignalV1. Expansion Considerations and Connections 2.Composing poetry or pictures with printer output Signal Tracing VIL Troubleshooting HintsOther Problems No SoundLast Resorts Beeper Program Appendix A - Test and Operating DataByte Pattern for Displaying COSMAC Test Program Cassette Attachment Diagram Cassette Phase TestSignals Cassette Data Test Cassette Recording Guidelines Memory Test ProgramAppendix B - Operating System Operating System ListingR3 = Machine Language Subroutine Program Counter Operating System Register TableOperating System Summary Appendix C - CHIP-8Interpreter CHIP-8Interpreter ListingInterpreter CHIP-8Memory MapCDP1802 Register Use for CHIP-8 Appendix C - CHIP-8Interpreter CHIP-8User Notes RCA COSMAC VIP Instruction ManualPage 1. VIP Kaleidoscope 2. VIP Video Display Drawing Game Fig. E-1Microprocessor and Display Interface Appendix E - Logic DiagramsFig. E-5Power Supply Circuit and Byte CircuitsPage Fig. E-2- ROM Circuits and Expansion Interface Appendix E - Logic DiagramsPage Fig. E-4- RAM Circuits Appendix E - Logic DiagramsRCA COSMAC VIP Instruction Manuel RCA COSMAC VIP Instruction Manual 2.Parts List for RCA COSMAC VIP CDP18S711 Board Layout, Parts List, and Expansion NotesAppendix F 1.Printed Circuit Board LayoutRCA COSMAC VIP Instruction Manual Page 2. Parts List for RCA COSMAC VIP CDP18S711 Page RCA COSMAC VIP Instruction Manual Resistors - Supplied 1 /4 W except as notedPage 3. COSMAC VIP Expansion Notes