Compucolor.org – Virtual Media

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

50 REM                    POPSHOT
60 REM                COPYRIGHT  7-79
70 REM                CAP ELECTRONICS
80 REM 
105 PLOT 12,15,6,6,29,27,24
110 TM= PEEK (32940)+ PEEK (32941)* 256+ 1:POKE 32936,6
115 IF TM> 64* 1024- 8THEN LOAD "SOUND":RUN
120 IF PEEK (TM+ 179)< > 241THEN LOAD "SOUND":RUN
125 A= PEEK (32940)+ 8:B= PEEK (32941)
130 POKE 33283,A:POKE 33284,B
140 TM= PEEK (32940)+ PEEK (32941)* 256+ 1
200 REM   INITIALIZATION
210 OUT 8,247
220 SC= 0:NS= 0:RO= 1:ZC= 0
225 NR= 0
235 GOSUB 900:GOSUB 700
250 PLOT 12:GOSUB 1200
260 GOSUB 400
265 OUT 8,247
300 REM     MAIN LOOP
305 PLOT 27,10
310 XX= CALL (0):FOR N= 0TO 25
315 PLOT 3,8,N:PRINT " ``` ":PLOT 8
317 AA= INP (1):IF (AA< > 255)AND (NS< 10)THEN GOSUB 600
320 NEXT
322 XX= CALL (0)
325 FOR N= 24TO 1STEP - 1
330 PLOT 3,8,N:PRINT " ``` ":PLOT 8
332 AA= INP (1):IF (AA< > 255)AND (NS< 10)THEN GOSUB 600
335 NEXT
350 IF NS< 10GOTO 305
360 GOTO 1300
400 REM  REDRAW WALL
403 GOSUB 500
405 OK= 0
407 PLOT 3,60,1:PRINT "`"
410 FOR N= 2TO 28
415 PLOT 3,60,N:IF RND (1)> .85THEN PRINT " ":OK= OK+ 1:GOTO 425
420 PRINT "`"
425 NEXT
427 PLOT 3,60,28:PRINT "`"
430 IF OK> 1THEN RETURN
435 GOTO 405
500 REM    PRINT SCORE
502 PLOT 27,24
505 PLOT 3,14,30:PRINT "";4- NR
510 PLOT 3,22,30:PRINT "    "
512 PLOT 3,22,30:PRINT "";NS
515 PLOT 3,30,30:PRINT "     "
520 PLOT 3,30,30:PRINT "";SC
525 PLOT 3,47,30:PRINT "    "
530 PLOT 3,47,30:PRINT "";ZC
540 PLOT 3,39,30:PRINT "";BR
550 PLOT 8:RETURN
600 REM   SHOT
605 PLOT 27,24:GOSUB 1030
610 PLOT 3,11,N+ 2:SC= SC- 10:NS= NS+ 1
611 ZC= ZC- 10
613 PLOT 3,9,N+ 2
615 FOR NX= 1TO 51
620 PRINT "`";:NEXT :REM 
621 HI= PEEK (28672+ 120+ (N+ 2)* 128)
622 IF HI< > 96THEN GOSUB 800
625 GOSUB 510
645 PRINT "":PLOT 3,9,N+ 2
650 FOR NX= 1TO 51
655 PRINT " ";:NEXT
675 PLOT 27,10,8
677 IF NS= 10THEN 685
680 RETURN
685 IF SC> 750THEN NR= NR- 1:BR= BR+ 1
688 SC= 0:RETURN
700 REM   INSTRUCTIONS
705 C= 1:X= 2:Y= 5:H= 26:W= 60:GOSUB 64000
710 X= 4:Y= 6:PLOT 15
712 GOSUB 792:PRINT "         S O U N D W A R E   S O F T W A R E ":GOSUB 792
719 GOSUB 792:GOSUB 792:PRINT "TRY TO HIT THE HOLES IN THE WALL."
726 GOSUB 792
730 GOSUB 792:PRINT "YOU GET 4 ROUNDS OF 10 SHOTS EACH.":GOSUB 792:GOSUB 792
733 GOSUB 792:PRINT "PRESS THE ? KEY TO FIRE.":GOSUB 792:GOSUB 792:GOSUB 792
735 GOSUB 792:PRINT "IF YOU GET MORE THAN 750 POINTS IN ANY ROUND,"
737 GOSUB 792:PRINT "YOU GET A BONUS ROUND."
740 PLOT 3,18,28:PRINT "PRESS RETURN TO START THE GAME ! ";
752 OUT 8,255:XX= CALL (2)
755 PRINT ""
788 PLOT 8:FOR N= 1TO 25:POKE TM,40- N:XX= CALL (0):XX= CALL (1):NEXT
790 C= 128:RETURN
792 Y= Y+ 1:PLOT 3,X,Y:RETURN
795 Y= Y- 2:PLOT 3,X,Y:RETURN
800 REM    HITTER
810 PRINT "`*"
815 SC= SC+ 110:ZC= ZC+ 110
817 GOSUB 500
820 POKE TM+ 2,100:POKE TM+ 4,25:POKE TM+ 5,20:POKE TM+ 6,236:XX= CALL (0)
825 PLOT 3,9,N+ 2
827 GOSUB 1030
830 FOR NX= 1TO 54
835 PRINT " ";:NEXT
840 POKE TM,10:POKE TM+ 2,100:XX= CALL (0)
850 RETURN
900 REM   DRAW GAME SUBROUTINE
920 PLOT 6,6,12,6,3,15,27,24
925 PRINT ""
930 BD$= "`````````````````````````````````````````````````````````````"
935 PLOT 3,1,0:PRINT BD$
937 PLOT 3,1,4:PRINT BD$
939 PLOT 3,1,31:PRINT BD$
941 PLOT 27,10,3,1,0:PRINT BD$
943 PLOT 3,62,0:PRINT BD$
945 PLOT 27,24,14
955 PLOT 3,22,2
956 REM
960 PRINT "P O P  S H O T"
990 RETURN
1000 REM   SOUNDS SUBROUTINES
1010 POKE TM,20:POKE TM+ 2,50:XX= CALL (0):RETURN
1020 POKE TM,100:XX= CALL (0):RETURN
1030 POKE TM,30:POKE TM+ 2,100:XX= CALL (0):RETURN
1040 POKE TM,1:POKE TM+ 2,5:POKE TM+ 4,255:POKE TM+ 5,8:XX= CALL (0):RETURN
1200 REM    DRAW ENVIRONMENT
1210 PLOT 3,0,28,27,24
1211 PRINT "";
1215 PRINT "             ROUNDS   SHOTS   ROUND   BONUS     TOTAL  "
1220 PRINT "              LEFT    FIRED   SCORE   ROUNDS    POINTS "
1225 PRINT "            a      b a     b a     b a      b a       b"
1230 PRINT "            lm lm lm lm lm"
1245 RETURN
1300 REM    GAME END
1305 NS= 0:RO= RO+ 1:NR= NR+ 1:IF NR< 4THEN 260
1307 PLOT 27,24,3,14,30:PRINT "    "
1308 PLOT 3,15,30:PRINT "0"
1310 PLOT 3,18,13
1315 PRINT "YOU GOT ";ZC;" TOTAL POINTS"
1325 PLOT 27,24:FOR N= 1TO 1000:NEXT :OUT 8,255
1346 PLOT 3,21,19:PRINT "PLAY AGAIN (Y OR N)? ";:XX= CALL (2)
1347 CH$= CHR$ (XX):PRINT CH$:IF CH$< > "Y"THEN 1390
1350 SC= 0:NS= 0:RO= 1:NR= 0:ZC= 0:BR= 0:GOTO 250
1390 OUT 8,255:PLOT 6,6,3,3,5,27,15
1395 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