Think Fast II (Revision 1) Written by mjhayes@cs.buffalo.edu September 1, 1997 This program does not use graphics, so you can use any cartridge. At the beginning, the screen will fill in light blue. The game begins when this is finished. A box appears in the top left corner. Use the table below and hold the button on the keypad that matches the color of the box. Keep holding the button until the next box appears. If you fail to do so, the game will end. After the entire screen fills up with boxes, you will advance to the next level. Finish all ten levels to beat the game. Just for fun, try all kinds of different things to find hidden secrets. Here is the lookup table for the box colors->keypad button. Black= 0 Blue= 1 Brown= Enter Dark Green= 4 Green= 5 Grey= 8 Light Blue= 9 Orange= Clear Red= 2 Tan= 3 White= 7 Yellow= 6 10 FM(1)=0 ; One number will be displayed in one line, in regular notation, with zero places to the right of the decimal point. 20 FM(4)=3 ; The text will be displayed in tan. 30 E=14 40 L=65535 50 V=15 ; The values of E, L, and V are used to produce that awful background noise. 60 SET A$="YOU HAVE JUST FOUND" 70 SET B$="SIDE BUTTONS ON THE" 80 SET C$="YOU HOLD ONE OF THE" ; Pre-define text to save memory. RUN 10 F=0 ; Reset the level counter. 20 CALL HUSH ; Shut that noise off! 30 CLR 40 FOR C=0 TO 5 50 P=RN(0)*9+RN(0) ; Randomly determine pitch of the notes. 60 CALL HAND ; Poll the left hand controller. 70 CALL ENVT 80 IF(A>0)CALL ENVN ; Easter egg -- holding an action button munges the background sound. 90 NEXT C 100 IF(F>9)GOTO 310 ; Was the last level completed? 110 FOR B=0 TO 239 120 BK(B)=13 ; Fill the screen with light blue boxes. 130 NEXT B 140 FOR B=1 TO 239 ; Main game loop{ 150 D=RN(0) 160 IF(D>11)D=D-12 170 IF(D>11)GOTO 160 ; Randomly determine color of next box. 180 BK(B)=D ; Color the next box. 190 A=F*5 200 FOR C=A TO 50 210 NEXT C ; Time delay, smaller for higher levels. 220 CALL HAND ; Poll left hand controller. 230 IF(H=D)GOTO 280 ; Is the user pressing the correct keypad button? 240 PRIN "GAME OVER. SCORE:",F*240+B 250 FOR F=0 TO 99 260 NEXT F ; Time delay. 270 GOTO 10 ; New game. 280 NEXT B ; } 290 F=F+1 ; Increment the level counter. 300 GOTO 20 ; Begin next level. 310 CALL HUSH 320 CLR 330 PRIN "CONGRATULATIONS." 340 CALL HAND 350 FM(4)=A ; Holding any action key will make the Easter egg text appear. 360 IF(A=0)FM(4)=5 ; I never thought I'd find a use for FM(4)=5 370 PRIN "SECRET COMMAND; IF" 380 PUT C$ 390 PUT B$ 400 PRIN "LEFT CONTROLLER AT" 410 PRIN "THE BEGINNING OF A" 420 PRIN "LEVEL, YOU WILL" 430 PRIN "HEAR A STRANGE(R)" 440 PRIN "BACKGROUND NOISE." 450 FM(4)=0 ; Make the text black. 460 CALL HAND 470 IF(H<111)GOTO 250 480 IF(A<3)GOTO 250 ; Another Easter egg -- holding the lower right button and pressing and releasing Enter will reveal the Sound Editing Program. 490 CLR 500 PUT A$ ; The rest is self-explanatory. 510 PRIN "THE SOUND EDITING" 520 PRIN "PROGRAM. " 530 PRIN "TYPE A # FROM 1-4." 540 PRIN "1-TONE, 2-NOISE," 550 PRIN "3-ENVELOPE TONE," 560 PRIN "4-ENVELOPE NOISE." 570 INPU A 580 IF(A=2)GOTO 700 590 IF(A=3)GOTO 750 600 IF(A>3)GOT0 820 610 PRIN "INPUT VOLUME (0-15)" 620 PRIN "AND PITCH (0-4095)." 630 INPU V,P 640 CALL TONE 650 PRIN "HIT RTN WHEN READY." 660 INPU A 670 CLR 680 CALL HUSH 690 GOTO 530 700 PRIN "INPUT VOLUME (0-15)" 710 PRIN "AND PITCH (0-31)." 720 INPUT V,P 730 CALL NOIS 740 GOTO 650 750 PRIN "TYPE PITCH (0-4095)" 760 PRIN "LENGTH (0-65535)," 770 PRIN "AND ENVELOPE (0,4,8,10-14)." 780 INPU P,L,E 790 IF(A=3)CALL ENVT 800 IF(A>3)CALL ENVN 810 GOTO 650 820 PRIN "INPUT PITCH (0-31)." 830 GOTO 760