Odyssey2 Instructions for all American O2 games, including the owners manual. Created by Ozyr's Video Game Emporium. www.ozyr.com Special thanks to the following for allowing me to post their game instrunctions in this file: John Dondzila - for Amok! Ted Szczypiorski - Planet Lander!, Mr. Roboto! René van den Enden - Pong! ---------------------------------------------------------------------------------- (The following note is for all games. It is presented here to save file space and to avoid repitition.) IMPORTANT! Always be sure that the power to your Odyssey2 console is turned off before inserting a game cartridge. This protects the electronic components and extends the life of the unit. (The following note is for most games, except those using the Odyssey2 Voice Module. It is presented here to save space and repitition.) TO BEGIN: 1. Insert the cartridge into the slot of the Odyssey2 console with the label side of the cartridge facing the alpha-numeric keyboard. 2. Turn on the power by pressing the power button of the console. SELECT GAME will appear on your TV screen. If it does not, press the RESET key on the alpha-numeric keyboard. ---------------------------------------------------------------------------------- ALIEN INVADERS - PLUS! A fiendish new dimension comes to one of the most popular arcade games of all time! ALIEN INVADERS - PLUS! (one player) 1. Press 1 on the alpha-numeric keyboard. 2. You are in deep trouble! Eight robots with laser canons are advancing into your sector. Each heavily armed robot is protected by a shield wall. 3. The robots are commanded by a Merciless Monstroth that scuttles back and forth through the air. 4. Things don't look good! You have only one robot defender. It's inside that mobile laser cannon at the bottom of the screen. 5. Push the joystick of the right hand control to the right to move the cannon to the right. Move the joystick left to move the cannon to the left. Press the action button to fire your lasers. 6. Three high density molecular laser shields protect your cannon against enemy firepower. Each shield also houses one additional cannon. 7. If your cannon is hit by enemy laser fire, it will disintegrate and leave your robot unprotected. Use the joystick to rush your robot underneath one of your shields. Press the action button and your robot will be inside a new laser cannon - but the shield will be gone. 8. If an unprotected robot is stunned by enemy laser fire, it will be captured by the aliens. 9. A direct hit of your laser fire will disintegrate an enemy cannon or an enemy robot. The enemy shield wall is impervious to earth weapons. 10. A direct hit will disintegrate the alien monster - but a new one will swoop onscreen after a few seconds. Both sides have an unlimited supply of ammunition. 11. You win the battle by destroying all of the enemy robots and any monster remaining onscreen after the destruction of the last remaining robot. 12. You lose a battle if your unprotected robot is hit by enemy laser fire. 13. The first side to win ten battles wins the war. 14. To play again, press RESET on the alpha-numeric keyboard and then press 1. 15. Be brave. Earth is counting on you! ---------------------------------------------------------------------------------- ALPINE SKIING! An authentic computerized simulation of three different world class championship events. ALPINE SKIING! (1 or more players) 1. Dress warm. 2. Press 1 on the alpha-numeric keyboard. 3. Three different skiing competitions will be displayed alternately at the bottom of the screen. 4. To select an event, pull the joy stick of either hand control towards you when the name of the event is on the screen. 5. A computerized official will signal the start. 6. Pull the joy stick toward you to head straight down the slopes. When you've had some practice, press the action button to get 30% greater downhill speed. 7. Push the joy stick left to traverse left. Push the joy stick right to traverse right. Your traversing speed is one-half of your normal downhill speed. 8. Push the joy stick away from you to come to a swirling christie stop. 9. There are 55 gates in each event - the minimum allowed in the Olympic Slalom and Giant Slalom competitions. The computer can generate more than 65,000 different courses for each of the three events. You can ski over 195,000 different runs! 10. Both players will ski matching courses for each event - even if one player should get a late start. 11. If a skier hits a gate, time is lost getting back off the snow. 12. If a skier goes off-course in any event, timing will be stopped and a count will be kept of the number of violations. 13. The Downhill: The winner is the skier making the run over the marked course in the shortest amount of time. If both skiers go off-course, the winner is the skier with the fewest violations. 14. The Slalom: You follow a twisting course defined by pairs of gates. A skier must go between every pair of gates of the same color but may do so from either side. (The colored gates will show up in different shades of gray on black and white TV.) The winner is the skier achieving the fastest aggregate time over two runs down different courses. The courses will change automatically after each run. 15. The Giant Slalom: This event is longer that the Slalom and the gates are farther apart. Follow the Slalom rules for Giant Slalom competition. 16. Combined Competitions: A Combined competition represents the final result of several events. They can be similar. (Two Downhills - two Slaloms - etc.) They can be different. (A Downhill and a Slalom, etc.) A Combined Competition can also be any three races in any sequence. The "Triple Combined" is the result of a Downhill, A Slalom and a Giant Slalom in any sequence. The "Alpine Combined" is the result of one Downhill and one Slalom. The Downhill is run before the Slalom. 17. Timekeeping: The computer will clock each skier's time within 1/10th of a second. To hold your score on the screen when you cross the finish line, push the joy stick forward to stop your skier before the word "FINISH" travels to the top of the screen. If both hand controls are in use, the winning time will be displayed at the center of the bottom of the screen in the winning skier's colors. This is the time to beat. It will remain there until it is replaced with a better time for the same event. If a skier goes off-course or misses a gate, the skier's current running time will be replaced by a count of the number of course violations. 18. To ski the same event again, pull the joy stick toward you after both skiers cross the finish line. 19. To change to a different event, press RESET AND THEN press 1. ---------------------------------------------------------------------------------- AMOK! An Exciting Action/Arcade Game For The Odyssey 2 Video Game System By John Dondzila INSTRUCTIONS: With the power turned off, insert the AMOK! game cartridge into your Odyssey 2 system with the label forward. Push the cartridge down into place and push the power switch on. You will see the AMOK! title screen with a scrolling message. You will be using the right controller. Press the action button to start. At the beginning of each level you will see the game status. The S 000000 is your score, the L 01 is the current level and the R 03 is your remaining lives. After a short pause, the game screen will appear. You control the green character with the joystick. To fire, hold the Action button and point the stick in the direction you want to fire. You can fire up, down, left, right and diagonally. The object is to get to the end of the maze while destroying the berzerk robots. The robots will pursue you and shoot back. After a short time, the indestructible Smileybot will appear and stop at nothing to get you. He can go through walls and your shots will have no effect on him. You can only try to outrun him and get to an exit. You will lose a life if shot by a robot, colliding with a robot or colliding with the Smileybot. Touching a wall is lethal. The enemy robots will always try to follow you. You can use this to your advantage by leading robots to walk into walls and self-destruct. Shooting a robot scores 10 points. You do not receive any points for robots that are destroyed by walking into the walls. You receive 100 points for leaving a maze with all robots destroyed. Unlike most Odyssey 2 games, this game gives you 3 lives. Losing all three lives ends the game and you must press the RESET button. You are awarded a bonus life if you can score 1,000 points. There are 12 mazes in all. Each time you clear a maze, the game will increase a little in difficulty. ---------------------------------------------------------------------------------- ARMORED ENCOUNTER! A realistic simulation of armored warfare! - SUB CHASE! Low flying jets hunt for enemy submarines! - ARMORED ENCOUNTER! (Two players) 1. Press A on the alpha-numeric keyboard for a tank engagement in open country. 2. The screen will automatically display two tanks and a digital timer which will immediately begin the countdown for a three minute game. The timer is flanked by two digital scoring indicators which are color coded to match the tanks. 3. The electronic tanks are programmed to simulate the operation of real tanks with a remarkable degree of authenticity. A real tank is turned by slowing down one of the treads and speeding up the other. Your electronic tank is turned the same way. Push the joy stick of the hand control to the right, and the tank will rotate clockwise to the right. Push the joy stick to the left, and the tank will rotate counterclockwise to the left. Push the joystick forward to make the tank go forward. Push the joy stick backward to shift the tank's engines into reverse and make it go backward. 4. Each tank carries twenty rounds of ammunition. To fire a round, press the action button on your hand control. 5. A player scores one point for every direct hit of the opposing tank. The winner is the player who scores the most hits during the three minute engagement. 6. You will receive a visual signal when your tank is low on ammunition. The last three rounds will change color. This tells you it's time to change from an aggressive strategy to evasive action to keep your opponent's score as low as possible. 7. All action will automatically stop when the digital timer reaches 00:00 or when both tanks are out of ammunition. 8. To start a new game, press RESET and SELECT GAME will appear on the screen. 9. Many kinds of tank engagements are possible. You can play over open country. You can play over hilly terrain signified by barriers which neither tanks nor firepower can penetrate. You can play over mountainous terrain with more complex barriers which will stop both tanks and their firepower. You can play over minefields represented by X's on the screen. If a tank hits a mine, it will explode and score a point for the opposing side. You can even arm the tanks with guided missiles. Control the missile by turning the joy stick on the hand control unit. (IMPORTANT! Tank will also rotate.) Press A: Open country with cannon. Press B: Simple barriers with cannon. Press C: Complex barriers with cannon. Press D: Open country with guided missiles. Press E: Simple barriers with guided missiles. Press F: Complex barriers with guided missiles. Press G: Open country - minefields - cannon. Press H: Simple barriers - minefields - cannon. Press I: Complex barriers - minefields - cannon. Press J: Open country - minefields - guided missiles. Press K: Simple barriers - minefields - guided missiles. Press L: Complex barriers - minefields - guided missiles. 10. To play again, press the RESET key on the alpha-numeric keyboard and SELECT GAME will reappear. Then press the letter keying the game you wish to select. - SUB-CHASE! (Two players) 1. Press the RESET key on the alpha-numeric keyboard. SELECT GAME will appear on screen. 2. Press 1 on the alpha-numeric keyboard. Hawk hunter-killer jets cruise the skies. Shark missile-launching submarines lurk beneath the ocean. Neutral ships sail on the water's surface. A digital timer immediately starts counting down a three minute engagement at the top of the screen. Digital scoring indicators flank the bottom of the screen. They are color coded to match the planes and the subs. 3. The right hand control unit controls the submarine. Pull the joy stick towards you to submerge. Push it away from you to ascend. To increase speed, push the joy stick to the right. To decrease speed, push it to the left. Fire a missile by pressing the action button on the hand control. Control its flight pattern with the joy stick. 4. The left hand control unit controls the jet. Push the joy stick forward to gain altitude. Pull it towards you to lose altitude. Push the joy stick left to fly full throttle. Push it to the right to diminish speed. Press the action button to launch missiles. Control the flight of the missiles with the joy stick. 5. As you control the missiles with the joy stick, it will continue to control your craft to aid in evasive action. 6. Each player gets one point for every hit. A hit on a neutral vessel subtracts one point from the player's score. 7. The winner is the player scoring the most points during the three minute battle. 8. To play again, push RESET and SELECT GAME will appear on the screen. Press 1: Guided missiles - rear launch pattern. Press 2: Unguided missiles - rear launch pattern. Press 3: Guided missiles - forward launch pattern. ---------------------------------------------------------------------------------- ATLANTIS The ancient city of Atlantis, a city beneath the sea, a civilization greater than any the world has ever seen... One day a low drone is heard throughout the ocean metropolis. The stars go out. Gorgon vessels fill the sky, pounding the city mercilessly. A cry reaches every citizen - "Defend Atlantis - before it becomes a watery grave!" Game Objective Defend Atlantis! Blast Gorgon vessels before they come close enough to demolish Atlantis with the deathray. Score big and you can rebuild a portion of the city the Gorgons have demolished. Game ends when all six sections of Atlantis have been leveled. Atlantis is a 1-Player Game -Insert cartridge, with label facing the keyboard, into the slot on the computer console. Turn power on. -Use the left joystick controller. -Position controller so that the red firing button rests in the upper left corner. Pick Your Game -When the Imagic logo and Atlantis game screen appear, select one of four skill levels with the left joystick controller. -The more advanced the skill level, the faster the Gorgon ships fly. -Easy: lean joystick right, or simply press red firing button. -Medium: push joystick away from you. -Hard: lean joystick left. -Expert: pull joystick toward you. -Skill level appears in place of the Imagic logo. -To begin action, press red firing button. -To play at the same skill level again after a game ends, press the red button on the left controller. -To select a new game, press RESET and pick the desired skill level. Game Play You command the two Atlantean sentry posts with your left joystick controller. -A sentry post guards either side of the city. They cannot be destroyed. -To fire from left or right sentry posts, lean joystick left or right. -Press red firing button. -Once a sentry post has been selected for fire, it remains selected after the joystick is released. -To fire from selected sentry post: press red button. -To select other sentry post: press joystick in that direction. -The Domed Palace projects a powerful force field that protects the other four Atlantean installations. As a result, the Gorgon deathray must demolish the dome and then the Palace before the rest of Atlantis becomes vulnerable to attack. Secret Weapon When things look desperately bad for the Atlantean defenders, a secret weapon can help even the odds! Destroy a sky full of Gorgon ships by unleashing the Blitz Bomb! -To fire Blitz Bomb: push joystick forward. -Gorgon vessels will instantly disintegrate! Don't be impulsive! You receive only one Blitz Bomb per wave. Listen for the 8 beeps that tell you when a wave ends. Scoring You score each time you vaporize a Gorgon vessel. You must hit the ship directly to score. Destroy a Gorgon ship: 250 points. -At the end of a wave, you receive 1000 points for each part of Atlantis that survives the Gorgon assault. -If the Gorgon deathray damages or destroys the Domed Palace, a new one can replace it at the end of the current wave. You earn a bonus Domed Palace: At every 10,000 point mark you reach up to 100,000 AND THEN At every 100,000 point mark up to 1,000,000 A damaged or destroyed Domed Palace is only replaced at the end of a wave. Should the entire city be leveled before the end of a wave, no new Domed Palace appears. The game ends. -You earn no points for Gorgon ships destroyed with the Blitz Bomb. ---------------------------------------------------------------------------------- ATTACK OF THE TIMELORD! Four different kinds of weapons assault you simultaneously! 256 different challenge levels! Millions of strategic combinations! VOICE ENHANCED!! TO BEGIN: 1. Insert the cartridge into the slot of the Odyssey2 console or into The Voice of Odyssey with the label side facing the alpha-numeric keyboard. 2. Turn on the power by pressing the power button of the console. SELECT GAME will appear on your TV screen. If it does not, press the RESET key on the alpha-numeric keyboard. The Voice enhances this game with the Timelord's taunts, threats, orders, predictions and reluctant compliments for high scores. ATTACK OF THE TIMELORD! (1 or more players) 1. Press 1 on the alpha-numeric keyboard. 2. You have just attracted the attention of Spyrus the Deathless - Timelord of Chaos. 3. Your only defense is a laser cannon mounted on the leading edge of your Time Machine. Fortunately, you have an unlimited supply of laser energy. You'll need it. 4. Press the action button of the left hand control to fire your laser cannon. 5. Use the joystick of the left hand control to maneuver your Time Machine at the base of the screen. It will travel in the direction you move the joystick. 6. Level One The Timelord's fleet of Time Ships will bombard you with missiles. You score points for each missile and Time Ship destroyed. If you destroy all of Time Ships, the game will automatically proceed to Level Two. 7. Level Two The Timelord is beginning to take you seriously. The next fleet he sends through the warp is armed with missiles and antimatter mines. These are launched in various combinations. If you evade destruction and destroy the fleet, the game will progress to Level Three. 8. Level Three The next fleet you encounter carries the much feared lethal anihilators in its arsenals. These weapons will home in on you and require swift evasive action. If you succeed in destroying this fleet, the game automatically progresses to Level Four. 9. Level Four You have now earned the Timelord's respect. This is a very mixed blessing. The next fleet has the legendary Nucleonic Time killers as part of its weapons systems. These destroyers are extremely lethal because they're piloted by expendable robots programmed to anticipate human reactions. 10. As you go through the entire 256 game levels, you'll face increasingly faster Time Ships and gradually greater fire power. 11. The Timelord will deploy his weapons like a chess master deploys his pieces. There are literally millions of possible combinations of weapons, timing and placement. Your evasion of a weapon of one kind can put you right in the path of another. 12. Your Time Machine will disintegrate on contact with any of the Timelord's weapons. The game will automatically start again at Level One. 13. Scoring: MISSILES = 2 POINTS ANTIMATTER MINES = 4 POINTS TIME SHIPS = 5 POINTS ANIHILATORS = 8 POINTS TIME KILLERS = 16 POINTS 14. The score of each game is displayed at the lower right corner of the screen. 15. The highest score in a series of games is shown at the lower left corner of the screen. Six question marks request the name of the high scoring player. Enter any name up to six letters through the keyboard. If the name is shorter than six letters, press the space bar to erase the remaining question marks. The score and high player's name will remain on the screen until a higher score is achieved in succeeding games. 16. To start a new scoring cycle, press RESET and then 1. 17. If you press 0 (zero), the Timelord's transmission frequency will be jammed. He will not reappear each time you destroy a fleet of his Time Ships. ---------------------------------------------------------------------------------- BASEBALL! It's all here - even an electronic umpire! BASEBALL! (Two players) 1. Press 1 on the alpha-numeric keyboard. 2. The scoreboard flanks either side of home plate. (lower left numbers indicate Balls, Strikes, and Outs - in that order) The digital readout scoring indicators are color coded to the teams. 3. The player using the right hand control is always first at bat. The player using the left hand control is always first in the field. Players should trade hand controls to alternate being first at bat in series games. 4. THE OUTFIELD is positioned by manipulating the joy stick on the hand control activating the fielders. 5. THE PITCH is thrown by pressing the action button on the FIELDER hand control. Inside and outside curves may be thrown by maneuvering the joy stick. The OUTFIELD will not be affected by the joy stick during the pitch. If the batter does not hit the ball, the catcher will automatically throw it back to the pitcher. The computerized umpire calls balls and strikes. Four ball and it's a walk to first base. Three strikes and you're out! 6. THE BATTER is controlled by the action button on the BATTER hand control. A ball hit early will go to left field. A ball hit late will go to right field. The distance a hit travels will always vary. 7. A ball hit out of the park (white line at top of screen) is a home run. The batter will automatically run the bases. 8. A ball caught on the fly is an automatic out and the ball is returned automatically to the pitcher. 9. If the fielders do no catch the ball on the fly, the joy stick on the FIELDER hand control is used to get one of the outfielders to the ball. The throw is made by positioning the joy stick to the base desired and pressing the action button. 10. A hit not caught on the fly will automatically send the batter running to first base. He can go for extra bases by pushing the joy stick in any direction on the BATTER hand control. Note: Base runners cannot reverse their direction. The computerized umpire makes all the calls. 11. SACRIFICE FLY. A man on base can try for extra bases after a fly ball is caught by pushing the BATTER joy stick. 12. Players can go for extra bases any time before the ball is returned to the pitcher. The ball is returned to the pitcher only after both hand controls are inactive for two seconds. 13. After three outs, the batting team and fielding team will automatically change positions. 14. The team with the highest score after nine innings wins. The game will go into extra innings in case of ties! 15. The end of the game is signaled by F (Final score) replacing the inning indicator on the scoreboard. 16. To play again, press the RESET key on the alpha-numeric keyboard and then press 1. ---------------------------------------------------------------------------------- BLOCKOUT! BREAKDOWN! Two demonically challenging games filled with diabolical wall-to-wall action! - BLOCKOUT! (One or two players) 1. Press 0 (zero) on the alpha-numeric keyboard. 2. BLOCKOUT and BREAKDOWN will be alternately displayed on your TV screen. 3. Press 1 to play BLOCKOUT. The object of the game is to blast through the blocks in the barricade in the shortest amount of time. 4. The scoreboard at the top of the screen signals the function of the two hand controls. One hand control will activate the Power Bar. The other hand control will activate the demons. The roles of the hand controls will automatically reverse after each game. 5. The can play against another player or against the computer. Signal the computer you are in the game by moving the joystick of your hand control. If the computer does not receive a signal from one of the hand controls, it will take over its function and play against you. If the computer does not receive a signal from either hand control, it will play itself. 6. The Power Bar is moved left and right by pushing the joystick in the desired direction. The longer the bar is moved in one direction, the faster it will travel until it achieves maximum speed. 7. The player controlling the Power Bar presses the action button to bring a Blockbuster into play. The Blockbuster will always come in from a random direction. When the Blockbuster hits the Power Bar, it will rebound into the fourth dimensional barricade. Each time the Blockbuster hits the barricade, a block in the barricade will disintegrate. 8. The best breakthrough time for each player will be indicated on the scoreboard at the top of the screen. A digital timer is between the player's score indicators. Each player has 90 seconds to try and break through. 9. If the Blockbuster hits the left side of the Power Bar, it will rebound to the left side of the screen. If it hits the right side, it will rebound to the right. The rebound angle will be twice as steep from the center half of the Power Bar than from a hit on the outer edges. The Blockbuster's speed and trajectory will increase as it cuts through each successive wall of the barricade. 10. If you miss hitting the Blockbuster with the Power Bar, press the action button on the hand control to bring a new Blockbuster to the screen. You have an unlimited number of Blockbusters available during the 90 second duration of the game - but you cannot have more than one Blockbuster on the screen at a time. Each Blockbuster will come on-screen from a random direction. 11. The electronic demons are moved left or right by moving the joystick of the hand control in the desired direction. Only one demon may be moved at a time. The particular demon in motion is determined by the vertical position of the joystick and the action button. To move the demon in the lowest row, pull you joystick towards you. Leave the joystick in the middle (neutral) position to move the demon in the second row. Push the joystick away from you to move the demon in the third row from the bottom. Push the action button to move the demon in the top row. 12. The demons have the power to replace disintegrated blocks and rebuild the barricades. They have two power sources - one on each side of the screen. When a demon touches one of its power sources, it will start flashing and will replace a block when it is moved to the missing block's position. The demon will then stop flashing and must be recharged at a power source. An uncharged demon will fall off-screen if he tries to cross a gap in the wall or has a block disintegrated from under him. He will reappear automatically after a penalty delay. 13. The winner is the player who breaks through the barricade in the shortest time over a pre-determined number of games. 14. The games will reset automatically after each 90 second period. - BREAKDOWN! (One or two players) 1. Press RESET on the alpha-numeric keyboard. Press 0 (zero) - then press 2. 2. The object of the game is to destroy as many of the blocks on the screen as you can within 60 seconds. 3. The control of the Power Bar is the same as in BLOCKOUT but the speed of the Blockbuster and its trajectory are not affected by the blocks in the barricade. 4. The control of the demons is the same as in BLOCKOUT - but they will move twice as fast (which is something to watch) as in BLOCKOUT. 5. You can play against another player or the computer by signaling the computer with the hand controls as in BLOCKOUT. 6. The digital scoreboard contains the timer, the number of blocks left on the screen and the lowest scores in the game series for each of the players. 7. The game will reset automatically after each sixty-second period. 8. The winner is the player who leaves the fewest number of blocks on the screen after a predetermined series of games. ---------------------------------------------------------------------------------- BOWLING! A true electronic simulation! - BASKETBALL! So realistic, the court has a built-in gravity field! - BOWLING! (One to four players) 1. There are two levels of play possible. Press 1 on the alpha-numeric keyboard for LEAGUE NIGHT. Press 2 for TOURNAMENT PLAY. 2. The computer will ask you how many players will be in the game. Answer by pressing 1, 2, 3, or 4 on the keyboard. 3. The alleys and scores are color coded for each player. The first player bowls using the right hand control. The second player bowls using the left hand control. The third player bowls sharing the right hand control with Player 1. The fourth player bowls sharing the left hand control with Player 2. 4. The ball will move back and forth at the foul line at slow speed for LEAGUE NIGHT and at fast speed for TOURNAMENT PLAY. 5. Press the action button to roll the ball. You can use the joy stick on the hand control to hook the ball to the right or left. But once the hook is initiated, the direction of the ball cannot be changed. A gutter ball (one launched too close to the edge of the alley) cannot be controlled by the joy stick. 6. Each bowler gets two balls per frame except in the case of a STRIKE. (All pins knocked down by the first ball.) 7. SCORING: STRIKE: 30 points (all pins knocked down by 1st ball) SPARE: 15 point (all pins knocked down by 1st and 2nd ball) OPEN: One point for every pin hit by 1st and 2nd ball. The scores of all players are displayed automatically after each frame. A zero score will not appear on the screen. 8. The game ends after ten frames. The player with the highest score wins. 9. To play again, push the RESET key and SELECT GAME will appear on the screen. Then press 1 or 2 on the alpha-numeric keyboard. - BASKETBALL! (Two players) 1. Press the RESET key on the alpha-numeric keyboard. SELECT GAME will appear on screen. 2. Press 3 on the alpha-numeric keyboard. The basketball court will be telecast on the screen. 3. The top of the court is the scoreboard. A digital clock will immediately start counting down the five minute game time. The clock is flanked by two digital scoring indicators color coded to the teams. 4. The right hand control activates the Red Team. The left hand control activates the Blue Team. Move the joy sticks to the right and left to move the players across the court. 5. The ball comes into play automatically dropping from the top center of the screen. The court floor is really an electronic gravity field that will give the ball a realistic bounce. 6. The first player to touch the ball gains possession. He moves towards the basket and his shot is activated by the action button on the hand control. The ball will be shot at a random velocity and angle. It can drop through the basket for two points or bounce back into play. The player possessing the ball must shoot within eight seconds or the ball will automatically transfer to the other player. 7. If a player shoots for a basket while the other player is touching the ball, it automatically goes to the opposing team 8. The game ends after five minutes with the final score remaining on-screen. 9. To play again, press the RESET key and SELECT GAME will appear on the screen. Then press 3 on the alpha-numeric keyboard. ---------------------------------------------------------------------------------- CASINO SLOT MACHINE! An authentic electronic replica of the latest nine window one armed bandit! CASINO SLOT MACHINE! (One to four players) 1. Press the 0 (zero) key on the alpha-numeric keyboard. 2. Tell the computer how many people are playing by pressing 1, 2, 3 or 4 on the keyboard. The right hand control activates all the slot machine functions and is used by each player in turn. 3. The arrow will be pointing to the betting figure at the bottom of the slot machine. It will be set at $0.10 at the beginning of each player's first turn. You can increase your bet to $0.25 or $1.00 by pushing the joystick of the right hand control forward. To decrease your bet, pull the joystick towards you. 4. You can place bets that winning combinations will appear in any of the three horizontal or two diagonal rows. The horizontal rows are marked by dashes. The diagonal rows are marked by slanted lines. 5. To place a bet, use the joystick of the right hand control to point the arrow to the dash or slanted line marking the row you wish to bet on. Then press the action button. You can bet on as many combinations as you wish. Each time a bet is placed, the money will be deducted from the player's total at the bottom of the screen. IMPORTANT! The amount of the bet cannot be changed after the arrow is moved away from the betting amount indicator at the bottom of the slot machine. 6. After all bets are placed, use the joystick to point the arrow to the handle of the slot machine at the right side of the screen. Pull the joystick to you and the reels will start spinning. NOTE: The arrow can point to the top, middle or bottom of the handle. The reels will spin with the same action. 7. The reels will stop spinning one at a time and the computer will automatically pay off for winning combinations. Coins will drop from the bottom of the slot machine and be automatically added to the player's total. The winning combinations will be signaled by flashing markers or coins on the winning rows and diagonals. 8. When the first player's turn is over and the results are displayed on the screen, press the action button to start the next player's turn. 9. The duration of play should be mutually decided at the beginning of the game You can play for a pre-determined length of time or until one of the player's wins or loses a pre-agreed upon amount of money. 10. To start a new game, press RESET and then press 0 (zero) on the alpha-numeric keyboard. WINNING COMBINATIONS  Cherry Anything Anything 3 coins Cherry Cherry Anything 8 coins Orange Orange Bar 10 coins Orange Orange Orange 10 coins Plum Plum Bar 14 coins Plum Plum Plum 14 coins Bell Bell Bar 18 coins Bell Bell Bell 18 coins Melon Melon Bar 100 coins Melon Melon Melon 100 coins Seven Seven Seven 200 coins  Bar Bar Bar 100 coins ---------------------------------------------------------------------------------- COMPUTER GOLF! An extremely realistic nine hole electronic golf course! COMPUTER GOLF! (One to four players) 1. Press 1, 2, 3, or 4 on the alpha-numeric keyboard to correspond with the number of players. 2. The first hole and an electronic golfer will appear on the screen. The number at the top right of the screen indicates the hole being played. The player's scores will appear at the top left of screen in order of play. The first player's score will be farthest left. The fourth player's score will be at the farthest right. If you are playing on a color TV, the color of your score will match the color of your electronic golfer. 3. Once the ball is on the green (the lighter geometric segment of the course) the TV picture will automatically change to a close-up of the green so that the electronic golfer can putt out. 4. The trees on the course are hazards and will stop the flight of the ball. A drive into the trees will elicit a very human reaction from the electronic golfers. 5. The dark area outside the course is the "rough." A ball must be hit back on the course when it's in the "rough." The golfers cannot drive through the rough to get to the green. 6. Each golfer plays through the entire hole before it is the next golfer's turn. 7. Use the joy stick of the hand control units to walk the electronic golfers around the course. The left hand control is shared by players 1 and 3. The right hand control is shared by players 2 and 4. The direction of the joy stick controls the direction the electronic golfers will walk. They will walk in all vertical, horizontal and diagonal directions in accordance with the joy stick's position. 8. The toe of the club must overlap the ball at the start of the backswing. The action button on the hand control unit controls the swing of the club. Press down to start the backswing. The longer you press the action button, the higher the backswing. The distance traveled by the ball is determined by the length of the backswing. If you bring the backswing full circle, the club will release automatically, and the distance the ball travels will be random. Release the action button to hit the ball. The backswing of the club will always be clockwise, and the downswing will always be counter-clockwise. The direction taken by the ball will be dependent on the golfer's position in relation to it. It will be perpendicular to the angle of the toe of the club when it makes contact with the ball. 9. You can walk your electronic golfer away from the ball and take a practice swing to confirm direction. There is no stroke penalty for this. If you are addressing the ball and starting your backswing, but wish to change the position of your electronic golfer - simply walk him away from the ball and release the action button. There is no penalty 10. The player with the lowest score for the nine holes is the winner. 11. To play again, press the RESET key on the console and then press 1, 2, 3 or 4 on the alpha-numeric keyboard. 12. COMPUTER GOLF! Nine holes. Par 36 Hole 1 2 3 4 5 6 7 8 9  Par 4 4 3 4 5 3 4 5 4 ---------------------------------------------------------------------------------- COMPUTER INTRO A BEGINNERS GUIDE TO COMPUTER TECHNOLOGY Contents 2 In the Beginning 11 The World of the Computer 20 Creepy Crawler 28 Creepy Crawler Version II 29 The Roll Mode - Your Program Trouble Shooter 30 Addition - Program A 35 Addition - Program B 40 Addition - Program C 46 One Digit Multiplication 52 One Digit Division 62 Area Problems Using "Go to Subroutine" and "Return" 71 One Digit Addition Flash Card 74 Three Ways to Enter and Output a Letter 76 Six Letter Guess 80 Message 87 Operating Mode Review 92 Glossary of Frequently Used Computer Terms 100 Instruction Sets 104 Program Sheets Odyssey2 This gatefold will provide you with an electronic road map - please keep it open as you work with your Odyssey2 computer. Key Code Hex Code Decimal Equivalents Key Code Hex Code Decimal Equivalents 0 00 00 O 17 23 1 01 01 P 0F 15 2 02 02 Q 18 24 3 03 03 R 13 19 4 04 04 S 19 25 5 05 05 T 14 20 6 06 06 U 15 21 7 07 07 V 24 36 8 08 08 W 11 17 9 09 09 X 22 34 A 20 32 Y 2C 44 B 25 37 Z 21 32 C 23 35 Blank 0C 12 D 1A 26 : 0A 10 E 12 18 $ 0B 11 F 1B 27 Clear 2E 46 G 1C 28 ? 0D 13 H 1D 29 . 27 39 I 16 22 + 10 16 J 1E 30 - 28 40 K 1F 31 * 29 41 L 0E 14 / 2A 42 M 26 38 = 2B 43 N 2D 45 Enter 2F 47 /== Control Unit ==|=======================\ | | | | | | | | | | | | Accumulator Registers ALU | | | | 0 5 A | | | Program 1 6 B \|/ \|/ \|/ Counter 2 7 C Memory (ROM) Key- Symbol/Sound | 3 8 D Instructions board Generator | 4 9 E and | Subroutine F Constants \|/ Return TV Screen Address Register --- Computer Intro is not for everyone - but if you're up for a rewarding mental challenge, here is a fascinating entry point into a complex and highly technical subject. The cartridge turns your Odyssey2 into a very special kind of computer. It won't balance your checkbook or do your income tax or plot the course of a spaceship to Mars. But it will give you some idea of how those computers do their work. You will begin to understand how a computer "thinks" and even begin to think like a computer "thinks." The initial orientation and explanation are deliberately couched in the most simplistic of terms. They don't assume anything more on your part than a working knowledge of basic arithmetic. After a brief explanation of how computers work and what they are made of - you will start getting "hands on" experience and will learn by doing. You will learn how to enter a program - the first step in learning how to actually write your own. The gatefolds in the front and back of the manual provide you with electronic road maps. Keep these references in front of you and you will clearly understand what's going on and how computers really compute. --- -(page 2) In the Beginning In the beginning, there were ten fingers - then a prehistoric Einstein discovered his toes and man could count up to twenty. The oldest computing device we know of is the abacus. It was first used in China in the sixth century B.C. The very first digital computer was designed by Charles Babbage in the 1830's. It was more than a calculator. Babbage designed it to be programmable, and it would have been able to perform any arithmetic or logic calculation. It was designed to use punched cards for entering data and instructing the machine with mathematical commands. There were two problems. Problem one. Babbage's elaborate drawings called for a building the size of a Dickensian shoe factory to house his "analytical engine." Problem two. Babbage died before the machine could be built. The first practical programmable computer was built in a basement at Harvard University during World War II by IBM. It weighed 35 tons! This machine used an exotic combination of electronic, electrical and mechanical gear to do its arithmetic. The instruction program was stored on a punched paper tape that unreeled automatically. Numbers were entered into the machine on a panel covered with 1,440 dials! The first all-electronic computer was built at the University of Pennsylvania shortly after the war ended. ENIAC (Electronic Numerical Integrator and Computer) was 1,000 times faster than its predecessor. But it filled a room 30 feet wide and 50 feet long. Its 18,000 vacuum tubes were connected by about a half-million soldering points. Today, everything that ENIAC could do and far more is performed by a device slightly smaller in size. It is less than one quarter of an inch square - and can make more than one million electronic decisions every second. It is called a semiconductor. It is possible for one semiconductor in one of its newest forms - the microprocessor - to account for more than 310 trillion separate functions. And this is only the beginning! If computer technology continues to develop at its present rate, one of these chips will be able to store about a quarter-million bits (the smallest unit of computer information) in its memory within a few years. Ten years from this point, there will be chips capable of remembering a million bits of information. By 1990, the number of logic or decision-making computer circuits on these one quarter inch chips are expected to number a quarter of a million. Today's large computers, selling in the one million dollar range and as big as several filing cabinets, contain only about 10,000 logic circuits and a main memory capacity of a few million bits. As microprocessor technology progresses, computers may be developed that understand human speech. It is even possible that they can be taught to read handwriting! The microprocessor in your Odyssey2 is infinitely more sophisticated than the mathematical marvels that were the state of the art in the forties and fifties. The technology of the microprocessor is unquestionably going to revolutionize the way the world works - and the way you'll live. A computer will control your car's automatic transmission and fuel injection system. A computer will monitor fire and burglar alarm systems in your home. The lights in your home will be computerized. So will the locks on the doors and windows. A computer will even water the lawn. A computer will do your shopping from the house - and pay your bills without you writing checks. Computers will simulate three dimensional space for architects to help them mentally walk around their houses before they're built. Computers will alert doctors to patient problems that would be imperceptible under today's circumstances. Computers will help composers hear their music as they're writing it - even if it's too complicated for them to play. Businessmen can have electronic simulations of their companies in their attache cases. We are really still just at the very beginning of the computer age. You have picked a very good time to get involved! --- -(page 11) The World of the Computer Is Strange and Wondrous Computers have already carried man to the moon - to Mars - and far beyond. They lie at the heart of fearsome weapons systems. They fly planes - monitor automobile engines - run factories - and even translate languages. All of these with the brain power of a good screwdriver. Congratulations! You have just completed your first lesson. You are much smarter than any computer at the present state of the art! For all of its awesome capabilities, the computer is nothing more than a rather simple-minded tool. But once you learn how to use it, you'll have more power at your command than Julius Caesar ever dreamed of. A computer has few basic talents. It can add - and it can move numbers around. A computer never forgets - and computers don't make mistakes. (If a computer churns out misinformation, there's a mistake in the program. Computers are utterly faithful in following instructions.) Big deal. Computers can't multiply, divide, or even subtract the way you do. But what a computer does do, it accomplishes with absolutely astonishing speed. Your Odyssey2 can make over 100,000 electronic decisions every second - and there are computers around that are more than ten times faster than that! To multiply, Odyssey2 simply adds numbers together at an incredible speed. To subtract, it moves numbers around in a special way so that adding them together will give the correct answer. This sounds like doing it the long way - but when you're that fast at addition, the juggling act becomes worthwhile. It's not all that hard to talk with a computer. It only understands two words. Yes - and no. Yes - means that an electrical pulse is tickling the computer's sensitivities. No - means that no electrical pulse is going through. The symbol for "yes" in computer language is 1. The symbol for "no" is 0. Once you have memorized 0 and 1, you have memorized the entire alphabet of the only language computers speak in any country of the world. This is called a binary system because there are only two symbols involved. It's sort of a code. Here's the key. Binary Numbers and Their Decimal Equivalents. 1 = 0001 5 = 0101 9 = 1001 13 = 1101 2 = 0010 6 = 0110 10 = 1010 14 = 1110 3 = 0011 7 = 0111 11 = 1011 15 = 1111 4 = 0100 8 = 1000 12 = 1100 16 = 0001 0000 Letters of the Alphabet and Their Binary Code Equivalents. Keyboard Letter Binary Decimal Hexidecimal A 0010 0000 32 20 B 0010 0101 37 25 C 0010 0011 35 23 D 0001 1010 26 1A E 0001 0010 18 12 F 0001 1011 27 1B G 0001 1100 28 1C H 0001 1101 29 1D I 0001 0110 22 16 J 0001 1110 30 1E K 0001 1111 31 1F L 0000 1110 14 0E M 0010 0110 38 26 N 0010 1101 45 2D O 0001 0111 23 17 P 0000 1111 15 0F Q 0001 1000 24 18 R 0001 0011 19 13 S 0001 1001 25 19 T 0001 0100 20 14 U 0001 0101 21 15 V 0010 0100 36 24 W 0001 0001 17 11 X 0010 0010 34 22 Y 0010 1100 44 2C Z 0010 0001 33 21 Working with endless daisy chains of 0's and 1's would be more than tedious for the human brain - but the computer is really good at it. The inside of a computer is mainly a series of little electronic gates. 0 - the absence of an electrical pulse - leaves the gate open. 1 - the presence of an electrical pulse - closes the gate. And remember - the electronic gates in your Odyssey2 computer are opening and closing at the rate of 100,000 times every second. You will enter programs in your Odyssey2 through either the hexidecimal or assembler language (these will be explained later). The Odyssey2 will then change the data and instruction sets entered into binary language (1's and 0's) and store that information in the Memory and in the registers. The actual computing is done by the computer's Central Processing Unit (CPU). The CPU in your Odyssey2 is composed of the Accumulator (a working register which stores data temporarily); the Program Counter (a working register which locates and identifies the instruction sets and keeps them in order); the Registers (in which data, implemented by the programmer, is stored); the Sub-Routine Return Register (which is used with a certain instruction set); the Arithmetic Logic Unit (ALU); and the Control Unit. The Control Unit directs the flood of electronic traffic traveling through the computer and controls the data flow between the different components of the computer. For example, it regulates the flow of information between the Memory and Arithmetic Logic sections and also orders processed data to move from the Memory to the Output terminal. The Output terminal of your Odyssey2 computer is the screen of your television set. The Arithmetic Logic Unit is where the computer teaches numbers to tap dance. Its nickname is "number cruncher." It acts on the binary data fed into the computer's memory and registers - and then changes them according to the programmed instructions. Now, you're ready to learn by doing. You're going to enter a program into your computer. Open the fold-out at the front of the book and you'll see what happens to everything along the way. Important point. The neat thing about computers is that they will always follow your instructions with unflagging good faith. The dumb thing about computers is that they will only do what you have instructed them to do. It's very important to make sure that you enter every step and do it right. If you make an error, the computer is going to make an error. Be sure that the power to your Odyssey2 console is turned off. Insert the COMPUTER INTRO cartridge into the console. Be sure the label side is facing the alpha-numeric keyboard. Now, turn on the power. You're going to be talking with your Odyssey2 computer through the keyboard. It will talk back to you over your television screen. Let's take a brief trip around the keyboard. It has forty-eight keys. Each key has been encoded in the computer languages we're going to be using. You'll find this code on the gatefold at the front of the book. The keyboard also contains some surprises - four games that have been pre-programmed in the cartridge. Press 2 on the alpha-numeric keyboard. A FLASH CARD addition game will appear on your television set. An unsolved addition problem flashes on your screen. You enter the solution through the keyboard. If the answer is less the 10, preface the number with a 0. (Important! Always use the numeral 0 at the top of the keyboard when entering a 0.) If you give a wrong answer, an angry NO will appear on the screen. If you give a correct answer, it will appear in its proper position. To bring another problem to the screen, summon it from the computer by pressing any key. Adding numbers is no big deal until you see how many addition problems you can solve in one minute. If you keep trying to beat your own record or another player, you can't help but sharpen your skills. Press RESET, then press 3 on the alpha-numeric keyboard and you're into COMPUTER TELEPATHY! It's a high-low game. The computer secretly chooses a number between 00 and 99. The secret number won't appear on the screen - but a question mark will. You make a guess at the correct number and enter it into the computer. Your guess will appear on the screen. It will be followed by an H if it is higher than the computer's secret number - or an L if it is lower. If you guess correctly, the number will be followed by an X. Play against an opponent and see who can guess the computer's secret number in the fewest number of guesses. Now, press RESET, then press 4 on the alpha-numeric keyboard. BETWEEN THE SHEETS appears on the screen. You'll see three sets of numbers. Example: 03 07 00. The first two numbers are the sheets. The computer has thought of another number which it is keeping to itself. The last number is your score. If you think the computer's secret number is between 03 and 07, press YES on the alpha-numeric keyboard. If you don't think it falls between 3 and 7, press NO. If you are correct, you score a point and the number will appear between the 3 and 7. If you are wrong, the computer rewards you with a couple of BEEPS right in the ear and your score remains the same. Press RESET, then press 1 and a series of blocks appears on the screen. The blocks flash in random order and are accompanied by a buzzing sound. We call this spooky effect "THE CREEPY CRAWLER." You can call it anything you want. We can re-program The Creepy Crawler to display other symbols on the screen. There is a large selection of graphics in the memory of your Odyssey2. You'll find the complete collection in the fold-out at the back of the book. The Creepy Crawler program is quite short and represents a good starting point. We're going to follow this and succeeding programs with a sort of road map so you can see where your input goes and what the various parts of the computer do with it. There are two ways you can program your computer. You can speak HEXIDECIMAL code (machine language). An instruction would look like this: 60. Your computer takes 60 and converts it into its binary equivalent: 0110 0000. Notice that this binary translation has eight digits. These are called BITS. Bits are handled by the computer in groups of eight. One group is called a BYTE. A byte is the smallest piece of information a computer can work with. In Odyssey2 Hexidecimal language, 60 means "Load a value into Register 0." (A register is a place where a computer stores information. There are sixteen registers in your Odyssey2. Each register has room for one byte of information.) The second computer language your Odyssey2 understands in called ASSEMBLER. Assembler uses alpha-numeric symbols to input binary code instructions. An instruction in Assembler is more phonetic than Hex - but it is also longer. Example: LDV.0.38 means - Load a value into register 0 - and that value is 38. (Important: Be sure to enter the periods in the assembler instructions or the computer will not know what you're talking about.) In the back of the book, you'll find a complete chart of Instruction Sets for your Odyssey2. INSTRUCTION SETS are the codes that tell your computer what you want it to do with the data you're going to give it. Also Important: "0" is the equivalent of zero in the numeric section of your keyboard. "O" is the letter of the alphabet. Now, open the gatefold at the back of the book. You'll find a flow chart that tells you how to get into the various operating modes of your Odyssey2. These modes are for displaying data in the registers, entering and executing a program, rolling through a program to check data and much more. Leave the front and back gatefolds open. You'll have your reference material right in front of you. We are now ready to re-program the fearsome Creepy Crawler. First, we'll enter in Hex - and then we'll do a variation in Assembler. --- -(page 20) Creepy Crawler Press the POWER BUTTON OFF and ON to clear the computer. Press RESET - "Command" appears on your screen. Your computer is in the COMMAND mode and ready to accept instructions. It knows you want it to do something but doesn't yet know what. Press P - "Program" appears on the screen. "Aha," thinks the computer. "Somebody wants to enter a program! I wonder what language this person will speak!" Press M - "Hex Input" appears on the screen. The computer now knows you will be communicating in HEX. You're going to be using the Hexidecimal Operational Code (OP CODE). Press I - Step 00 appears on the screen and the computer is ready and waiting to accept data. 00 Press 60 - This is Op code for Load Register 0. Register 0 is one of sixteen registers in your Odyssey2 that make up part of its Random Access Memory (RAM). Each register is a small memory device that provides temporary storage for data and instructions which will eventually be needed by the ARITHMETIC LOGIC UNIT (ALU) - the place where all simple reasoning and arithmetic operations are performed. Look at the registers in the computer as sixteen in and out boxes on a desk that is shared by both you and the Arithmetic Logic Unit. Press ENTER - Program Step 01 appears on the screen. Register 0 has now been activated to accept your entry upon execution of the program. (The program steps you enter into the computer do not actually become functional until you press E [EXECUTE] at the completion of the program.) 01 Press 3A - You have just selected an electronic figure from your computer's gallery of electronic art and symbols, which are stored in the symbol/sound generator. You'll find the entire gallery in the fold-out at the back of the book. We've selected the little man as an example, but you can actually use any of the figures or symbols for this program. They have been permanently stored in your computer. There are two parts to the memory unit in your computer. The ROM (Read Only Memory) contains the instruction sets and constants to be used in programming. (The constants may be repetitive numbers needed for mathematical computation by the ALU - Arithmetic Logic Unit, or they may be letters, numbers, or symbols which you have entered into the Odyssey2 in a program which will remain the same throughout the program. See the program "Message.") The other part of the computer's memory is called RAM (RANDOM ACCESS MEMORY). This memory component is like a blackboard. Programs, instruction sets and constants can be entered and later erased so that new data can be entered. You're writing this program on the RAM component of the microprocessor in your Odyssey2. Press ENTER - Program step 02 appears on the screen. The little man will be loaded into Register 0. 02 Press 61- This is Op Code for LOAD REGISTER 1. It tells your computer you want to give input to that data storage unit. Press ENTER - Program step 03 appears on the screen - and the door to Register 1 will open to receive data. 03 Press 0C - This is Op Code for a blank like the space between words in a sentence. Press ENTER - Program step 04 appears on your screen. The blank will be loaded in to Register 1. 04 Press 6B - This is Op Code for positioning. You are opening the door to Register B and telling it you want it to display the little man at a certain place on the screen upon execution of the program. You'll let it know where. Press ENTER - Program step 05 appears. The door to Register B will open. 05 Press 00 - This entry tells the computer you will want it to display the little man at the furthest left position on the screen. Press ENTER - Program step 06 appears on your screen. The positioning information will be loaded into Register B. Register B is the register that positions symbols or characters on the screen. It has been given eleven positions. 00 is the furthest left. 0A is the furthest right. When Register B outputs on the screen, it automatically increments or advances by one. If we output a symbol in 00 (position one), the symbol will appear in the first position and Register B will then advance automatically to position 2 (01). If Register B outputs in the last position (0A), it automatically resets itself back to the first position (00) on the next step. Whatever data was in that first position will be replaced by the new input. 06 Press C0 - This is the Op Code that tells the computer you are going to want to bring that little man to the screen. You have given him a way to get out of Register B. Press ENTER - Program Step 07 appears on the screen 07 Press C1 - This is Op Code for telling the computer you want to bring that blank in Register 1 to the screen. Press ENTER - Program step 08 appears on your screen to tell you everything is going along smoothly. 08 Press 05 - It's sound effects time. This is an Op Code that tells the computer you will want to hear a one second buzz. Press ENTER - Program step 09 appears. 09 Press 08 - This Op Code tells the computer you want it to come with an unlimited sequence of random numbers. The computers that encipher and decipher secret messages for governments do this everyday. In the old days, crypt keys remained constant and could be broken easily. Today, they change constantly and at random. Today, it takes one computer to break another's cipher. Press ENTER -The random number instructions are entered into your computer. Program step 10 appears on the screen. 10 Press BB - This is Op Code for UNPACK Register B. This is the Register we use to position our little man on the screen. This unpacking instruction takes the random two digit number selected by the Accumulator and places one digit in Register B (we are unpacking Register B, thus the Op Code BB) and the other digit in the Register immediately following B, which is Register C. The digit in Register C is ignored. Another example of unpacking - If we had unpacked Register 0, the Op Code would have been B0, and one digit of the random number would have been placed in Register 0 and the second digit in Register 1. To look at it another way, think of the Accumulator as a suitcase and the registers as a tall dresser with 16 drawers. You unpack two items from your suitcase and put the first away in a drawer. The second item will automatically go to the drawer just below it. At the end of the Creepy Crawler program, a variation is written explaining how to use the second digit of the random number which was loaded into Register C, along with numerous figures to execute a random display of figures on the screen. Through this unpacking instruction, the positioning Register (Register B) is loaded from the Accumulator with a random number. It is this instruction which will cause our little man to travel to unpredictable places on the screen. (The Accumulator is a small memory device in the CPU that provides temporary storage for the Arithmetic Logic Unit. It can store the result of an ALU operation or serve as an operation source [OPERAND] for the ALU.) Press ENTER - The unpacking instruction is entered and program step 11 appears on your screen. 11 Press 12 - This OP Code tells your computer you're going to want it to return to a previously programmed step. Press ENTER - Program step 12 appears on the screen and the computer wonders which program steps you wish repeated. 12 Press 06 - You have just told the computer you want it to go through the motions and always return to program step 06. This was the place you wanted the little man positioned on the screen which was subsequently combined with a random number to change the positioning on the screen. In effect, you have now "looped" part of your program. It will do its thing endlessly with endless variations. Press ENTER - The computer salutes and will do as you ordered. Program step 13 appears. Press RESET - The program is stored and you are back in the COMMAND mode. "Command" appears on your screen. Press E - You have instructed the computer to execute your instructions. The fearsome Creepy Crawler appears on your screen. The little man or whatever symbol you have chosen will flash and buzz in different positions on the screen. Forever. Or, until you turn it off. Or, change the program. Whichever comes first. Important! The power switch on your console is your program eraser. Turn it off and the program is cleared from the unit automatically. Turn it on - and you're ready to enter a new program. Now that you've entered Creepy Crawler in HEX, try entering this variation in ASSEMBLER language. We will call this program Creepy Crawler with an All-Star Cast of Thousands. First, turn the power off and on to erase any previous programming. Now, check the fold-out Operational Flow Chart to see how to get into the Assembler Input Mode. Press RESET Press P Press A Press I You are now in the Assembler Mode at program step 00 and ready to go. One thing. Be sure to enter the periods as well as the letters and numbers. Press L Press D Press V Press . Press 2 Press . Press 1 Press 3 Press ENTER We are now at Program step 02. Continue entering in Assembler until you get to Program step 13. At this step you will begin entering a variety of symbols in HEX. There is no Assembler equivalent for them - so after Program step 12, switch over to the HEX Input Mode. Check the Operational Flow Chart and then - Press CLEAR Press ROLL Press CLEAR Press M Press I After you finish entering the program, press RESET to store the program - then press E (EXECUTE) and watch what happens! --- -(page 28) Creepy Crawler Version II Hex Assembler Step Code Code Byte Remarks 00 62 13 LDV.2.13 2 Load Reg.2 with 13 02 08 RND 1 Accum. selects a random number 03 BB UNP.B 1 Unpack the random number into Reg. B and C 04 9C LDA.C 1 Load the Accum. from Reg. C 05 E2 ADD.2 1 Add the contents of Reg. 2 to the Accum. 06 AC STO.C 1 Store the contents of the Accum. in Reg. C 07 09 MOV 1 Load Accum. from a Program step 08 0B OTA 1 Output from Accum. to screen 09 05 SIG 1 One second buzz 10 00 NOP 1 No operation (used as a pause) 11 12 02 GTO.02 2 Instructs Odyssey2 to go to Program step 02 and repeat program 13 32 1 Must enter Hex Mode (see end of Creepy Crawler 14 33 1 15 3A 1 16 34 1 Hex codes for various symbols. 17 35 1 These symbols with their Hex Code 18 37 1 equivalents are shown at the 19 3D 1 front of the book. 20 3E 1 21 36 1 22 3C 1 --- -(page 29) The Roll Mode - Your Program Trouble Shooter The Roll Mode is for checking a program step to be sure it contains the correct data. It is also for making a change in a program step without having to erase and re-enter an entire program. To enter the Roll Mode, press R if you are in either the Assembler or HEX input modes. If you are in the EXECUTION mode, press RESET, then P, then M (HEX) or A (ASSEMBLER) - and then press R. Then, press U to display the program steps upward (00-99) - or press D to display the program steps downward (99-00). The Roll Mode will always display its information in HEX - even if you have been entering in Assembler. If everything checks out, roll to the last program step entered and press CLEAR to re-enter the Assembler or HEX input mode. If you wish to make a change, press CLEAR at the program step you wish to change. The data will be cleared. Enter M for HEX or A for Assembler, depending on the code you have been using. Press I - the program step number you wish to change will appear on the screen. Enter the new data. Press RESET - You will be back in the COMMAND Mode and are ready to go on with the program. The following series of programs will be presented with a running commentary that will tell you exactly where the data is going and what is happening to it. These programs are written in HEX code. At the end of each program, you'll find a summary written in HEX as well as Assembler, so you can enter each program in either language. --- -(page 30) Addition - Program A This program will add two one digit numbers and display the total. Press the POWER BUTTON off and on to clear the computer. Press RESET - "Command" appears on your screen. Your computer is ready to accept instruction. Press P - "Program" appears on the screen. Press M - "Hex Input" appears on the screen. You have told the computer you will be using the Hexidecimal Operational Code (Op Code). Press I - Step 00 appears on the screen. The computer is ready to accept data. 00 Press 70 Press ENTER - You have told the computer you are going to input the first number into Register 0. 01 Press 04 Press ENTER - You instruct the computer to feed the second number of the addition problems into the Accumulator. Remember, the Accumulator provides temporary storage for the ALU where the numbers are going to be crunched. 02 Press E0 Press ENTER - This instructs the computer to add the contents of Register 0 to the contents of the Accumulator and to store the sum in the Accumulator. 03 Press B1 Press ENTER - This Op Code is an unpacking instruction. It tells the computer to unpack the sum which has been stored in the Accumulator into Register 1 and Register 2. 04 Press 6B Press ENTER - This starts a positioning instruction. 05 Press 00 Press ENTER - This Op Code tells the computer to display subsequent information at the 00 position on your TV screen. 06 Press C1 Press ENTER - You tell the computer you will want to output the information in Register 1 (first digit sum). 07 Press C2 Press ENTER - You also want to output the data in Register 2 (Second digit sum). 08 Press 12 Press ENTER - This tells the computer you want it always to return to a certain step and repeat the program from that point. 09 Press 00 Press ENTER - 00 is the step you want the computer to return to and repeat. Now, the computer will perform a continuous series of addition problems. The program is now completed. Press RESET - The program is now stored in the computer's memory and you are back in the COMMAND Mode. Press E -The computer executes your program. A question mark appears on the screen. The computer is asking for two 1 digit numbers to add. Enter the First Number. Press any digit from 0 through 9. You will hear a beep confirming entry. The number will not appear on the screen. That instruction was not included in this program. Enter the Second Number. Press any digit 0 through 9 and the sum total of the two entered numbers will immediately appear on the screen. To enter a new problem, press any single digit number. Then, press the other single digit number. The previous sum will be replaced by the answer of the new addition problem as soon as you have entered the second number of the new problem. Now, here is the addition problem you have just entered expressed in both HEX and ASSEMBLER codes. Note the following points. Important: Remember to get into the proper input mode for the language you are using. Press PMI for HEX. Press PAI for Assembler. Very Important: Look at Program step 04. It is a two Byte instruction. Remember, in Binary each byte is composed of eight bits. 6B (HEX = 0110 1011 (BINARY). 00 (HEX) = 0000 0000 (BINARY). Therefore, 6B 00 is a two byte instruction. If you are in the HEX mode, each Byte must be entered separately. Press 6B Press ENTER Press 00 Press ENTER If you are in the Assembler mode, both Bytes are fed into the computer with one entry. Press L Press D Press V Press . Press B Press . Press 0 Press 0 Press ENTER In either language, you will see Program step 06 on the screen after the data is entered. Now, push the Power Button to erase any previous data... choose one of the input codes... and enter the program. Be sure to press ENTER after each step. Addition - Program A Hex Assembler Step Code Code Byte Remarks 00 70 INP.0 1 Input Reg.0 with 1st number 01 04 INA 1 Input Accum. with 2nd number 02 E0 ADD.0 1 Add Reg.0 to Accum. 03 B1 UNP.1 1 Unpack Accum. into Reg.1 and Reg.2 04 6B 00 LDV.B.00 2 Set output position to 00 06 C1 OUT.1 1 Output Reg.1, 1st digit sum 07 C2 OUT.2 1 Output Reg. 2, 2nd digit sum 08 12 00 GTO.00 2 Go to step 00 and repeat --- -(page 35) Addition - Program B This program will also add two one digit numbers. However, this time when you enter the second number, the entire problem will appear on the screen. (Example: 2+4=6). You will be entering + and = signs in this program. First, press the POWER BUTTON off and on to clear the computer. Then - Press RESET - "Command" will appear on your screen, and your computer is all ears. Press P - "Program" appears on your screen. Press M - "Hex Input" appears on your screen. The computer knows you will be using Op Code (Hexidecimal Operation Code). Press I - Step 00 appears on the screen. You are ready to input data. 00 Press 70 Press ENTER - You tell the computer the first number will be entered into Register 0. 01 appears on your screen. 01 Press 04 Press ENTER - You tell the computer to accept the second number into the Accumulator. 02 appears on the screen. 02 Press 6B Press ENTER - This starts an output position entry. 03 Press 00 Press ENTER - The output position is set at 00 at the far left of the screen. 04 Press C0 Press ENTER - The output channel from Register 0 will open for the first number of the addition problem. 05 Press 63 Press ENTER -The input channel to Register 3 will open. 06 Press 10 Press ENTER - 10 will be loaded into Register 3. 10 is Op Code for the (+) sign. 07 Press C3 Press ENTER - The output channel from Register 3 will open so the (+) sign can be displayed on the screen. 08 Press 0B Press ENTER - The output channel of the Accumulator will open so that the second number can be displayed on the screen. 09 Press 63 Press ENTER - The input channel to Register 3 will open. 10 Press 2B Press ENTER - 2B will be loaded into Register 3. 2B is Op Code for the (=) sign. 11 Press C3 Press ENTER - The output channel from Register 3 is opened so the (=) sign may be displayed on the screen. 12 Press E0 Press ENTER -This instruction adds the contents of Register 0 to the contents of the Accumulator and stores the result in the Accumulator. Remember, Register 0 contained the first number of the addition problem. The Accumulator held the second number. 13 Press B1 Press ENTER -This program step unpacks the contents of the Accumulator storing the first digit of the sum in Register 1 and the second digit of the sum in Register 2. 14 Press C1 Press ENTER - The output channel from Register 1 will open to let the first digit sum be displayed on the screen. 15 Press C2 Press ENTER - The output channel from Register 2 will open to let the second digit sum be displayed on the screen. 16 Press 12 Press ENTER - This begins an instruction to return to a previous step. 17 Press 00 Press ENTER - The computer is instructed to return to step 00 and be ready to solve a new addition problem. The old problem will not erase from the screen until both digits of the new problem are entered. Press RESET - The program is now stored in the computer. Press E - The computer is ready to execute the program. A question mark appears on the screen asking for input. Press any single digit number. Nothing appears on the screen. Press a second single digit number. The entire problem and the solution appear on the screen. Both will remain there until two new digits are entered. Addition - Program B Hex Assembler Step Code Code Byte Remarks 00 70 INP.0 1 Input Reg.0 with 1st number 01 04 INA 1 Input Accum. with 2nd number 02 6B 00 LDV.B.00 2 Set output position 04 C0 OUT.0 1 Output 1st number from Reg. 0 05 63 10 LDV.3.10 2 Load Reg. 3 with (+) sign 07 C3 OUT.3 1 Out Reg. 3, (/) + on screen 08 0B OTA 1 Output 2nd number 09 63 2B LDV.3.2B 2 Load Reg. 3 with (=) sign 11 C3 OUT.3 1 Output Reg. 3, (/) = on screen 12 E0 ADD.0 1 Add Reg. 0 to Accum. 13 B1 UNP.1 1 Unpack Accum. into Reg.1 and Reg. 2 14 C1 OUT.1 1 Output Reg. 1, 1st digit sum 15 C2 OUT.2 1 Output Reg. 2, 2nd digit sum 16 12 00 GTO.00 2 Go to step 00 and repeat --- -(page 40) Addition - Program C After you enter this program a question mark on the screen asks you to press in two one digit numbers for the computer to add. The first number appears on the screen followed by (+) sign. When you press the second number, it appears on the screen followed by a (=) sign and the answer. When the first digit of the next addition problem is entered, the first problem will disappear from the screen. To begin, turn off the power to erase the previous program. Press RESET - Your computer is in the "Command" Mode and ready to accept instructions. Press P - The computer enters the "Program" Mode. Press M - "Hex Input" appears on the screen. The computer is ready to accept instructions in Op Code. Press I - Step 00 appears on the screen and the computer is ready for the program. 00 Press 6B Press ENTER - You are setting the output position of Register B. 01 Press 00 Press ENTER - That output position is 00 at the far left of the screen. 02 Press 70 Press ENTER - You tell the computer that the first number of the addition problem will be stored in Register 0. 03 Press C0 Press ENTER - This tells the computer you will want it to output the contents of Register 0. 04 Press 63 Press ENTER - You are preparing Register 3 to accept data. 05 Press 10 Press ENTER - Register 3 will be loaded with a 10 - the code for a (+) sign. You will find the complete code for all of the graphics stored in your computer on the fold-out at the back of the book. 06 Press C3 Press ENTER - This will open the way to output the (+) sign from Register 3. 07 Press 04 Press ENTER - This will open the Accumulator for future input. 08 Press 0B Press ENTER - The output channel of the Accumulator is set to open. 09 Press 63 Press ENTER - You want to load a value into Register 3. 10 Press 2B Press ENTER - That value is 2B - the code for the (=) sign. 11 Press C3 Press ENTER - This will open the way to output the (=) sign from Register 3. 12 Press E0 Press ENTER - The computer will then add the contents of Register 0 to the Accumulator. Register 0 has already been instructed to accept the first number in the addition problem (Step 02) - and the Accumulator has been instructed to accept the second number. 13 Press B1 Press ENTER - This Op Code will unpack the contents of the Accumulator (which contains the sum) into Register 1 and Register 2. 14 Press C1 Press ENTER - This will open the output channel of Register 1. 15 Press C2 Press ENTER - This will open the output channel of Register 2. 16 Press 70 Press ENTER - This input is a pause operation. It tells the computer to leave the first problem on the screen until another problem is entered. 17 Press 6C Press ENTER - Register C will be opened for loading. 18 Press 0B Press ENTER - Register C will be loaded with 0B - the Op Code for the decimal number 11, which is exactly the number of positions available on the screen. 19 Press 67 Press ENTER - Register 7 will be ready for loading. 20 Press 0C Press ENTER - 0C is Op Code for blank spaces as indicated in the computer graphics section in the fold-out at the back of the book. Register 7 will be loaded with blank spaces. The computer will use these blank spaces to erase the old problem on the screen when the first digit of the new problem is entered. 21 Press 9C Press ENTER - The Accumulator will be loaded with the contents of Register C - the decimal number 11. 22 Press 64 Press ENTER - This will open Register 4 to accept data. 23 Press 00 Press ENTER - Register 4 will be loaded with 00. 24 Press 02 Press ENTER - The amount in the Accumulator (11 - the number of positions on the screen) will be decremented (subtracted) by one each time this step is reached. 25 Press C7 Press ENTER - Register 1 will output its blank spaces. 26 Press 24 Press ENTER - This is a branch instruction - sort of a fork in the electronic road. The computer is instructed to continue on to the next program step if the number in the Accumulator equals the number in Register 4 (00). 27 Press 24 Press ENTER - The computer is instructed to return to step 24 if the number in Register 4 is not equal to the Accumulator. Step 24 will decrement the contents of the Accumulator (which originally was 11) by 1 each time until the Accumulator is reset at 00 to match Register 4. Program steps 16 through 27 demonstrate how a computer erases by outputting blank spaces to the screen. 28 Press 6B Press ENTER - We are resetting Register B to return to its original output position once the Accumulator is equal to Register 4. 29 Press 00 Press ENTER - The output position of Register B is set at the extreme left position of the screen. 30 Press 12 Press ENTER - This Op Code instructs the computer to branch to another program step when the amount in the Accumulator equals 00. 31 Press 03 Press ENTER - The step the computer returns to is 03. Now, you are able to enter and solve repeated addition problems. Press RESET - The program is stored. Press E - The program is executed. See the beginning of the program for use instructions. Addition - Program C Hex Assembler Step Code Code Byte Remarks 00 6B 00 LDV.B.00 2 Set output position to 00 02 70 INP.0 1 Input 1st number to Reg. 0 03 C0 OUT.0 1 Output Reg. 0 04 63 10 LDV.3.10 2 Load Reg. with (+) sign 06 C3 OUT.3 1 Output (+) sign from Reg. 3 07 04 INA 1 Input to Accum.(second number) 08 0B OTA 1 Output from Accum. 09 63 2B LDV.3.2B 2 Load Reg. 3 with (=) sign 11 C3 OUT.3 1 Output (=) sign from Reg. 3 12 E0 ADD.0 1 Add Reg. 0 to Accum. 13 B1 UNP.1 1 Unpack Accum. to Reg. 1 and Reg. 2 14 C1 OUT.1 1 Output Reg. 1 15 C2 OUT.2 1 Output Reg. 2 16 70 INP.0 1 This is used as a pause operation 17 6C 0B LDV.C.0B 2 Load Reg. C with Hex 0B (#11) 19 67 0C LDV.7.0C 2 Load Reg. 7 with blank spaces 21 9C LDA.C 1 Load Accum. from Reg. C 22 64 00 LDV.4.00 2 Load Reg. 4 with 00 24 02 DEC 1 Subtract 1 from Accum. 25 C7 OUT.7 1 Output Reg. 7 (blank spaces) 26 24 24 BNE.4.24 2 Branch if Accum. does not = Reg.4 28 6B 00 LDV.B.00 2 Set output position to 00 30 12 03 GTO.03 2 Go to step 03 and repeat --- -(page 46) One Digit Multiplication After you enter this program, a question mark will appear on the screen asking for input. The first digit entered is the number you wish to multiply (the multiplicand). It appears on the screen with an (X) sign. The second digit entered is the multiplier. The complete problem will now appear on the screen along with the answer. Odyssey2 solves multiplication through an addition process. If the problem is 3 X 7, the computer will arrive at the answer by adding 7+7+7. Program steps 00 through 11 are instructions which allow the problem to be displayed on the screen. The mathematical operational sequence begins with step 12. First, press the POWER BUTTON off and on to erase the previous program. Press RESET - You are in the "Command" Mode. Press P - You enter the "Program" Mode. Press M - "Hex Input" appears on the screen. The computer is ready for Op Code instructions. Press I - Step 00 appears on the screen and the computer is ready for the program. 00 Press 6B Press ENTER - The output position of Register B is ready for setting. 01 Press 00 Press ENTER - You set the output of Register B for the far left of the screen. 02 Press 70 Press ENTER - The multiplicand is directed to be stored in Register 0. 03 Press C0 Press ENTER - Register 0 is given an output channel. 04 Press 66 Press ENTER -The door will be opened to Register 6. 05 Press 29 Press ENTER - An (X) sign will be entered into Register 6. 06 Press C6 Press ENTER - Register 6 is given an output channel. 07 Press 71 Press ENTER - The multiplier will be stored into Register 1. 08 Press C1 Press ENTER - The multiplier is given a way out of Register 1. 09 Press 67 Press ENTER - The door to Register 7 is instructed to open. 10 Press 2B Press ENTER - 2B is Op Code for (=). The (=) sign will be loaded into Register 7. 11 Press C7 Press ENTER - This will provide an output channel for Register 7. 12 Press 90 Press ENTER - The Accumulator is instructed to be ready to accept data from Register 0. This is the Register that holds the number you want to multiply. The Accumulator will be loaded with the same value as the contents of Register 0 - however, Register 0 will continue to retain its data. 13 Press E0 Press ENTER - The computer is instructed to add the contents of the Accumulator to Register 0. Remember, that Odyssey2 multiplies by a series of addition steps. This is the first addition step. 14 Press A2 Press ENTER - The sum of the digits from the Accumulator and Register 0 will be stored in Register 2. 15 Press 91 Press ENTER - The Accumulator will be loaded from Register 1 which holds the multiplier. The Accumulator will now know the number of addition steps it must perform to arrive at an answer. 16 Press 02 Press ENTER - This step will decrement the Accumulator which contains the multiplier by 1 so that the computer can keep track of how many addition steps have been made. 17 Press A1 Press ENTER - The difference will be stored in Register 1. 18 Press 63 Press ENTER - The door to Register 3 will open. 19 Press 01 Press ENTER - 01 will be stored in Register 3. This will give the computer a reference point which will halt the addition process. When the Accumulator contains the contents of Register 1 (the multiplier), it is compared to the contents of Register 3 (which is 01). If the contents in Register 1, which is now in the Accumulator, and Register 3 coincide, the computer will stop adding. If they are not equal, the computer will loop back and continue the addition process. 20 Press 33 Press ENTER - This starts a branch operation. 21 Press 25 Press ENTER - The computer is instructed to branch to step 25 if the contents of the Accumulator and Register 3 are equal. In which case, the answer will be unpacked and displayed on the screen. 22 Press 92 Press ENTER - The Accumulator will be loaded with the information in Register 2, which contains the data fed in Program Step 14. 23 Press 12 Press ENTER - The computer is instructed to return to a previous step in the program if the conditions in program step 19 have not been met. 24 Press 13 Press ENTER - The computer is instructed to return to step 13 and once again add the contents of Register 0 to the Accumulator. (Register 0 holds the multiplicand.) 25 Press 92 Press ENTER - The Accumulator will be loaded with the contents of Register 2 which contains the sum of the addition operations. We are almost at the end of the tunnel. This operation is performed when the contents of the Accumulator and Register 3 are equal. 26 Press B4 Press ENTER - This is a two digit unpacking operation, which has been explained in Addition Program A. 27 Press C4 Press ENTER - An output channel for Register 4. 28 Press C5 Press ENTER - An output channel for Register 5. 29 Press 12 Press ENTER - You instruct the computer to return to a previous program step. 30 Press 00 Press ENTER -That step is 00. The computer will now be ready to accept a new multiplication problem. Press RESET - The program is stored. Press E - The program is executed. One Digit Multiplication Hex Assembler Step Code Code Byte Remarks 00 6B 00 LDV.B.00 2 Set output position 02 70 INP.0 1 Multiplicand stored in Reg. 0 03 C0 OUT.0 1 Output multiplicand 04 66 29 LDV.6.29 2 Symbol (x) stored in Reg. 6 06 C6 OUT.6 1 Output Reg. 6; Reg. 6 = (x) 07 71 INP.1 1 Multiplier stored in Reg. 1 08 C1 OUT.1 1 Output Multiplier 09 67 2B LDV.7.2B 2 Symbol (=) stored in Reg. 7 11 C7 OUT.7 1 Output Reg. 7 12 90 LDA.0 1 Load Accum. from Reg. 0 13 E0 ADD.0 1 Add Accum. to Reg. 0 14 A2 STO.2 1 Store sum in Reg. 2 15 91 LDA.1 1 Load Accum. from Reg. 1 16 02 DEC 1 Decrement Accum. by 1 17 A1 STO.1 1 Store difference in Reg. 1 18 63 01 LDV.3.01 2 Load Reg. 3 with 01 20 33 25 BEQ.3.25 2 Go to step 25 if Accum. = Reg. 3 22 92 LDA.2 1 Load Accum. from Reg. 2 23 12 13 GTO.13 2 Go to step 13 25 92 LDA.2 1 Load Accum. from Reg. 2 26 B4 UNP.4 1 Unpack two digits 27 C4 OUT.4 1 Output Reg. 4 28 C5 OUT.5 1 Output Reg. 5 29 12 00 GTO.00 2 Go to step 00 and repeat --- -(page 52) One Digit Division A question mark will appear on the screen. The first number entered will be the dividend and it will be followed by a (/) sign. The second number entered will be the divisor. It will appear on the screen along with an (=) sign and the answer. Your Odyssey2 computer accomplishes division by a series of subtractions. It's the Odyssey2 multiplication process in reverse. Note: There are two conditions in division that must be provided. The first condition is when the divisor can be divided into the dividend equally. Example: 6 / 2 = 3. The second condition is when the divisor cannot be divided into the dividend equally and there is a remainder. Example: 9 / 2 = 4 + R. Your Odyssey2 has been instructed to display (+R) if there is a remainder. This program provides branching instructions to satisfy both conditions. To begin, turn the POWER BUTTON off and on to erase any previous program. Press RESET - You are in the "Command" mode. Press P - You have entered the "Program" mode. Press M - "Hex Input" appears on the screen. The computer is ready to accept instructions in Op Code. Press I - Step 00 appears on the screen, and you are ready to enter the program. 00 Press 63 Press ENTER - The door to Register 3 will be opened. 01 Press 00 Press ENTER - We call this "initialization" - a step to insure that Register 3 is set at absolute zero value after each problem is solved. Register 3 will contain the sum of the subtraction operations Odyssey2 will perform to find the quotient. 02 Press 6B Press ENTER - The door to Register B will be opened. 03 Press 00 Press ENTER - Register B will be positioned to output at the far left of the screen. 04 Press 70 Press ENTER - The number to be divided (the dividend) will go into Register 0 the dividend must always be larger than the divisor. 05 Press C0 Press ENTER - The output channel to Register 0 is set to open. 06 Press 69 Press ENTER - Register 9 will be opened for input. 07 Press 2A Press ENTER - 2A is Op Code for (/). The division sign will go into Register 9. 08 Press C9 Press ENTER - The output channel of Register 9 is set to open. 09 Press 71 Press ENTER - The divisor will be loaded into Register 1. 10 Press C1 Press ENTER - The output channel of Register 1 is instructed to open. 11 Press 6A Press ENTER - The door to Register A will be opened. 12 Press 2B Press ENTER - 2B is Op Code for (=). The equal sign will go into Register A. 13 Press CA Press ENTER - The Register A output channel is instructed to open. 14 Press 91 Press ENTER - The Accumulator will be loaded with the contents of Register 1 which contains the divisor. We are going to use a sample problem so the explanation will be easier (6 / 2 = 3). The Accumulator will be loaded with the divisor (2). 15 Press D0 Press ENTER - The contents of the Accumulator will be subtracted from the contents of Register 0 which contains the dividend (6). 16 Press A0 Press ENTER - The difference (4) between the dividend and the divisor (6 - 2 = 4) will be stored in Register 0. 17 Press 93 Press ENTER - The Accumulator will be loaded with the contents of Register 3. This is the Register that was "initialized" at 00 so that we could keep track of the number of times we subtracted. 18 Press 03 Press ENTER - A 1 will then be added to the Accumulator. This is called an increment. 19 Press A3 Press ENTER - The sum of the Accumulator is then stored in Register 3. This Register now contains 01. 20 Press 90 Press ENTER - The Accumulator will be loaded with the contents of Register 0. Register 0 has been loaded with a value of 4, the difference between the dividend and the divisor. The value was loaded into Register 0 in Program step 16. 21 Press 13 Press ENTER - This will be the start of a branch operation. 22 Press 40 Press ENTER - The computer will branch to step 40 if the Accumulator equals 0. Once the Accumulator equals 0, the problem is finished and Program step 40 will unpack the answer and it will be displayed on the screen. 23 Press 91 Press ENTER - If the Accumulator does not equal 0, it will go to this program step. The Accumulator will be loaded with the contents of Register 1 which contains the divisor (2). 24 Press 50 Press ENTER - Another branch operation will be started. 25 Press 28 Press ENTER - The computer will be instructed to branch to program step 28 if Register 0 which contains the dividend (4) is less than the Accumulator which contains the divisor (2) from Register 1. 26 Press 12 Press ENTER - This tells the computer to return to a previous step if Register 0 is not less than the Accumulator. 27 Press 15 Press ENTER - This completes the return instructions. The computer is programmed to return to step 15. This step begins the subtraction operations which will continue until Register 0 is loaded into the Accumulator at step 21 and, the Accumulator equals 0 in this example. When this condition is met, Odyssey2 will loop to Program step 40. 28 Press 93 Press ENTER - This is the step your computer will branch to if a remainder is included. The branching instructions were given in steps 24 and 25. They programmed the computer to branch to step 28 if Register 0 which contains the dividend is less than the Accumulator which at this point, contains the divisor. We will use 9 / 2 = 4 + R as our sample problem. All program steps have been the same up to this point. The computer has looped to step 15 several times. Register 0 now contains 01 and the Accumulator contains 02. This step will load the Accumulator from Register 3 which contains the number of times (2) has been subtracted from (9) which is (4). 29 Press B4 Press ENTER - This instruction will unpack the answer. 30 Press C4 Press ENTER - The first digit, stored in Register 4, will be displayed on the screen. 31 Press C5 Press ENTER - The second digit, stored in Register 5, will be displayed on the screen. 32 Press 66 Press ENTER - Register 6 will open. 33 Press 10 Press ENTER - 10 will be loaded into Register 6. 10 is the Op Code for (+). 34 Press 67 Press ENTER - Register 7 will be opened. 35 Press 13 Press ENTER - 13 will be loaded into Register 7. 13 is the Op Code for (R). 36 Press C6 Press ENTER - The output channel for the (+) sign will be opened. 37 Press C7 Press ENTER - The output channel for (R) will open. 38 Press 12 Press ENTER - The computer is instructed to return to a previous step. 39 Press 00 Press ENTER - The computer will return to step 00 and be ready to solve a new problem. Our program ends at this point if we have solved a problem that contains a remainder. If not, as in our first example (6 / 2 = 3), we would have jumped from Program step 21 to Program step 40. 40 Press 93 Press ENTER - The Accumulator will be loaded with the contents of Register 3. It will contain the number of times the divisor has been subtracted from the dividend. In step 21 the computer was programmed to branch to this step when the contents of the Accumulator equaled 0. We were using 6 / 2 as our example so at this point Register 3 contains (3) --- the number of times (2) has been subtracted from (6). 41 Press B4 Press ENTER - This unpacking operation will convert the answer from binary into decimal. 42 Press C4 Press ENTER - The output channel of Register 4 will be opened for the first digit. 43 Press C5 Press ENTER - The output channel of Register 5 will be opened for the second digit. 44 Press 66 Press ENTER - Register 6 will open. 45 Press 0C Press ENTER - Register 6 will be loaded with 0C which is Op Code for a blank space. 46 Press 67 Press ENTER - Register 7 will open. 47 Press 0C Press ENTER - Register 7 will be loaded with a blank space. Registers 6 and 7 have been loaded with blanks so that (+R) will not be displayed on the screen when this branch of the program is employed by the computer. 48 Press C6 Press ENTER - The output channel from Register 6 will open. 49 Press C7 Press ENTER - The output channel from Register 7 will open. 50 Press 12 Press ENTER - The computer is instructed to return to a previous step. 51 Press 00 Press ENTER - The computer is instructed to return to step 00 and be ready to solve another problem. Press RESET - The program is stored. Press E - The program is executed. One Digit Division Hex Assembler Step Code Code Byte Remarks 00 63 00 LDV.3.00 2 Reg. 3 = 00 (initialization) 02 6B 00 LDV.B.00 2 Reg. B = 00 (positioning) 04 70 INP.0 1 Dividend stored in Reg. 0 05 C0 OUT.0 1 Output Reg. 0 06 69 2A LDV.9.2A 2 Symbol (/) stored in Reg. 9 08 C9 OUT.9 1 Output Reg. 9 09 71 INP.1 1 Divisor stored in Reg. 1 10 C1 OUT.1 1 Output Reg. 1 11 6A 2B LDV.A.2B 2 Symbol (=) stored in Reg. A 13 CA OUT.A 1 Output Reg. A 14 91 LDA.1 1 Load Accum. from Reg. 1 15 D0 SUB.0 1 Sub. Accum. from Reg. 0 16 A0 STO.0 1 Store difference in Reg. 0 17 93 LDA.3 1 Load Accum. from Reg. 3 18 03 INC 1 Add 1 to the Accum. 19 A3 STO.3 1 Store sum in Reg. 3 20 90 LDA.0 1 Load Accum. from Reg. 0 21 13 40 BRZ.40 2 Branch to step 40 if Accum. equals 0 23 91 LDA.1 1 Load Accum. from Reg. 1 24 50 28 BLS.0.28 2 Branch to step 28 if Reg. 0 is less than Accum. 26 12 15 GTO.15 2 Go to step 15 28 93 LDA.3 1 Load Accum. from Reg. 3 29 B4 UNP.4 1 Unpack two digits 30 C4 OUT.4 1 Output 1st digit which is stored in Reg. 4 31 C5 OUT.5 1 Output 2nd digit which is stored in Reg. 5 32 66 10 LDV.6.10 2 Symbol (+) stored in Reg. 6 34 67 13 LDV.7.13 2 Symbol (R) stored in Reg. 7 36 C6 OUT.6 1 Output (+) sign 37 C7 OUT.7 1 Output (R) 38 12 00 GTO.00 2 Go to step 00 40 93 LDA.3 1 Load Accum. from Reg. 3 41 B4 UNP.4 1 Unpack two digits 42 C4 OUT.4 1 Output 1st digit from Reg. 4 43 C5 OUT.5 1 Output 2nd digit from Reg. 5 44 66 0C LDV.6.0C 2 A blank is stored in Reg. 6 46 67 0C LDV.7.0C 2 A blank is stored in Reg. 7 48 C6 OUT.6 1 Output blank 49 C7 OUT.7 1 Output blank 50 12 00 GTO.00 2 Branch to step 00 --- -(page 62) Area Problems Using "Go to Subroutine" and "Return" This program gives you an example of how and when to use the instructions "Go to Subroutine" and "Return". A "Go to Subroutine" instruction tells the computer to branch to a specific program step which contains an operation you may wish to use several times in one program. You can use the same operation several times without having to rewrite it. When writing a program using this instruction, the next program step after the "Go to Subroutine" instruction must be reserved for returning from the Subroutine. A program having a "Go to Subroutine" instruction must have a "Return from Subroutine" instruction as well. After you enter this program, you will be able to find the area of a rectangle or the area of a triangle. First, enter the base measurement - then, enter the height measurement. Press 1 to find the area of a rectangle. (Base X Height = Area). Press 2 to find the area of a triangle. (Base X Height / 2 = Area). Before entering this program, refer to the program on pages 69 and 70 while we explain how it works. Program steps 00 through 08 will be the same for both problems. (00 through 08) Step 08 programs your selection of 1) rectangle area problem, or 2) triangle area problem to be loaded into the Accumulator. First, we'll see what happens when 1 is loaded into the Accumulator. (09 and 10) Steps 09 and 10 instruct the computer to branch to Program step 13 if the Accumulator (which contains 01) equals the contents of Register 1 (which is 01). If we had entered a 2, the computer would have proceeded from Program step 08 to Program steps 11 and 12. (13 and 14) Program steps 13 and 14 instruct the computer to go to step 66 which starts the multiplication subroutine. (Base X Height = Area of Rectangle) (66) Program step 66 loads the Accumulator with the contents of Register 3 which contains the base (Step 06). We'll use 8 as our example of the base measurement. (67) Program step 67 adds the contents of Register 3 (which contains the base measurement of 8 in our example) to the contents of the Accumulator which now also contains 8. (68) The contents of the Accumulator (8+8 = 16) are stored in Register 5. (69) The Accumulator is loaded with the contents of Register 4 which contains the height. We'll use 3 as our example. This data was entered into Register 4 in Program step 07. (70) In Program step 70, the Accumulator is decremented by 1. (Remember, in multiplying, the multiplier is decremented by 1 with each addition operation until the multiplier equals 01). (71) The contents of the Accumulator (now 2) are loaded into Register 4. (72 through 73) These instructions tell the computer to branch to Program step 77 if the contents of the Accumulator are equal to the contents of Register 1. (Register 1 = 01). This was accomplished in Program step 02. (74) If the Accumulator does not equal 01 at Program step 72, the Accumulator will move to Program step 75 and be loaded from Register 6 which contains 16. (75 and 76) Go to step 67. The addition process is repeated until the amount in the Accumulator is equal to the value of Register 1. When this condition is achieved, the computer will branch to Program step 77 as instructed by Program steps 72 and 73. (77) The Accumulator is loaded from Register 5. (Register 5 now equals 24 which is the answer.) (78) Program step 78 instructs the computer to return from subroutine. This returns the computer to program step 15 which unpacks the contents of Register 5. Program steps 16 and 17 output the answer to the screen. Program step 18 tells the computer to go to the blanking operation at program step 58. Program steps 58 through 63 output blank spaces that erase the old problem and make room for a new one. Program step 64 tells the computer to return to step 00 and to get ready to solve a new problem. Now, we'll see how this program computes the area of a triangle (Base X Height / 2 = Area of Triangle) For our example, we'll use 6 as the base and 2 as the height. This time we will choose 2 (triangle routine) at Program step 08 to load into the Accumulator. Since Program steps 09 and 10 do not apply, the computer will jump to Program step 11. Program step 11 instructs the Odyssey2 to branch to program step 20 for the triangle routine. Program 20 instructs the Odyssey2 to branch to step 66 for the multiply routine. Program steps 66 through 75 perform the addition operations and continue to loop until the Accumulator equals Register 1 (01). Then the Odyssey2 branches to step 77. Program step 77 loads the Accumulator with Register 5, which holds the answer for B * H or 6 * 2 = 12. We must now divide this answer by 2 to find the area of a triangle. Program step 78 instructs Odyssey2 to return to the program step immediately following the subroutine from which it branched originally. Program step 22 - a pause is implemented. Program step 23 stores Accumulator (which contains 12) in Register 3. This now becomes the dividend. Program steps 24 and 25 load Register 4 with 02; this becomes the divisor. Program steps 26 and 27 load Register 7 with 00. This is the initialization operation, since this Register will hold the sum of the subtraction operations. ("Initialization" was first introduced at the beginning of the One Digit Division Program.) Program step 28 loads Accumulator from Register 4 (which contains the divisor, 2). Program step 29 subtracts Accumulator from Register 3 (which contains the dividend, 12). Program step 30 stores the difference (12 - 2 = 10) in Register 3; Register 3 = 10. Program step 31 loads Accumulator from Register 7; Register 7 = 00. Program step 32 adds one to the Accumulator. Remember, this is done to keep track of the number of times we subtract the divisor from the dividend. Program step 33 stores sum in Register 7; Register 7 = 01. Program step 34 loads Accumulator from Register 3; Register 3 = 10, dividend. Program steps 35 and 36 order a branch to step 54 if Accumulator equals 00. Program step 37 loads Accumulator from Register 4; Register 4 = 2, divisor. Program steps 38 and 39 branch to step 42 if Register 3 is less than the Accumulator. Program step 40. If the Odyssey2 has not branched at this point to another step number, this instruction loops the Odyssey2 back to Program step 29, so that additional subtraction operations can be performed. At Program step 35, the computer, after completing the subtraction operations so that the Accumulator and Register 3 (the dividend) equal 00, branches to step 54.* At Program step 54, the Accumulator is loaded from Register 7 (which contains the number of times we subtracted the answer). Program step 55 then unpacks this answer and Program steps 56 and 57 output the answer to the screen. Blanks are outputted, since in this example there is no remainder, and at step 64, the Odyssey2 is instructed to return to Program step 00 in preparation for a new problem. Now you're ready to enter the program into your Odyssey2. Be sure to turn the power off and on to erase any previous data. *Note: If there had been a remainder, the computer would have branched at Program step 38 to step 42 and when the answer was unpacked and displayed on the screen, a (+R) would also have been displayed. "Go to Subroutine" and "Return" Hex Assembler Step Code Code Byte Remarks 00 6B 00 LDV.B.00 2 Reg. B = 00 (positioning) 02 61 01 LDV.1.01 2 Area of rectangle - select (1) 04 62 02 LDV.2.02 2 Area of triangle - select (2) 06 73 INP.3 1 Input value (base) to Reg. 3 07 74 INP.4 1 Input value (height) to Reg. 4 08 04 INA 1 Select 1 or 2 09 31 13 BEQ.1.13 2 Go to rectangle routine 11 32 20 BEQ.2.20 2 Go to triangle routine 13 14 66 GTS.66 2 Go to multiply subroutine 15 B5 UNP.5 1 Unpack Reg. 5 and 6 16 C5 OUT.5 1 Output 1st digit 17 C6 OUT.6 1 Output 2nd digit 18 12 58 GTO.58 2 Go to blanking operation 20 14 66 GTS.66 2 Go to multiply subroutine 22 00 NOP 1 No operation (pause) 23 A3 STO.3 1 Store Accum. in Reg. 3 24 64 02 LDV.4.02 2 Load Reg. 4 with 02 26 67 00 LDV.7.00 2 Load Reg. 7 with 00 28 94 LDA.4 1 Load Accum. from Reg. 4 29 D3 SUB.3 1 Subtract Accum. from Reg. 3 30 A3 STO.3 1 Store difference in Reg. 3 31 97 LDA.7 1 Load Accum. from Reg. 7 32 03 INC 1 Add one to Accum. 33 A7 STO.7 1 Store sum in Reg. 7 34 93 LDA.3 1 Load Accum. from Reg. 3 35 13 54 BRZ.54 2 Branch to step 54 if A = 0 37 94 LDA.4 1 Load Accum. from Reg. 4 38 53 42 BLS.3.42 2 Branch to step 42 if Reg. 3 is less than Accum. 40 12 29 GTO.29 2 Go to step 29 42 97 LDA.7 1 Load Accum. from Reg. 7 43 B8 UNP.8 1 Unpack Reg. 8 and Reg. 9 44 C8 OUT.8 1 Output 1st digit 45 C9 OUT.9 1 Output 2nd digit 46 6E 10 LDV.E.10 2 Load Reg. E with Symbol (+) 48 6F 13 LDV.F.13 2 Load Reg. F with Symbol (R) 50 CE OUT.E 1 Output (+) 51 CF OUT.F 1 Output (R) 52 12 58 GTO.58 2 Go to step 58 54 97 LDA.7 1 Load Accum. from Reg. 7 55 B8 UNP.8 1 Unpack Reg. 8 and Reg. 9 56 C8 OUT.8 1 Output 1st digit 57 C9 OUT.9 1 Output 2nd digit 58 6E 0C LDV.E.0C 2 Load Reg. E with a blank 60 6F 0C LDV.F.0C 2 Load Reg. F with a blank 62 CE OUT.E 1 Output blank 63 CF OUT.F 1 Output blank 64 12 00 GTO.00 2 Go to step 00 66 93 LDA.3 1 Load Accum. from Reg. 3 67 E3 ADD.3 1 Add Reg. 3 to Accum. 68 A5 STO.5 1 Store Accum. in Reg. 5 69 94 LDA.4 1 Load Accum. from Reg. 4 70 02 DEC 1 Decrement Accum. by 1 71 A4 STO.4 1 Store Accum. in Reg. 4 72 31 77 BEQ.1.77 2 If Accum. = Reg.1, Branch to step 77 74 95 LDA.5 1 Load Accum. from Reg. 5 75 12 67 GTO.67 2 Go to step 67 77 95 LDA.5 1 Load Accum. from Reg. 5 78 07 RET 1 Return to subroutine --- -(page 71) One Digit Addition Flash Card When you enter this program, a Flash Card addition game will appear on your television set. An unsolved addition problem flashes on the screen. You enter the solution through the keyboard. If the answer is less than 10, preface the number with a 0. This program is different from the Flash Card game which is already programmed in the computer. In this program, the old problem is erased automatically and a new problem is displayed on the screen. There is also a rather interesting reward for entering the correct answer. Program steps 45 through 61 input a computerized musical comedy production number. Program steps 70 through 78 are the rests (pauses) in the melody. Program step 26 is a packing operation. The data from Register 3 and Register 4 is combined and loaded into the Accumulator. Program steps 62 through 69 reset Register B to 00 so that it's ready for the next problem. One Digit Addition Flash Card Hex Assembler Step Code Code Byte Remarks 00 6A 0C LDV.A.0C 2 Load a blank into Reg. A 02 68 10 LDV.8.10 2 Load a (+) sign into Reg. 8 04 69 2B LDV.9.2B 2 Load an (=) sign into Reg. 9 06 6C 2D LDV.C.2D 2 Load (N) into Reg. C 08 6D 17 LDV.D.17 2 Load (O) into Reg. D 10 08 RND 1 Load Accum. with random number 11 B0 UNP.0 1 Separate digits 12 6B 00 LDV.B.00 2 Set output position 14 C0 OUT.0 1 Output first digit. 15 C8 OUT.8 1 Output (+) sign 16 C1 OUT.1 1 Output second digit 17 00 NOP 1 A no operation instruction must follow every third output instruction in a row 18 C9 OUT.9 1 Output (=) sign 19 90 LDA.0 1 Load Accum. from Reg. 0 20 E1 ADD.1 1 Add Reg. to the Accum. 21 A2 STO.2 1 Store sum in Reg. 2 22 73 INP.3 1 Input first digit guess 23 C3 OUT.3 1 Output first digit guess 24 74 INP.4 1 Input second digit guess 25 C4 OUT.4 1 Output second digit guess 26 83 PAK.3 1 Combine digits. This is a packing operation 27 CA OUT.A 1 Output blank 28 32 45 BEQ.2.45 2 If correct guess... buzz 30 CC OUT.C 1 Output (N) 31 CD OUT.D 1 Output (O) 32 6B 04 LDV.B.04 2 Set output position to 04 34 73 INP.3 1 Input first number of second guess 35 C3 OUT.3 1 Output first number 36 CA OUT.A 1 Output blank 37 CA OUT.A 1 Output blank 38 00 NOP 1 No operation 39 CA OUT.A 1 Output blank 40 CA OUT.A 1 Output blank 41 6B 05 LDV.B.05 2 Set output position to 05 43 12 24 GTO.24 2 Go to step 24 45 05 SIG 1 Buzz 46 14 70 GTS.70 2 No Sound 48 05 SIG 1 Buzz 49 05 SIG 1 Buzz 50 05 SIG 1 Buzz 51 14 70 GTS.70 2 No sound 53 05 SIG 1 Buzz 54 14 70 GTS.70 2 No sound 56 14 70 GTS.70 2 No sound 58 05 SIG 1 No sound 59 14 70 GTS.70 2 No sound 61 05 SIG 1 Buzz 62 6B 00 LDV.B.00 2 Set position to 00 64 CA OUT.A 1 Output blank 65 9B LDA.B 1 Load Accum. from Reg. B 66 13 10 BRZ.10 2 If Accum. = 0, the computer branches to step 10 68 12 64 GTO.64 2 Go to step 64 70 67 00 LDV.7.00 2 Load Reg. 7 with 00 72 6E 75 LDV.E.75 2 Load Reg. E with 75 74 9E LDA.E 1 Load Accum. from Reg. E 75 00 NOP 1 No operation 76 02 DEC 1 Subtract 1 from Accum. 77 27 75 BNE.7.75 2 Branch if Accum. is not = to Reg. 7 which contains 00 79 07 RET 1 Return from subroutine --- -(page 74) Three Ways to Enter and Output a Letter These three sample programs are presented to show you the three different instructions which can be used to input and output a letter on the screen. For the first example, we have chosen to input and display the letter "H" or 1D in HEX Code. With this type of program, whatever is loaded into the register and is outputted to the screen will remain on the screen. You cannot change it. With this program, you could enter a complete message and have it remain on the screen. The second example uses the instructions, "Input to a Register" and "Output from a Register," but does not designate any particular value. Thus, once the program is entered, any value can be entered and it will be displayed on the screen. The third example is similar to the second in that any value may be entered, but it is inputted to the Accumulator rather than to a register. You will note, in all three examples, the last instruction was "Input to a Register" which was used as a pause since no output instruction was indicated, thus only one keyboard depression could be made. Now, try this - using example two or three, program the appropriate instruction sets in order to create a loop so that all 11 positions on the screen may be used. (Hint! Refer back to the addition programs. Check to see how they let you keep entering one problem after another by returning to a previous program step.) Three Ways to Enter and Output a Letter (For this example, use "H") Hex Assembler Step Code Code Byte Remarks A 00 6B 00 LDV.B.00 2 Positioning 02 60 1D LDV.0.1D 2 Load Reg. 0 with H 04 C0 OUT.0 1 Output Reg. 0 = H 05 71 INP.1 1 Input to Reg. 1 (used as pause) B 00 6B 00 LDV.B.00 2 Positioning 02 70 INP.0 1 Input Reg. 0 03 C0 OUT.0 1 Output Reg. 0 04 71 INP.1 1 Input Reg. 1 (pause) C 00 6B 00 LDV.B.00 1 Positioning 02 04 INA 1 Input Accum. 03 0B OTA 1 Output Accum. 04 71 INP.1 1 Input Reg. 1 (pause) --- -(page 76) Six Letter Guess After being entered, this program allows you to enter a six letter word into the Odyssey2. Six dots appear on the screen and your opponent enters a letter. If it is used in the word, it appears on the screen in the correct position. If the letter does not appear in the word, nothing happens. Let's look at some of the program steps in detail: Program step 00 used as a flag or reference position. 01 is loaded into Register 7. 01 was chosen rather than 00 because 01 can only mean the decimal number 1 and nothing else, while 00 can be a number or the instruction "No Operation." Program steps 04, 05, and 06 input 1st letter into Register 9, load a dot into Register 1, output Register 1 to screen. This is an initialization process and steps 07 through 27 are the same. This is done so that the six dots appear on the screen when the word is first inputted. Note the Register Use column. Program steps 28 through 37 position Odyssey2 to 00 each time a guess is taken and output to the screen either the correct letter guessed or a dot. Program steps 38 and 39 instruct Odyssey2 to return to 00 if Accumulator equals the contents of Register 7. The computer is now ready for a new game. (Note: This is a flag or reference point.) Program step 40 inputs a guess to the Accumulator. It is compared to each register in Program steps 41 through 52. Program steps 53 and 54 instruct Odyssey2 to go to Program step 71 if a letter in the word is missing. Program steps 71 and 72 load Register 8 with a dot. Program step 73 loads the Accumulator from Register 8. Program steps 74 through 85 instruct Odyssey2 to branch to Program step 28 if any register (1 through 6) is equal to the Accumulator (in other words, if the register still remains a dot.) Program steps 86 and 87 load Register 7 with a 2B (=). This is a flag.* Program step 88 loads the Accumulator from Register 7. Program steps 89 and 90 sound the buzz which indicates the word has been displayed correctly. Program steps 91 and 92 instruct Odyssey2 to go to step 28 for positioning. Program steps 28 through 37 display word on screen. Program steps 38 and 39 instruct Odyssey2 to return to 00 if Accumulator = Register 7. Program step 00 loads Register with 01 and game continues. * Note: the 2B (=) sign was used as a flag in this instance: however, any sign could have been used instead. Six Letter Guess Hex Assembler Step Code Code Byte Remarks [Register/Use] 00 67 01 LDV.7.01 2 Reg.7 is loaded with [01] reference position (flag) 02 6B 00 LDV.B.00 2 Positioning [1-1st dot] 04 79 INP.9 1 Input 1st letter [2-2nd dot] 05 61 27 LDV.1.27 2 Read 1st dot [3-3rd dot] 07 C1 OUT.1 1 1st dot on screen [4-4th dot] 08 7A INP.A 1 Input 2nd letter [5-5th dot] 09 62 27 LDV.2.27 2 Read 2nd dot [6-6th dot] 11 C2 OUT.2 1 2nd dot on screen [7-01 (flag)] 12 7C INP.C 1 Input 3rd letter [8-7th dot] 13 63 27 LDV.3.27 2 Read 3rd dot [9-1st letter] 15 C3 OUT.3 1 3rd dot on screen [A-2nd letter] 16 7D INP.D 1 Input 4th letter [B-Positioning] 17 64 27 LDV.4.27 2 Read 4th dot [C-3rd letter] 19 C4 OUT.4 1 4th dot on screen [D-4th letter] 20 7E INP.E 1 Input 5th letter [E-5th letter] 21 65 27 LDV.5.27 2 Read 5th dot [F-6th letter] 23 C5 OUT.5 1 5th dot on screen 24 7F INP.F 1 Input 6th letter 25 66 27 LDV.6.27 2 Read 6th dot 27 C6 OUT.6 1 6th dot on screen 28 6B 00 LDV.B.00 2 Position on screen 30 C1 OUT.1 1 Put dots on screen 31 C2 OUT.2 1 Put dots on screen 32 C3 OUT.3 1 Put dots on screen 33 00 NOP 1 No operation 34 C4 OUT.4 1 Put dots on screen 35 C5 OUT.5 1 Put dots on screen 36 C6 OUT.6 1 Put dots on screen 37 00 NOP 1 No operation 38 37 00 BEQ.7.00 2 Reset 40 04 INA 1 Input guess to Accum. 41 39 55 BEQ.9.55 2 Letter in word 43 3A 58 BEQ.A.58 2 Letter in word 45 3C 61 BEQ.C.61 2 Letter in word 47 3D 64 BEQ.D.64 2 Letter in word 49 3E 67 BEQ.E.67 2 Letter in word 51 3F 70 BEQ.F.70 2 Letter in word 53 12 71 GTO.71 2 Wrong guess 55 A1 STO.1 1 1st letter correct 56 12 43 GTO.43 2 Check next position 58 A2 STO.2 1 2nd letter correct 59 12 45 GTO.45 2 Check next position 61 A3 STO.3 1 3rd letter correct 62 12 47 GTO.47 2 Check next position 64 A4 STO.4 1 4th letter correct 65 12 49 GTO.49 2 Check next position 67 A5 STO.5 1 5th letter correct 68 12 51 GTO.51 2 Check next position 70 A6 STO.6 1 6th letter correct 71 68 27 LDV.8.27 2 Load Reg. 8 with dot 73 98 LDA.8 1 Accum. is loaded from Reg. 8 which contains a dot 74 31 28 BEQ.1.28 2 Position (Step 28) 76 32 28 BEQ.2.28 2 Position (Step 28) 78 33 28 BEQ.3.28 2 Position (Step 28) 80 34 28 BEQ.4.28 2 Position (Step 28) 82 35 28 BEQ.5.28 2 Position (Step 28) 84 36 28 BEQ.6.28 2 Position (Step 28) 86 67 2B LDV.7.2B 2 Set flag to (=) 88 97 LDA.7 1 Accum. loaded from Reg. 7 which contains 01 89 05 SIG 1 90 05 SIG 1 91 12 28 GTO.28 2 Positioning --- -(page 80) Message After being entered, this program allows you to press any number between 1 and 6 to call a programmed message to the screen. In the program as it is written, we have entered six messages. After studying the program, you can enter your own messages. You will note the first Program steps, 00 and 01, are load a value into Register 0 and the value is 90. You will note that Program step 90 is the "No Operation" instruction after the last message, and that program steps 91 through 96 are a relocation table. The Hex Code at each of the program steps is the first program step number of each of the messages. It is this first instruction, "load a value into Register 0 and the value is 90" which allows you to select any number between 1 and 6 to call a message to the screen. Let's look at a few of the other instructions in the program. Program steps 02 and 03 load Register 1 with 0C (blank). This blank will be used as the space between words in messages which have more than one word. Program step 04 inputs to the Accumulator; you may select 1, 2, 3, 4, 5, 6, on the keyboard in order to call to the screen any one of six messages and whichever you choose will be inputted to the Accumulator. Program step 05 - add Register 0 to Accumulator. In other words, if we had chosen number 2, the contents of Register 0 (which are 90) are added to the Accumulator (which is 2), thus 92 is now in the Accumulator. Program step 06 - store Accumulator in Register C; Register C now equals 92. Program step 07 - Register C moves the program counter to Program step 92, and the contents at Program step 92 (which are 36) are loaded into the Accumulator. This is the "Move" instruction or "Load Accumulator from a program step." Register C is always used with this instruction. Program step 08 - Store Accumulator (36) in Register C; C now equals 36. Program steps 09 and 10 load Register B (positioning) with the value 00 (the furthest left position). Program steps 11 and 12 load Register 2 with the number 11 (the number of positions on the screen). Program steps 13 and 14 load Register 3 with 00 to be used as a reference. Program step 15 - load the Accumulator from Register 1; Register 1 equals a blank. This begins the loop which erases an old message from the screen in preparation for a new message. You will note program steps 15 through 21, load the Accumulator with a blank, output the blank, load the Accumulator from Register 2 (11), decrement the Accumulator by 1, store the result in Register 2, and the Odyssey2 branches to step 15 if the Accumulator is not equal to Register 3 (00). Remember, when erasing, each of the 11 positions must be filled with a blank. Program steps 22 and 23 load Register B with 00 (furthest left position). This is used to position Register B in preparation for a new message. Program step 24 takes the contents of Register C (36), moves to that program step (36) and loads the contents at that program step (14) into the Accumulator. Program steps 25 and 26: If the Accumulator equals 00 at this point, the Odyssey2 would branch to Program step 04, and prepare itself for a new message. If the Accumulator contains a value (as in this example, it contains 14), then the Odyssey2 steps to Program step 27. Program step 27 outputs the contents of the Accumulator to the screen; a "T" appears. Refer to your Hex Code chart. Program steps 28 and 29 instruct Odyssey2 to go to step 24 and loop through the previous instructions to display message.* When the message is completed (note at the end of each message, there is a no operation instruction, 00), and the Odyssey2 steps to Program step 25, the Accumulator will be equal to Register 3 (00), and the Odyssey2 will branch to Program step 04 in preparation for a new message. *Note: When repeating the loop at Program step 24, the contents of Register C remain the same (36); however, the program counter increments by one each time so that the appropriate program step is reached. Hex Assembler Step Code Code Byte Remarks [Register/Use] 00 60 90 LDV.0.90 2 Location table [0-90] 02 61 0C LDV.1.0C 2 A blank is loaded into Reg.1 [1-0C (blank)] 04 04 INA 1 Press 1,2,3,4,5, or 6 [2-0B (11)] 05 E0 ADD.0 1 Add Reg. 0 to Accum. [3-00] 06 AC STO.C 1 Contents of Accum. are stored in Reg. C [4] 07 09 MOV 1 Accum. is loaded with contents of Reg.C which is a program step number [5] 08