111. CHIP-8 Language Programming 17lose the CHIP-8 interpreter and will have to reload it.You can insert stopping points in your program fordebugging purposes. Suppose you want to stop andexamine variables when your program reaches theinstruction at 0260. Just write a 1260 instruction atlocation 0260. Flip RUN down and use operating systemmode A to examine variables V0-VF. The memory mapin Appendix C shows where you can find them.After the above practice you are ready to design moresophisticated CHIP-8 programs. Always prepare aflowchart before actually writing a program. The last352 bytes of on-card RAM are used for variables anddisplay refresh. In a 2048-byte RAM system you can uselocations 0200-069F for your programs. This area isenough for 592 CHIP-8 instructions (1184 bytes). In a4096-byte RAM system you can use locations0200-0E8F. This area is equal to 1608-CHIP-8instructions (3216 bytes).Some Program IdeasHere are a few ideas for programs to write using theCHIP-8 language:1. INTOXICATION TESTER - Display a six digitrandom number on the screen for several seconds.You must remember this number and enter it fromthe keyboard within ten seconds after the screengoes blank to prove that you're sober and score.2. NUMBER BASE QUIZ - Display numbers in 18.binary or octal on the screen. You must entertheir decimal equivalent to score points.3. DICE - Push any key to simulate rolling dicedisplayed on the screen.4. PUPPETS - Show large face on the screen. Letsmall children move mouth and roll eyes by 20.pushing keys.r BUSY BOX - Let small children push keys to 21.make different object appear on the screen,move, and make sounds.6. SHUFFLEBOARD - Simulate shuffleboardtype games on the screen.7. COMPUTER ART - Design new programs togenerate pleasing geometric moving patterns onthe screen.8. INVISIBLE MAZE - Try to move a spotthrough an invisible maze. Tones indicate whenyou bump into a wall.9. LUNAR LANDING - Program a graphic lunarlanding game.10. COLLIDE - Try to maneuver a spot from oneedge of the screen to the other without hittingrandomly moving obstacles.Il. CAPTURE - Try to chase and catch randomlymoving spots within a specified time limit.12. LEARNING EXPERIENCES - Program graphichand and eye coordination exercises for youngchildren or those with learning disabilities.13. NUMBER RECOGNITION - Show groups ofobjects or spots on the screen. Young child mustpress key representing number of objects shownto score.WALL BALL - Program a wall-ball-type paddlegame for one player.15. FOOTBALL - Each player enters his play via thehex keyboard and the computer moves the ball onthe screen.16. BLACKJACK - Play "21" against the computer dealer.17. HOLIDAY DISPLAYS - Design custom,animated displays for birthdays, Halloween,Christmas, etc.METRIC CONVERSION - Help children learnmetric by showing lengths on screen in inches andrequiring centimeter equivalent to be entered toscore.19. TURING MACHINE - Simulate a simplifedTuring machine on the screen.TIMER - Use the computer to time chess games,etc.HEXAPAWN - Program Hexapawn so that thecomputer learns to play a perfect game.22. NIM - Program Nim with groups of spotsshown on the screen.23. BLOCK PUZZLES - You can simulate a varietyof sliding block-type puzzles on the screen.24. BOMBS AWAY - Show a moving ship at thebottom of the screen. Try to hit the ship byreleasing bombs from a moving plane at the top ofthe screen.