>>> UNDEFINED GOTO/GOSUB 67: undefined label 1 >>> UNINITIALIZED VARIABLES fn: 0 time$: 1 >>> REFERENCE COUNT BACKSPACE$: 1 CL$: 2 ENTER$: 1 HOME$: 3 LE$: 8 ND$: 1 UP$: 4 a$: 10 b$: 4 d$: 17 dc$: 3 e$: 8 fd$: 2 im$: 2 k$: 9 ka$: 4 kb$: 35 pw$: 1 qm$: 1 qn$: 1 s$: 2 sc$: 2 sd$: 3 w$: 23 z$: 1 PI: 5 a1: 2 at: 14 b: 3 b0: 4 b9: 5 c: 14 c1: 2 c2: 3 c3: 1 c4: 1 cc: 6 cm: 3 d: 31 d1: 24 d2: 2 ds: 3 e: 45 e0: 4 e1: 27 e2: 4 eb: 6 ep: 10 f1: 1 fl: 0 g0: 29 g1: 15 g2: 5 g3: 6 g4: 5 g5: 2 g6: 5 h: 8 h1: 6 h2: 3 h3: 4 h4: 2 i: 17 ib: 60 is: 2 j: 4 k: 18 k0: 6 k1: 1 k2: 1 k4: 2 k9: 16 l1: 3 l2: 3 l3: 4 l4: 3 lf: 1 m0: 6 ma: 23 mc: 6 me: 4 mf: 2 mh: 0 ml: 0 mr: 4 mx: 1 my: 3 mz: 15 n1: 8 n2: 11 n4: 10 n5: 5 n6: 6 n7: 9 n8: 8 o1: 11 o2: 9 o3: 12 p: 13 p0: 2 p1: 3 pm: 1 pp: 5 ps: 0 q: 13 q1: 11 q2: 9 q3: 20 q6: 6 q7: 2 r: 7 r0: 7 r1: 11 rr: 2 s: 23 s1: 21 s2: 20 s3: 13 s4: 7 s5: 5 s6: 4 s7: 1 s8: 1 s9: 4 t: 9 t0: 9 t3: 7 t4: 2 t5: 3 t9: 7 tb: 2 tc: 2 tt: 1 v1: 17 v2: 9 v3: 9 v5: 3 v6: 3 vd: 3 vl: 2 w0: 0 w1: 49 w2: 33 w3: 16 w4: 6 w5: 1 w6: 1 w7: 17 w8: 35 w9: 79 ww: 2 x: 7 x1: 2 x2: 2 >>> STRIPPED LIST PI = 3.14159265358979 : BACKSPACE$ = "": CL$ = "": ENTER$ = "" : HOME$ = "" : LE$ = "": ND$ = "": UP$ = "" goto 10000 rem SECTOR 100 if d[2] = 0 then pp = 0: return pp = 1: if n1 < l1 then return if n1 > l2 then return if n2 < l3 then return if n2 > l4 then return pp = 0: return 130 gosub 100: if pp then return 140 w9 = s[n1 * 8 + int(n2 / 2)] + 1: if w9 < 1 then w9 = 0 tc = c[w9] 160 poke vd + 40 * n1 + n2, tc: return 170 gosub 100: if pp then return 175 poke vd + 40 * n1 + n2, 155: return 180 for w8 = 0 to pm: music ">b0r<": next: return 190 gosub 100: if pp then return if tc > 192 gosub 180 goto 160 210 n1 = w1: n2 = 2 * w2: gosub 100: if pp then return tc = 90: gosub 160: gosub 180: goto 140 230 n1 = s1: n2 = 2 * s2: goto 175 240 n1 = s1: n2 = s2 * 2: tc = c[2]: goto 160 250 gosub 100: if pp then return 260 if n2 - int(n2 / 2) * 2 then tc = is: goto 160 goto 140 rem MOVING 300 n1 = o1: n2 = 2 * o2: c1 = n1: c2 = n2: s4 = o3: s5 = o3 c3 = -cos(c / 180 * PI) / 2 * 0.9999: c4 = sin(c / 180 * PI) * 0.9999 for i = 1 to r: c1 = c1 + c3: c2 = c2 + c4: n7 = int(c1 + 0.5): n8 = int(c2 + 0.5) if (n1 = n7) and (n2 = n8) then next: goto 365 if p1 gosub 250 if (n7 < 0) or (n7 > 7) or (n8 < 0) or (n8 > 14) goto 375 n1 = n7: n2 = n8: s4 = int(n7 * 8 + c2 / 2 + 0.5): if s4 = s5 goto 350 w1 = s[s4]: if w1 then 380 s5 = s4 350 if p1 then tc = tt: gosub 190 next 365 if p1 then if n2 - int(n2 / 2) * 2 gosub 250 r1 = 0: r = 0: return 375 w9 = i: i = r: next: r1 = 4: r = r - w9 - 1: return 380 w9 = i: i = r: next: r1 = w1: if w1 < 0 then r1 = -1 r = r - w9: return 400 w9 = -180 * (w1 > 0): if w2 then w9 = 90 - (atn(-w1 / w2) / PI + (w2 < 0)) * 180 + 0.5 w1 = int(sqr(w1 * w1 + w2 * w2) + 0.5): w2 = int(w9): return 410 if k = 0 then return k4 = 1 - k4: for o3 = 0 to 63: if s[o3] >= 0 then next: return w3 = -s[o3]: gosub 650: if (v1 < 40) + (v1 - int(v1 / 2) * 2 = k4) then next: return o1 = int(o3 / 8): o2 = o3 - o1 * 8: w1 = o1 - s1: w2 = o2 - s2: gosub 400 if v1 > fnr(400) goto 456 if k > fnr(3) then next: return goto 460 456 if k < fnr(8) then next: return w2 = w2 + 180 460 w2 = w2 + fnr(91) + fnr(91) - 90: c = w2: r = 2: p1 = 0: gosub 300 if (r1 <> 0) and (r1 <> 4) then next: return if r1 = 4 gosub 500: if (abs(q[q6]) >= 1900) or (v3 > 0) then next: return s[o3] = 0: n1 = o1: n2 = 2 * o2: gosub 130 if r1 = 0 goto 490 q[q3] = q[q3] - 100: k = k - 1: gosub 2000: q[q6] = q[q6] + 100 * sgn(q[q6]) if n6 = 0 gosub 1840: if d[3] = 0 then w1 = q6: gosub 1800 next: return 490 v1 = v1 - 19: i = s5: gosub 660: n1 = int(s5 / 8): n2 = (s5 - n1 * 8) * 2: gosub 130: next :return 500 w7 = (q1 + (n7 < 0) - (n7 > 7) + 8): w8 = w7 - int(w7 / 8) * 8 w7 = (q2 + (n8 < 0) - (n8 > 14) + 8): w9 = w7 - int(w7 / 8) * 8: q6 = w8 * 8 + w9: return 520 s[s3] = 0: o1 = s1: o2 = s2: o3 = s3: tt = c[2]: p1 = 1: gosub 300 on r1 + 2 goto 530, 555, 1, 570, 540, 580 530 a$ = k$: goto 550 540 a$ = s$ 550 w1 = int(s4 / 8): w2 = s4 - w1 * 8: print "STOPPED BY "; : gosub 1035: gosub 1140 555 s3 = s5 560 s1 = int(s3 / 8): s2 = s3 - s1 * 8: s[s3] = 1: if d[2] then 1600 goto 240 570 s3 = s4: gosub 560: q[q3] = q[q3] - 10: b9 = b9 - 1: b = b - 1: goto 1840 580 w1 = q3: gosub 1800: gosub 500: q3 = q6: w8 = n7 + 8 - int((n7 + 8) / 8) * 8 w9 = int((n8 + 15 - int((n8 + 15) / 15) * 15) / 2): s3 = w8 * 8 + w9: gosub 1740: gosub 1600 gosub 2000: if r > 0 goto 520 r1 = 0: return 590 if (a1 = 0) or (e - e1 < 30) then return w1 = v5 - s1: w2 = v6 - s2: gosub 400 c = w2: r = 2: gosub 520: a1 = (v5 <> s1) or (v6 <> s2): e = e - 30: goto 1325 649 rem: k$ = "KLINGON": goto 3999 650 v2 = int(w3 / 10000): v3 = int((w3 - 10000 * v2) / 1000): v1 = w3 - (v2 * 10 + v3) * 1000: return 660 if (v1 <= 20) and (v3 > 0) then v3 = v3 - 1: v1 = v1 + ep - 100 s[i] = -v1 - 1000 * v3 - 10000 * v2: return 680 a$ = k$: k = k - 1: k9 = k9 - 1: w3 = 100: goto 760 690 v1 = v1 - h: if v1 <= 0 goto 680 gosub 1040: goto 660 700 for w9 = 0 to 63: if s[w9] < 0 then s[w9] = s[w9] + int(-s[w9] / 10000) * 10000 710 next: return 720 at = 0: for i = 0 to 63: if int(-s[i] / 10000) <> d1 - 3 goto 740 at = at + 1: if at = 1 then print d$[d1]; "S LOCKED ON": gosub 1140 w1 = int(i / 8): w2 = i - w1 * 8: gosub 1000: print " "; 740 next: if at = 0 then print d$[d1]; "S NOT LOCKED" goto 1140 rem WEAPON 750 pm = 10: gosub 210: print d$[5]; " HIT ON "; : gosub 1035: goto 1140 760 s[i] = 0: q[q3] = q[q3] - w3: gosub 1050: gosub 130: gosub 2000: if n6 then return goto 1840 770 r = 30: p1 = 1: pm = 2: if (c > 30) and (c < 150) then tt = 195: goto 778 if (c >= 150) and (c <= 210) then tt = 193: goto 778 if (c > 210) and (c < 330) then tt =196: goto 778 tt = 194 778 gosub 300: i = s4: w1 = int(i / 8): w2 = i - w1 * 8: on r1 + 2 goto 780, 1, 790, 800, 810, 820 780 a$ = k$: gosub 750: w3 = -s[i]: gosub 650: h = ep: goto 690 790 a$ = e$: gosub 750: h = ep: goto 1430 800 a$ = b$: gosub 750: b9 = b9 - 1: b = b - 1: w3 = 10: goto 760 810 a$ = s$: gosub 750: w3 = 1: goto 760 820 print "MISSED!!": goto 1140 830 w8 = w5 - s1: w9 = w6 - s2: w7 = w8 * w8 + w9 * w9: h = h1: if w7 > 9 then h = int(9 * h1 / w7) pm = int(h / 25): ps = 5: gosub 210: goto 1020 850 if k = 0 then return for o3 = 0 to 63: w3 = -s[o3]: if w3 <= 0 then next: goto 935 gosub 650: o1 = int(o3 / 8): o2 = o3 - o1 * 8: if w3 = s9 goto 920 w1 = s7 - o1: w2 = s8 - o2: gosub 400: rr = w1: if rr < fnr(4) goto 920 if v3 = 0 goto 910 k2 = s[s6]: s[s6] = 1: c = w2: r = 30: p1 = 0: gosub 300: s[s6] = k2: if r1 = -1 goto 910 if r1 = 3 then if (fnr(100) < v1) or (v3 < 2) goto 910 w1 = o1: w2 = o2: print "< "; : gosub 1030: gosub 1110: v3 = v3 - 1: v1 = v1 - 20: i = o3 gosub 660: gosub 770: next: goto 935 910 if rr > 6 + fnr(2) then next: goto 935 920 h1 = int((20 - v1) * (v1 >= 20) * rnd(1) / 2): if h1 <= 0 goto 930 n1 = o1: n2 = 2 * o2: gosub 170: v1 = v1 - h1: i = o3: gosub 660: w1 = s1: w2 = s2: w5 = o1: w6 = o2 gosub 830: print e$: gosub 1140: print "FROM "; : w1 = o1: w2 = o2: gosub 1030: gosub 1140 gosub 1430: n1 = o1: n2 = 2 * o2: gosub 130 930 next 935 s6 = s3: s7 = s1: s8 = s2: return 940 print "< "; e$; : gosub 1110: p = p - 1: gosub 2000: o1 = s1: o2 = s2: o3 = s3: goto 770 950 if h1 <= 0 goto 2000 for i = 0 to 63: w3 = -s[i]: if w3 <= 0 then next: goto 2000 gosub 650: if (v2 <> 1) and (at > 0) then next: goto 2000 e = e - h1: gosub 230: w1 = int(i / 8): w2 = i - w1 * 8: w5 = w1: w6 = w2: gosub 830: gosub 1030 gosub 1140: gosub 690: gosub 240: next: goto 2000 rem OUTPUT TOOLS 1000 print str$(w1 + 1); "-"; str$(w2 + 1); : return 1020 print h; " UNIT HIT ON "; : return 1030 a$ = k$ 1035 print a$; " AT "; : goto 1000 1040 print "("; v1; " LEFT )": goto 1140 1050 print a$; " DESTROYED!!": goto 1140 1060 print "NOT ENOUGH ENERGY"; : music ">c2<": goto 1140 1070 a$ = "> NO " + k$ + "S <" 1075 print spc((39 - len(a$)) / 2); a$: goto 1140 1080 print "[ DATA ERROR! ]": music "b1rbrbrb": goto 1140 1110 print " FIRING "; d$[5]; " >": goto 1140 1120 print "EXCUSE ME SIR, "; : return 1130 gosub 1800: cursor (w1 - int(w1 / 8) * 8) * 5, int(w1 / 8): print "*": return 1140 usr(g1): cursor 0, 13: return rem DISPLAY AREA 1200 mz = 53248 + (n4 + 1) * 40: my = g0: gosub 8850 mz = mz + 40: gosub 8850 mz = 53808 - mz: gosub 8850 cursor 0, 13: return 1210 if n4 < w1 then n4 = w1 print HOME$; : for w9 = 0 to n4: print spc(39): next: print HOME$; : n4 = w1: return 1230 gosub 1200: cursor 0, n4 + 1: for w9 = n4 + 1 to 13: print spc(39): next: cursor 0, 13: return 1240 cursor 0, n4 - 1: print spc(39): cursor 9, n4 - 1: return 1260 cursor 0, 14: for w9 = 1 to 10: print spc(16): next: print spc(16); : return 1270 cursor 19, 14: for w9 = 1 to 10: print tab(19); spc(20): next print tab(19); spc(20); : return 1275 poke g0, 48: poke g0 + 1, 210: poke g0 + 2, 88: poke g0 + 3, 210: poke g0 + 4, 114: poke g0 + 5, 1 cursor 0, 14: for w9 = 1 to 10: print spc(39): next: print spc(39); : cursor 0, 14: return 1280 cursor 0, 23: print spc(39); : poke mx, 0: return 1285 cursor 0, n4: print spc(39): print UP$; : return rem RECOVERY & DAMAGE 1300 d[d1] = 0: print d$[d1]; " REPAIRED!": gosub 1140: if d1 = 2 then 1610 if d1 = 3 goto 1880 return 1305 print "DOCKED!!": gosub 1140: h3 = 0: for d1 = 1 to 7: if d[d1] > h3 then h3 = d[d1] if d[d1] gosub 1300 next: if d[9] then d[9] = 0: print dc$; " INSTALLED!!": gosub 1140 print e$; " ENERGIZED!!": gosub 1140 h3 = int(h3 / 10): h4 = int((eb - e - p * 500) / 1000): if h3 < h4 then t = t + h4 / 100: goto 1320 t = t + h3 / 100 1320 e = e0: p = p0: e1 = int(e / 100 * e2 + 0.5): r1 = 0: return 1325 t3 = 1 1330 if t3 = 0 then 1380 if d[9] = 0 then e = e + 50 * t3 if e > eb - ep * p then e = eb - ep * p for w9 = 1 to t3: e1 = e1 + int((e * e2 / 100 - e1) / 4): next: t = t + t3 / 100: gosub 2000 if fnr(200) < t3 then gosub 1420 for d1 = 1 to 7: if d[d1] then d[d1] = d[d1] - t3: if d[d1] < 1 gosub 1300 next: d1 = fnr(7) + 1: if (fnr(100) > 25) or (d[d1] = 0) goto 1380 print "*** SPOCK USED A NEW REPAIR TECHNIQUE **": gosub 1140: gosub 1300 1380 if r1 = 2 then gosub 1305: goto 2000 return 1420 gosub 40000: print "SPACE STORM!!": gosub 1140: h = 0: if lf = 0 then h = 200 + fnr(400) gosub 1020: print e$: gosub 1140: if h = 0 then return 1430 e = e - h: e1 = e1 = h: if e1 < 0 then e1 = 0 gosub 2000: if fnr(int(h / 10)) * fnr(20) < e1 then return d1 = fnr(8 - (d[9] = 0)) + 1: h = 5 + fnr(30) 1455 ds = d[d1]: on d1 goto 1460, 1480, 1460, 1460, 1460, 1460, 1457, 1490, 1520 1457 if ds = 0 then gosub 700: if r1 then a1 = 0: gosub 2000 1460 d[d1] = ds + h 1465 tb = len(d$[d1]) + 1 gosub 1475: goto 1140 1475 print d$[d1]; tab(tb); "DAMAGED"; : mz = d[d1] / 100: gosub 8410 print " YRS TO REPAIR": return 1480 gosub 1460: if ds then return goto 1610 1490 a$ = d$[8]: gosub 1050: for w9 = 0 to 63: q[w9] = -abs(q[w9]): next: gosub 1805: goto 1880 1520 d[9] = -1: a$ = dc$: goto 1050 1599 rem : print "QUADRANT "; : return 1600 gosub 1260: cursor 1, 23: print "1 2 3 4 5 6 7 8"; UP$: w$ = qm$[int(q1 / 2), int(q2 / 2)] w$ = w$ + " " + qn$[q1 - int(q1 / 2) * 2, q2 - int(q2 / 2) * 2] cursor int((18 - len(w$)) / 2), 14: print w$ cursor 3, 24: gosub 1599: w1 = q1: w2 = q2: gosub 1000 1610 for w9 = 1 to 8: cursor 0, 14 + w9: print spc(16); str$(w9); : next: if d[2] goto 1650 l1 = 0: l2 = 7: l3 = 0: l4 = 14 for w8 = 0 to 7: cursor 1, 15 + w8: for w7 = 0 to 7: w9 = s[w8 * 8 + w7] + 1: if w9 < 1 then w9 = 0 ww = vd + 40 * w8 + w7 * 2: poke ww, c[w9]: if w7 <> 7 then poke ww + 1, is next: next: goto 1200 1650 l1 = s1 - 1: if l1 < 0 then l1 = 0 l2 = s1 + 1: if l2 > 7 then l2 = 7 l3 = 2 * s2 - 2: l4 = l3 + 4: if l3 < 0 then l3 = 0 if l4 > 14 then l4 = 14 for n1 = l1 to l2: for n2 = l3 to l4: gosub 260 next: next: goto 1200 1710 if w1 <= 0 then return for w9 = 1 to w1 1720 w8 = fnr(64): if s[w8] then 1720 s[w8] = w2: next: return 1740 q1 = int(q3 / 8): q2 = q3 - q1 * 8: gosub 1880: w3 = q[q3] - int(q[q3] / 1000) * 1000 k = int(w3 / 100): b = int(w3 / 10) - k * 10: for w9 = 0 to 63: s[w9] = 0: next: s1 = int (s3 / 8) s2 = s3 - s1 * 8: s[s3] = 1: w1 = b: w2 = 2: gosub 1710: w1 = k: w2 = -s9: gosub 1710 w1 = w3 - int(w3 / 10) * 10: w2 = 3: gosub 1710: s6 = s6: s7 = s1: s8 = s2: return rem UNIVERSE 1800 cursor (w1 - int(w1 / 8) * 8) * 5, int(w1 / 8) print right$(" " + str$(q[w1] - 1000), 4); : return 1805 if n6 then return print HOME$; : for w9 = 0 to 7: print " : : : : : : :": next return 1810 w1 = 8: gosub 1210: n6 = 0: gosub 1805 for w1 = 0 to 63: if q[w1] >= 0 then gosub 1800 next 1840 if n6 then return w1 = q3: gosub 1130: goto 1200 1850 for w9 = 0 to 63: s[w9] = 0: next: w1 = b9: w2 = 10: gosub 1710 for w8 = 1 to k9: if w8 > 1 then if fnr(900) > s[w9] then 1870 1860 w9 = fnr(64): if (s[w9] = 10) or (s[w9] > 800) goto 1860 1870 s[w9] = s[w9] + 100: next: for w8 = 0 to 63: q[w8] = -s[w8] - 2 - fnr(4) - fnr(4) - 1000: next q3 = fnr(64): q1 = int(q3 / 8): q2 = q3 - q1 * 8: s3 = fnr(64): return 1880 q[q3] = abs(q[q3]): gosub 1840: if d[3] then return for w8 = q1 - 1 to q1 + 1: for w9 = q2 - 1 to q2 + 1 w1 = (w8 + 8 - int(w8 / 8 + 1) * 8) * 8 + w9 + 8 - int(w9 / 8 + 1) * 8: if w1 = q3 goto 1897 q[w1] = abs(q[w1]): if n6 = 0 gosub 1800 1897 next: next: cursor 0, 13: return rem MAIN CONTROL rem DISPLAY STATUS 2000 if n5 gosub 1270 cursor 19, 14: print "SECTOR"; spc(10); : w1 = s1: w2 = s2: gosub 1000: cursor 19,15 print "YEARS"; spc(9); : mz = t9 - t: gosub 8410: cursor 19, 16: a$ = " " mz = t: gosub 8400 cursor 19, 17: print "CONDITION"; : if k > 0 then print " RED ": w9 = 3: goto 2030 if (e1 < e0 / 10) or (e - e1 < e0 / 10) then print " YELLOW ": w9 = 2: goto 2030 print ":::GREEN::": w9 = 1 2030 for w8 = 1 to w9: music ">f0r<": next cursor 19, 18: print "SHIELDS"; spc(9); right$(" " + str$(e2), 2); "%" cursor 19, 19: gosub 2999: print right$(" " + str$(e1), 5) cursor 19, 20: print "AVAIL ENERGY "; right$(" " + str$(int(e - e1)), 5) cursor 19, 21: print d$[5]; "S"; spc(9); right$(" " + str$(p), 2) cursor 19, 22: print k$; "S"; spc(8); right$(" " + str$(k9), 3) cursor 19, 23: print b$; "S"; spc(12); right$(" " + str$(b9), 2); cursor 19, 24: print "COURSE "; if a1 then print "SET FOR "; : w1 = v5: w2 = v6: gosub 1000: goto 2060 print "NOT SET "; 2060 n5 = 0: goto 1200 rem COMMAND MENU 2100 if n5 = 1 then return gosub 1270 for w9 = 1 to 9: cursor 18, 14 + w9: print w9; " "; on w9 goto 2499, 2130, 3499, 2150, 2150, 2160, 2160, 5999, 2180 2130 gosub 2999: next 2150 print d$[w9]; "S": next 2160 print d$[w9]: next 2180 print sd$: next: n5 = 1: goto 1200 2199 rem: print " INSTRUCTION?"; : return if n5 = 2 then return gosub 1270 for w9 = 0 to 6: cursor 18, 14 + w9: print w9; "*"; on w9 + 1 goto 2220, 2230, 2240, 2250, 2260, 2260, 2270 2220 print "RETURN": w$ = "COMPUTE ": next 2230 print w$; : gosub 1599: next 2240 print w$; "TRAJECTORY": next 2250 print w$; "ENERGY": w$ = "LOCK ": next 2260 print w$; d$[w9]; "S": next 2270 print w$; "COURSE": next: n5 = 2: goto 1200 2300 gosub 410: gosub 590: goto 850 2400 if f1 then r1 = 0: t3 = 1: goto 1330 return 2499 rem: print "NAVIGATION": next 2500 if n6 then gosub 1810 if e - e1 < 40 goto 1060 if (d[1]) + (e - e1 < 100) then print im$; " DRIVE ONLY": gosub 1140: goto 2590 print "WARP OR "; im$; " DRIVE (W OR I)?"; : gosub 8200 if kb$ = "I" goto 2590 if (kb$ = "W") = 0 then return print "WARP FACTOR (0"; : if e - e1 < 112 goto 2533 print " ONLY)?"; : w8 = 0: goto 2535 2533 w8 = int(((e - e1 - 100) / 12) ^ (1 / 3)): if w8 > 9 then w8 = 9 print "-"; str$(w8); ")?"; 2535 gosub 8220: if (ib < 0) or (ib > w8) then return r0 = ib: if r0 > 0 then goto 2540 a1 = 0: gosub 410: r1 = 0: s[s3] = 0: n1 = s1: n2 = s2 * 2: gosub 130: s3 = fnr(64) if s[s3] then gosub 2640: w1 = q3: gosub 1800: goto 2570 gosub 560: goto 2580 2540 gosub 8100: if cc < 0 then return a1 = 0: gosub 410: c = cc w7 = int(q1 - r0 * cos(c / 180 * PI) + 8.5): w8 = w7 - int(w7 / 8) * 8 w7 = int(q2 + r0 * sin(c / 180 * PI) + 8.5): w9 = w7 - int(w7 / 8) * 8 q7 = w8 * 8 + w9: r = 6: gosub 520: if r1 then r0 = 6: goto 2620 if q7 = q3 goto 2580 s[s3] = 0: n1 = s1: n2 = s2 * 2: gosub 130: w1 = q3: gosub 1800: if r0 > fnr(25) then gosub 2640 2570 q3 = q7: s3 = fnr(64): gosub 1740: gosub 1600: gosub 2000 2580 e = e - 12 * r0 ^ 3 - 100: t3 = 10: gosub 1330: if k = 0 then return 2585 gosub 850: goto 1325 2590 w8 = int((e - e1) / 20) - 1: if w8 > 9 then w8 = 9 print "DURATION (1"; : if e - e1 < 60 then print " ONLY)?"; : goto 2598 print "-"; str$(w8); ")?"; 2598 gosub 8220: if (ib < 1) or (ib > w8) then return r0 = 2 * ib: gosub 8100: if cc < 0 then return a1 = 0: gosub 410: c = cc: r = r0: gosub 520 2620 t3 = int((r0 - r) / 2): e = e - 20 * t3 - 10: gosub 1330: if k > 0 goto 2585 return 2640 gosub 40000: cursor 0, 13: print "TRAPPED IN WORM HOLE!!": gosub 1140 q7 = fnr(64): return 2999 rem: print "SHIELD ENERGY "; : return 3000 print "SET SHIELD ENERGY %?"; : gosub 8210: if (ib < 1) or (ib > 100) then return if ib <> 100 goto 3020 if e - e1 < 90 goto 1060 print fd$; " READY": gosub 1140: print "HOW MANY YRS. (0.01-0.99)? 0.??"; LE$; LE$; gosub 8210: if (ib < 1) or (ib > 99) then return t5 = ib: print "< "; fd$; " ACTIVATED >": gosub 1140: e = int(e - 90): lf = 1: t3 =10 for t4 = 0 to t5 / 10: gosub 410: if t5 - t4 * 10 < 10 then t3 = t5 - t4 * 10 gosub 1330: next: lf = 0: return 3020 e2 = ib: print "QUICK PARTITIONING?"; : gosub 8200: if (kb$ = "Y") = 0 goto 2000 e = int(e * 0.8): e1 = int(e * e2 / 100): goto 2000 3499 rem: print "DAMAGE RPT": next 3500 w1 = 7: if d[9] then w1 = 8 gosub 1210: n6 = 1: w3 = 0: tb = 13: for d1 = 1 to 7: print str$(d1); " "; if d[d1] then w3 = w3 + 1: gosub 1475: goto 3520 print d$[d1]; tab(tb); "OK" 3520 next: if d[9] then print "* "; dc$; " DESTROYED" gosub 1200: if (w3 = 0) or (w3 = 7) then return print "FUNCTIONAL UNITS MOVING": gosub 1140: print "ATTACH TO (1 - 7)?"; gosub 8220: if (ib < 1) or (ib > 7) then return if d[ib] = 0 goto 1080 d2 = ib: print "DETACH FROM (1-7)?"; : gosub 8220: if (ib < 1) or (ib > 7) then return if d[ib] goto 1080 d1 = ib: h = int(d[d2] * 1.5): gosub 1455: d1 = d2: goto 1300 3999 rem: d$[4] = "PHASER": goto 4499 4000 d1 = 4: if d[4] goto 1465 if k = 0 goto 1070 gosub 710: if at gosub 8120: if at < 0 then return 4020 print d$[4]; "S READY: ENERGY TO FIRE?"; : gosub 8210: if ib <= 0 then return if e - e1 < ib gosub 1120: print "WE ONLY HAVE"; int(e - e1); "."; : gosub 1140: goto 4020 h2 = ib: if at = 0 then h1 = int(h2 / k): gosub 950: gosub 2300: goto 1325 k1 = at: gosub 2300: d1 = 4: if d[4] goto 1465 if k = 0 goto 1070 gosub 720: if at = 0 goto 1325 if e - e1 < h2 then h2 = e - e1 h1 = int(h2 / k1): gosub 950: goto 1325 4499 rem: d$[5] = "PH TORP": goto 4999 4500 d1 = 5: if d[5] goto 1465 if e - e1 < 20 goto 1060 gosub 720: if at then gosub 8120: if at < 0 then return if (p < at) or (p = 0) gosub 1120: print "WE HAVE"; p; " LEFT.": gosub 1140: return if at <> 0 goto 4540 a$ = "TRAJECTORY?": gosub 8105: if cc< 0 then return e = e - 20: c = cc: gosub 940: gosub 2300: goto 1325 4540 gosub 2300: d1 = 5: if d[5] goto 1465 if e - e1 < 20 goto 1060 gosub 720: if at = 0 goto 1325 e = e - 20: for j = 0 to 63: w9 = -s[j]: if w9 <= 0 then next: goto 1325 if int(w9 / 10000) <> 2 then next: goto 1325 w1 = int(j / 8) - s1: w2 = j - int(j / 8) * 8 - s2: gosub 400: c = w2: gosub 940: next: goto 1325 4999 rem: d$[6] = "PROBE": goto 5499 5000 d1 = 6: if d[6] goto 1465 if e - e1 < 30 goto 1060 e = e - 30: if k = 0 goto 1070 w1 = k + 1: gosub 1210: n6 = 2: print "COORD ENERGY "; right$(d$[5], 4); "S LOCK" for i = 0 to 63: w3 = -s[i]: if w3 <= 0 then next: goto 2000 w1 = int(i / 8): w2 = i - w1 * 8: print " "; : gosub 1000: gosub 650 print spc(6); right$(" " + str$(v1), 3); spc(5); str$(v3); : if v2 = 0 then print if v2 then print spc(5); d$[v2 + 3] next: goto 2000 5499 rem: d$[7] = "COMPUTER": goto 6499 5500 d1 = 7: if d[7] goto 1465 if e - e1 < 20 goto 1060 e = e - 20: n4 = n4 + 1: gosub 1230: gosub 1285 a$ = "**** " + z$ + " HERE ****": gosub 1075 5510 gosub 2220 5513 print "WHAT IS YOUR"; : gosub 2199: gosub 8080 if (ib < 0) or (ib > 6) goto 5510 if n5 gosub 2000 if ib = 0 then n4 = n4 - 1: goto 1230 if e - e1 < 10 gosub 1060: goto 5513 on ib gosub 5530, 5540, 5550, 5560, 5560, 5580: goto 5513 5530 print "QUADRANT "; : gosub 8040: if w2 < 0 then return w9 = w1 - q1 + 12: w1 = w9 - int(w9 / 8) * 8 - 4: w9 = w2 - q2 + 12: w2 = int(w9 / 8) * 8 - 4 gosub 400: gosub 1240: print "COURSE -"; w2; " WARP -"; w1: goto 5585 5540 print "SECTOR "; : gosub 8040: if w2 < 0 then return w1 = w1 - s2: w2 = w2 - s2: gosub 400: gosub 1240 print "TRAJECTORY -"; w2; " RANGE -"; w2: goto 5585 5550 print "TARGET "; : gosub 8040: if w2 < 0 then return w1 = w1 - s1: w2 = w2 - s2: w1 = w1 * w1 + w2 * w2: print "EFFECTIVE ENERGY?"; gosub 8210: if ib <= 0 then return w2 = ib: if w1 > 9 then w2 = int(ib / 9 * w1 + 0.9) gosub 1240: print "ABSOLUTE ENERGY -"; w2: goto 5585 5560 w4 = ib - 3: print d$[ib]; "S: LOCK OR UNLOCK (L OR U)?"; : gosub 8200 if kb$ = "U" then w4 = -w4: goto 5566 if (kb$ = "L") = 0 then return 5566 print k$; " "; : gosub 8040: if w1 < 0 goto 5585 if w2 >=0 then i = w1 * 8 + w2: w3 = -s[i]: if w3 > 0 gosub 650: goto 5572 5570 gosub 1080: goto 5566 5572 if (w4 > 0) and (v2 <> w4) then v2 = w4: gosub 660: goto 5566 if (w4 < 0) and (v2 = -w4) then v2 = 0: gosub 660: goto 5566 goto 5570 5580 print "DESTINATION "; : gosub 8040: if (w1 < 0) or (w2 < 0) then return if (w1 = s1) and (w2 = s2) then a1 = 0: goto 5585 v5 = w1: v6 = w2: a1 = 1 5585 e = e - 10: goto 2000 5999 rem: print "LOAD PH TORPS": next 6000 print "* TO LOAD (+) OR UNLOAD (-)?"; : gosub 8210 if (ib < -p) or (ib > 10 - p) then return w9 = (ep + 100 * sgn(ib)) * ib: if e - e1 < w9 goto 1060 e = e - w9: p = p + ib: goto 2000 6499 rem: sd$ = "SELF DESTRUCT": return 6500 print "COUNT DOWN STARTED": gosub 1140: w1 = 10: w2 = 6: gosub 6540: gosub 8140 gosub 1140: print sd$; " SEQUENCE "; if (kb$ = pw$) = 0 then print "CANCELLED": goto 1140 print "CONTINUES": gosub 1140: w1 = 5: w2 = 0: gosub 6540 e1 = 0: if k = 0 gosub 1060: p = 0: goto 6530 e = e + p * ep + 1000 * (1 + d[9]): p = 0: gosub 2000: at = 0: h1 = int(e / k): gosub 950 6530 e = 0: gosub 2000: e = -eb: f1 = 0: return 6540 for w0 = w1 to w2 step -1: print w9; " "; : music ">b1r5<": next: goto 1140 rem ENDING 6600 if e >= 0 goto 6620 poke g0 + 8, 0: usr(g3): for w9 = 1 to 100: music ">c0c<": next 6620 cursor 0, 24: for w9 = 0 to 24: print: next: return rem MAIN LOOP 7000 usr($3e): print "COMMAND?"; : gosub 8080 if (ib < 1) or (ib > 9) gosub 2100: goto 7000 if n5 gosub 2000 f1 = 0: on ib gosub 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500 gosub 2400: if (k9 > 0) and (e > 0) and (t9 > t) goto 7000 goto 6600 rem INPUT TOOLS 8000 on mf goto 8010, 8020 8005 usr(g2): kb$ = chr$(peek(g0 + 7)): print kb$; : return 8010 gosub 8005: if ma > vl then poke 54247, 99: return if peek(g0 + 7) <> 0 then poke ma, peek(g0 + 7): ma = ma + 1: return poke ma, 1: ma = ma + 1: return 8020 poke g0 + 6, 1: usr(g2): poke g0 + 6, 0: if peek(g0 + 7) = 0 goto 8023 if peek(g0 + 7) <> 32 then mf = 1 goto 8000 8023 if peek(ma) = 0 then mf = 1: goto 8000 kb$ = chr$(peek(ma)): ma = ma + 1: print kb$; : return 8030 gosub 8000: if kb$ = "" then ib = -1000: return ib = asc(kb$) - 48: return 8040 w1 = -1: w2 = -1: print "COORDINATE ?- "; LE$; LE$; LE$; gosub 8030: if (ib < 1) or (ib > 8) then goto 8070 w1 = ib - 1: print ND$; "?"; LE$; : poke 54184, 69: gosub 8030 if (ib > 0) and (ib < 9) then w2 = ib - 1 8070 poke 54184, 80: goto 1140 8080 gosub 8030: print: print UP$; spc(39); : print: print UP$; : fl = 0: return 8100 a$ = "INPUT COURSE?" 8105 print a$; : gosub 8210: cc = ib: if (ib < 0) or (ib > 359) then cc = -1 return 8120 print "AUTO OR MANUAL (A OR M)?"; : gosub 8200 if kb$ = "M" then at = 0: return if (kb$ = "A") = 0 then at = -1 return 8140 print "ENTER "; sd$; " PASSWORD-"; : goto 8150 8150 on mf goto 8170, 8180 8155 ka$ = "": w9 = 0: w$ = LE$ + " " + LE$ 8160 usr(g2): kb$ = chr$(peek(g0 + 7)): if kb$ = ENTER$ then kb$ = ka$: goto 8188 if (kb$ = BACKSPACE$) and (w9 > 0) then ka$ = left$(ka$, len(ka$) - 1): w9 = w9 - 1: print w$; : goto 8160 if kb$ = "" goto 8160 ka$ = ka$ + kb$: w9 = w9 + 1: print kb$; : goto 8160 8170 gosub 8155: if ma > vl then poke 54247, 99: return poke ma, w9 + 1: ma = ma + 1: if w9 = 0 then return for w8 = 1 to w9: poke ma, asc(mid$(kb$, w8, 1)): ma = ma + 1: next: return 8180 poke g0 + 6, 1: usr(g2): poke g0 + 6, 0: if peek(g0 + 7) = 0 goto 8183 if peek(g0 + 7) <> 32 then mf = 1 goto 8150 8183 w9 = peek(ma): if w9 = 0 then mf = 1: goto 8150 ma = ma + 1: w9 = w9 - 1: kb$ = "": if w9 = 0 then return for w8 = 1 to w9: kb$ = kb$ + chr$(peek(ma)): ma = ma + 1: next: print kb$; 8188 poke $1181, 0: return 8190 gosub 8150: ib = 0: w9 = len(kb$): if w9 = 0then ib = -1000: return for w8 = 1 to w9: w7 = asc(mid$(kb$, w8, 1)): if (w7 > 47) and (w7 < 58) goto 8196 if (w8 <> 1) + ((w7 <> 43) * (w7 <> 45)) then ib = -1000 8196 next: if ib <> -1000 then ib = val(kb$) return 8200 gosub 8000: goto 1140 8210 gosub 8190: goto 1140 8220 gosub 8030: goto 1140 rem PRINT NUMBER 8400 print "STARDATE "; a$; : if mz < 0.1 then print " 0.0"; str$(int(mz * 100)); : return w$ = " " + str$(int(mz * 100)): if mz < 1 then print " 0"; : goto 8407 print right$(left$(w$, len(w$) - 2), 4); 8407 print "."; right$(w$, 2); : return 8410 if mz < 0 then print "-0.0"; str$(int(-mz * 100)); : return if mz < 1 / 10 then print " 0.0"; str$(int(mz * 100)); : return w$ = " " + str$(int(mz * 100)): if mz < 1 then print " 0"; : goto 8407 print right$(left$(w$, len(w$) - 2), 2); : goto 8407 rem TITLE 8500 print: print tab(31); "_____" print " " print " " print " " print " " print " " print " " print " " print " " print: print " "; : gosub 50020: goto 1275 8599 rem: print "CAPTAIN'S LOG -"; : return 8600 w8 = int(s9 / 1000) : w9 = w8 * ep + s9 - 1000 * w8 x1 = (w9 / eb * k0 * 100 / 23) ^ 1.1 * (189 / (b0 + 1) / (t9 - t0)) ^ 0.55 * 2.25: gosub 1275 gosub 8599: a$ = "": mz = t0: gosub 8400: print: print print "WE HAVE BEEN ASSIGNED"; t9 - t0; " YEAR MISSION" print "TO SEEK AND DESTROY"; k0; " " ; k$; " BATTLE": print "CRUISERS." print "WE WILL HAVE"; b0; " "; b$; "S AVAILABLE.": print print "DIFFICULTY=";int(x1): return rem PARAMETER SET-UP 8700 k0 = 27 + fnr(14) + fnr(14): b0 = 2 + fnr(2) + fnr(2): t9 = 3428: gosub 8600: gosub 1280 print "DIFFERENT SET-UP?"; : gosub 8080: if (kb$ = "Y") = 0 goto 8750 gosub 1275 gosub 1280: print "SET UP YOUR OWN?"; : gosub 8080: if (kb$ = "Y") = 0 goto 8700 8720 gosub 1280: print k$; "S (1-200)"; : gosub 8190: if (ib > 0) and (ib < 201) goto 8725 usr(g1): goto 8720 8725 k0 = ib: usr(g1): goto 8720 8730 gosub 1280: print b$; "S (0-20)"; : gosub 8190: if (ib >= 0) and (ib < 20) goto 8735 usr(g1): goto 8730 8735 b0 = ib: usr(g1): usr(g1) 8740 gosub 1280: print "YEARS (1-20)"; : gosub 8190: if (ib > 0) and (ib < 21) goto 8745 usr(g1): usr(g1): goto 8740 8745 t9 = t0 + ib: gosub 8600 8750 gosub 1280: gosub 8140: pw$ = kb$: goto 1280 rem INITIALIZE VARIABLES 8800 k9 = k0: b9 = b0: t = t0: e2 = t0: a1 = 0: k4 = 0: for w9 = 1 to 9: d[w9] = 0: next gosub 1320: gosub 1850: n6 = 1: goto 1740 rem MEMORY 8850 w9 = int(mz / 256): poke my + 1, w9: poke my, mz - 256 * w9: my = my + 2: return 8860 mz = 4497: my = g0 + 12: gosub 8850: usr(g6): w1 = peek(g0 + 14): w1 = w1 - int(w1 / 2) * 2 + 1 return 8900 mf = 0: ma = m0: gosub 8860: mr = (val(right$(time$, 2)) + 1) * w1: w9 = rnd(-1) print "AMONG 3 GAME MODES,": print " *NORMAL": print " *RECORDING" print " *PLAYBACK": print "SELECT ONE (N OR R OR P)?"; : gosub 8000: print if kb$ = "R" then usr(g5): poke ma, mr: ma = ma = 1: mf = 1 if (kb$ = "P") = 0 goto 8930 print "LOAD A MISSION RECORD?"; : gosub 8000: print: if kb$ = "Y" then gosub 8900 mf = 2: mr = peek(ma): ma = ma + 1: if (mr < 1) or (mr > 120) goto 8900 8930 for w8 = 1 to mr: w9 = rnd(1): next: return rem 8950 mf = 0: if ma = m0 then return print "SAVE YOUR MISSION RECORD?"; : gosub 8000: print: if (kb$ = "Y") = 0 then return cm = 0: goto 9200 cm = 1: goto 9200 rem BULLETIN 9000 x2 = ((b9 + (e + ep * p) / eb) / (b0 + 1) * 0.5 + 1) * ((t9 - t) / (t9 - t0) * 0.7 + 1) if k9 then x2 = 1 - ((k9 - x2 / 2.55) / k0) ^ 0.5 x = x1 * x2 cursor 12, 1: print "< BULLETIN >": print: print "TO: ALL UNITS"; spc(10); : a$ = "" mz = t: gosub 8400: print: print "FROM: "; sc$: print: print "WE HAVE BEEN "; w$ = "DESTROYED": if e >= 0 then w$ = "SUCCESSFUL": if k9 then w$ = "UN" + w$ print "NOTIFIED THAT THE STARSHIP": print e$; " HAS BEEN " ; w$; " AFTER" mz = t - t0: gosub 8410: print " YEARS OF ITS"; t9 - t0; " YEAR MISSION. THE" w$ = "ALL": if k9 then w$ = "ONLY" print e$; " DESTROYED "; w$; k0 - k9; " BATTLE": print "CRUISERS"; if k9 then print " OF"; k0; print " IN ITS MISSION.": print : print "THIS "; if k9 then w$ = "DISASTROUS": if x >= 500 then w$ = "LACKLUSTER" if k9 = 0 then w$ = "EXCELLENT": if x >= 700 then w$ = "BRILLIANT" print w$; " PERFORMANCE MEANS" if k9 then w$ = "DESTRUCTION OF": if x >= 500 then w$ = "DIFFICULT TIMES FOR" if k9 = 0 then w$ = "VICTORY FOR" print w$; " THE FEDERATION.": print: print sc$; " HEREBY ISSUES ORDERS" if k9 and (x < 500) then w$ = "DISMISSAL FOR INCOMPETENCE": goto 9180 if k9 then w$ = "REMOVAL FROM COMMAND": goto 9180 w$ = "THE MEDAL OF VALOR": if x >= 700 then w$ = "PROMOTION TO ADMIRAL" 9180 print "FOR "; w$; " FOR THE": print "CAPTAIN OF THE "; e$; " FOR A" print "BATTLE FACTOR OF"; int(x); " IN THIS MISSION.": print : return rem CMT 9200 input "MISSION NAME?"; kb$: print: w$ = left$(kb$ + spc(16), 16): if cm <> 0 then 9260 poke mc, 84: for w9 = 1 to 16: poke mc + w9, asc(mid$(w$, w9, 1)): next: poke mc + 17, 13 mz = ma - m0: my = mc + 18: print mz; " BYTE": gosub 8850: mz = m0: gosub 8850: mz = 0 gosub 8850: usr(g4) 9235 usr(9): print "SAVE-AGAIN OR VERIFY?(S OR V)"; : gosub 8000: print if kb$ = "S" goto 9200 if (kb$ = "V") = 0 then return 9260 usr(g4 + 18): if peek(g0 + 9) = 0 goto 9263 if cm = 0 goto 9340 goto 9310 9263 mz = mc: my = g0 + 12: gosub 8850: usr(g6): w8 = peek(g0 + 14): a$ = "" for w9 = 1 to 16: usr(g6): a$ = a$ + chr$(peek(g0 + 14)): next: a$ = left$(a$ + spc(16), 16) usr(9): print "FOUND "; a$: if w8 <> 84 then print "*NOT MISSION DATA": goto 9260 if (w$ = spc(16)) = 0 then if (w$ = a$) = 0 then print "*SKIP": goto 9260 print: mz = m0: my = mc + 20: gosub 8850: if cm = 0then 9330 usr(g4 + 8): usr(9): if peek(g0 + 9) = 0 then return 9310 print "BREAK/ERROR...TRY AGAIN?(Y/N)"; : gosub 8000: print: if kb$ = "Y" goto 9200 return 9330 usr(g4 + 13): if peek(g0 + 9) = 0 then print "OK!": goto 9235 9340 usr(9): print "BREAK/ERROR": goto 9235 rem MAIN PROGRAM 10000 g0 = 54256: m0 = 47104: rem g0 = $d3f0, m0 = $b800 g1 = m0 - 156: limit g1 - 1: tempo 7: gosub 11000 10010 print CL$; : gosub 8500: gosub 1275: gosub 8900: gosub 8700: gosub 8800: print CL$; gosub 1810: gosub 1600: gosub 2000: f1 = 1: gosub 850: gosub 2400: gosub 7000 gosub 9000: gosub 8950: print "TRY AGAIN?"; : gosub 8000: if kb$ = "Y" goto 10010 goto 50000 rem DECLARATIONS 11000 def fn r(x) = int(rnd(1) * x) w9 = 0: w8 = 0: w7 = 0: ww = 0: w$ = "": rem LOCAL pp = 0: n1 = 0: n2 = 0: n7 = 0: n8 = 0: c = 0: r = 0: o1 = 0: o2 = 0: o3 = 0: c1 = 0: c2 = 0: c3 = 0: c4 = 0 pm = 0: s4 = 0: s5 = 0: p1 = 0: q6 = 0: v1 = 0: v2 = 0: v3 = 0: i = 0: k1 = 0: h1 = 0: h2 = 0: at = 0: w5 = 0 r1 = 0: w6 = 0: rr = 0: k2 = 0: j = 0: h3 = 0: h4 = 0: ds = 0: d1 = 0: h = 0: t3 = 0: tb = 0: r0 = 0: cc = 0 tc = 0: q7 = 0: f1 = 0: d2 = 0: t4 = 0: w1 = 0: w2 = 0: w3 = 0: w4 = 0 ib = 0: a$ ="": kb$ = "": rem INTER-SUB gosub 30000 e$ = "ENTERPRIZE": z$ = "MAIN COMPUTER": b$ = "BASE": s$ = "STAR": im$ = "IMPULSE" sc$ = "STARFREET COMMAND": dc$ = "DILITHIUM CRYSTALS": fd$ = "LANGSTON FIELD" vl = 53247: vd = 53849: s9 = 3800: e0 = 5000: t0 = 3424: p0 = 10: ep = 500: eb = e0 + p0 * ep: is = 67 dim s[63], q[63], d[9], c[4], d$[8], qm$[3, 3], qn$[1, 1] for w9 = 0 to 4: read c[w9]: next for w9 = 1 to 8: read d$[w9]: next for w9 = 0 to 3: for w8 = 0 to 3: read qm$[w9, w8]: next: next for w9 = 0 to 1: for w8 = 0 to 1: read qn$[w9, w8]: next: next goto 649 rem DATA data 197,213,229,237,75,244,211,237,91,240,211,42,242,211,205,166,13,175 data 50,3,224,237,176,235,6,40,205,216,15,62,1,50,3,224,225,209,193,201 data 58,246,211,183,32,3,205,179,9,205,27,0,50,247,211,201 data 197,213,229,33,0,208,1,232,3,58,248,211,87,175,50,3,224,178,40,18 data 126,130,119,35,11,120,177,32,247,62,1,50,3,224,225,209,193,201 data 54,90,35,11,120,177,32,248,24,237 data 205,33,0,205,36,0,24,13,205,42,0,24,8,205,45,0,24,3,205,39 data 0,50,249,211,201 data 229,42,250,211,175,119,35,124,254,208,32,248,225,201 data 229,42,252,211,126,50,254,211,35,34,252,211,225,201 data 11,67,5,2,74 data "WARP DRIVE", "SR SENSOR", "LR SENSOR", "", "", "", "", "GAL RECORD" data "DENEB", "ALGOL", "MIRA", "POLARIS", "ACHERNAR", "CAPELLA", "CASTOR", "ALDEBARAN" data "ARCTURUS", "REGULUS", "POLLUX", "RIGEL", "ANTARES", "SPICA", "CANOPUS", "BETELGEUSE" data "IV", "I", "III", "II" rem MACHINE SUB 30000 mx = 4465: ml = 4513: mh = 4514: me = g0 + 8: mc = 4336 for w9 = 0 to 37: read w8: poke g1 + w9, w8: next g2 = g1 + 38: for w9 = 0 to 15: read w8: poke g2 + w9, w8: next: poke g6 + 6, 0 g3 = g1 + 54: for w9 = 0 to 47: read w8: poke g3 + w9, w8: next g4 = g1 + 102: for w9 = 0 to 24: read w8: poke g4 + w9, w8: next g5 = g1 + 127: for w9 = 0 to 13: read w8: poke g5 + w9, w8: next g6 = g1 + 141: for w9 = 0 to 13: read w8: poke g6 + w9, w8: next return rem STORM & WORM 40000 w9 = fnr(255) + 1: for w8 = 1 to 8: music ">#b0<": poke me, w9: usr(g3): music ">b<" poke me, 256 - w9: usr(g3): next poke me, w9: usr(g3): music ">#b9<": poke me, 256 - w9: usr(g3): return rem NOTES 50000 print: print: gosub 50010: goto 50040 50010 print "+---------------------------+ 50020 print "* MZ(K/C) STAR TREK VER 1.3 *": return 50040 print "+---------------------------+" print "| THIS PROGRAM WAS |" print "| ORIGINALLY WRITTEN FOR |" print "| APPLE ][ INTEGER BASIC |" print "| BY W.SANDER '78 1/11 |" print "| THEN TRANSPORTED TO |" print "| PC-8001 N-BASIC |" print "| BY O.KANAMITSU, K.HORI |" print "| & K.HANDA '80 5/30 |" print "| AND ENTIRELY REWRITTEN |" print "| BY K.HORI '81 9/19 |" print "| AND MODIFIED '81 10/29 |" print "| AND HERE TRANSPORTED TO |" print "| MZ-80K/C SHARP BASIC |" print "| BY S.OKADA '81 11/20 |" print "| AND MODIFIED '82 1/23 |" print "+---------------------------+" end