Compucolor.org – Virtual Media

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

1 PLOT 3,64,32
2 PLOT 19
3 PLOT 15
5 DEF FN J(X)= (INT (RND (1)* 1000+ 1))
8 DEF FN P(X)= (INT (RND (1)* 30+ 2))
9 OUT 8,4
10 PLOT 12
11 GOSUB 8700:REM  PRINT THE "INSTRUCTIONS"
12 PLOT 3,1,5:PRINT "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
13 PLOT 3,0,5:PRINT "n":PLOT 3,63,5:PRINT "o"
14 FOR K= 1TO 22:PLOT 3,0,K+ 5:PRINT "a":PLOT 3,63,K+ 5:PRINT "b":NEXT K
15 PLOT 3,0,28:PRINT "l":PLOT 3,63,28:PRINT "m"
16 PLOT 3,1,28:PRINT ""
17 PLOT 19,3,43,0,14
18 PRINT "NUMBER OF HITS:    0"
19 PLOT 3,64,30
20 REM                SPACE SHOOT 
25 REM
30 REM           BY MIKE MILLEN
32 REM
34 REM    395-6044
40 REM
50 REM  FOR CCII 5/15/80
60 REM
80 REM
100 REM  THIS IS THE "BASE": " "
105 REM  THIS IS THE ENEMY SHIP: "*"
110 REM  THIS IS THE "MISSLE": "^"
112 REM
114 REM  THE BASE STARTS AT 32188
115 REM
118 REM  THE BASE TRAVELS ALONG THE LINE LOCATED AT 32130-32252
119 OUT 8,255:PLOT 3,12,16
120 INPUT "HIT RETURN WHEN YOU ARE READY TO BEGIN ";Q$
125 OUT 8,4
130 PLOT 14,3,12,16:PRINT SPC( 40):PRINT ""
140 PLOT 3,64,29
150 P1= 28672
160 B1= 32188
170 EN= 29444
180 POKE 33209,0:POKE 33210,0
488 POKE B1+ 1,24:POKE B1,32
490 FOR U= 1TO FN J(0):NEXT U
495 GOTO 4020
1000 OUT 8,255:PLOT 6,0,15,11:E1= B1+ B:IF PEEK (33278)= 83THEN B= B+ 2:GOTO 1750
1010 IF PEEK (33278)= 65THEN B= B- 2:GOTO 1750
1020 IF PEEK (33278)= 32THEN 3000
1030 IF PEEK (33278)< > 87THEN 1047
1040 X= FN P(0):IF X/ 2= INT (X/ 2)THEN B= B+ X:GOTO 1750
1045 GOTO 1040
1047 IF PEEK (33278)< > 81THEN 2020
1050 X= FN P(0):IF X/ 2= INT (X/ 2)THEN B= B- X:GOTO 1750
1055 GOTO 1050
1750 REM :PLOT11,6,0
1751 OUT 8,4
1790 REM  THE BASE TRAVELS ALONG THE LINE LOCATED AT 32128-32252
1800 REM  CHECK TO SEE IF THE SHIP IS TOO FAR 
1820 IF B1+ B< 32252AND B1+ B> 32130THEN 2000
1840 IF B1+ B> 32252THEN B= 64:GOTO 2000
1860 IF B+ B1< 32130THEN B= - 58:GOTO 2000
2000 REM  MOVE THE BASE 
2001 C= B
2005 POKE E1+ 1,3:POKE E1,32
2010 POKE B1+ B+ 1,24:POKE B1+ B,32
2015 IF ES= 1THEN ES= 0:GOTO 6180
2020 OUT 8,4:IF GO= 1THEN 4021
2999 GOTO 5000
3000 REM  FIRE THE MISSLE 
3001 OUT 8,4
3015 REM  THIS IS THE SHIPS CURRENT POSITION 
3016 G= 128
3020 F1= B1+ B:REM 3
3025 POKE F1- 128,94
3030 PLOT 3,64,29
3040 FOR K= 1TO 19:REM  19 IS THE # OF LINES THE MISSLE (^) PASSES
3060 G= G+ 128
3090 POKE F1- G+ 128,32
3100 POKE F1- G,94
3115 NEXT K
3120 POKE F1- G,32
3145 IF PEEK (F1- G- 128)< > 42THEN 3190
3146 PLOT 15,3,1,6:PRINT SPC( 62):PLOT 3,64,1:PRINT ""
3148 PLOT 14
3149 REM  PRINT  "KABOOM!!" (THE ENEMY HAS  BEEN BLOWN UP):OUT 8,4
3150 PLOT 6,73,3,24,8,75,65,66,79,79,77,33,33,33:PLOT 6,0
3152 PLOT 3,64,29
3155 FOR I= 1TO 350:NEXT I
3156 POKE F1- G- 128,32:PLOT 15
3157 GOTO 7000
3160 PLOT 14,3,23,8:PRINT SPC( 10):PLOT 15:PRINT ""
3162 PLOT 3,64,29
3165 T= - 2:GO= 0:W= 0:GOTO 490
3190 POKE F1- G- 128,94
3195 POKE F1- G- 128,32
3197 IF GO= 1THEN 4021
3200 GOTO 5000
4000 REM  MOVE THE ENEMY SHIPS ACROSS THE SCREEN 
4020 REM  THE SHIP MOVES ON THE LINE: 29442-29564
4021 ON WGOTO 4060,4093
4022 REM  THIS MOVES THE SHIPS FROM LEFT TO RIGHT ----->
4023 IF GO= 0THEN D= INT (RND (1)* 2+ 1):ON DGOTO 4025,4085
4025 FI= 2
4026 W= 1
4040 T= - 2
4050 IF FI= 2THEN 4070
4060 T= T+ 2
4065 POKE EN+ T- 2,32
4070 IF T+ EN> 29564THEN GO= 0:W= 0:GOTO 5000
4072 FI= 1
4075 PLOT 19
4080 POKE EN+ T+ 1,3:POKE EN+ T,42
4081 PO= EN+ T
4082 GOTO 4110
4085 REM  THIS MOVES THE SHIP FROM RIGHT TO LEFT <------
4086 W= 2:FI= 2
4087 T= - 2
4090 IF FI= 2THEN 4098
4093 T= T- 2
4096 POKE EN+ 122+ T+ 2,32
4098 IF T+ EN+ 122< 29442THEN GO= 0:W= 0:GOTO 5000
4101 FI= 1:PLOT 19
4104 POKE EN+ 122+ T+ 1,3:POKE EN+ 122+ T,42
4106 PO= EN+ 122+ T
4110 X= (INT (RND (1)* 8+ 1)):IF X< 4THEN 6000
4115 PLOT 3,64,29
4120 X= (INT (RND (1)* 8+ 1))
4130 Q= X* 8:REM Q=1:IFX=1THENQ=30
4135 REM IFX=2THENQ=20
4140 REM  THIS WILL MAKE IT HARDER: IFS=5THEN4021
4145 OUT 8,255:POKE 33278,0
4147 PLOT 3,64,29
4150 FOR L= 1TO Q
4152 IF PEEK (33278)< > 0THEN 4200
4155 PLOT 6,0
4170 NEXT L
4180 OUT 8,4:GOTO 4021
4181 PO= EN+ T
4200 GO= 1:OUT 8,255:OUT 8,4:GOTO 1000
4250 GOTO 4021
5000 GOTO 490
6000 REM  THIS FIRES BOMB FROM THE ENEMY SHIP TO THE BASE 
6010 REM
6020 REM
6030 REM
6040 OUT 8,255:REM  PO = THE ENEMY'S CURRENT POSITION 
6050 G= 128
6060 POKE PO+ 128,43
6080 PLOT 3,64,29
6100 FOR K= 1TO 20:REM  19 IS # OF LINES THE MISSLE (+) PASSES
6120 G= G+ 128
6140 POKE PO+ G- 128,32
6160 POKE PO+ G,43
6161 IF K< > 8THEN 6180
6162 OUT 8,255:PLOT 6,0:POKE 33278,0
6165 FOR E= 1TO 10
6170 IF PEEK (33278)< > 0AND PEEK (33278)< > 32THEN ES= 1:GOTO 4200
6173 NEXT E
6180 NEXT K
6200 POKE PO+ G,32
6220 IF PEEK (PO+ G+ 1)< > 24THEN 4115
6230 REM  PRINT  "KABOOM!!" (THE PLAYER HAS BEEN BLOWN UP)
6240 PLOT 15,3,1,27:PRINT SPC( 62):PLOT 3,64,29:PRINT ""
6260 PLOT 14
6300 PLOT 6,127,3,23,26,75,65,66,79,79,77,33,33,33:PLOT 6,0
6320 PLOT 3,64,29
6340 FOR I= 1TO 350:NEXT I
6390 PLOT 14,3,23,26,32,32,32,32,32,32,32,32,32:PLOT 15,6,0:ET= 1:GOSUB 7010:GOTO 1790
7000 REM  THIS PRINTS OUT THE SCORES
7005 GOTO 7020
7010 H1= H1- 1:IF H1< 0THEN H1= 0
7015 GOTO 7040
7020 H1= H1+ 1
7040 PLOT 3,61,0
7060 PLOT 14,6,1
7080 PRINT H1
7090 PLOT 19,15
7095 PLOT 6,0:IF ET= 1THEN ET= 0:RETURN
8000 REM  TO CHANGE # OF SHIPS NECESSARY TO BE HIT (SO THAT THE
8002 REM  GAME ENDS AND YOUR TIME IS DISPLAYED), CHANGE THE NEXT
8004 REM   LINE AND LINE 8040..................
8010 IF H1< 10THEN 3160
8020 PLOT 3,5,16,14
8022 M$= STR$ (PEEK (33210)):S= PEEK (33209)
8023 Y$= STR$ (S)
8024 IF S> = 10THEN 8030
8026 Y$= RIGHT$ (STR$ (S+ 100),2)
8030 T$= M$+ " :"+ Y$
8038 PLOT 6,1
8040 PRINT "YOUR TIME FOR DESTROYING 10 ENEMY SHIPS -  ";T$
8050 PLOT 6,3
8055 OUT 8,255:PLOT 27,11
8060 END
8700 PLOT 3,1,0,15
8710 PRINT "SPACE BAR = FIRE  (TRY REPEAT KEY, TOO)":PRINT
8720 PRINT " Q = LEFT ? SPACES    W  = RIGHT ? SPACES"
8730 PRINT " A = LEFT 1 SPACE     S  = RIGHT 1 SPACE"
8740 RETURN
9000 GOTO 7001