REM - written
for QBasic
/ QuickBasic
(freeware
) - REM - for more info look at the
end / press f1 in title
REM - any problems
/ questions
? mail: dk1000000@aol.
com
scx = 159: scy = 99
xp = scx: yp = 172: vp = 6: vsh = 6
xpmin = 0: xpmax = 319: shmax = 15: emax = 7: esmax = 3: fmax = 15
stmax = 31: exmax = 7
SND = 1: bonplay& = 20000
pi! = 3.14158: pi2! = pi! / 2: pi4! = pi! / 4
cts1 = 0: cts2 = 4: cts3 = 10
DIM tae
(201), tne
(201): n
= shmax
DIM xsh
(n
), ysh
(n
): n
= stmax
DIM xst
(n
), yst
(n
), xst!
(n
), yst!
(n
), cst
(n
), vst
(n
): n
= emax
DIM xe!
(n
), ye!
(n
), ae
(n
), dae
(n
), ne
(n
), ce
(n
), ste
(n
) DIM ze
(n
), zze
(n
), tpe
(n
), tce
(n
): n
= exmax
DIM xex
(n
), yex
(n
), stex
(n
), zex
(n
), tex
(n
): n
= esmax
DIM xes!
(n
), yes!
(n
), dxes!
(n
), dyes!
(n
), stes
(n
), tes
(n
) DIM aes
(n
), des
(n
): n
= fmax
DIM fx!
(n
), fy!
(n
), dfx!
(n
), dfy!
(n
), fc
(n
), ft
(n
): n
= 11 DIM ptse
(n
), dble
(n
), anie
(n
), adde
(n
), zoome
(n
) DIM table
(n
), c1e
(n
), c2e
(n
), expe
(n
), c1ee
(2, n
), c2ee
(2, n
): n
= 7 DIM tce0
(n
), xec
(n
), yec
(n
), aec
(n
): n
= 12 DIM xc!
(n
), yc!
(n
), zc!
(n
), cc
(n
), ac
(n
), nc
(n
) DIM ENEMY$
(20, 3), CRASH$
(4), bin
(4), CH$
(42): n
= 7 DIM vbos
(n
), vsbos
(n
), tsbos
(n
), fsbos
(n
), ptsbos
(n
), hrbos
(n
) DIM cp
(95), SFINAL$
(2, 9), CREDIT$
(50)
ptse(e) = p: dble(e) = d: anie(e) = m: adde(e) = a: zoome(e) = z
table
(e
) = T: expe
(e
) = ex:
NEXT e
DATA 10,0,0,0,64,1,1, 20,0,0,0,64,2,1, 25,0,0,0,64,2,1 DATA 40,0,0,0,64,5,1, 50,0,0,0,64,4,1, 200,0,0,0,64,6,1 DATA 250,0,0,0,64,7,1, 100,1,0,1,64,2,1, 120,0,0,0,64,3,1 DATA 120,1,3,1,64,2,1, 160,0,2,0,48,3,1
DATA 7,13, 6,14, 5,15, 5,11, 3,15, 2,10, 2,10, 4,12, 1,14, 2,14, 9,15 DATA 4,13, 2,10, 1,4, 7,15, 4,14, 3,11, 3,11, 5,13, 2,15, 2,14, 9,15 DATA 5,14, 3,11, 2,14, 12,14, 14,4, 4,12, 4,12, 6,14, 3,15, 6,14, 4,12
REM - - - - BOSS SETUP
- - - - - -
FOR n
= 1 TO 7:
READ a$
, s$: BOSS$
(n
) = a$: STAGE$
(n
) = s$:
NEXT n
DATA "MYKOR MASTER","VEGA SYSTEM","PHOENIX","ALPHA CENTAURI" DATA "EVIL BATSY","DARK PLANET","QUARRIOR","AQUARUIS" DATA "MC FISHKING","NEPTUN","BEEBOP QUEEN","MOONBASE" DATA "MOTHERSHIP","EARTH" FOR n
= 1 TO 7:
READ v
, ts
, f
, p
, r: vbos
(n
) = v: tsbos
(n
) = ts
fsbos
(n
) = f: ptsbos
(n
) = p: hrbos
(n
) = r:
NEXT n
DATA 1,1,4,1000,20, 1,4,6,2500,20, 2,1,8,4000,20, 1,5,10,7500,20 DATA 1,3,100,10000,24, 2,2,10,16000,20, 1,0,0,25000,40
REM - - - - ESHOT SETUP
- - - - DATA 5,2, 4,2, 2,4, 3,2, 3,2
n = 1
DO:
READ a
, T: tae
(n
) = a: tne
(n
) = T: n
= n
+ 1 nte = n - 1
PATTERN1:
DATA 0,100, -900,1, 0,32, -900,1, 0,50, -900,1, 0,8, -900,1 DATA 0,70, 900,1, 0,10, 900,1, 0,50, -900,1, 30,60 ,0,90 DATA 30,30, 0,50, 900,1, 0,14, 900,1, 0,20, 900,1, 0,16 DATA 900,1, 0,20, 900,1, 0,14, 900,1, 0,20, 900,1, 0,16 DATA 900,1, 0,20, 900,1, 0,14, 900,1, 0,40, 900,2, 0,0 PATTERN2:
DATA -30,30, 30,75, 0,34, -30,95, 0,34, 30,95, 0,34, -30,95 DATA 0,34, 30,95, 0,34, -30,95, 0,34, 30,50, 0,25, 30,30 DATA 0,60, 60,30, 0,110, -60,31, 0,90, 60,31, 0,60, -60,32 DATA 0,30, 60,32, 30,28, 0,20, 0,0, 0,0, 0,0, 0,0 PATTERN3:
DATA -90,20, 90,30, -90,30, 90,20, -90,20, 90,40, 90,10, -90,20 DATA 90,20, -90,30, 90,20, -90,20, 90,20, -90,21, 0,20, 0,0 DATA 90,20, -90,30, 90,30, -90,20, 90,20, -90,40, -90,10, 90,20 DATA -90,20, 90,30, -90,20, 90,20, -90,20, 90,21, 0,20, 0,0 PATTERN4:
DATA 30,60, -30,-30, 30,60, 0,40, 30,20, 0,30, 30,90, -30,90 DATA -30,90, 30,45, 0,20, -30,15, 0,10, 30,15, -30,15, 30,15 DATA 0,80, 30,5, 0,40, 30,5, 0,40, 30,5, 0,40, 30,5 DATA 0,40, 30,180, 0,120, 0,0, 0,0, 0,0, 0,0, 0,0 PATTERN5:
DATA 0,130, 30,60, 0,105, 90,20, 0,60, -90,20, 0,20, 90,20 DATA 0,60, 90,10, 0,80, 90,20, 0,80, -90,20, 0,80, 90,20 DATA 0,60, 30,270, 0,50, 0,0, 0,0, 0,0, 0,0, 0,0 PATTERN6:
DATA -30,85, 0,50, 30,0, -30,80, 0,60, 30,80, 0,60, -30,80 DATA 0,60, 30,80, 0,60, -30,80, 0,60, 30,50, 0,25, 30,30 DATA 0,60, 60,30, 0,110, -60,31, 0,90, 60,31, 0,60, -60,32 DATA 0,30, 60,32, 30,28, 0,20, 0,0, 0,0, 0,0, 0,0 PATTERN7:
DATA -30,60, 0,80, 0,0, 0,0, 30,60, 0,80, 0,0, 0,0
FOR n
= 1 TO 7:
READ T
, x
, y
, a
, v
, c: tce0
(n
) = T: xec
(n
) = x: yec
(n
) = y
aec
(n
) = a: vec
(n
) = v: crec
(n
) = c:
NEXT n
DATA 0,0,20,0,4,7, 40,159,119,900,4,7 DATA 72,159,119,900,4,7, 104,149,109,900,4,7 DATA 160,159,50,900,4,7, 192,159,50,900,4,7
DATA 0,-2, -10,-2, 10,-2, -10,3, 10,3 DATA 0,-5, -14,-4, 14,-4, -14,3, 14,3
FOR n
= 0 TO emax: ste
(n
) = -1: ce
(n
) = 2:
NEXT n
REM - - - - - - - - TITLE
SCREEN - - - - - - - - x = -40: zmax = 40
xc!(n) = x: yc!(n) = 26: zc!(n) = 200: nc(n) = nc: cc(n) = cc
xc!(n) = x + 55: yc!(n) = yc!(1) + 30: zc!(n) = zmax: nc(n) = nc: cc(n) = cc
DATA 29,15, 31,15, 31,15, 30,15, 19,15, 34,15, 17,15, 32,15, 9,15, 9,15
REM - - - LEVEL SETUP
- - - ltpe
(n
) = T: lrad
(n
) = r: lsum
(n
) = s: lhit
(n
) = h:
NEXT n
DATA 1,14,1,1, 1,14,2,1, 2,12,2,1, 3,12,2,1 DATA 4,12,2,1, 5,14,2,1, 8,16,1,3, 10,14,1,3
x = 100: y = 100: c1 = 6: c2 = 14: a = 0: z = 4
STAGE = 1: LEVEL = 1: stbos = -1: tbos = 1
ssec
(1) = 1: ssec
(2) = 0: ssec
(3) = 0:
GOSUB SETUP.SHIP
stp
= 0:
REM status player
score& = 0
MAIN:
crec1
= crec1
- 1:
IF crec1
= 0 THEN crec1
= crec0:
GOSUB CREATE.ENEMY
cnt1
= (cnt1
+ 1) AND 255
MOVE.BOSS:
xbos! = xbos! + dxbos!: ybos! = ybos! + dybos!
IF hbos
= 1 AND ybos!
> 10 AND tbos
< 7 THEN ybos!
= ybos!
- 3 IF xbos!
> 309 THEN dxbos!
= -1 IF ybos!
> 99 THEN dybos!
= -1
SHOT.BOSS:
r = fsbos(tbos) * STAGE
x = xbos!: y = ybos!: T = tsbos(tbos): s = ses(T)
SHOT.SUPERBOSS:
CREATE.SUPERENEMY:
T = tpe + 1: mt = table(T)
ye!
(n
) = ybos!: ae
(n
) = 900 + 180 * RND - 90xe!(n) = xbos!
ze(n) = 64: zze(n) = zoome(T)
ste(n) = 0: tpe(n) = T
tce
(n
) = tce0
(mt
) + INT(2 * RND) * 4
ACTIV.BOSS:
dxbos!
= COS(a!
) * vbos
(tbos
): dybos!
= SIN(a!
) * vbos
(tbos
)
x = xbos!: y = ybos!
ON tbos
GOSUB DBOSS1
, DBOSS2
, DBOSS3
, DBOSS4
, DBOSS5
, DBOSS6
, DBOSS7
FOR e
= 0 TO emax: ste
(e
) = -1:
NEXT e: cresum
= 0 pts&
= ptsbos
(tbos
):
GOSUB LOAD.SCORE
evcnt = 50: evpts = pts&: evtpe = 1
x = fx!(m): y = fy!(m)
LINE (x
, y
)-(x
+ 1, y
+ 1), fc
(m
), BF
fx!(m) = fx!(m) + dfx!(m): fy!(m) = fy!(m) + dfy!(m)
evcnt = evcnt - 1: yc! = 70: ac = 0: sc = 4: T$ = evtxt$
bin(1) = 1 - bin(1): b2 = bin(2): b3 = bin(3)
IF bin
(1) = 0 THEN bin
(2) = 1 - bin
(2) IF bin
(2) < b2
THEN bin
(3) = 1 - bin
(3) IF bin
(3) < b3
THEN bin
(4) = 1 - bin
(4)
TEST.LEVELEND:
etimer = 0
PAUSE:
WAITFIRE:
KEYS:
IF k
= 75 THEN dxp
= -vp: k1
= 203 IF k
= 77 THEN dxp
= vp: k1
= 205
MOVE.PLAYER:
xp = xp + dxp
CREATE.PLAYER:
stp = 0: f = 0
SETUP.SHIP:
sss0 = 0: sss1 = 0: s = 0
FIRE.SHOT:
IF sss0
= 1 THEN sss1
= 1 - sss1
FIRE.SHOT1:
xsh(cts1) = xp: ysh(cts1) = yp - 4
cts1
= cts1
+ 1:
IF cts1
= 4 THEN cts1
= 0FIRE.SHOT2:
xsh(cts2) = xp - 9: ysh(cts2) = yp + 3
xsh(cts2 + 1) = xp + 9: ysh(cts2 + 1) = yp + 3
cts2
= cts2
+ 2:
IF cts2
= 10 THEN cts2
= 4FIRE.SHOT3:
xsh(cts3) = xp - 14: ysh(cts3) = yp + 10
xsh(cts3 + 1) = xp + 14: ysh(cts3 + 1) = yp + 10
cts3
= cts3
+ 2:
IF cts3
= 16 THEN cts3
= 10
scr
= 1 - scr:
SCREEN 7, 0, 1 - scr
, scr:
CLSREFR.DOCKSCREEN:
scr
= 1 - scr:
SCREEN 7, 0, 1 - scr
, scr
MOVE.SHOT:
FOR n
= 0 TO shmax: ys
= ysh
(n
) ys = ys - vsh: ysh(n) = ys
MOVE.SHOT1:
MOVE.ENEMY:
emovcnt = 0
ne
(n
) = ne
(n
) - 1:
IF ne
(n
) <= 0 THEN GOSUB LOADPTR.ENEMY
a! = ae(n) * (pi! / 1800): emovcnt = emovcnt + 1
dx!
= COS(a!
) * vec: dy!
= -SIN(a!
) * vec
xe!(n) = xe!(n) + dx! / 2: ye!(n) = ye!(n) + dy! / 2
ae
(n
) = (ae
(n
) + dae
(n
)) MOD 3600 IF ze
(n
) < zze
(n
) THEN ze
(n
) = ze
(n
) + 1 MOVE.ENEMY1:
MOVE.ESHOT:
xes!(n) = xes!(n) + dxes!(n): yes!(n) = yes!(n) + dyes!(n)
aes(n) = aes(n) + 1
IF ABS(xes!
(n
) - scx
) > 160 OR ABS(yes!
(n
) - scy
) > 100 THEN stes
(n
) = -1 MOVE.ESHOT1:
x = xes!(n): y = yes!(n): a = aes(n): d = des(n)
T = tes(n)
ON T
GOSUB DESHOT1
, DESHOT2
, DESHOT3
, DESHOT4
, DESHOT5
DESHOT1:
c = 1
LINE (x
- 1, y
- 2)-(x
+ 1, y
+ 2), c
, B
LINE (x
, y
- 3)-(x
, y
+ 3), c
LINE (x
, y
- 2)-(x
, y
+ 2), 15 DESHOT2:
DESHOT3:
f!
= 1 + SIN(a
/ 4) * .4: f2!
= d
* .7CIRCLE (x
, y
), d
+ .5, 7, , , f!
LINE (x
- d
* .1 / f!
- 1, y
- d
* .3 * f!
)-(x
- 1, y
), 7, B
DESHOT4:
a
= (a
* 30) MOD 360: z
= 4: c
= 15: e
= 1:
GOSUB DRAW.SSPRITE
DESHOT5:
a
= (a
* 9) MOD 360: z
= 4: c
= 15: e
= 2:
GOSUB DRAW.SSPRITE
CREATE.ESHOT:
x = xe!(e): y = ye!(e)
T
= 1 - (tpe
= 10): s
= ses
(T
):
GOSUB FIRE.ESHOT
FIRE.ESHOT:
escnt
= (escnt
+ 1) AND esmax: n
= escnt
xes!(n) = x: yes!(n) = y: v = ves(T)
a!
= pi2!
- (pi!
/ 8) * RND + pi4!: dx!
= COS(a!
) * v: dy!
= SIN(a!
) * v
dxes!(n) = dx!: dyes!(n) = dy!
stes(n) = 0: tes(n) = T: aes(n) = 0: des(n) = s
ON T
GOSUB SESHOT1
, SESHOT2
, SESHOT3
, SESHOT3
, SESHOT3
SESHOT1:
SESHOT2:
SESHOT3:
xst
(n
) = 320 * RND: yst
(n
) = 0 * RND: cst
(n
) = INT(15 * RND) + 1CREATE.STAR:
xst
(n
) = 320 * RND: yst
(n
) = 200 * RND: cst
(n
) = INT(8 * RND)
mt = table(tpe)
xe!(n) = xec(mt): ye!(n) = yec(mt): ze(n) = 9
CREATE.ENEMY:
n
= eptr: eptr
= (eptr
+ 2) AND emax
T = tpe: mt = table(T)
xe!(n) = xec(mt): ye!(n) = yec(mt): ae(n) = aec(mt)
ze(n) = 9: zze(n) = zoome(T)
ste(n) = 0: tpe(n) = T: tce(n) = tce0(mt)
LOADPTR.ENEMY:
c = tce(n): dae(n) = tae(c): ne(n) = tne(c)
c
= c
+ 1:
IF tae
(c
) = 0 AND tne
(c
) = 0 THEN c
= tce0
(mt
)tce(n) = c
x = xst(n): y = yst(n): c = cst(n): y = y + dy
stcnt
= (stcnt
+ 1) AND stmax: n
= stcnt
x = xst(n): y = yst(n): c = cst(n)
x
= x
+ 1:
IF x
> 320 THEN x
= 0: yst
(n
) = 10 + 180 * RNDPSET (x
, y
), c: xst
(n
) = x
n
= stmax
* RND: cst
(n
) = c
x0 = xp: y0 = yp + 6
f1! = f1! * .85
x = fx!(n): y = fy!(n): a = ft(n): c = fc(n): z = dfx!(n)
CREATE.SHIPEXPLODE:
fx!
(n
) = x0
+ 24 * RND - 12: fy!
(n
) = y0
+ 14 * RND - 7fc
(n
) = c: dfx!
(n
) = INT(3 * RND) + 2
LINE (x
, y
- 3)-(x
- 6, y
+ 3), c
LINE (x
, y
- 3)-(x
+ 6, y
+ 3), c
LINE (x
- 6, y
+ 4)-(x
+ 6, y
+ 4), c
LINE (x
, y
+ 0)-(x
, y
+ 2), 14 LINE (x
- 5, y
+ 5)-(x
- 5, y
+ 5), c
LINE (x
+ 5, y
+ 5)-(x
+ 5, y
+ 5), c
LINE (x
- 4, y
- 1)-(x
+ 4, y
+ 4), c
, BF
LINE (x
- 10, y
- 2)-(x
- 9, y
+ 3), c
, B
LINE (x
+ 9, y
- 2)-(x
+ 10, y
+ 3), c
, B
LINE (x
- 9, y
+ 4)-(x
+ 9, y
+ 4), c
LINE (x
- 1, y
+ 0)-(x
- 1, y
+ 2), 14 LINE (x
+ 1, y
+ 0)-(x
+ 1, y
+ 2), 14 LINE (x
- 8, y
)-(x
- 4, y
- 4), c
LINE (x
- 4, y
- 4)-(x
+ 4, y
- 4), c
LINE (x
+ 4, y
- 4)-(x
+ 8, y
), c
LINE (x
- 8, y
)-(x
- 4, y
+ 4), c
LINE (x
- 4, y
+ 4)-(x
+ 4, y
+ 4), c
LINE (x
+ 4, y
+ 4)-(x
+ 8, y
), c
LINE (x
- 13, y
)-(x
+ 13, y
), c
LINE (x
- 14, y
- 4)-(x
- 13, y
+ 3), c
, B
LINE (x
+ 13, y
- 4)-(x
+ 14, y
+ 3), c
, B
PSET (x
- 13, y
+ 3), 0:
PSET (x
+ 13, y
+ 3), 0 LINE (x
- 2, y
- 1)-(x
- 2, y
+ 1), 14 LINE (x
, y
- 1)-(x
, y
+ 1), 14 LINE (x
+ 2, y
- 1)-(x
+ 2, y
+ 1), 14
FOR n
= 0 TO shmax: xs
= xsh
(n
): ys
= ysh
(n
) LINE (xs
, ys
)-(xs
, ys
+ 3), 14
expcnt = 0
T
= tex
(n
): c
= 12 + (cnt1
AND 1) * 4: a
= ae
(n
) / 10 x = xex(n): y = yex(n): z = zex(n) / 16
ae
(n
) = (ae
(n
) + 0) MOD 3600: stex
(n
) = stex
(n
) - 1 expcnt = expcnt + 1
a = ae(n) / 10: z = ze(n) / 16
x = xe!(n): y = ye!(n)
e = tpe(n): f = bin(anie(e)) * 2
stp = stp + 1
ac = 0: sc = 4: cc = 15
yc! = 90
GAME.OVER:
sc = 8: ac = 0
T$
= "WELL DONE": xc!
= 80: yc!
= 60:
GOSUB DRAW.TXTZ
PRINT "SCORE: "; score&;
"PTS"
s$ = "S" + z$ + "TA" + a$ + "C" + c$ + "bm" + x$ + "," + y$ + e$
IF z
> 1 THEN s$
= s$
+ "P" + c$
+ "," + c$
s$ = "S" + z$ + "TA" + a$ + "C" + c$ + "bm" + x$ + "," + y$ + SHOT$(e)
e1$ = ENEMY$(e, f): e2$ = ENEMY$(e, f + 1)
s$ = "S" + z$ + "TA" + a$ + "C" + c1$ + "bm" + x$ + "," + y$ + e1$
IF z
> 1 THEN s$
= s$
+ "P" + c1$
+ "," + c1$
s$ = s$ + "C" + c2$ + e2$
IF z
> 1 THEN s$
= s$
+ "P" + c2$
+ "," + c2$
cc = 15: yc! = 90
TEST.HIT.SHOT:
FOR n
= 0 TO shmax: xs
= xsh
(n
): ys
= ysh
(n
) TEST.HIT.SHOT1:
TEST.HIT.PLAYER:
HIT.SHOT:
x! = xs: y! = ys: r1! = hitrad
dx! = xe!(e) - x!: dy! = ye!(e) - y!
r!
= SQR(dx!
* dx!
+ dy!
* dy!
)HIT.SHOT1:
dx! = xbos! - x!: dy! = ybos! - y!
rr!
= SQR(dx!
* dx!
+ dy!
* dy!
)
HIT.BOSS:
stbos = stbos - 1: hbos = 1
xex(0) = x!: yex(0) = y!: stex(0) = 12
zex(0) = 32: tex(0) = 2
stbos = -160: dx = 48: d = 2
IF tbos
= 7 THEN dx
= 120: d
= 4 xex
(m
) = xbos!
+ dx
* RND - dx
* .5: yex
(m
) = ybos!
+ 32 * RND - 16zex
(m
) = (3 + INT(d
* RND)) * 16: tex
(m
) = 1fx!
(m
) = xbos!: fy!
(m
) = ybos!: a!
= pi!
* 2 * RNDdfx!
(m
) = COS(a!
) * 4: dfy!
(m
) = SIN(a!
) * 4fc(m) = 15
HIT.ENEMY:
hitcnt
= hitcnt
+ 1: pts&
= ptse
(tpe
(e
)) * STAGE:
GOSUB LOAD.SCORE
T = tpe(e)
SPLIT.ENEMY:
f = e + 1
ste(e) = 0: ae(e) = 900: ze(e) = zoome(T + 1): zze(e) = ze(e)
ste(f) = 0: ae(f) = 900: ze(f) = zoome(T + 1): zze(f) = ze(f)
tpe(e) = T + 1: tpe(f) = T + 1
mt1 = table(T + 1): mt2 = table(T + 1)
tce(e) = tce0(mt1): tce(f) = tce0(mt2): tce(e) = 72: tce(f) = 88
dae(e) = tae(tce(e)): ne(e) = tne(tce(e))
dae(f) = tae(tce(f)): ne(f) = tne(tce(f))
xe!(f) = xe!(e): ye!(f) = ye!(e)
HIT.PLAYER:
stp = -35: f1! = 600
x0
= xp: y0
= yp
+ 6:
GOSUB CREATE.SHIPEXPLODE
exptr
= (exptr
+ 1) AND exmax
xex(e) = xe!(e): yex(e) = ye!(e): stex(e) = 30
zex(e) = ze(e): tex(e) = 1
LOAD.SCORE:
B& = bonplay&
s& = score&: score& = score& + pts&
x = 160: y = 20: c = 4
sc = 4: ac = 0: cc = 15
T$
= "BONUS PLAYER": xc!
= 178: yc!
= 17:
GOSUB DRAW.TXTZ
IF ssec
(1) = 0 THEN ssec
(1) = 1: ssec
(2) = 0: ssec
(3) = 0:
GOSUB SETUP.SHIP
REM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DOCKING:
ss1 = 0: ss2 = 0
IF ssec
(3) = 0 THEN ss2
= 4: dp
= 5 IF ssec
(2) = 0 THEN ss2
= 2: dp
= 0 xb = scx: yb = 172
xp!
= xb
- 30 + 60 * RND: yp!
= 100: vxp!
= 0: vyp!
= 0dyp!
= 0:
IF ss1
= 3 THEN dyp!
= 6fcnt
= 0:
FOR n
= 0 TO fmax: ft
(n
) = -1:
NEXT n
grav! = .01 + ss1 * .006
dfuel = 1000: dtime! = 10
DOCK.MAIN:
IF k
= 75 THEN vxp!
= vxp!
- .03 IF k
= 77 THEN vxp!
= vxp!
+ .03 vyp! = vyp! + grav!
DOCK.MAIN1:
cnt1
= (cnt1
+ 1) AND 255
THRUST:
vyp!
= vyp!
- .07: dfuel
= dfuel
- 8:
IF dfuel
< 0 THEN dfuel
= 0
x = xst(n): y = yst(n): c = cst(n)
n
= stmax
* RND: xst
(n
) = 300 * RND + 10: yst
(n
) = 180 * RND + 10
MOVE.FIRE:
fx!(n) = fx!(n) + dfx!(n): fy!(n) = fy!(n) + dfy!(n): ft(n) = ft(n) - 1
IF POINT(fx!
(n
), fy!
(n
)) = 9 THEN dfy!
(n
) = -dfy!
(n
) / 2 MOVE.FIRE1:
CREATE.FIRE:
a!
= pi2!
+ 1 * RND - .5: dv!
= ABS(pi2!
- a!
) * 2: v!
= 2 - dv!
fx!(fcnt) = xp!: fy!(fcnt) = yp! + 4
dfx!
(fcnt
) = COS(a!
) * v!
+ vxp!: dfy!
(fcnt
) = SIN(a!
) * v!
+ vyp!
ft
(fcnt
) = 8: fc
(fcnt
) = 14 - INT(2 * RND) * 8fcnt
= (fcnt
+ 1) AND fmax
x
= fx!
(n
): y
= fy!
(n
):
PSET (x
, y
), fc
(n
)
MOVE.SECTION:
xp! = xp! + vxp!: yp! = yp! + vyp!
n = dp
x = xb + pcx(n): y = yb + pcy(n)
x = xb + pcx(n): y = yb + pcy(n)
TEST.DOCK.OK:
DOCK.OK:
xp! = xb: yp! = yb + pcy(db) - 4
T
= INT(dtime!
* 10) / 10: f
= dfuel
/ 10: s
= 200 * T
+ 10 * f
pts&
= s
* STAGE:
GOSUB LOAD.SCORE
DOCK.CRASH:
s = 0: z1 = 4: f1! = 40
a1
= 3600 * RND: c1
= (s
AND 1) * 3 + 12x = xp!: y = yp!: a = a1 / 10: c = c1: z = z1
x = xb: y = yb: a = a2 / 10: c = c2: z = z2
DOCK.CRASH.SND:
f2!
= f1!
* RND: f1!
= f1!
* .98
REM - - - - - - - - - - - - - - - - - - - - - - - -
ADVANCE.LEVEL:
LEVEL = LEVEL + 1
SUPER.LEVEL:
STAGE
= 7:
GOSUB ENTER.STAGE
tbos
= tbos
+ 1:
GOSUB BOSS.LEVEL
stbos = 50
LEVEL
= 9:
GOSUB LOAD.LEVEL
LEVEL = 10: cresum = 24: hitsum = 24
c1e(6) = 4: c2e(6) = 12
c1e(7) = 12: c2e(7) = 14
BOSS.LEVEL:
evcnt = 70: evtpe = 2: evtxt$ = BOSS$(STAGE)
stbos = 8 + tbos * 4: abos = 0
xbos! = scx: ybos! = 50: dxbos! = 0: dybos! = 0
cresum = 0: crecnt = 0: hitcnt = 0: hitsum = 0
LOAD.LEVEL:
n = LEVEL
hitrad = lrad(n): tpe = ltpe(n): mt = table(tpe)
vec = vec(mt)
cresum = lsum(n) + (STAGE - 1) * 2
crecnt = 0: hitcnt = 0: hitsum = cresum * lhit(n)
crec0 = crec(mt): crec1 = crec0
FOR e
= 1 TO 11: c1e
(e
) = c1ee
(s
, e
): c2e
(e
) = c2ee
(s
, e
):
NEXT e
WARP.LEVEL:
dyp! = .5: dys! = .5: ypp = yp: yp! = yp
f1! = 0
yp = yp!: yp! = yp! - dyp!: dyp! = dyp! * 1.01: dys! = dys! + .1
SCREEN 7, 0, 1 - scr
, scr: scr
= 1 - scr:
CLS c1 = 0: c2 = 0: c3 = 4
yp = ypp
LEVEL = 2: STAGE = STAGE + 1
tbos
= tbos
+ 1:
IF tbos
> 6 THEN tbos
= 1
ENTER.STAGE:
evcnt
= 70: evtpe
= 2: evtxt$
= "STAGE " + LTRIM$(STR$(STAGE
))xs! = 159: ys! = 160: rs! = 20
ON STAGE
GOSUB DSTG1
, DSTG2
, DSTG3
, DSTG4
, DSTG5
, DSTG6
, DSTG7
ENTER.STAGE1:
xs! = 159: ys! = 99: rs! = 8: rsmax! = 40: cnt = 0
u$
= "STAGE " + LTRIM$(STR$(STAGE
)): tptr
= 0: mode
= 0sss
= -(STAGE
> 2 AND STAGE
< 7): fs!
= 1.02: cnt1
= 10: cnt2
= 0rs! = rs! * fs!: vs! = 1.08
IF rs!
>= rsmax!
AND mode
= 0 THEN rs!
= rsmax!: vs!
= 1.02
ENTER.STAGE2:
ON STAGE
- 2 GOSUB DSTG3
, DSTG4
, DSTG5
, DSTG6
ENTER.STAGE3:
xc! = 136: yc! = 24: ac = 0: sc = 4: cc = 15
T$ = STAGE$(STAGE)
xc!
= 159 - LEN(T$
) * 4: yc!
= 44: ac
= 0: sc
= 4: cc
= 15ENTER.STAGE5:
a
= INP(&H3C9): a
= a
+ c3:
IF a
> 63 THEN a
= 63B
= INP(&H3C9): B
= B
+ c3:
IF B
> 63 THEN B
= 63d
= INP(&H3C9): d
= d
+ c3:
IF d
> 63 THEN d
= 63a
= INP(&H3C9): a
= a
- c3:
IF a
< 0 THEN a
= 0B
= INP(&H3C9): B
= B
- c3:
IF B
< 0 THEN B
= 0d
= INP(&H3C9): d
= d
- c3:
IF d
< 0 THEN d
= 0
dys = dys!
x = xst(n): y = yst(n)
LINE (x
, y
)-(x
, y
+ dys
), cst
(n
) y
= y
+ dys: yst
(n
) = y:
IF y
> 200 THEN yst
(n
) = -20: xst
(n
) = 320 * RND
REM - - - - - - - - - - - - - - - - - - - - - REM - - - - - - CREDITS
- - - - - - -
GAME.FINISH:
sc
= 8: ac
= 0: s
= 1:
GOSUB LOAD.SONG:
GOSUB LOAD.3DSTAR
tcnt = 24: tptr = 0: cnt1 = -100: dy = 24: vs! = 1.06: cnt2 = 120
d = 2: cc = 13
IF cnt1
< 0 THEN cnt1
= cnt1
+ 1: cc
= 16 * RND: d
= 0 IF tptr
> 28 THEN d
= 0: cnt2
= cnt2
- 1 tcnt = tcnt - d
IF tcnt
= 0 THEN tcnt
= dy: tptr
= tptr
+ 1 yc! = tcnt - dy
T$ = CREDIT$(n + tptr)
yc! = yc! + dy
LOAD.SONG:
nsong
= s: stsong
= 1: tsong
= 1:
RETURN
PLAY SFINAL$
(nsong
, tsong
) tsong
= tsong
+ 1:
IF tsong
> 7 THEN stsong
= 0
LOAD.3DSTAR:
x
= 26 * RND - 13: y
= 20 * RND - 10xst!
(n
) = x
* x
* SGN(x
): yst!
(n
) = y
* y
* SGN(y
)x! = xst!(n): y! = yst!(n): c = cst(n)
r!
= SQR(x!
* x!
+ y!
* y!
)x! = x! * vs!: y! = y! * vs!
IF r!
> 160 THEN r!
= 2 + 6 * RND: a!
= pi!
* 2 * RND: x!
= COS(a!
) * r!: y!
= SIN(a!
) * r!
PSET (scx
+ x!
, scy
- y!
), 15 xst!(n) = x!: yst!(n) = y!
REM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TITLE:
a = 0: CH = 0: mode1 = 1: mode2 = 6: cnt = 35
TITLE.MAIN:
CARE.TITLE:
nc = nc(n): ac = 0
xc! = xc!(n): yc! = yc!(n): zc! = zc!(n)
nc = nc(n): ac = 0
xc! = xc!(n): yc! = yc!(n): zc! = zc!(n)
MOVE.TITLE:
ON mode1
GOTO MTIT1
, MTIT2
, MTIT3
, MTIT4
MTIT1:
zc!
(CH
) = zc!
(CH
) - 12:
IF zc!
(CH
) <= zmax
AND SND
= 1 THEN PLAY SCRASH8$
IF zc!
(CH
) <= zmax
THEN CH
= CH
+ 1 IF CH
> 7 THEN mode1
= mode1
+ 1: cnt
= 2000 MTIT2:
xc!(8) = xc!(8) - 2: yc!(8) = yc!(8) - 1
xc!(9) = xc!(9) - 2: yc!(9) = yc!(9) - 1
SOUND cnt
, .4: cnt
= cnt
- 44 IF yc!
(8) <= yc!
(7) + 8 THEN mode1
= mode1
+ 1: cnt
= 35 MTIT3:
IF cnt
= 0 THEN cnt
= 35: mode1
= mode1
+ 1 MTIT4:
scx
= scx
+ 2: cc
= 14:
GOSUB DRAW.TITLE: scx
= scx
- 1scy
= scy
+ 2: cc
= 14:
GOSUB DRAW.TITLE: scy
= scy
- 1mode1 = mode1 + 1: mode2 = 1
sss = scx
x = 214: y = 15
CIRCLE (x
- 3, y
- 1), 5, 1:
PAINT (x
- 3, y
- 1), 1, 1
REFR.TITLE:
SCREEN 7, 0, scr
, 1 - scr: scr
= 1 - scr
LINE (0, 0)-(319, 120), 0, BF
CARE.MENU:
ON mode2
GOTO DMEN1
, DMEN2
, DMEN3
, DMEN4
, DMEN5
DMEN1:
cnt
= cnt
- 1:
IF cnt
= 0 THEN cnt
= 35: mode2
= mode2
+ 1DMEN2:
x = 40: y = 66: a = 90: c1 = 8: c2 = 15: f = 0: z = 4
mode2 = mode2 + 1: x = 58
DMEN3:
y = 70: c1 = 15
REM LINE (x
, y
)-(x
+ 1, y
+ 1), 7, BF
LINE (x
, y
)-(x
+ 1, y
), 8 LINE (x
, y
+ 1)-(x
+ 1, y
+ 1), 15 DMEN31:
x
= x
+ 1:
IF x
>= 208 THEN mode2
= mode2
+ 1DMEN4:
ac = 0: sc = 4: cc = 15: yc! = 64
T$
= "PTS": xc!
= 234:
GOSUB DRAW.TXTF: yc!
= yc!
+ 18ac = 0: sc = 4: cc = 7
xc!
= 54: yc!
= 162: T$
= "PRESS F1 FOR BRIEFING":
GOSUB DRAW.TXTZ
mode2 = mode2 + 1
DMEN5:
ac
= 0: sc
= 4: cc
= 16 * RNDxc!
= 100: yc!
= 180: T$
= "PRESS FIRE":
GOSUB DRAW.TXTZ
REM - - - - - - - - - - - - - - - - -
zf! = 100 / zc!: sc = zf! * 4
xd
= INT(scx
+ xc!
* zf!
): yd
= INT(scy
- yc!
* zf!
)s$ = "TA" + ta$ + "S" + zs$ + "C" + c$ + "bm" + x$ + "," + y$ + CH$(nc)
xd = xc!: yd = yc!
s$ = "TA" + ta$ + "S" + zs$ + "C" + c$ + "bm" + x$ + "," + y$ + CH$(nc)
xd = xc!: yd = yc!
s$ = "TA" + ta$ + "S" + zs$ + "C" + c$ + "bm" + x$ + "," + y$ + CH$(nc)
s$ = "TA" + ta$ + "S" + zs$ + "C" + c$ + "bm" + x$ + "," + y$ + CH$(nc)
s$ = "TA" + ta$ + "S" + zs$ + "C" + c$ + "bm" + x$ + "," + y$ + CH$(nc)
sc = 4: x! = xc!: ac = 0: sc = 4
xc! = xc! + 9
xc! = xc! + 9
xc! = xc! + sc * 2
WAITKEY0:
PAUSE.MODE:
REM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DBOSS1:
c1
= 13: c2
= 12:
IF hbos
= 1 THEN c1
= 15: c2
= 15LINE (x
- 10, y
- 25)-(x
, y
- 32), 1 LINE (x
, y
- 32)-(x
+ 10, y
- 25), 1 LINE (x
- 10, y
- 25)-(x
+ 10, y
- 25), 1 LINE (x
- 16, y
)-(x
, y
+ 16), 5 LINE (x
, y
+ 16)-(x
+ 16, y
), 5 LINE (x
- 16, y
)-(x
+ 16, y
), 5 LINE (x
, y
+ 15)-(x
+ 15, y
), 5 LINE (x
- 15, y
)-(x
, y
+ 15), 5 CIRCLE (x
, y
), 30, 5, -pi!
* 2, -pi!
, .85 CIRCLE (x
- 11, y
- 17), 4, 14:
PAINT (x
- 11, y
- 17), 15, 14 CIRCLE (x
+ 10, y
- 12), 8, 14:
PAINT (x
+ 10, y
- 12), 15, 14 CIRCLE (x
- 15, y
), 8, 14, -pi!
* 2, -pi!
, .85:
PAINT (x
- 15, y
- 4), 15, 14 CIRCLE (x
+ 30, y
), 8, 14, -pi!
* .55, -pi!
, .85:
PAINT (x
+ 26, y
- 3), 15, 14 s
= SIN(cnt1
/ 1) * 20 + 30
DBOSS2:
c1
= 6: c2
= 14:
IF hbos
= 1 THEN c1
= 15IF s
= 0 THEN abos
= abos
+ 15 IF s
< 0 THEN abos
= abos
+ 30 dy1
= SIN(abos
/ 100) * 5: dy2
= SIN(abos
/ 100) * 10LINE (x
, y
- 9)-(x
+ 20, y
- 6 + dy1
), c1
LINE (x
+ 20, y
- 6 + dy1
)-(x
+ 32, y
- 1 + dy2
), c1
LINE (x
+ 32, y
- 1 + dy2
)-(x
+ 32, y
+ 3 + dy2
), c1
LINE (x
+ 32, y
+ 3 + dy2
)-(x
, y
+ 7), c1
LINE (x
, y
+ 7)-(x
- 32, y
+ 3 + dy2
), c1
LINE (x
- 32, y
+ 3 + dy2
)-(x
- 32, y
- 1 + dy2
), c1
LINE (x
- 32, y
- 1 + dy2
)-(x
- 20, y
- 6 + dy1
), c1
LINE (x
- 20, y
- 6 + dy1
)-(x
, y
- 9), c1
yy! = y + 4: dy! = dy2 / 7
x1 = x + xx: x2 = x - xx
LINE (x1
, yy!
)-(x1
+ 1, yy!
+ 5), c1
, B
LINE (x2
- 1, yy!
)-(x2
, yy!
+ 5), c1
, B
yy! = yy! + dy!
LINE (x
, y
- 9)-(x
- 6, y
- 3), c2
LINE (x
- 6, y
- 3)-(x
, y
+ 12), c2
LINE (x
, y
+ 12)-(x
+ 6, y
- 3), c2
LINE (x
+ 6, y
- 3)-(x
, y
- 9), c2
CIRCLE (x
, y
- 13), 4, c1
, , , 1:
PAINT (x
, y
- 13), c2
, c1
LINE (x
, y
+ 11)-(x
- 11, y
+ 23), c1
LINE (x
- 11, y
+ 23)-(x
, y
+ 19), c1
LINE (x
, y
+ 19)-(x
+ 11, y
+ 23), c1
LINE (x
+ 11, y
+ 23)-(x
, y
+ 11), c1
PAINT (x
, y
+ 16), c2
, c1
LINE (x
- 1, y
- 11)-(x
+ 1, y
- 11), c1
LINE (x
- 2, y
- 14)-(x
+ 2, y
- 14), c1
LINE (x
- 2, y
- 11)-(x
- 2, y
- 10), 0 LINE (x
+ 2, y
- 11)-(x
+ 2, y
- 10), 0
DBOSS3:
c1
= 6: c2
= 14:
IF hbos
= 1 THEN c1
= 15: c2
= 15c3
= 4: abos
= abos
+ 1: d
= abos
AND 63LINE (x
, y
- 6)-(x
+ 7, y
- 7), c1
LINE (x
+ 7, y
- 7)-(x
+ 12, y
- 10), c1
LINE (x
+ 12, y
- 10)-(x
+ 20, y
- 7), c1
LINE (x
+ 20, y
- 7)-(x
+ 24, y
+ 1), c1
LINE (x
+ 24, y
+ 1)-(x
+ 25, y
+ 9), c1
LINE (x
+ 25, y
+ 9)-(x
+ 20, y
+ 16), c1
LINE (x
+ 19, y
+ 16)-(x
+ 15, y
+ 7), c1
LINE (x
+ 15, y
+ 7)-(x
+ 6, y
+ 2), c1
LINE (x
+ 6, y
+ 2)-(x
, y
+ 6), c1
LINE (x
, y
- 6)-(x
- 7, y
- 7), c1
LINE (x
- 7, y
- 7)-(x
- 12, y
- 10), c1
LINE (x
- 12, y
- 10)-(x
- 20, y
- 7), c1
LINE (x
- 20, y
- 7)-(x
- 24, y
+ 1), c1
LINE (x
- 24, y
+ 1)-(x
- 25, y
+ 9), c1
LINE (x
- 25, y
+ 9)-(x
- 20, y
+ 16), c1
LINE (x
- 19, y
+ 16)-(x
- 15, y
+ 7), c1
LINE (x
- 15, y
+ 7)-(x
- 6, y
+ 2), c1
LINE (x
- 6, y
+ 2)-(x
, y
+ 6), c1
LINE (x
+ 18, y
+ 11)-(x
+ 24, y
+ 9), c1
PAINT (x
+ 20, y
+ 13), c2
, c1
LINE (x
- 18, y
+ 11)-(x
- 24, y
+ 9), c1
PAINT (x
- 20, y
+ 13), c2
, c1
LINE (x
+ 3, y
)-(x
+ 5, y
- 2), c3
LINE (x
- 3, y
)-(x
- 5, y
- 2), c3
LINE (x
+ 6, y
+ 2)-(x
, y
+ 6), 4 LINE (x
- 6, y
+ 2)-(x
, y
+ 6), 4
DBOSS4:
c1
= 9: c2
= 11: c3
= 15:
IF hbos
= 1 THEN c1
= 15CIRCLE (x
, y
), 30, c1
, 0, pi!
, .85 CIRCLE (x
, y
), 30, c1
, pi!
, pi!
* 2, .1 abos
= (abos
+ 1) AND 255a1!
= abos
+ xx
+ 1: r1!
= SIN(a1!
/ 4.33)a2!
= abos
+ xx
+ 2: r2!
= SIN(a2!
/ 3.97)a3!
= abos
+ xx
+ 3: r3!
= SIN(a3!
/ 3.67)yy
= y
- 4 - r2!: f1
= 40 - ABS(xx
- x
): f2
= f1
/ 5x1 = xx + f2 * r1!: x2 = xx + f2 * r2!: x3 = xx + f2 * r3!
LINE (xx
, yy
)-(x1
, yy
+ 16), c2
LINE (x1
, yy
+ 16)-(x2
, yy
+ 30), c2
LINE (x2
, yy
+ 30)-(x3
, yy
+ 30 + f2
* 2), c2
CIRCLE (x
, y
), 30, c3
, 0, pi!
, .1
DBOSS5:
c1 = 9: dy = 0: abos = abos + 1
IF hbos
= 1 THEN c1
= 15: dy
= -2 LINE (x
- 6, y
- 12)-(x
+ 11, y
- 24), c1
LINE (x
+ 11, y
- 24)-(x
+ 8, y
- 14), c1
LINE (x
+ 8, y
- 14)-(x
+ 16, y
- 8), c1
PAINT (x
+ 3, y
- 16), c1
, c1
LINE (x
- 7, y
+ 12)-(x
+ 2, y
+ 20), c1
LINE (x
+ 2, y
+ 20)-(x
+ 7, y
+ 12), c1
PAINT (x
, y
+ 16), c1
, c1
LINE (x
+ 18, y
)-(x
+ 40, y
- 12), c1
LINE (x
+ 18, y
)-(x
+ 40, y
+ 12), c1
LINE (x
+ 40, y
- 12)-(x
+ 36, y
), c1
LINE (x
+ 36, y
)-(x
+ 40, y
+ 12), c1
PAINT (x
+ 24, y
), c1
, c1
CIRCLE (x
- 7, y
- 4), 5, 15, , , .9:
PAINT (x
- 7, y
- 4), 15, 15 CIRCLE (x
- 7, y
- 4 + dy
), 2, 0, , , .9:
PAINT (x
- 7, y
- 4 + dy
), 0, 0
DBOSS6:
a
= ((abos
MOD 7) - 3) * 12: abos
= abos
+ 1c1
= 6: c2
= 14: c3
= 11:
IF hbos
= 1 THEN c1
= 15a! = a * pi! / 180: r = 20: s = 1
s
= SGN(q
+ .5): a!
= -a!
x1
= COS(a!
) * r
* s: y1
= SIN(a!
) * r
CIRCLE (x
+ x1
, y
- y1
), 8, c3:
PAINT (x
+ x1
, y
- y1
), c3
, c3
x2
= COS(a!
- .36) * r
* s: y2
= SIN(a!
- .36) * r
LINE (x
, y
)-(x
+ x2
, y
- y2
), c3
x3
= COS(a!
+ .36) * r
* s: y3
= SIN(a!
+ .36) * r
LINE (x
, y
)-(x
+ x3
, y
- y3
), c3
PAINT (x
+ x1
* .4, y
- y1
* .4), c3
, c3
CIRCLE (x
, y
- 12), 8, c1
, -pi!
* 1.9, -pi!
* 1.1, .8 PAINT (x
, y
- 14), c1
, c1
CIRCLE (x
- 5, y
- 14), 4, 7, , , .8 PAINT (x
- 5, y
- 14), A5$
, 7 CIRCLE (x
+ 5, y
- 14), 4, 7, , , .8 PAINT (x
+ 5, y
- 14), A5$
, 7 LINE (x
- 8, y
- 3)-(x
+ 8, y
- 1), c2
, BF
LINE (x
- 7, y
+ 4)-(x
+ 7, y
+ 6), c2
, BF
DBOSS7:
c1
= 4: c2
= 12: abos
= abos
+ 1: s
= SGN(abos
AND 16) * 10c3
= 4:
IF hbos
= 1 THEN c3
= 15c4 = csb(stbos / 16)
CIRCLE (x
- 32, y
- 14), 4, 2, , , 1 CIRCLE (x
+ 32, y
- 14), 4, 2, , , 1 CIRCLE (x
, y
- 13), 7, 15, -pi!
* 2, -pi!
PAINT (x
, y
- 14), c4
, 15 PAINT (x
- 32, y
- 15), s
, 2 PAINT (x
+ 32, y
- 15), 10 - s
, 2 LINE (x
- 50, y
- 10)-(x
+ 50, y
- 10), c1
LINE (x
- 25, y
+ 10)-(x
+ 25, y
+ 10), c1
LINE (x
- 50, y
- 10)-(x
- 80, y
), c1
LINE (x
- 80, y
)-(x
- 80, y
+ 4), c1
LINE (x
- 80, y
+ 4)-(x
- 25, y
+ 10), c1
LINE (x
+ 50, y
- 10)-(x
+ 80, y
), c1
LINE (x
+ 80, y
)-(x
+ 80, y
+ 4), c1
LINE (x
+ 80, y
+ 4)-(x
+ 25, y
+ 10), c1
PAINT (x
- 40, y
), c1
, c1:
PAINT (x
+ 40, y
), c1
, c1
LINE (x
- 40, y
- 13)-(x
- 43, y
- 11), c1
LINE (x
- 40, y
- 13)-(x
+ 40, y
- 13), c1
LINE (x
+ 40, y
- 13)-(x
+ 43, y
- 11), c1
PAINT (x
, y
- 12), c2
, c1
LINE (x
- 80, y
- 1)-(x
+ 80, y
+ 3), 14, BF
xx
= x
- 88 + (abos
MOD 24)LINE (xx
, y
- 1)-(xx
+ 11, y
+ 3), 0, BF
xx = xx + 24
LINE (x
- 80, y
+ 4)-(x
- 25, y
+ 10), c3
LINE (x
- 25, y
+ 10)-(x
+ 25, y
+ 10), c3
LINE (x
+ 80, y
+ 4)-(x
+ 25, y
+ 10), c3
REM - - - - - - - - - - - - - - - - - - - - - - - - - - -
DSTG1:
a1! = pi! - .7
x1
= COS(a1!
) * r1
+ 300: y1
= 450 - SIN(a1!
) * r1
r
= 36 * RND: x2
= x1
+ COS(a2!
) * r: y2
= y1
+ SIN(a2!
) * r
r
= 28 * RND: x2
= x1
+ COS(a2!
) * r: y2
= y1
+ SIN(a2!
) * r
r
= 16 * RND: x2
= x1
+ COS(a2!
) * r: y2
= y1
+ SIN(a2!
) * r
r
= 12 * RND: x2
= x1
+ COS(a2!
) * r: y2
= y1
+ SIN(a2!
) * r
a1! = a1! - .05
DSTG2:
c1 = 11: c2 = 9: c3 = 1
x = 169: y = 109
CIRCLE (x
- 19, y
- 16), 18, c1
, pi2!
* 3, pi2!
* 4 CIRCLE (x
+ 19, y
- 16), 18, c1
, pi2!
* 2, pi2!
* 3 CIRCLE (x
- 19, y
+ 16), 18, c1
, pi2!
* 0, pi2!
* 1 CIRCLE (x
+ 19, y
+ 16), 18, c1
, pi2!
* 1, pi2!
* 2 LINE (x
, y
- 17)-(x
, y
- 50), c1
LINE (x
, y
+ 17)-(x
, y
+ 42), c1
LINE (x
- 20, y
)-(x
- 48, y
), c1
LINE (x
+ 20, y
)-(x
+ 44, y
), c1
LINE (x
, y
- 40)-(x
, y
- 50), c2
LINE (x
, y
+ 40)-(x
, y
+ 45), c2
LINE (x
- 34, y
)-(x
- 48, y
), c2
LINE (x
+ 34, y
)-(x
+ 44, y
), c2
LINE (x
, y
- 50)-(x
, y
- 54), c3
LINE (x
, y
+ 45)-(x
, y
+ 50), c3
LINE (x
- 48, y
)-(x
- 52, y
), c3
LINE (x
+ 44, y
)-(x
+ 48, y
), c3
DSTG3:
x = xs!: y = ys!: r1 = rs!: rsmax! = 30
c1 = 4: c2 = 14: c3 = 4: a2! = 0
a2! = a2! + .03
r2 = 0: n = 0: a! = 0
x0 = x1: y0 = y1
f
= (r1
/ 6) * RND: a1!
= a!
+ .1 * RND r = r1 + r2 * f: r2 = 1 - r2
x1
= SIN(a1!
+ a2!
) * r
+ x: y1
= COS(a1!
+ a2!
) * r
+ y
IF n
= 0 THEN x2
= x1: y2
= y1
n = n + 1
LINE (x1
, y1
)-(x2
, y2
), c1
CIRCLE (x
, y
), r1
- 2, c3
, , , 1
DSTG4:
x = xs!: y = ys!: r1 = rs!: rsmax! = 60
c1 = 1: c2 = 9: c3 = 11: c4 = 11
CIRCLE (x
, y
), r1
, c2
, pi2!
* 3, pi2!
CIRCLE (x
, y
), r1
* .84, c1
, pi2!
, pi2!
* 3, 3 PAINT (x
- r1
* .5, y
), c1
, c1
CIRCLE (x
, y
), r1
* .84, c2
, pi2!
, pi2!
* 3, 3 PAINT (x
+ r1
* .5, y
), c2
, c2
x1 = x - r1 * .36: y1 = y - r1 * .16
CIRCLE (x1
, y1
), r1
* .16, c2
, , , .7:
PAINT (x1
, y1
), c2
, c2
x1 = x - r1 * .8: y1 = y - r1 * .05
CIRCLE (x1
, y1
), r1
* .16, c2
, , , 1.8:
PAINT (x1
, y1
), c2
, c2
x1 = x - r1 * .6: y1 = y + r1 * .05
CIRCLE (x1
, y1
), r1
* .2, c2
, , , 1:
PAINT (x1
, y1
), c2
, c2
x1 = x - r1 * .3: y1 = y + r1 * .1
x1 = x - r1 * .3: y1 = y + r1 * .1
CIRCLE (x1
, y1
), r1
* .3, c3
, -pi2!
* 3.1, -pi2!
* .95 PAINT (x1
+ r1
* .1, y1
), c3
, c3
x1 = x + r1 * .24: y1 = y - r1 * .5
CIRCLE (x1
, y1
), r1
* .16, c3
, , , .8:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .33: y1 = y - r1 * .3
CIRCLE (x1
, y1
), r1
* .2, c3
, , , .9:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .46: y1 = y - r1 * .46
CIRCLE (x1
, y1
), r1
* .14, c3
, , , .9:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .02: y1 = y + r1 * .75
CIRCLE (x1
, y1
), r1
* .12, c3
, , , .4:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .07: y1 = y + r1 * .67
CIRCLE (x1
, y1
), r1
* .15, c3
, , , .4:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .2: y1 = y + r1 * .6
CIRCLE (x1
, y1
), r1
* .15, c3
, , , .66:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .9: y1 = y + r1 * .02
CIRCLE (x1
, y1
), r1
* .14, c3
, , , 3:
PAINT (x1
, y1
), c3
, c3
x1 = x + r1 * .7: y1 = y + r1 * .13
CIRCLE (x1
, y1
), r1
* .17, c3
, , , 1.2:
PAINT (x1
, y1
), c3
, c3
x1 = x - r1 * .01: y1 = y - r1 * .8
CIRCLE (x1
, y1
), r1
* .12, c3
, -pi2!
* 2.5, -pi2!
* 1.3, .2:
PAINT (x1
+ r1
* .06, y1
), c3
, c3
x1 = x - r1 * .08: y1 = y - r1 * .8
CIRCLE (x1
, y1
), r1
* .12, c2
, -pi2!
* 1, -pi2!
* 2.8, .2 PAINT (x1
- r1
* .04, y1
), c2
, c2
CIRCLE (x
, y
), r1
, c4
, pi2!
* .28, pi2!
* .7
DSTG5:
x = xs!: y = ys!: r1 = rs!: rsmax! = 50
c1 = 6: c2 = 4: c3 = 12: c4 = 4
a1! = pi2! * 2: a2! = pi2! * 4: f! = .2
CIRCLE (x
, y
- r1
* .8), r1
* .2, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
- r1
* .7), r1
* .5, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
- r1
* .56), r1
* .74, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
- r1
* .4), r1
* .89, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
- r1
* .32), r1
* .93, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
- r1
* .16), r1
* .98, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
+ r1
* .06), r1
* 1, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
+ r1
* .29), r1
* .94, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
+ r1
* .42), r1
* .87, c2
, a1!
, a2!
, f!
CIRCLE (x
, y
+ r1
* .6), r1
* .69, c2
, a1!
, a2!
, f!
PAINT (x
, y
- r1
* .16), c2
, c2
PAINT (x
, y
+ r1
* .38), c2
, c2
PAINT (x
, y
+ r1
* .78), c2
, c2
CIRCLE (x
, y
), r1
, c3
, pi2!
* .2, pi2!
* 1.4 a1! = pi2! * 1.5: a2! = pi2! * .5
CIRCLE (x
, y
+ r1
* .04), r1
* 1.6, c4
, pi2!
* 1.42, pi2!
* .58, f!
CIRCLE (x
, y
+ r1
* .04), r1
* 1.76, c1
, pi2!
* 1.36, pi2!
* .64, f!
CIRCLE (x
, y
+ r1
* .04), r1
* 1.8, c4
, pi2!
* 1.36, pi2!
* .64, f!
DSTG6:
x = xs!: y = ys!: r1 = rs!: rsmax! = 60
c1 = 8: c2 = 7: c3 = 15: c4 = 8
a1! = -pi2! * 1.1: a2! = -pi2! * 3 * .9
CIRCLE (x
, y
), r1
, c2
, pi2!
, pi2!
* 3
CIRCLE (x
, y
), r1
* .84, c2
, pi2!
* 3, pi2!
, 1.6 PAINT (x
- r1
* .5, y
), c2
, c2
CIRCLE (x
, y
), r1
* .84, c1
, pi2!
* 3, pi2!
, 1.6 PAINT (x
+ r1
* .8, y
), c1
, c1
x1 = x - r1 * .25: y1 = y - r1 * .2
CIRCLE (x1
, y1
), r1
* .24, c3
, a1!
, a2!:
PAINT (x1
- r1
* .05, y1
), c3
, c3
CIRCLE (x1
- r1
* .02, y1
), r1
* .18, c2:
PAINT (x1
, y1
), c2
, c2
x1 = x - r1 * .8: y1 = y - r1 * .04
CIRCLE (x1
, y1
), r1
* .13, c1
, , , 1.6:
PAINT (x1
, y1
), c1
, c1
CIRCLE (x1
, y1
), r1
* .13, c3
, a1!
, a2!
, 1.6:
PAINT (x1
- r1
* .05, y1
), c3
, c3
CIRCLE (x1
- r1
* .01, y1
), r1
* .08, c2
, , , 1.6:
PAINT (x1
, y1
), c2
, c2
x1 = x - r1 * .5: y1 = y + r1 * .3
CIRCLE (x1
, y1
), r1
* .1, c1
, , , 1:
PAINT (x1
, y1
), c1
, c1
CIRCLE (x1
, y1
), r1
* .1, c3
, -a1!
, -a2!
, 1
x1 = x + r1 * .14: y1 = y - r1 * .55
CIRCLE (x1
, y1
), r1
* .13, c1
, , , .66:
PAINT (x1
, y1
), c1
, c1
x1 = x + r1 * .3: y1 = y + r1 * .1
CIRCLE (x1
, y1
), r1
* .2, c1
, , , .9:
PAINT (x1
, y1
), c1
, c1
x1 = x + r1 * .02: y1 = y + r1 * .75
CIRCLE (x1
, y1
), r1
* .12, c1
, , , .4:
PAINT (x1
, y1
), c1
, c1
x1 = x - r1 * .07: y1 = y + r1 * .5
CIRCLE (x1
, y1
), r1
* .15, c1
, , , .8:
PAINT (x1
, y1
), c1
, c1
x1 = x - r1 * .01: y1 = y - r1 * .8
CIRCLE (x1
, y1
), r1
* .12, c1
, , , .2:
PAINT (x1
+ r1
* .06, y1
), c1
, c1
CIRCLE (x1
, y1
), r1
* .12, c3
, -a1!
, -a2!
, .2
x1 = x + r1 * .9: y1 = y + r1 * .05
CIRCLE (x1
, y1
), r1
* .1, c4
, , , 3:
PAINT (x1
, y1
), c4
, c4
CIRCLE (x1
, y1
), r1
* .1, c2
, -a1!
, -a2!
, 3 CIRCLE (x1
+ r1
* .02, y1
), r1
* .1, c2
, -a1!
, -a2!
, 3 x1 = x + r1 * .7: y1 = y + r1 * .2
CIRCLE (x1
, y1
), r1
* .15, c4
, , , 1.5:
PAINT (x1
, y1
), c4
, c4
CIRCLE (x1
, y1
), r1
* .15, c2
, -a1!
, -a2!
, 1.5 CIRCLE (x1
+ r1
* .02, y1
), r1
* .15, c2
, -a1!
, -a2!
, 1.5 x1 = x + r1 * .62: y1 = y - r1 * .35
CIRCLE (x1
, y1
), r1
* .05, c4
, , , 1.2:
PAINT (x1
, y1
), c4
, c4
CIRCLE (x1
, y1
), r1
* .05, c2
, -a1!
, -a2!
, 1.2 CIRCLE (x1
+ r1
* .02, y1
), r1
* .05, c2
, -a1!
, -a2!
, 1.2
DSTG7:
c1 = 1: c2 = 9: c3 = 11: c4 = 15: c5 = 2: c6 = 10
x = -20: y = 330: r1 = 300
y1 = 0
x0
= x1: y0
= y1:
READ x1
, y1
EARTH:
DATA 0,119, 24,121, 40,124, 70,134, 69,138, 62,140, 79,148, 73,148, 84,155 DATA 82,154, 86,157, 88,162, 80,161, 70,158, 73,164, 88,172, 70,182 DATA 52,180, 48,183, 52,187, 51,193, 46,193, 62,199, 0,0 DATA 108,199, 114,186, 124,177, 123,172, 131,172, 138,185, 144,186, 147,192 DATA 154,194, 161,195, 165,199
REM - - - - - - - - - - - - - - - - - - - - - - - - - - -
LOAD.SPRITES:
ENEMY$(1, 0) = "br5h8d4g4f4d4e8bl5"
ENEMY$(1, 1) = "br4h5d3g2f2d3e5bl4"
ENEMY$(1, 2) = "br6h5l2d10r2e5bl2"
ENEMY$(1, 3) = "bl1h7d5g2f2d5e7bl3"
ENEMY$(2, 0) = "br4e2h8g6f4g4f6e8h2bl4"
ENEMY$(2, 1) = "bl4e4f4g4h4br4"
ENEMY$(3, 0) = "e7l14f3d8g3r14h7bl1"
ENEMY$(3, 1) = "br6bu5l10bd10r10"
ENEMY$(4, 0) = "bu3br5d6g6l6e6u6h6r6f6bd3bl3"
ENEMY$(4, 1) = "bl5d3g5r4e5u6h5l4f5d3br2"
ENEMY$(5, 0) = "br3f3g3h3g5h3e5h5e3f5e3f3g3bl2"
ENEMY$(5, 1) = "br2e3d6h3br1"
ENEMY$(6, 0) = "g9l5e3u3e3h3u3h3r5f9bl4"
ENEMY$(6, 1) = "bl7e2r8f2g2l8h2br7"
ENEMY$(7, 0) = "h5l5f5g5r5e5bl3"
ENEMY$(7, 1) = "bl4u2r16f1r4f1g1l4g1l16u2l3br8"
ENEMY$(8, 0) = "bu4br7d8g4l6h5u8e4r6 f5"
ENEMY$(8, 1) = "bl1bd1g5l8e5r8bl7bd3"
ENEMY$(9, 0) = "bd5br6g2l4h5u7e4r2 l1"
ENEMY$(9, 1) = "bd10bl4e3r5g4l4u1br3bu2"
ENEMY$(10, 0) = "br7g9l3h3u3e3h3u3e3r3f9bl7"
ENEMY$(10, 1) = "br7g3l6h3e3r6f3bl8"
ENEMY$(10, 2) = "br6g4l10h2u4e2r10f4bl6"
ENEMY$(10, 3) = "br7g3l6h3e3r6f3bl7"
ENEMY$(11, 0) = "br7g9l3h3u3e3h3u3e3r3f9bl7"
ENEMY$(11, 1) = "br7g3l6h3e3r6f3bl8"
ENEMY$(11, 2) = "br6g4l10h2u4e2r10f4bl6"
ENEMY$(11, 3) = "br7g3l6h3e3r6f3bl7"
CRASH$(1) = "br4bu4h8d8g8r8f8u8e8l8bd4"
CRASH$(2) = "br4f4l4d4h4g4u4l4e4h4r4u4f4e4d4r4g4bl4"
CRASH$(3) = "br4d8h4l8e4u8f4r8g4bl4"
SHOT$(1) = "bl2bu2r2d4r2"
SHOT$(2) = "bl2bu2r4d4l4u4"
LOAD.CHARSET:
CH$(0) = "br1r3f2d4g1l3h2u4e1"
CH$(1) = "br3ng1d7nl2r2"
CH$(2) = "bd2u1e1r3f1d1g2l1g2d1r5"
CH$(3) = "r5g3r2f1d2g1l3h1"
CH$(4) = "br4bd7u7g4d1r5"
CH$(5) = "br5l5d2r4f1d3g1l3h1"
CH$(6) = "br5l2g3d2f2r3e1u1h2l3g1"
CH$(7) = "r5d1g3d3"
CH$(8) = "br2r2f1d1g1l3g1d2f1r4e1u1h2l2h2e1r1"
CH$(9) = "bd7br1r2e3u2h2l3g1d1f2r3e1"
CH$(17) = "bd7u3nr5u2e2r1f2d5"
CH$(18) = "nd7r3f1d1g1bl3r4f1d2g1l4"
CH$(19) = "br4l2g2d4f1r3e1"
CH$(20) = "bd7u7r4f1d4g2l3"
CH$(21) = "nr4d3nr3d3f1r4"
CH$(22) = "br5l4g1d2nr3d4"
CH$(23) = "br4l2g2d4f1r3e1u3l2"
CH$(24) = "d7bu4r5bu3d7"
CH$(25) = "br2r2bl1d7bl1r2"
CH$(26) = "br1r4d5g2l2u1"
CH$(27) = "d7bu4r1ne3nf4"
CH$(28) = "d7r5"
CH$(29) = "bd7u6e1f2e2f1d6"
CH$(30) = "bd7u7f5nd2u5"
CH$(31) = "br2r2f1d4g2l2h1u4e2"
CH$(32) = "bd7u7r4f1d2g1l4"
CH$(33) = "br1r2f2d4nh2nf1g1l2h2u4e1"
CH$(34) = "bd7u7r4f1d1g1l4br1f4"
CH$(35) = "br5l3g2f1r3f1d2g1l5"
CH$(36) = "r6bl3d7"
CH$(37) = "d5f2r3e1u6"
CH$(38) = "d6f1e4u3"
CH$(39) = "d6f1e2nu2f2e1u6"
CH$(40) = "r1f2d3f2r1bl6r1e2bu3e2r1"
CH$(41) = "d2f3nd2e3u2"
CH$(42) = "r6d1g6r6"
LOAD.SOUNDS:
REM 2,7,10,13,15,19,22,25,27,31,34,39,43,46,58 SLASER1$ = "MBT255l64n58n57n56n55n54"
SLASER2$ = "MBT255l48n58n56n54n52n58n56n54n52"
SSHOOT1$ = "MBT255l64n63n61n58n55n58"
SSHOOT2$ = "MBT255l64n61n58n55"
SSHOOT3$ = "MBT255l48n7n10n7"
SETYPE1$ = "MBT255l32n39n34n31n27n25n22n19n15n13n10n7n2"
SETYPE2$ = "MBT255l40n60n59n58n57n19n13n10n7n2n7n5n1n3n1n2n1"
SETYPE3$ = "MBT255l32n36n24n1n17n2n19n0n11n1n15n3n17n2n9n1n6n2n4n1n3n1"
SETYPE4$ = "MBT255l64n50n48n45n41n36n50n47n43n37n33n26n19n12n1n9n1n7n1n5n1n3n1"
SETYPE6$ = "MBT255l40n39n31n25n19n13n7n2n7n10n7n13n15n19n15n22n25n27n25n31n34n39n34n43n46"
SETYPE8$ = "MBT255l32n2n7n10n13n15n19n22n25n27n31n34n39n43n46n58"
SETYPE9$ = "MBT255l40n58n46n43n39n34n31n27n25n22n19n15n13"
SETYPE10$ = "MBT255l32n56n55n53n50n45n43n41n40n41n43n45n50n53n55n56"
SETYPE11$ = "MBT255l64n70n69n68n67n66n65n64n63n62n61n60"
SCRASH8$ = "MBT255l64n58n25n19n13n10n7n2n7n5n1n3n1n2n1"
SCRASH9$ = "MBT255l32n30n1n23n2n19n3n14n2n15n1n11n1n7n1n4n1n5n1n3n1n2n1n0n1n3n1n2n1"
SNEW1$ = "MBT255l24n58n57n58n53n57n58"
SNEWPL1$ = "MBT255l3n25n32"
SNEWPL2$ = "MBT255l8n25n32"
SDOCK2$ = "MBT255l32n15n17n15n17n20n25n29n32n37"
SRGTON$ = "MBT80l24n27n0l24n27n29n34n31n34n31l12n29l24n29n32l6n36l24n38n34n31n38n34n31n38n34l12n39l24n38l8n39"
SLAUNCH$ = "MBT96l64n27l8n22l16n22l4n27n34l16n0n22MLl4n27n34MSl24n39n0n0l32n39n0l48n39n0l64n39n0n39n0l32n39n0n39n0l48n39n0n39n0l24n51MN"
SFAROUT1$ = "MBT80l8n22l12n22l8n26l12n26l8n29l12n29l8n34l12n34l8n22l12n22l8n26l12n26l8n29l12n29l8n34l12n34"
SFAROUT2$ = "MBT80l64n17l8n22l12n22l64n17l8n26l12n26l64n17l8n29l12n29l64n17l8n34l12n34"
SEND$ = "MBT96l6n22l16n27l2n25l16n27l8n25n27n29l16n25n27l48n25n27l12n29l32n27n29n27n29l4n34"
SBONPLAY$ = "MBT64l64n15n22n19n22n19n22n27l32n34"
SHITBOS1$ = "MBT255l64n63n62n61n60n50n40n30n20n13n10n8n7n5n4n3n2n1n1n1"
SBOSPTS$ = "MBT255l64n46n45n44n43n42n41n40n39n38n37n36n35n34"
SSTAGE1$ = "MBMST64l32n40n0n40n40n0n40n40n40n40n0n40n40n0n40n0n40n0n40n40n40n0n40n0MN"
SSTAGE2$ = "MBT255l32n19n22n25n27n31n34n39n43n46"
SFINAL$(1, 1) = "MBMNT64l4n25l24n18n18l4n25l24n18n18l24n25n0n30n0l4n25"
SFINAL$(1, 2) = "MBMNT64l24n18n18l24n25n0n30n0l3n32"
SFINAL$(1, 3) = "MBMNT64l24n23n23l24n28n0n30n0l8n32l24n34l4n35"
SFINAL$(1, 4) = "MBMNT64l6n37l6n34l8n30n28n32n35"
SFINAL$(1, 5) = "MBMLT64l8n39l6n37l6n34l8n30n28n32n35n39l6n42"
SFINAL$(1, 6) = "MBMLT64l64n37n42n49n37n42n49n37n42n49n37n42n49n37n42n49n37n42n49l16n42"
SFINAL$(1, 7) = "MBMLT64"
SFINAL$(2, 1) = "MBMNT64l6n13n15n18n20n25l24n23n22l12n20l6n23l24n22n20l12n18n22n18l6n20"
SFINAL$(2, 2) = "MBMLT64l64n25n30n37MNl16n0l24n13n13n18n0n18n18n20n0n20n20n25n0n25n25n23n22n20n0"
SFINAL$(2, 3) = "MBMNT64l24n23n0n23n23n22n20n18n0l12n22l24n23n0n18n0n22n0l4n20"
SFINAL$(2, 4) = "MBMNT64l16n8n8n8n0n8n0n8n0n8n8n8n0n8n0"
SFINAL$(2, 5) = "MBMNT48l64n20l4n32MLl12n32n30n29n27n25l4n30l24n32n34l4n32"
SFINAL$(2, 6) = "MBMNT48l12n8l4n32MLl12n32n30n29n27T64n25l4n35l24n37n39"
SFINAL$(2, 7) = "MBMLT64l64n25n37n25n37n25n37n25n37n25n37n25n37n25n37n25n37l8n37"
CREDITS:
DATA " YOU SAVED", " THE GALAXY", " ", " ", " ", " " DATA " CONGRATULATIONS", " ", " THE MISSION", "IS ACCOMPLISHED" DATA " ", "THE ALIENS HAVE", " LEFT", " AND THE EARTH" DATA " IS NOW FREE", " ", "YOU HAVE BROUGHT", " BACK PEACE TO" DATA " OUR GALAXY", " ", "WE WILL THANK", " YOU FOREVER" DATA " ", " THE FORCE", "WILL BE WITH YOU", " ALWAYS" DATA " ", " ", " ", " ", " THE END"
TITLE.HELP:
SCREEN 7, 0, 2, 2: tcnt
= 0: tpos
= 0: sss
= 0
THELP.MAIN:
THELP.SOFT:
a = 16024 + (tpos) * 80
THELP.SCROLL:
THELP.TEXT:
DATA "- INCOMING MESSAGE -" DATA "THE UNITED EARTH ADMINISTRATION" DATA "- - - - - - - - - - - - - - - -" DATA "ALIENS HAVE INVADED TO OUR GALAXY." DATA "THEY BUILD BASES TO NEARBY STARS " DATA "IN RANGE OF SEVERAL LIGHT YEARS." DATA "BEFORE WE COULD START ANY COUNTER" DATA "MEASURES TO PROTECT OURSELF," DATA "THEY NOTICED OUR TELEMITRY SIGNALS," DATA "SENT BETWEEN THE EARTH AND OUR" DATA "THEY REACHED OUR SOLAY SYSTEM AND" DATA "INSTANTLY OCCUPIED ONE PLANET" DATA "AFTER ANOTHER, STARTING WITH PLUTO" DATA "OVER TO NEPTUN, SATURN, JUPITER AND" DATA "FINALLY THE EARTH MOON, WHERE THEY >>" DATA "LOCATED THEIR GIANT NEXUS MOTHERSHIP" DATA "WITH DESTROYING OUR SPACE STATION" DATA "AND SEVERAL ORBIT SHUTTLES, COSTING" DATA "OVER 10.000 HUMAN LIFES, THEYïVE" DATA "DEMONSTRATED THEIR EXTREMELY AGRESSIVE DATA "INTENTIONS"
DATA ""
DATA "MOTHERSHIP PREPARES
FOR THE FINAL
" DATA "ATTACK
ON THE EARTH
" DATA "AND IF THIS HAPPENS MANKIND CAN KISS
" DATA "THE DAYïS GOODBYE
, THATS
FOR SURE
" DATA ""
DATA "GOD, WE NEED SOMEONE WHO BLOWS THESE"
DATA "BASTARDS
TO PIECES !
" DATA "WE NEED
TO DESTROY ALL THEIR HOMEBASES
" DATA "TO BREAK UP THEIR SUPPLY
LINE," DATA "STARTING AT THE VEGA CONSTELLATION"
DATA "37 LIGHTYEARS AWAY"
DATA ""
DATA ">> So, fine, but what has all this"
DATA "to do with me
? << YOU ASK
DATA "CAUSE ALL OUR ASTRONAUTS HAVE SUDDENLY" DATA "GONE ON VACATION 3 DAYS AGO," DATA "WE ENGAGED YOU. YOUïRE OUR LAST HOPE !" DATA "ALTHOUGH YOURE NO ASTRONAUT, NOT EVEN DATA "A PILOT, THAT DOESNïT REALLY MATTER."
DATA ""
DATA "WEïVE SIMPLIFIED THE SHIPïS CONTROLS SO"
DATA "THAT EVEN AN AVERAGE CLEVER SPACE-COW"
DATA "CAN FLY IT"
DATA "LOOK, ITS REALLY EASY:"
DATA "","",""
DATA "- - - - - - - - - - - - - - - - - - -"
DATA "Lunar Module Control Keys"
DATA "","",""
DATA "Arrow Left / Num 4 = Move Left "
DATA "Arrow Left / Num 6 = Move Right"
DATA "Left Strg = Fire / Thrust"
DATA "P = Pause"
DATA "
DATA "Use the Num-Keys for better control" DATA "Bonus Ship given every 20000 Pts" DATA "Successful Docking increases Firepower" DATA "Hitpoints increase every Stage" DATA "- - - - - - - - - - - - - - - - - - -" DATA "YOU ARE SUPPLIED WITH 3 SEPERATE LUNAR" DATA "MODULES, OUTFITTET WITH A STAR-DRIVE" DATA "AND HIGH-VOLTAGE PLASMA LAUNCHERS" DATA "THE MODULES CAN BE FLOWN SEPERATLY OR" DATA "CONNECTED, WHICH GIVES AN EXTRA DATA "FIRE-POWER."
DATA "HOWEVER
, TO SAVE MODULES
, THEY ARE
" DATA "DISCONNECTED AUTOMATICALLY WHEN POSSIBLE"
DATA "OR WHEN ONE OF THEM GETS DESTROYED.
" DATA ""
DATA "IF THIS HAPPENS
, YOU SHOULD BE EJECTED
" DATA "AND WHEN YOUïVE BEEN EJECTED
, YOU
DATA "SHOULD ENTER THE NEXT INTACT SECTION" DATA ""
DATA "THE SHIPïS COMPUTER CRASHES FROM"
DATA "TIME
TO TIME. BUT DONïT PANIC
," DATA "OUR ENGINEERS WILL
FIX THAT BY SENDING
" DATA "YOU UPDATE VERSIONS OF THE SHIPïS"
DATA "COMPUTERïS OPERATING
SYSTEM" DATA "(Windows 2011 v4.1.0.2.1-beta-beta)"
DATA ""
DATA ""
DATA "THE EARTH
BASE WILL TRY
TO SUPPLY YOU
" DATA "CONSTANTLY WITH NEW MODULES"
DATA ""
DATA "BUT PLEASE HANDLE WITH CARE,"
DATA "WE CANïT BAKE THEM LIKE BREADS"
DATA ""
DATA "GOOD LUCK!"
DATA "","","","",""
DATA "","","","","","","","","","","",""
DATA "GAME INFO"
DATA ""
DATA "This programm was intended
as a tutorial
" DATA "for beginners who want
to learn
" DATA "programming in Qbasic, demonstrating"
DATA "some of its capabillities
for making
" DATA "most of the Graphic functions,"
DATA "exspecially the
DRAW Command
for Sprites
" DATA "(which lets you rotate
and scale
).
" DATA "Even
if some of the letters look like
" DATA "vectors, but they are all DRAW-Sprites"
DATA ""
DATA "The inspiration
and ideas i lend
DATA "(took, stole) from following games:" DATA "Mooncresta arcade game (1983)" DATA "Space Pilot I-II (C64)" DATA "(They belong to my all-time favorite DATA "shoot-em-ups)"
DATA ""
DATA "In the beginning i just wanted
to make
" DATA "a simple shooter
(what it still
is) but
" DATA "then those old shooting games came
to" DATA "mind, exspecially Mooncresta (obviously"
DATA "you can see where i got the title),"
DATA "which i played
as a kid totally
" DATA "fascinated me."
DATA "Those games had great graphics
and DATA "sound (for this time) and where FUN" DATA "So i also wanted to put in something of" DATA "these games, and as the programm grew" DATA "bigger and bigger, i decided to make a" DATA "complete game of it, and hereïs whats" DATA "(hope you like this piece of ïcrapï)"
DATA "",""
DATA "Mooncr.99 made by Daniel Kupfer
DATA "EMail dk1000000@aol.com" DATA " or dku1000000@cs.com" DATA "Machine Requirements:" DATA "Qbasic: Pentium 200" DATA "Compiled: 486-66 / Pentium 66" DATA "As its Qbasic you need decent computer" DATA "power to run at full speed (35 frames)" DATA "It works just fine on my P-II 233" DATA "Iïve never tried to compile this" DATA "ïcause i donït own Quick Basic, but if" DATA "it works, i guess its gonna be 5 times" DATA "faster or so (however it never runs" DATA "more than 35 frames)" DATA "If you liked it, ask for upcoming"