Compucolor.org – Virtual Media

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

50 REM                TARGET
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,4
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
135 CLEAR 500
140 TM= PEEK (32940)+ PEEK (32941)* 256+ 1
150 GOSUB 900:GOSUB 700
200 REM   INITIALIZATION
205 A= 2:B= 126:C= 128:D= 130
210 P1$(1)= "  ``"
212 P2$(1)= "  ```"
214 P3$(1)= "  ````"
216 P4$(1)= "  `````":REM 
218 P1$(0)= "    "
220 P2$(0)= "     "
222 P3$(0)= "      "
224 P4$(0)= "       ":REM 
225 AA= 0:BB= 0:CC= 0:DD= 0:GOSUB 1405:ER$= IC$
230 AA= 1:BB= 1:CC= 1:DD= 1
250 N= 0:SC= 0:GOSUB 1405
260 P1= 32058- 128* 4
270 N= 0
300 REM     MAIN LOOP
302 POKE 33209,0
305 PLOT 6,6,12:GOSUB 1200
306 Y= 6:PO= P1
310 N= N+ 1:IF N> 55THEN PLOT 3,N,Y:PRINT ER$:N= 0:GOSUB 1400
320 OUT 8,247:PLOT 3,N,Y:PRINT IC$:PLOT 8:OUT 8,255
325 GOSUB 1100:GOSUB 550
327 POKE PO,32
330 PO= PO+ DI:IF PO< 29184THEN PO= P1:POKE 33278,54:DI= 0
335 IF (PEEK (PO)< > 32)AND DI< > 0THEN GOSUB 800
340 POKE PO,100
345 IF TT> 58THEN 1300
350 POKE PO,32:PO= PO+ DI:IF PO< 29184THEN PO= P1:POKE 33278,54:DI= 0
355 IF (PEEK (PO)< > 32)AND DI< > 0THEN GOSUB 800
360 POKE PO,100:GOTO 310
400 REM   RESTART OR END
500 REM   PRINT SCORE
505 OUT 8,247
510 PLOT 3,4,28
520 PRINT "SCORE = ";SC;"":REM 
525 OUT 8,255
530 RETURN
550 REM    PRINT TIME
560 TT= PEEK (33209)
562 OUT 8,247
565 PLOT 3,40,29
570 PRINT "TIME = ";60- TT;"  ":REM 
575 OUT 8,255
590 RETURN
600 REM    ERASE ALL ICBM'S
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
713 GOSUB 792:PRINT "YOU CONTROL A DEFENSE MISSLE, USE THE 1 2 3 KEYS"
719 GOSUB 792:PRINT "  TO FIRE OR STEER THE MISSLE AFTER THE ICBM'S"
726 GOSUB 792
729 GOSUB 792:PRINT "                       1  2 3"
733 GOSUB 792:PRINT "                        |ba~"
736 GOSUB 792:PRINT "                        sr"
739 GOSUB 792
740 GOSUB 792:GOSUB 792:PRINT "  THE 5 KEY MAY BE USED FOR AIR BRAKES. HANDY EH?"
745 GOSUB 792:GOSUB 792:GOSUB 792:GOSUB 792
748 GOSUB 792:PRINT "        PRESS RETURN TO START THE GAME! ";
752 OUT 8,255:XX= CALL (2)
760 OUT 8,247
770 POKE 33278,INT (RND (1)* 4)+ 48
788 PLOT 8:FOR N= 1TO 25:POKE TM,50- N:XX= CALL (0):XX= CALL (1):NEXT
790 OUT 8,255:POKE 33278,54:RETURN
792 Y= Y+ 1:PLOT 3,X,Y:RETURN
795 Y= Y- 2:PLOT 3,X,Y:RETURN
800 REM    HITTER
810 PL= INT ((PO- 28672- 128* Y)/ 128)+ 1
812 PO= P1:XX= CALL (0)
815 ON PLGOTO 821,822,823,824
821 AA= 0:SC= SC+ 25:GOTO 845
822 BB= 0:SC= SC+ 15:GOTO 845
823 CC= 0:SC= SC+ 10:GOTO 845
824 DD= 0:SC= SC+ 5:GOTO 845
845 GOSUB 500:GOSUB 1405
846 IF (AA+ BB+ CC+ DD)= 0THEN 860
850 POKE 33278,52:DI= 0:RETURN
860 PLOT 3,N,Y:PRINT IC$
870 AA= 1:BB= 1:CC= 1:DD= 1
875 GOSUB 1405:N= 1:PLOT 3,N,Y:PRINT IC$
880 POKE 33278,52:DI= 0:RETURN
900 REM   DRAW GAME SUBROUTINE
920 PLOT 6,6,12,6,3,15,27,24
925 PRINT ""
930 BD$= "`````````````````````````````````````````````````````````````"
933 B1$= LEFT$ (BD$,31)
935 PLOT 3,1,1:PRINT BD$
937 PLOT 3,1,4:PRINT BD$
939 PLOT 3,1,31:PRINT BD$
941 PLOT 27,10,3,1,1:PRINT B1$
943 PLOT 3,62,1:PRINT B1$
945 PLOT 27,24,14
955 PLOT 3,22,2
956 REM
960 PRINT "  T A R G E 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
1100 REM   KEY HANDLER
1110 DO= DI
1115 OUT 8,255
1120 KE= PEEK (33278)- 48
1122 IF KE< 0THEN KE= 0
1125 ON KEGOTO 1141,1142,1143
1130 DI= 0:GOTO 1150
1141 DI= - 132:GOTO 1150
1142 DI= - 128:GOTO 1150
1143 DI= - 124:GOTO 1150
1150 IF DO< > DITHEN POKE TM,25:XX= CALL (0)
1155 RETURN
1200 REM    DRAW ENVIRONMENT
1205 OUT 8,247:PRINT ""
1210 PLOT 15,3,0,2
1212 PRINT "                                      "
1215 PRINT "                                     "
1218 PRINT "                                     "
1220 PRINT "                                  "
1222 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT "             "
1225 PRINT "                                           "
1227 PRINT "                                                "
1229 PRINT "                                              "
1232 PRINT "                                            "
1235 PRINT
1238 PRINT
1241 PRINT "           ~|"
1243 PRINT "          ~  |"
1244 PRINT "         ~    |"
1247 PRINT "        ~|"
1248 PRINT "        a      b"
1249 PRINT "        a   `  b            ~m|"
1250 PRINT "        a   `  b           ~ m |"
1253 PRINT "  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
1255 SA$= "                                                              "
1260 FOR N= 1TO 5
1265 PRINT SA$:NEXT
1275 OUT 8,255:RETURN
1300 REM    GAME END
1330 OUT 8,247
1340 PLOT 3,21,19:PRINT "PLAY AGAIN(Y OR N)? ";:OUT 8,255:XX= CALL (2)
1347 CH$= CHR$ (XX):PRINT CH$:IF CH$< > "Y"THEN 1390
1350 GOTO 200
1390 OUT 8,255:PLOT 6,6,3,3,5,27,11,15
1395 LOAD "MENU":RUN
1400 REM       ESTABLISH ICBM'S
1401 AA= 1:BB= 1:CC= 1:DD= 1
1403 GOSUB 500
1405 FF$= CHR$ (10)+ CHR$ (26)+ CHR$ (26)+ CHR$ (26)
1406 FF$= FF$+ CHR$ (26)
1410 IC$= P1$(AA)+ FF$+ P2$(BB)+ FF$+ P3$(CC)+ FF$+ P4$(DD)
1420 RETURN
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