10 REM FIRESHOW 20 REM BY KEN FAGER 30 REM HTTP://WWW.KENFAGER.COM 40 REM CREATIVE COMMONS LICENSE 50 REM CHANGE ANYTHING 60 REM LET ME KNOW! 70 REM RETRO CHALLENGE 2009 80 REM HTTP://RETROCHALLENGE.NET 100 REM TITLE SCREEN 101 TEXT 102 HOME 105 VTAB 10 110 PRINT TAB( 9)"------ FIRESHOW ------" 111 PRINT 115 VTAB (12) 116 PRINT TAB( 9)"------ APPLE ][ ------" 120 VTAB 22 125 PRINT TAB( 13)"KEN FAGER 2009" 150 REM LOAD FIREW SHAPE TABLE 160 D$ = CHR$ (4) 165 SH = 25000 170 PRINT D$;"BLOAD FIREW,A";SH 175 REM SAVE INTO MEMORY 180 POKE 232,SH - INT (SH / 256) * 256 185 POKE 233, INT (SH / 256) 190 REM TITLE SCREEN PAUSE 195 FOR TITLESCREEN = 0 TO 5000: NEXT TITLESCREEN 200 REM ADDITIONAL SETUP 300 REM GET NUMBER OF FIREWORKS TO SHOW 301 TEXT 302 HOME 305 VTAB 12 310 INPUT "HOW MANY FIREWORKS? (1-99): ";FIRENUM$ 320 IF (( LEN (FIRENUM$)) > 2) THEN GOTO 300 325 FIRENUM = VAL (FIRENUM$) 330 IF (FIRENUM < 1) OR (FIRENUM > 99) THEN GOTO 300 390 COUNTER = 0: REM KEEPS TRACK OF HOW MANY FIREWORKS ARE SHOT OFF 400 REM SPEED OF THE SHOW 405 REM IMPLIMENT IN NEXT VERSION 500 REM SET SOUND 501 TEXT 502 HOME 510 VTAB 12 520 INPUT "DO YOU WANT SOUND? (Y/N): ";SOUND$ 530 IF (SOUND$ < > "Y") AND (SOUND$ < > "N") THEN GOTO 500 540 IF (SOUND$ = "Y") THEN SOUND = 1 550 IF (SOUND$ = "N") THEN SOUND = 0 590 REM CLEAR OUT TEXT SCREEN 595 TEXT : HOME 800 REM DRAW BACKGROUND 805 REM DRAW GROUND 810 HGR2 820 HCOLOR= 1 830 FOR ERDE = 171 TO 190 840 HPLOT 1,ERDE TO 278,ERDE 845 NEXT ERDE 850 REM DRAW LAUNCHPAD 855 HCOLOR= 3 860 FOR LAUNCHPAD = 171 TO 176 865 HPLOT 134,LAUNCHPAD TO 144,LAUNCHPAD 870 NEXT LAUNCHPAD 900 REM THE UNNECESSARY RIVER! 905 HCOLOR= 6 910 FOR RIVER = 0 TO 19 915 HPLOT 35,(RIVER + 171) TO 55,(RIVER + 171) 920 NEXT RIVER 1000 REM PREPARE THE SHOW 1010 COUNTER = COUNTER + 1 2000 REM LAUNCH SEQUENCE ANIM. 2100 REM CALCULATE TARGET 2110 TGT = INT (5 * RND (1)) + 1 2120 REM SET DETONATION POINT 2130 IF (TGT = 1) THEN DETPX = 69 2131 IF (TGT = 2) THEN DETPX = 99 2132 IF (TGT = 3) THEN DETPX = 139 2133 IF (TGT = 4) THEN DETPX = 179 2134 IF (TGT = 5) THEN DETPX = 209 2200 REM FLASH FIREWORK 2210 FOR FLSH = 1 TO 10 2220 HCOLOR= 5 2221 HPLOT 139,170 2222 FOR SPARK = 1 TO 100 2223 NEXT SPARK 2225 HCOLOR= 3 2226 HPLOT 139,170 2227 FOR SPARKY = 1 TO 100 2228 NEXT SPARKY 2230 NEXT FLSH 2235 HCOLOR= 0 2236 HPLOT 139,170 2300 REM LAUNCH INTO AIR 2305 REM ANIMATE FIRELINE 2310 HCOLOR= 5 2315 HPLOT 139,170 2320 HPLOT TO DETPX,70 2330 FOR SHOTDLY = 0 TO 100: NEXT SHOTDLY 2350 REM CLEANUP FIRELINE 2355 HCOLOR= 0 2360 HPLOT 139,170 2370 HPLOT TO DETPX,70 2400 REM SELECT WHICH FIREWORK 2405 REM MODIFY 2410 IF FIREW SHAPE TABLE IS MODIFIED LATER 2410 CHOOSEFIRE = INT (4 * RND (1)) + 1 2500 REM SOUND ROUTINE 2520 IF SOUND = 0 THEN GOTO 2590 2525 FOR SOUNDLOOP = 1 TO 25 2530 BOOM = ( PEEK ( - 16336) * 4) 2535 NEXT SOUNDLOOP 2590 REM WHEN SOUND IS OFF, 2620 JUMPS HERE 2600 REM KABOOM ANIMATION 2610 SCALE= 1: ROT= 0: REM INITIALIZE 2620 FOR KABOOM = 1 TO 3 2625 SCALE= KABOOM 2630 XDRAW CHOOSEFIRE AT DETPX,70 2640 FOR WARTEN = 0 TO 50: NEXT WARTEN 2650 XDRAW CHOOSEFIRE AT DETPX,70 2660 NEXT KABOOM 8000 REM CHECK TO SEE IF SHOW IS DONE 8050 IF (COUNTER < FIRENUM) THEN GOTO 1000 8060 IF (COUNTER = FIRENUM) THEN GOTO 9000 9000 REM SETUP NEXT SHOW 9010 FOR HALT = 0 TO 5000: NEXT HALT 9020 GOTO 200: REM SKIPS THE TITLE SCREEN 10000 END