Compucolor.org – Virtual Media

Listing of file='BREAKO.BAS;01' on disk='vmedia/action_soundware-sector.ccvf'

100 REM              BREAKOUT
110 REM           COPYRIGHT  7-79
120 REM           CAP ELECTRONICS
130 REM 
200 PLOT 12,15,6,6,29,27,24
205 CLEAR 500
210 TM= PEEK (32940)+ PEEK (32941)* 256+ 1:POKE 32936,1
215 IF TM> 1024* 64- 8THEN LOAD "SOUND":RUN
220 IF PEEK (TM+ 179)< > 241THEN LOAD "SOUND":RUN
225 A= PEEK (32940):B= PEEK (32941)
230 POKE 33283,A+ 8:POKE 33284,B
232 H2$= "ff"
234 H3$= "bbbbbbbbbbbbbbbbbbbbbbbbbbb"
236 H4$= "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
238 H5$= "````````````````````````````````````````````````````````"
239 GOTO 250
240 PD$= "  ceeeed  "
242 IF NP= 0THEN RETURN
245 PD$= "eeeeeeeeeeeeeeeeeeeeeeeed      ceeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
246 RETURN
250 BRL= 84:OUT 8,247
260 BM= 1
300 REM     INSTRUCTIONS
305 GOSUB 500
307 C= 1:X= 4:Y= 13:H= 18:W= 56:GOSUB 64000
309 X= 6:Y= 14:PLOT 6,6
310 GOSUB 490:PRINT "THIS IS A BALL AMD PADDLE GAME";
315 GOSUB 490:GOSUB 490:PRINT "THE N KEY MOVES THE PADDLE LEFT "
317 PRINT
320 GOSUB 490:PRINT "THE . KEY MOVES THE PADDLE RIGHT";
321 PRINT
323 GOSUB 490:GOSUB 490:PRINT "THE OBJECT OF THE GAME IS TO BOUNCE THE BALL BACK"
326 GOSUB 490:PRINT "AND KNOCK THE BRICKS OUT OF  THE BARRIER.  IF  YOU"
329 GOSUB 490:PRINT "KNOCK OUT THE ENTIRE BARRIER, YOU GET MORE PLAYING"
332 GOSUB 490:PRINT "TIME WITH THE LEFTOVER BALLS."
335 GOSUB 490:GOSUB 490:PRINT "PRESS RETURN TO START THE GAME ";
338 OUT 8,255:INPUT "";KE$
340 FOR N= 1TO 15:XX= CALL (1):POKE TM,30- N:XX= CALL (0):NEXT
350 X= 6:Y= 14
355 GOSUB 490:PRINT "               BREAKTHRU MENU"
356 X= 15
358 GOSUB 490
360 GOSUB 490:PRINT "1. BREAKOUT    PADDLE      VISIBLE BALL"
361 GOSUB 490:PRINT "2.    ''         ''        INVISIBLE BALL"
364 GOSUB 490:PRINT "3.    ''       NO PADDLE   VISIBLE BALL"
367 GOSUB 490:PRINT "4.    ''         ''        INVISIBLE BALL"
370 GOSUB 490:PRINT "5. BREAKTHRU   PADDLE      VISIBLE BALL"
373 GOSUB 490:PRINT "6.    ''         ''        INVISIBLE BALL"
376 GOSUB 490:PRINT "7.    ''       NO PADDLE   VISIBLE BALL"
379 GOSUB 490:PRINT "8.    ''         ''        INVISIBLE BALL"
380 X= 6:GOSUB 490:GOSUB 490:PRINT "PRESS YOUR CHOICE ! ";
383 XX= CALL (2):YY= CALL (0):CH$= CHR$ (XX):PRINT ""CH$;"";
386 CH= VAL (CH$):IF CH= 0OR (CH> 8)THEN GOSUB 495:GOSUB 495:GOTO 380
390 PLOT 8:FOR N= 1TO 15:POKE TM,25- N:XX= CALL (0):XX= CALL (1):NEXT
395 CH= CH- 1
400 BT= 0:IB= 0:NP= 0
405 IF CHAND 4THEN BT= 1
410 IF CHAND 2THEN NP= 1
415 IF CHAND 1THEN IB= 1
420 GOSUB 240
488 GOTO 537
490 Y= Y+ 1:PLOT 3,X,Y:RETURN
495 Y= Y- 1:PLOT 3,X,Y:RETURN
499 GOTO 5000
500 REM     DRAW BOARD
510 PLOT 6,6,12,15
515 PLOT 3,1,1:PRINT H1$
517 PLOT 3,1,2:PRINT H2$
519 PLOT 27,24,27,10,3,3,3:PRINT H3$
520 PLOT 3,2,3:PRINT H3$
521 PLOT 3,60,3:PRINT H4$
522 PLOT 3,61,3:PRINT H4$:N= 7
523 PLOT 3,4,N,6,9,27,24:PRINT H5$
525 PLOT 3,4,N+ 1:PRINT H5$
527 PLOT 3,4,N+ 2,6,6:PRINT H5$
529 PLOT 3,4,N+ 3:PRINT H5$
531 PLOT 3,4,N+ 4,6,18:PRINT H5$
533 PLOT 3,4,N+ 5:PRINT H5$
535 PLOT 3,19,0:PRINT "BREAKTHRU BY SOUNDWARE"
536 RETURN
537 IF NP= 1THEN PP= 1:GOSUB 4020:GOTO 545
540 PP= 28:GOSUB 4020
545 B5= 9:OUT 8,247
600 REM  MAIN PLAY ROUTINE
601 GOSUB 4020
602 B5= B5- 1:PLOT 3,51,0:PRINT "";B5;" BALLS LEFT"
603 IF B5< = 0THEN 6000
605 BP= INT (RND (1)* 40)* 2+ 30730:BD= 126+ INT (RND (1)* 2)* 4
606 SP= 4:BH= 1:BM= 1
610 G2= 32:G1= 100:POKE BP,G1:BL= 32:K8= 127
612 REM
615 PLOT 8:PRINT "SCORE = ";SC:PRINT ""
620 BO= BP:BP= BP+ BD:CH= PEEK (BP):IF (CHAND 127)< > BLTHEN 2000
630 IF BP> 32639THEN POKE BO,G1:GOSUB 4510:POKE BO,G2:GOTO 600
640 POKE BO,G2:IF IB= 0THEN POKE BP,G1
645 IF NP= 0THEN GOSUB 4000:GOSUB 4000
650 GOTO 620
2000 REM   HIT SOMETHING
2005 IF IB= 1THEN POKE BO,G1
2010 XX= CALL (0):LR= 0:IF BDAND 8THEN LR= 1
2030 A= CHAND 7:ON A+ 1GOTO 2100,2200,2300,2400,2500,2600,2700,2800
2100 IF BT= 1THEN 2130
2110 IF BD> 0THEN BD= BD- 256:GOTO 2130
2120 BD= BD+ 256
2130 GOSUB 3000:IF BRL= 0THEN 5000
2140 GOTO 2900
2200 BD= BD- SP:GOTO 2900
2300 BD= BD+ SP:GOTO 2900
2400 IF LR= 1THEN BD= BD- 256:GOTO 2660
2410 BD= - BD
2420 GOTO 2660
2500 IF LR= 0THEN BD= BD- 256:GOTO 2660
2510 BD= - BD
2520 GOTO 2660
2600 BD= BD- 256
2660 BH= BH+ 1:IF BH> 5THEN BH= 0:GOTO 2950
2665 GOTO 2900
2670 IF BD= - 126THEN BD= - 124:GOTO 2900
2675 BD= - 132:GOTO 2900
2700 BD= - BD:GOTO 2900
2800 BD= BD+ 256
2900 BP= BO:BP= BP+ BD:CH= PEEK (BP)
2910 IF (CHAND 127)< > G2THEN 2010
2920 POKE BP,G1:GOTO 640
2950 BM= - BM:IF BM= - 1THEN SP= 8:GOTO 2670
2960 SP= 4
2975 IF BD= - 124THEN BD= - 126:GOTO 2900
2980 BD= - 130:GOTO 2900
3000 REM    REMOVE BRICKS
3010 A= BPAND 32760
3050 FOR N= ATO A+ 7STEP 2:POKE N,G2:NEXT
3055 ON PEEK (A+ 1)AND 7GOTO 3100,3300,0,0,0,3200
3060 FOR N= A+ 1TO A+ 7STEP 2:POKE N,6:NEXT
3065 BRL= BRL- 1
3070 PLOT 8:PRINT "SCORE = ";SC;""
3075 RETURN
3100 SC= SC+ 50:GOTO 3060
3200 SC= SC+ 25:GOTO 3060
3300 SC= SC+ 5:GOTO 3060
4000 REM    KEY CHECKER
4005 OUT 7,1
4010 KE= INP (1):IF KE= 255THEN RETURN
4020 IF KE= 253THEN PP= PP- 2:GOTO 4060
4030 IF KE= 254THEN PP= PP+ 2:IF PP> 55THEN PP= 55
4040 GOTO 4070
4060 IF PP< 0THEN PP= 0
4070 PLOT 3,127,PP,30,1:PRINT PD$
4075 PLOT 3,64,0
4080 RETURN
4500 REM    SOUNDS
4510 POKE TM,25:XX= CALL (0):RETURN
5000 REM    GOT ALL THE BRICKS
5005 PLOT 27,11,8
5007 PLOT 3,0,3,6,6
5020 PLOT 3,5,15
5025 PRINT "WAY TO GO CHAMP--KEEP GOING, YOU HAVE ";B5;" BALLS LEFT"
5030 FOR N= 1TO 2000:NEXT
5040 BRL= 84
5090 GOSUB 500:GOTO 600
6000 REM  GAME END
6020 PLOT 3,15,15
6025 PRINT "YOU GOT ";SC;" POINTS--PLAY AGAIN ? ";
6030 OUT 8,255:XX= CALL (2):CH$= CHR$ (XX)
6035 PRINT "";CH$;""
6037 SC= 0
6040 IF CH$= "Y"THEN 250
6080 PLOT 27,11,15,6,6
6090 LOAD "MENU":RUN
64000 REM        SCROLLING ROUTINE
64010 DA= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 64100
64015 DA= 128- W- W:AD= TM+ 149:GOSUB 64100
64020 POKE TM+ 129,H- 1:POKE TM+ 131,W* (C+ 1)
64030 POKE TM+ 143,35* (1- C):RETURN
64100 Z1= INT (DA/ 256):Z2= DA- Z1* 256
64110 POKE AD,Z2:POKE AD+ 1,Z1:RETURN