'=========================================================================== ' Subject: DARKSTAR (STAR TREK LIKE GAME) Date: 09-03-98 (17:20) ' Author: Adam Dalke Code: QB, QBasic, PDS ' Origin: jwdalke@juno.com Packet: GAMES.ABC '=========================================================================== '/~~~~~~~~~~~~~~~~\ DARKSTAR.BAS, a shareware version of a Star Trek: The '| A | Next Generation: RPG of epic proportions. The full version '| | will probably never be finished, so don't send any money. '| | Use the code any bloody way you please, but give me some '| /\ | credit, after all, I worked on this thing for three months. '| ( ) | This program runs best on a 100Mhz computer or less (best '| /\ | on a 486SX-25,486DX-33, or 486DX-66). Written and tested '| | on a 486DX-33. This program was not created, approved, '| A | licensed, or endorsed by any entity involved in creating '\________________/ or producing the Star Trek(R) television series or films. ' ' ' \ / ' --------->Press F5 to begin the game.<--------- ' / \ ' ' ' DOITALLOVERAGAIN: 'restart module DECLARE SUB pab2 () 'declare all the subs DECLARE SUB pbabb1 () DECLARE SUB pb2 () DECLARE SUB pbaa1 () DECLARE SUB pbab1 () DECLARE SUB pbac1 () DECLARE SUB epfaoluri2 () DECLARE SUB fac172 () DECLARE SUB pba1 () DECLARE SUB cycledown () DECLARE SUB paba1 () DECLARE SUB shipexplode () DECLARE SUB paaa1 () DECLARE SUB paac1 () DECLARE SUB paad1 () DECLARE SUB paae1 () DECLARE SUB fac17 () DECLARE SUB paa1 () DECLARE SUB pab1 () DECLARE SUB pac1 () DECLARE SUB PixelScroll (Text$, Col%, NewY%) DECLARE SUB pa2 () DECLARE SUB epfaoluri () DECLARE SUB pb1 () DECLARE SUB pc1 () DECLARE SUB pa1 () DECLARE SUB stars () DECLARE SUB phaser () DECLARE SUB photon () DECLARE SUB p1 () DECLARE SUB r1 () DECLARE SUB warp () SCREEN 12 'set screen for 640x480, 16 color, text/graphics DIM SHARED trek%(197, 35) 'DIM the graphics array for the first Enterprise FOR B = 270 TO 292.5 STEP .5 LINE (B, 240)-(B - 9.38, 260), 8 NEXT FOR B = 173.12 TO 190 STEP .01 LINE (B, 260)-(B + 10, 245), 8 NEXT FOR a = 1 TO 50 CIRCLE (320, 240), a, 7, , , -.9 NEXT FOR a = 1 TO 60 CIRCLE (233.12, 260), a, 7, , , -.85 NEXT LINE (173.12, 261)-(203.12, 270), 0, BF FOR c = 1 TO 8 CIRCLE (203.12, 270), c, 0 CIRCLE (204.12, 270), c, 0 NEXT FOR c = 1 TO 5 CIRCLE (293.12, 260), c, 0 CIRCLE (294.12, 260), c, 0 NEXT LINE (163.12, 245)-(233.12, 237.5), 7, BF FOR a = 1 TO 3 STEP .05 CIRCLE (163.12, 242.25), a, 7 CIRCLE (164.12, 242.25), a, 7 NEXT FOR a = 1 TO 10 CIRCLE (233.12, 242.25), a, 4, , , -.7 NEXT LINE (161.12, 242.25)-(220, 242.25), 1, B L = 238 FOR B = 215 TO 210 STEP -1 LINE (220, L)-(B, L), 1 L = L + .8 NEXT FOR B = 210 TO 215 LINE (220, L)-(B, L), 1 L = L + .4 NEXT FOR d = 271 TO 369 STEP 4 PSET (d, 240), 14 NEXT FOR d = 291 TO 349 STEP 4 PSET (d, 243), 14 NEXT FOR d = 291 TO 349 STEP 4 PSET (d, 237), 14 NEXT FOR d = 176 TO 286 STEP 4 PSET (d, 258), 14 NEXT FOR d = 196 TO 266 STEP 4 PSET (d, 255), 14 NEXT FOR d = 216 TO 286 STEP 4 PSET (d, 261), 14 NEXT FOR d = 216 TO 272 STEP 4 PSET (d, 264), 14 NEXT GET (160, 235)-(370, 267), trek% CLS DIM SHARED trek2%(197, 35) 'DIM the graphics array for the second Enterprise FOR B = 270 TO 292.5 STEP .5 LINE (B, 240)-(B - 9.38, 260), 8 NEXT FOR B = 173.12 TO 190 STEP .01 LINE (B, 260)-(B + 10, 245), 8 NEXT FOR a = 1 TO 50 CIRCLE (320, 240), a, 7, , , -.9 NEXT FOR a = 1 TO 60 CIRCLE (233.12, 260), a, 7, , , -.85 NEXT LINE (173.12, 261)-(203.12, 270), 0, BF FOR c = 1 TO 8 CIRCLE (203.12, 270), c, 0 CIRCLE (204.12, 270), c, 0 NEXT FOR c = 1 TO 5 CIRCLE (293.12, 260), c, 0 CIRCLE (294.12, 260), c, 0 NEXT LINE (163.12, 245)-(233.12, 237.5), 7, BF FOR a = 1 TO 3 STEP .05 CIRCLE (163.12, 242.25), a, 7 CIRCLE (164.12, 242.25), a, 7 NEXT FOR a = 1 TO 10 CIRCLE (233.12, 242.25), a, 4, , , -.7 NEXT LINE (161.12, 242.25)-(220, 242.25), 9, B L = 238 FOR B = 215 TO 210 STEP -1 LINE (220, L)-(B, L), 9 L = L + .8 NEXT FOR B = 210 TO 215 LINE (220, L)-(B, L), 9 L = L + .4 NEXT FOR d = 271 TO 369 STEP 4 PSET (d, 240), 14 NEXT FOR d = 291 TO 349 STEP 4 PSET (d, 243), 14 NEXT FOR d = 291 TO 349 STEP 4 PSET (d, 237), 14 NEXT FOR d = 176 TO 286 STEP 4 PSET (d, 258), 14 NEXT FOR d = 196 TO 266 STEP 4 PSET (d, 255), 14 NEXT FOR d = 216 TO 286 STEP 4 PSET (d, 261), 14 NEXT FOR d = 216 TO 272 STEP 4 PSET (d, 264), 14 NEXT GET (160, 235)-(370, 267), trek2% CLS DIM SHARED trek3%(197, 35) 'DIM the graphics array for the third Enterprise FOR B = 270 TO 292.5 STEP .5 LINE (B, 240)-(B - 9.38, 260), 8 NEXT FOR B = 173.12 TO 190 STEP .01 LINE (B, 260)-(B + 10, 245), 8 NEXT FOR a = 1 TO 50 CIRCLE (320, 240), a, 7, , , -.9 NEXT FOR a = 1 TO 60 CIRCLE (233.12, 260), a, 7, , , -.85 NEXT LINE (173.12, 261)-(203.12, 270), 0, BF FOR c = 1 TO 8 CIRCLE (203.12, 270), c, 0 CIRCLE (204.12, 270), c, 0 NEXT FOR c = 1 TO 5 CIRCLE (293.12, 260), c, 0 CIRCLE (294.12, 260), c, 0 NEXT LINE (163.12, 245)-(233.12, 237.5), 7, BF FOR a = 1 TO 3 STEP .05 CIRCLE (163.12, 242.25), a, 7 CIRCLE (164.12, 242.25), a, 7 NEXT FOR a = 1 TO 10 CIRCLE (233.12, 242.25), a, 4, , , -.7 NEXT LINE (161.12, 242.25)-(220, 242.25), 11, B L = 238 FOR B = 215 TO 210 STEP -1 LINE (220, L)-(B, L), 11 L = L + .8 NEXT FOR B = 210 TO 215 LINE (220, L)-(B, L), 11 L = L + .4 NEXT FOR d = 271 TO 369 STEP 4 PSET (d, 240), 14 NEXT FOR d = 291 TO 349 STEP 4 PSET (d, 243), 14 NEXT FOR d = 291 TO 349 STEP 4 PSET (d, 237), 14 NEXT FOR d = 176 TO 286 STEP 4 PSET (d, 258), 14 NEXT FOR d = 196 TO 266 STEP 4 PSET (d, 255), 14 NEXT FOR d = 216 TO 286 STEP 4 PSET (d, 261), 14 NEXT FOR d = 216 TO 272 STEP 4 PSET (d, 264), 14 NEXT GET (160, 235)-(370, 267), trek3% CLS DIM SHARED jarok%(170, 42.5) 'DIM the graphics array for the Romulan vessel LINE (295, 240)-(345, 240), 2 LINE (295, 240)-(240, 265), 2 LINE (345, 240)-(400, 265), 2 LINE (400, 265)-(345, 235), 2 LINE (240, 265)-(295, 235), 2 LINE (295, 235)-(345, 235), 2 LINE (295, 235)-(320, 227.5), 2 LINE (345, 235)-(320, 227.5), 2 LINE (295, 240)-(320, 245), 2 LINE (345, 240)-(320, 245), 2 LINE (235, 265)-(240, 270), 2, BF LINE (236, 267)-(239, 268), 10, BF LINE (235 + 165, 265)-(240 + 165, 270), 2, BF LINE (236 + 165, 267)-(239 + 165, 268), 10, BF PAINT (320, 241), 2 PAINT (320, 239), 2 PAINT (320, 230), 2 FOR psetx = 305 TO 335 STEP 3 PSET (psetx, 233), 14 NEXT LINE (295, 237.5)-(345, 237.5), 12 LINE (305, 241)-(335, 241), 9 LINE (305, 241)-(320, 243), 9 LINE (335, 241)-(320, 243), 9 PAINT (320, 242), 9 GET (235, 227.5)-(405, 270), jarok% CLS DEFINT A-Z CALL warp 'CALL the warp effect sub tng: LOCATE 15, 29 COLOR 9 PRINT "Star Trek: " 'print title LOCATE 16, 39 PRINT "The Next Generation" SLEEP LOCATE 15, 29 COLOR 0 PRINT "Star Trek: " 'black out title LOCATE 16, 39 PRINT "The Next Generation" FOR j = 1 TO 100 'display starfleet emblem CIRCLE (320, 240), j, 14, , , -.5 NEXT LINE (320, 120)-(370, 300), 7 LINE (320, 120)-(270, 300), 7 LINE (370, 300)-(320, 240), 7 LINE (270, 300)-(320, 240), 7 PAINT (320, 230), 7 LOCATE 22, 25 'print title page COLOR 9 PRINT "Star Trek: The Next Generation" LOCATE 23, 25 PRINT " The Dark Star Project" LOCATE 26, 34 PRINT "Programmed by:" LOCATE 27, 34 PRINT " Adam Dalke" LOCATE 28, 26 PRINT "Ace in the Hole Software Ltd." SLEEP CLS LINE (10, 60)-(40, 480), 1, BF 'draw the cool TNG background LINE (20, 50)-(640, 60), 1, BF FOR j = 1 TO 10 CIRCLE (20, 60), j, 1 CIRCLE (21, 60), j, 1 NEXT LINE (10, 0)-(40, 30), 1, BF LINE (20, 30)-(640, 40), 1, BF FOR j = 1 TO 10 CIRCLE (20, 30), j, 1 CIRCLE (21, 30), j, 1 NEXT LOCATE 1, 7 COLOR 9 PRINT "Duty Roster: Choose your character." 'print characters LOCATE 6, 17 PRINT "1. Captain Jean-Luc Picard" FOR p = 1 TO 7.5 CIRCLE (75, 86), p, 9 CIRCLE (76, 86), p, 9 NEXT LINE (76, 86 - 7.5)-(120, 86 + 7.5), 9, BF LINE (340, 86 - 7.5)-(400, 86 + 7.5), 9, BF LINE (76 + 7.5, 86 - 7.5)-(81 + 7.5, 86 + 7.5), 0, BF LOCATE 8, 17 PRINT "2. Commander William Thomas Riker" FOR p = 1 TO 7.5 CIRCLE (75, 118), p, 9 CIRCLE (76, 118), p, 9 NEXT LINE (76, 118 - 7.5)-(120, 118 + 7.5), 9, BF LINE (395, 118 - 7.5)-(400, 118 + 7.5), 9, BF LINE (76 + 7.5, 118 - 7.5)-(81 + 7.5, 118 + 7.5), 0, BF LOCATE 10, 17 PRINT "3. Lieutenant Commander Data" FOR p = 1 TO 7.5 CIRCLE (75, 150), p, 9 CIRCLE (76, 150), p, 9 NEXT LINE (76, 150 - 7.5)-(120, 150 + 7.5), 9, BF LINE (355, 150 - 7.5)-(400, 150 + 7.5), 9, BF LINE (76 + 7.5, 150 - 7.5)-(81 + 7.5, 150 + 7.5), 0, BF LOCATE 12, 17 PRINT "4. Commander Deanna Troi" FOR p = 1 TO 7.5 CIRCLE (75, 182), p, 9 CIRCLE (76, 182), p, 9 NEXT LINE (76, 182 - 7.5)-(120, 182 + 7.5), 9, BF LINE (325, 182 - 7.5)-(400, 182 + 7.5), 9, BF LINE (76 + 7.5, 182 - 7.5)-(81 + 7.5, 182 + 7.5), 0, BF LOCATE 14, 17 PRINT "5. Lieutenant Commander Worf" FOR p = 1 TO 7.5 CIRCLE (75, 214), p, 9 CIRCLE (76, 214), p, 9 NEXT LINE (76, 214 - 7.5)-(120, 214 + 7.5), 9, BF LINE (355, 214 - 7.5)-(400, 214 + 7.5), 9, BF LINE (76 + 7.5, 214 - 7.5)-(81 + 7.5, 214 + 7.5), 0, BF LOCATE 16, 17 PRINT "6. Chief Engineer Geordi La Forge" FOR p = 1 TO 7.5 CIRCLE (75, 246), p, 9 CIRCLE (76, 246), p, 9 NEXT LINE (76, 246 - 7.5)-(120, 246 + 7.5), 9, BF LINE (395, 246 - 7.5)-(400, 246 + 7.5), 9, BF LINE (76 + 7.5, 246 - 7.5)-(81 + 7.5, 246 + 7.5), 0, BF agrrrail: 'INPUT decision LOCATE 18, 7 PRINT ""; INPUT roster$ IF roster$ = "1" THEN CALL p1 'CALL the right subprogram IF roster$ = "2" THEN CALL r1 IF roster$ = "3" THEN CALL r1 IF roster$ = "4" THEN CALL r1 IF roster$ = "5" THEN CALL r1 IF roster$ = "6" THEN CALL r1 IF roster$ = "" THEN GOTO agrrrail 'loop if nothing CLS SCREEN 0, 0, 0 'reset screen for credits SCREEN 13 'set screen to 320x200, 237 color, text/graphics ON PLAY(1) GOSUB MuchMusic 'code for background music originally by CLS PLAY ON MBuff$ = "MNT150L4O1BL8EBL4>CL8CL4C+L8C+L4CL8CL4 0 THEN CIRCLE (oldmoonX2 + 2, oldmoonY2 + 4), 12, 0 CIRCLE (moonX2 + 2, moonY2 + 4), 2, 9 CIRCLE (moonX2 + 2, moonY2 + 4), 1, 9 CIRCLE (moonX2 + 3, moonY2 + 4), 1, 9 CIRCLE (moonX2 + 1, moonY2 + 4), 1, 9 IF timeisnow > 0 THEN CIRCLE (moonX2 + 2, moonY2 + 4), 12, 12 oldmoonX2 = moonX2: oldmoonY2 = moonY2 IF moonAngle3 = 0 THEN moonAngle3 = 360 theta = moonAngle3 * (PI / 180) moonX3 = moonX2 + orbitRadium3 * (COS(theta)) moonY3 = moonY2 - orbitRadium3 * (SIN(theta)) CIRCLE (oldmoonX3 + 1, oldmoonY3 + 4), 1, 0 CIRCLE (moonX3 + 1, moonY3 + 4), 1, 7 oldmoonX3 = moonX3: oldmoonY3 = moonY3 IF plantime = 500 THEN timeisnow = 1 IF timeisnow = 1 THEN GOSUB picard IF plantime = 501 THEN timeisnow = 2 IF plantime = 700 THEN GOSUB clearwords IF plantime = 800 THEN GOSUB rd IF plantime = 900 THEN CALL fac17 IF plantime = 901 THEN EXIT SUB LOOP UNTIL plantime = 900 EXIT SUB picard: LOCATE 28, 9: PRINT "Picard: Computer, locate Epfaoluri II." RETURN clearwords: LOCATE 28, 9: PRINT " " RETURN rd: LOCATE 28, 9: PRINT "Picard: Computer, display Romulan weapons R&D facility #17." RETURN END SUB 'DEFINT A-Z 'duplicate of the subprogram epfaoluri SUB epfaoluri2 CLS PI = 3.141592654# CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LINE (30, 80)-(60, 459), 1, BF LINE (40, 70)-(619, 80), 1, BF FOR j = 1 TO 10 CIRCLE (40, 80), j, 1 CIRCLE (41, 80), j, 1 NEXT LINE (30, 21)-(60, 50), 1, BF LINE (40, 50)-(619, 60), 1, BF FOR j = 1 TO 10 CIRCLE (40, 50), j, 1 CIRCLE (41, 50), j, 1 NEXT LOCATE 3, 9 COLOR 9 PRINT "Beta Quadrant: Romulan Star Empire: Epfaoluri System" planetX = 320: planetY = 240 FOR circ% = 1 TO 8 CIRCLE (planetX, planetY), circ%, 14 CIRCLE (planetX, planetY + 1), circ%, 14 NEXT circ% orbitRadium = 30 orbitRadium2 = 60 orbitRadium3 = 7 moonAngle = 0 moonAngle2 = 180 moonAngle3 = 180 oldmoonX = planetX + 75: oldmoonY = planetX oldmoonX2 = planetX + 75: oldmoonY2 = planetX plantime = 0 DO IF plantime = 901 THEN EXIT SUB LOCATE 6, 9 PRINT moonY; PRINT moonX; PRINT moonY2; PRINT moonX2; PRINT moonY3; PRINT moonX3; moonAngle = moonAngle + 1 moonAngle2 = moonAngle2 - 1 moonAngle3 = moonAngle3 + 1 plantime = plantime + 1 IF moonAngle = 360 THEN moonAngle = 0 theta = moonAngle * (PI / 180) moonX = planetX + orbitRadium * (COS(theta)) moonY = planetY - orbitRadium * (SIN(theta)) CIRCLE (oldmoonX + 2, oldmoonY + 4), 2, 0 CIRCLE (oldmoonX + 2, oldmoonY + 4), 1, 0 CIRCLE (oldmoonX + 3, oldmoonY + 4), 1, 0 CIRCLE (oldmoonX + 1, oldmoonY + 4), 1, 0 CIRCLE (moonX + 2, moonY + 4), 2, 2 CIRCLE (moonX + 2, moonY + 4), 1, 2 CIRCLE (moonX + 3, moonY + 4), 1, 2 CIRCLE (moonX + 1, moonY + 4), 1, 2 oldmoonX = moonX: oldmoonY = moonY IF moonAngle2 = 0 THEN moonAngle2 = 360 theta = moonAngle2 * (PI / 180) moonX2 = planetX + orbitRadium2 * (COS(theta)) moonY2 = planetY - orbitRadium2 * (SIN(theta)) CIRCLE (oldmoonX2 + 2, oldmoonY2 + 4), 2, 0 CIRCLE (oldmoonX2 + 2, oldmoonY2 + 4), 1, 0 CIRCLE (oldmoonX2 + 3, oldmoonY2 + 4), 1, 0 CIRCLE (oldmoonX2 + 1, oldmoonY2 + 4), 1, 0 IF timeisnow > 0 THEN CIRCLE (oldmoonX2 + 2, oldmoonY2 + 4), 12, 0 CIRCLE (moonX2 + 2, moonY2 + 4), 2, 9 CIRCLE (moonX2 + 2, moonY2 + 4), 1, 9 CIRCLE (moonX2 + 3, moonY2 + 4), 1, 9 CIRCLE (moonX2 + 1, moonY2 + 4), 1, 9 IF timeisnow > 0 THEN CIRCLE (moonX2 + 2, moonY2 + 4), 12, 12 oldmoonX2 = moonX2: oldmoonY2 = moonY2 IF moonAngle3 = 0 THEN moonAngle3 = 360 theta = moonAngle3 * (PI / 180) moonX3 = moonX2 + orbitRadium3 * (COS(theta)) moonY3 = moonY2 - orbitRadium3 * (SIN(theta)) CIRCLE (oldmoonX3 + 1, oldmoonY3 + 4), 1, 0 CIRCLE (moonX3 + 1, moonY3 + 4), 1, 7 oldmoonX3 = moonX3: oldmoonY3 = moonY3 IF plantime = 500 THEN timeisnow = 1 IF timeisnow = 1 THEN GOSUB picard2 IF plantime = 501 THEN timeisnow = 2 IF plantime = 700 THEN GOSUB clearwords2 IF plantime = 800 THEN GOSUB r2d2 IF plantime = 900 THEN CALL fac172 IF plantime = 901 THEN EXIT SUB LOOP UNTIL plantime = 900 EXIT SUB picard2: LOCATE 28, 9: PRINT "Picard: Computer, locate Epfaoluri II." RETURN clearwords2: LOCATE 28, 9: PRINT " " RETURN r2d2: LOCATE 28, 9: PRINT "Picard: Computer, display Romulan weapons R&D facility #17." RETURN END SUB DEFINT A-Z 'subprogram for drawing the Romulan weapons R&D facility #17 SUB fac17 LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LINE (30, 80)-(60, 459), 1, BF LINE (40, 70)-(619, 80), 1, BF FOR j = 1 TO 10 CIRCLE (40, 80), j, 1 CIRCLE (41, 80), j, 1 NEXT LINE (30, 21)-(60, 50), 1, BF LINE (40, 50)-(619, 60), 1, BF FOR j = 1 TO 10 CIRCLE (40, 50), j, 1 CIRCLE (41, 50), j, 1 NEXT LOCATE 3, 9 COLOR 9 PRINT "Beta Quadrant: Romulan Star Empire: Epfaoluri System: Weapons R&D #17" LINE (61, 81)-(619, 459), 2, BF FOR c = 200 TO 250 CIRCLE (400, 400), c, 1 CIRCLE (401, 400), c, 1 NEXT LINE (20, 20)-(620, 460), 7, B PAINT (630, 470), 7 PAINT (200, 470), 7 LINE (380, 340)-(420, 420), 7, BF LINE (379, 377.5)-(340, 382.5), 8, BF LINE (421, 377.5)-(460, 382.5), 8, BF LINE (397.5, 340)-(402.5, 300), 8, BF LINE (320, 370)-(340, 390), 7, BF LINE (460, 370)-(480, 390), 7, BF CIRCLE (470, 380), 7, 12 LINE (390, 280)-(410, 300), 7, BF CIRCLE (400, 290), 2.5, 0 LINE (300, 340)-(379, 345), 8, BF LINE (280, 352.5)-(300, 332.5), 7, BF CIRCLE (290, 342.5), 8, 9 LINE (282, 342.5)-(298, 342.5), 2 LINE (290, 334.5)-(290, 350.5), 2 PSET (281, 333.5), 4 PSET (281, 351.5), 4 PSET (299, 333.5), 4 PSET (299, 351.5), 4 SLEEP 3 LOCATE 28, 9 COLOR 9 PRINT "Picard: Computer, annotate diagram." SLEEP 2 LOCATE 25, 11 PRINT "Photon Torpedo Testing Lab" LOCATE 22, 9 PRINT "Shuttlecraft Landing Pad" LOCATE 18, 15 PRINT "Quantum Singularity Power Plant" LOCATE 22, 55 PRINT "Main Building" LOCATE 26, 54 PRINT "Phaser Array Testing Lab" SLEEP 5 LOCATE 28, 9 PRINT "Picard: Computer, clear screen. " SLEEP 2 CLS CALL pa2 END SUB 'duplicate of the subprogram for drawing the Romulan weapons R&D SUB fac172 'facility #17 LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LINE (30, 80)-(60, 459), 1, BF LINE (40, 70)-(619, 80), 1, BF FOR j = 1 TO 10 CIRCLE (40, 80), j, 1 CIRCLE (41, 80), j, 1 NEXT LINE (30, 21)-(60, 50), 1, BF LINE (40, 50)-(619, 60), 1, BF FOR j = 1 TO 10 CIRCLE (40, 50), j, 1 CIRCLE (41, 50), j, 1 NEXT LOCATE 3, 9 COLOR 9 PRINT "Beta Quadrant: Romulan Star Empire: Epfaoluri System: Weapons R&D #17" LINE (61, 81)-(619, 459), 2, BF FOR c = 200 TO 250 CIRCLE (400, 400), c, 1 CIRCLE (401, 400), c, 1 NEXT LINE (20, 20)-(620, 460), 7, B PAINT (630, 470), 7 PAINT (200, 470), 7 LINE (380, 340)-(420, 420), 7, BF LINE (379, 377.5)-(340, 382.5), 8, BF LINE (421, 377.5)-(460, 382.5), 8, BF LINE (397.5, 340)-(402.5, 300), 8, BF LINE (320, 370)-(340, 390), 7, BF LINE (460, 370)-(480, 390), 7, BF CIRCLE (470, 380), 7, 12 LINE (390, 280)-(410, 300), 7, BF CIRCLE (400, 290), 2.5, 0 LINE (300, 340)-(379, 345), 8, BF LINE (280, 352.5)-(300, 332.5), 7, BF CIRCLE (290, 342.5), 8, 9 LINE (282, 342.5)-(298, 342.5), 2 LINE (290, 334.5)-(290, 350.5), 2 PSET (281, 333.5), 4 PSET (281, 351.5), 4 PSET (299, 333.5), 4 PSET (299, 351.5), 4 SLEEP 3 LOCATE 28, 9 COLOR 9 PRINT "Picard: Computer, annotate diagram." SLEEP 2 LOCATE 25, 11 PRINT "Photon Torpedo Testing Lab" LOCATE 22, 9 PRINT "Shuttlecraft Landing Pad" LOCATE 18, 15 PRINT "Quantum Singularity Power Plant" LOCATE 22, 55 PRINT "Main Building" LOCATE 26, 54 PRINT "Phaser Array Testing Lab" SLEEP 5 LOCATE 28, 9 PRINT "Picard: Computer, clear screen. " SLEEP 2 CLS CALL pb2 END SUB 'Plot for Picard SUB p1 CLS CALL stars 'CALL the subprogram for the starry background FOR j = 1 TO 100 'draw planet and moon CIRCLE (620, 460), j, 1 CIRCLE (621, 460), j, 1 NEXT FOR j = 1 TO 20 CIRCLE (560, 300), j, 8 CIRCLE (561, 300), j, 8 NEXT FOR j = 1 TO 5 CIRCLE (100, 100), j, 14 CIRCLE (101, 100), j, 14 NEXT LINE (1, 200)-(181, 276), 0, BF 'draw the Remmler array FOR a = 0 TO 59 LINE (30, 1 + 200)-(1 + a, 25 + 200), 6 LINE (30, 75 + 200)-(1 + a, 50 + 200), 6 LINE (1, 26 + 200)-(60, 49 + 200), 6, BF NEXT FOR a = 60 TO 119 LINE (90, 1 + 200)-(1 + a, 25 + 200), 6 LINE (90, 75 + 200)-(1 + a, 50 + 200), 6 LINE (61, 26 + 200)-(120, 49 + 200), 6, BF NEXT FOR a = 120 TO 179 LINE (150, 1 + 200)-(1 + a, 25 + 200), 6 LINE (150, 75 + 200)-(1 + a, 50 + 200), 6 LINE (121, 26 + 200)-(180, 49 + 200), 6, BF NEXT LINE (30, 1 + 200)-(150, 1 + 200), 6 LINE (30, 75 + 200)-(150, 75 + 200), 6 LOCATE 3, 7 COLOR 9 PRINT "Picard: Captain's Log: Stardate 47582.4. After a routine baryon sweep" LOCATE 4, 7 PRINT "at the Remmler Array we are ready to leave Arkaria." Move = 1 DO 'Enterprise movement sequence LINE (200 + Move - 2, 225)-(412 + Move, 260), 0, BF PUT (200 + Move, 225), trek% 'unload the DIMmed graphics array at the proper Move = Move + 2 'x,y position LOOP UNTIL Move = 225 CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Worf: A top priority message from The Federation has arrived, Captain." SLEEP 3 LOCATE 3, 7 PRINT "Picard: I'll take it in my ready room. " SLEEP 2 CLS LINE (10, 60)-(40, 480), 1, BF 'draw the background LINE (20, 50)-(640, 60), 1, BF FOR j = 1 TO 10 CIRCLE (20, 60), j, 1 CIRCLE (21, 60), j, 1 NEXT LINE (10, 0)-(40, 30), 1, BF LINE (20, 30)-(640, 40), 1, BF FOR j = 1 TO 10 CIRCLE (20, 30), j, 1 CIRCLE (21, 30), j, 1 NEXT LOCATE 3 + 3, 7 COLOR 9 PRINT "Computer: Playing message..." SLEEP 2 LOCATE 3 + 3, 7 PRINT "Starbase 310, Fleet Admiral Nechayev: Recently a top secret subspace" LOCATE 4 + 3, 7 PRINT "phaser was stolen from a Federation weapons R&D lab. It was built as" LOCATE 5 + 3, 7 PRINT "part of the Dark Star Project. We believe that the Romulans have it." LOCATE 6 + 3, 7 PRINT "Your prime objective is to get it back, your secondary objective is" LOCATE 7 + 3, 7 PRINT "to learn more about the new class of Romulan ships. Good luck." SLEEP 10 CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "(Do you now a} set a course for Romulan space b} set a course for the" LOCATE 4, 7 PRINT "nearest starbase for a special operations upgrade or c} ignore it all" LOCATE 5, 7 PRINT "and set a course for Omicron Delta region and the Amusement Park Planet." notenter: 'INPUT decision LOCATE 6, 15 PRINT ""; INPUT pd1$ IF pd1$ = "a" THEN CALL pa1 'CALL the right subprogram IF pd1$ = "b" THEN CALL pb1 IF pd1$ = "c" THEN CALL pc1 IF pd1$ = "" THEN GOTO notenter 'loop if nothing END SUB 'Plot for Picard if a) is chosen SUB pa1 CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Picard: Ensign Crusher, set a course for Romulan space, 025 mark 252." SLEEP 3 LOCATE 3, 7 PRINT "Crusher: Aye, Captain. " SLEEP 2 LOCATE 3, 7 PRINT "Picard: Ahead, warp factor 8, engage! " SLEEP 2 CALL warp 'CALL the warp effect sub CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Picard: Mr. Worf, ready all weapons." SLEEP 2 LOCATE 3, 7 PRINT "Worf: Aye, sir. What exactly are we to expect?" SLEEP 3 LOCATE 3, 7 PRINT "Picard: A new class of Romulan ships has been launched, and they have" LOCATE 4, 7 PRINT "stolen a subspace phaser array. Mr. Data, scan for subspace field decay." SLEEP 5 LOCATE 3, 7 PRINT "Data: I have found significant amounts of field decay surrounding the" LOCATE 4, 7 PRINT "Epfaoluri System. " SLEEP 4 LOCATE 3, 7 PRINT "Picard: Do we have any information on the Epfaoluri System? " LOCATE 4, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Data: It is part of the Romulan Star Empire and is home to one of the" LOCATE 4, 7 PRINT "Romulan's best weapons R&D facilities. It has only two planets and one" LOCATE 5, 7 PRINT "moon." SLEEP 6 LOCATE 3, 7 PRINT "Picard: Computer, display the Epfaoluri System. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 3 CALL epfaoluri 'CALL the planet animation subprogram END SUB SUB pa2 CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Do you now a} set a course for the Epfaoluri system b} send for " LOCATE 4, 7 PRINT "reinforcements or c} defect to the Romulans" nonotenter: 'INPUT decision LOCATE 5, 15 PRINT ""; INPUT pd2$ IF pd2$ = "a" THEN CALL paa1 'CALL the right subprogram IF pd2$ = "b" THEN CALL pab1 IF pd2$ = "c" THEN CALL pac1 IF pd2$ = "" THEN GOTO nonotenter 'loop if nothing END SUB 'Plot for Picard if a) and a) are chosen SUB paa1 CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Picard: Ensign Crusher, set a new course for Epfaoluri II, maintain" LOCATE 4, 7 PRINT "speed." SLEEP 4 LOCATE 3, 7 PRINT "Crusher: Aye, sir. " LOCATE 4, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Time passes.... " SLEEP 2 LOCATE 3, 7 PRINT "Crusher: We have reached Epfaoluri II, captain." SLEEP 3 LOCATE 3, 7 PRINT "Picard: Very good, prepare an away team and..." SLEEP 2 LINE (20, 20)-(620, 460), 4, B 'turn screen border red PAINT (5, 5), 4 Delay = 15500 'earthquake effect (by William Yu) FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 10 'alarm sounds loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 PRINT "Picard: Turn off that alarm! " SLEEP 2 LOCATE 3, 7 PRINT "Worf: Our shields have been reduced to almost nothing, captain!" SLEEP 3 LOCATE 3, 7 PRINT "Picard: Mr. Worf, what hit us? " SLEEP 2 LOCATE 3, 7 PRINT "Worf: It appears to have been a photon torpedo, but it did not show" LOCATE 4, 7 PRINT "up on our sensors. Sir, a ship is decloaking in front of us!" SLEEP 4 PUT (200, 200), jarok% 'unload the DIMmed graphics array at the proper x,y LOCATE 3, 7 'position PRINT "Worf: They are hailing us, captain, audio only. " LOCATE 4, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Picard: Patch them in, Mr. Worf. " SLEEP 2 LOCATE 3, 7 PRINT "Romulan Commander: This is Commander Talek of the Jarok Class vessel" LOCATE 4, 7 PRINT "Toreth. Surrender your ship immediately or face our new cloakable" LOCATE 5, 7 PRINT "photon topedo. They can be fired through our own cloaking fields by" LOCATE 6, 7 PRINT "tuning them to the same frequency." SLEEP 7 LOCATE 3, 7 PRINT "Do you now a} surrender the ship b} blow up the ship c} run like hell" LOCATE 4, 7 PRINT "d} try diplomacy or e} fire at them " LOCATE 5, 7 PRINT " " LOCATE 6, 7 PRINT " " nonotneverenter: 'INPUT decision LOCATE 5, 15 PRINT ""; INPUT pd3$ IF pd3$ = "a" THEN CALL paaa1 'CALL the right subprogram IF pd3$ = "b" THEN CALL shipexplode IF pd3$ = "c" THEN CALL paac1 IF pd3$ = "d" THEN CALL paad1 IF pd3$ = "e" THEN CALL paae1 IF pd3$ = "" THEN GOTO nonotneverenter 'loop if nothing END SUB 'Plot for Picard if a), a), and a) are chosen SUB paaa1 CLS PALETTE 4, 0 'change the color red to black COLOR 4 PRINT "After capitulating to the Romulans, you and your entire crew are put in a " PRINT "prison camp for the remainder of your days. You and your senior staff are" PRINT "tortured in order to further the amount of information on The Federation." PRINT "You all die of old age and assorted diseases unhappily on a cold, dark, and" PRINT "hostile world. Game Over. You lose. " PRINT PRINT PRINT PRINT PRINT PRINT " THE END" FOR palx = 0 TO 63 'slowly change the color red (currently black) back to red PALETTE 4, palx FOR timewaste = 1 TO 999: NEXT NEXT SLEEP CALL cycledown 'CALL the change-all-colors-to-black subprogram END SUB 'Plot for Picard if a), a), and c) are chosen SUB paac1 LOCATE 3, 7 COLOR 9 PRINT "Picard: Get us out of here, Ensign, maximum warp. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Crusher: Aye, sir. " SLEEP 2 CALL warp 'CALL the warp effect sub CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 4, B PAINT (5, 5), 4 LOCATE 3, 7 COLOR 9 PRINT "Worf: Captain, they are pursuing us." SLEEP 2 LOCATE 3, 7 PRINT "Picard: Range? " SLEEP 2 LOCATE 3, 7 PRINT "Worf: In another few seconds they'll be within weapons range, sir." SLEEP 4 LOCATE 3, 7 PRINT "Picard: Mr. La Forge, can you get more power to the shields? " SLEEP 3 LOCATE 3, 7 PRINT "La Forge: No, Captain, the power... " SLEEP 2 LOCATE 3, 7 PRINT "Worf: They are firing. " SLEEP 2 LOCATE 3, 7 PRINT "Worf: Impact in 10 seconds, 9, 8, 7, 6, 5, 4, 3, it was a pleasure" LOCATE 4, 7 PRINT "serving under you, sir." SLEEP 5 Delay = 15500 'earthquake effect (by William Yu) DO bloodyalarm = 0 FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 5 SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP endx = endx + 1 LOOP UNTIL endx = 3 CALL shipexplode 'CALL the Enterprise explode subprogram END SUB 'Plot for Picard if a), a), and d) are chosen SUB paad1 LOCATE 3, 7 PRINT "We have only come to claim what is ours, are you willing to create an" LOCATE 4, 7 PRINT "interstellar incident? " LOCATE 5, 7 PRINT " " SLEEP 5 LOCATE 3, 7 PRINT "Talek: Chances are that nobody but your starfleet command knows about" LOCATE 4, 7 PRINT "your mission, and if it failed, I doubt that they would tell anybody." LOCATE 5, 7 PRINT "Also, since I don't have time to waste, I'll just end this the easy" LOCATE 6, 7 PRINT "way. Goodbye." SLEEP 8 Delay = 15500 'earthquake effect (by William Yu) DO bloodyalarm = 0 FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 5 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP endx = endx + 1 LOOP UNTIL endx = 3 CALL shipexplode 'CALL the Enterprise explode subprogram END SUB 'Plot for Picard if a), a), and e) are chosen SUB paae1 LOCATE 3, 7 PRINT "Picard: Mr. Worf, fire at will. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Worf pulls out a Type I personnel phaser and points it at Riker..." SLEEP 4 LOCATE 3, 7 PRINT "Picard: No, no, I mean the enemy! " SLEEP 2 LOCATE 3, 7 PRINT "Worf looks disappointed as he fires the weapons." SLEEP 3 CLS CALL phaser 'CALL the phaser effect subprogram CLS CALL photon 'CALL the photon torpedo effect subprogram CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 4, B PAINT (5, 5), 4 PUT (200, 200), jarok% 'unload the DIMmed graphics array at the proper x,y Delay = 15500 'position FOR X = 1 TO Delay 'earthquake effect (by William Yu) OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 5 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 COLOR 9 PRINT "Worf: Our hits have been minimal, our shields are down, and theirs" LOCATE 4, 7 PRINT "are still intact. Our chances of survival are low." SLEEP 5 Delay = 15500 'earthquake effect (by William Yu) FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 5 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 PRINT "Picard: Thank you for that delightful upper, Mr. Worf, continue " LOCATE 4, 7 PRINT "firing. " SLEEP 4 Delay = 15500 'earthquake effect (by William Yu) FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 5 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 PRINT "Aye, aye, Captain. " LOCATE 4, 7 PRINT " " SLEEP 2 CLS CALL phaser 'CALL the phaser effect subprogram CLS CALL photon 'CALL the photon torpedo effect subprogram CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 4, B PAINT (5, 5), 4 PUT (200, 200), jarok% 'unload the DIMmed graphics array at the proper x,y Delay = 15500 'position FOR X = 1 TO Delay 'earthquake effect (by William Yu) OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 5 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 COLOR 9 PRINT "La Forge: They've hit the warp core, and it won't eject. There will" LOCATE 4, 7 PRINT "Be a breach....."; SLEEP 5 PRINT "now!" SLEEP 1 CALL shipexplode 'CALL the Enterprise explode subprogram END SUB 'Plot for Picard if a) amd b)are chosen SUB pab1 LOCATE 3, 7 PRINT "Picard: Mr. Data, how far away is the nearest Starfleet ship? " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Data: We are deep within Romulan space, so no Starfleet ship could " LOCATE 4, 7 PRINT "reach us in less than a day." SLEEP 5 LOCATE 3, 7 PRINT "Riker: Also, sir, this is supposed to be a covert operation. I don't" LOCATE 4, 7 PRINT "think that Starfleet Command would approve of the involvement of other" LOCATE 5, 7 PRINT "vessels." SLEEP 7 LOCATE 3, 7 PRINT "Do you now a} send for reinforcements, wait for them to come, and risk" LOCATE 4, 7 PRINT "retribution or b} set a course for Epfaoluri II. " exenter: 'INPUT decision LOCATE 5, 7 PRINT " "; INPUT pd4$ IF pd4$ = "a" THEN CALL paba1 'CALL the right sub IF pd4$ = "b" THEN CALL paa1 IF pd4$ = "" THEN GOTO exenter 'loop if nothing END SUB 'Plot for Picard if b) and b) are chosen (near duplicate of pab1) SUB pab2 LOCATE 3, 7 PRINT "Picard: Mr. Data, how far away is the nearest Starfleet ship? " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Data: We are deep within Romulan space, so no Starfleet ship could " LOCATE 4, 7 PRINT "reach us in less than a day." SLEEP 5 LOCATE 3, 7 PRINT "Riker: Also, sir, this is supposed to be a covert operation. I don't" LOCATE 4, 7 PRINT "think that Starfleet Command would approve of the involvement of other" LOCATE 5, 7 PRINT "vessels." SLEEP 7 LOCATE 3, 7 PRINT "Do you now a} send for reinforcements, wait for them to come, and risk" LOCATE 4, 7 PRINT "retribution or b} set a course for Epfaoluri II. " exenter2: 'INPUT decision LOCATE 5, 7 PRINT " "; INPUT pd4$ IF pd4$ = "a" THEN CALL paba1 'CALL the right subprogram IF pd4$ = "b" THEN CALL pba1 IF pd4$ = "" THEN GOTO exenter2 'loop if nothing END SUB 'Plot for Picard if a), b), and a) are selected SUB paba1 LOCATE 3, 7 PRINT "Picard: Send for reinforcements. We will wait here until they arrive. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 4 LOCATE 3, 7 PRINT "One day later.... " SLEEP 2 LOCATE 3, 7 PRINT "Worf: The reinforcements have arrived, Captain, and we are receiving a" LOCATE 4, 7 PRINT "message from Starfleet Command." SLEEP 5 LOCATE 3, 7 PRINT "Picard: On screen. " LOCATE 4, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Our long range sensors aboard Federation outposts along the Romulan" LOCATE 4, 7 PRINT "Neutral Zone have found subspace phasers in use on Romulan ships. We" LOCATE 5, 7 PRINT "are too late." LOCATE 16, 25 PRINT "(THE END. YOU LOSE. HAVE A NICE DAY.)" SLEEP CALL cycledown 'CALL the change-all-colors-to-black subprogram END SUB 'Plot for Picard if a) and c) are chosen SUB pac1 CLS PALETTE 4, 0 'set the color red to black COLOR 4 PRINT "Your attempt to leave the ship in a shuttlepod fails. It is destroyed when" PRINT "Commander Riker fires on it. What's left of you drifts in the vacuum of space" PRINT "for centuries, a warning to all Starfleet captains who have first officers" PRINT "loyal to the United Federation of Planets." LOCATE 16, 25 PRINT "THE END. YOU LOSE. HAVE A NICE DAY." FOR palx = 0 TO 63 'slowly change red (now black) back to red PALETTE 4, palx FOR timewaste = 1 TO 999: NEXT NEXT CALL cycledown 'CALL the change-all-colors-to-black subprogram END SUB 'Plot for Picard if b) is chosen SUB pb1 CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Picard: Ensign, set a course for the nearest starbase, warp 8." SLEEP 3 LOCATE 3, 7 PRINT "Crusher: Aye, sir. " SLEEP 2 CLS CALL warp 'CALL the warp effect sub CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Picard: Hail them, Mr. Worf." SLEEP 2 LOCATE 3, 7 PRINT "Starbase Commander: This is Starbase 513, what is it Enterprise?" SLEEP 4 LOCATE 3, 7 PRINT "Picard: We are here for a special operations upgrade authorized " LOCATE 4, 7 PRINT "by Fleet Admiral Nechayev." SLEEP 4 LOCATE 3, 7 PRINT " " LOCATE 4, 7 PRINT " " LOCATE 3, 7 PRINT "Starbase Commander: Let me check...."; SLEEP 3 PRINT "yes, you are scheduled for an" LOCATE 4, 7 PRINT "upgrade. I will feed the docking procedure to your helmsman." SLEEP 4 LOCATE 3, 7 PRINT "Some time later.... " LOCATE 4, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Picard: Mr. LaForge, fill me in on the changes to my ship." SLEEP 4 LOCATE 3, 7 PRINT "LaForge: A cloaking device has been installed and experimental" LOCATE 4, 7 PRINT "weapons have been added, such as subspace phaser array prototypes" LOCATE 5, 7 PRINT "and cloakable photon torpedoes." SLEEP 7 LOCATE 3, 7 PRINT "Picard: Very good, it appears we are as ready as we'll ever be." LOCATE 4, 7 PRINT "Ensign Crusher, head for Romulan space, warp factor 8. Mr, Worf " LOCATE 5, 7 PRINT "engage the cloaking device. " SLEEP 5 LOCATE 3, 7 PRINT "Worf: The cloaking device is active. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Picard: Mr. Worf, ready all weapons." SLEEP 2 LOCATE 3, 7 PRINT "Worf: Aye, sir. What exactly are we to expect?" SLEEP 3 LOCATE 3, 7 PRINT "Picard: A new class of Romulan ships has been launched, and they have" LOCATE 4, 7 PRINT "stolen a subspace phaser array. Mr. Data, scan for subspace field decay." SLEEP 5 LOCATE 3, 7 PRINT "Data: I have found significant amounts of field decay surrounding the" LOCATE 4, 7 PRINT "Epfaoluri System. " SLEEP 4 LOCATE 3, 7 PRINT "Picard: Do we have any information on the Epfaoluri System? " LOCATE 4, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Data: It is part of the Romulan Star Empire and is home to one of the" LOCATE 4, 7 PRINT "Romulan's best weapons R&D facilities. It has only two planets and one" LOCATE 5, 7 PRINT "moon." SLEEP 6 LOCATE 3, 7 PRINT "Picard: Computer, display the Epfaoluri System. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 3 CALL epfaoluri2 'CALL the planet animation END SUB 'continuation of pb1 SUB pb2 CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Do you now a} set a course for the Epfaoluri System b} send for " LOCATE 4, 7 PRINT "reinforcements or c} defect to the Romulans" deadparrot: 'INPUT decision LOCATE 5, 15 PRINT ""; INPUT pd2$ IF pd2$ = "a" THEN CALL pba1 'CALL the right subprogram IF pd2$ = "b" THEN CALL pab2 IF pd2$ = "c" THEN CALL pac1 IF pd2$ = "" THEN GOTO deadparrot 'loop if nothing END SUB 'Plot for Picard if b) and a) are chosen SUB pba1 CLS CALL stars 'CALL the subprogram for the starry background LINE (20, 20)-(620, 460), 7, B PAINT (5, 5), 7 LOCATE 3, 7 COLOR 9 PRINT "Picard: Ensign Crusher, set a new course for Epfaoluri II, maintain" LOCATE 4, 7 PRINT "speed." SLEEP 4 LOCATE 3, 7 PRINT "Crusher: Aye, sir. " LOCATE 4, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Time passes.... " SLEEP 2 LOCATE 3, 7 PRINT "Crusher: We have reached Epfaoluri II, Captain." SLEEP 3 LOCATE 3, 7 PRINT "Do you now a) land a special operations away team in the Romulan" LOCATE 4, 7 PRINT "weapons R&D lab b) try to lock on to the subspace phaser array and" LOCATE 5, 7 PRINT "beam it out of the facility c) ask them nicely to give it back" billiethewonderllama: 'INPUT decision LOCATE 6, 15 PRINT ""; INPUT pd73$ IF pd73$ = "a" THEN CALL pbaa1 'CALL the right sub IF pd73$ = "b" THEN CALL pbab1 IF pd73$ = "c" THEN CALL pbac1 IF pd73$ = "" THEN GOTO billiethewonderllama 'loop if nothing END SUB 'Plot for Picard if b), a), and a) are chosen SUB pbaa1 LOCATE 3, 7 PRINT "Picard: Prepare the special operations away team and beam them down" LOCATE 4, 7 PRINT "to the Romulan weapons R&D facility. Mr. Worf, transfer cloaking " LOCATE 5, 7 PRINT "device command to the transporter console. " LOCATE 6, 7 PRINT " " SLEEP 7 LOCATE 3, 7 PRINT "Worf: Aye, sir. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Time passes...." SLEEP 2 LOCATE 3, 7 PRINT "Data: The away team should have secured the SPA and erased all the " LOCATE 4, 7 PRINT "SPA data from their central computers." SLEEP 4 LOCATE 3, 7 PRINT "Worf: We have received a subspace pulse from the away team. " LOCATE 4, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Picard: Beam them up, Mr. Worf. " SLEEP 2 LOCATE 3, 7 PRINT "Worf: Transporter room signals a successful mission, Captain." SLEEP 3 LOCATE 3, 7 PRINT "Picard: Take us home, Ensign. " SLEEP 2 LOCATE 3, 7 PRINT "Crusher: With pleasure, Captain." SLEEP 2 CALL warp 'CALL the warp effect sub END SUB 'Plot for Picard if b), a), and b) are chosen SUB pbab1 LOCATE 3, 7 PRINT "Picard: Mr. Worf, lock transporters on the SPA and beam it out. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " LOCATE 6, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Worf: The transporter won't lock, a shield is currently activated." SLEEP 4 LOCATE 3, 7 PRINT "Picard: Can you break through the shielding? " SLEEP 3 LOCATE 3, 7 PRINT "Worf not without disengaging the cloaking device for an extended " LOCATE 4, 7 PRINT "period of time." SLEEP 4 LOCATE 3, 7 PRINT "Do you now a) land a special operations away team in the Romulan" LOCATE 4, 7 PRINT "weapons R&D lab b) decloak in order to breakthrough the shielding" LOCATE 5, 7 PRINT "and beam it out of the facility c) ask them nicely to give it back" ni: 'INPUT decision LOCATE 6, 15 PRINT ""; INPUT pd73$ IF pd73$ = "a" THEN CALL pbaa1 'CALL the right subprogram IF pd73$ = "b" THEN CALL pbabb1 IF pd73$ = "c" THEN CALL pbac1 IF pd73$ = "" THEN GOTO ni 'loop if nothing END SUB 'Plot for Picard if b), a), b), and b) are chosen SUB pbabb1 LOCATE 3, 7 PRINT "Picard: You are authorized to decloak. " LOCATE 4, 7 PRINT " " LOCATE 5, 7 PRINT " " LOCATE 6, 7 PRINT " " SLEEP 3 LINE (20, 20)-(620, 460), 4, B PAINT (5, 5), 4 Delay = 15500 'earthquake effect (by William Yu) FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 10 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 PRINT "Picard: Turn off that alarm! " SLEEP 2 LOCATE 3, 7 PRINT "Worf: Our shields have been reduced to almost nothing and the" LOCATE 4, 7 PRINT "cloaking device is off-line, captain!" SLEEP 3 LOCATE 3, 7 PRINT "Picard: Mr. Worf, what hit us? " LOCATE 4, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Worf: It appears to have been a photon torpedo, but it did not show" LOCATE 4, 7 PRINT "up on our sensors. Sir, a ship is decloaking in front of us!" SLEEP 4 PUT (200, 200), jarok% 'unload the DIMmed graphics array at the proper x,y LOCATE 3, 7 'position PRINT "Worf: They are hailing us, captain, audio only. " LOCATE 4, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Picard: Patch them in, Mr. Worf. " SLEEP 2 LOCATE 3, 7 PRINT "Romulan Commander: This is Commander Talek of the Jarok Class vessel" LOCATE 4, 7 PRINT "Toreth. Surrender your ship immediately or face our new cloakable" LOCATE 5, 7 PRINT "photon topedo. They can be fired through our own cloaking fields by" LOCATE 6, 7 PRINT "tuning them to the same frequency." SLEEP 7 LOCATE 3, 7 PRINT "Do you now a} surrender the ship b} blow up the ship c} run like hell" LOCATE 4, 7 PRINT "d} try diplomacy or e} fire at them " LOCATE 5, 7 PRINT " " LOCATE 6, 7 PRINT " " spootage: 'INPUT decision LOCATE 5, 15 PRINT ""; INPUT pd33$ IF pd33$ = "a" THEN CALL paaa1 'CALL the right subprogram IF pd33$ = "b" THEN CALL shipexplode IF pd33$ = "c" THEN CALL paac1 IF pd33$ = "d" THEN CALL paad1 IF pd33$ = "e" THEN CALL paae1 IF pd33$ = "" THEN GOTO spootage 'loop if nothing END SUB 'Plot for Picard if b), a), and c) are chosen SUB pbac1 LOCATE 3, 7 PRINT "Picard: Disengage the cloaking device and open a channel to the " LOCATE 4, 7 PRINT "facility, audio only. " LOCATE 5, 6 PRINT " " LOCATE 6, 7 PRINT " " SLEEP 4 LOCATE 3, 7 PRINT "Picard: This is Captain Picard of the Starship Enterprise. We have" LOCATE 4, 7 PRINT "come to reclaim the stolen subspace phaser array." SLEEP 6 LOCATE 3, 7 PRINT "Romulan Commander: Bwa, ha, ha, ha, ha, ha! SNORT! HEE HEE HA! You" LOCATE 4, 7 PRINT "...giggle...can't be...chortle...serious! " SLEEP 5 LOCATE 3, 7 PRINT "Picard: Of course I am, what the devil do you think is so funny? " LOCATE 4, 7 PRINT " " SLEEP 4 LOCATE 3, 7 PRINT "Romulan Commander: Heh, heh, snort, right, hold...giggle...on. " SLEEP 3 LOCATE 3, 7 PRINT "The Romulan Commander manages to wheeze an order to his subordinate." SLEEP 4 LOCATE 3, 7 PRINT "Worf: They have broken the channel. " SLEEP 2 LINE (20, 20)-(620, 460), 4, B PAINT (5, 5), 4 Delay = 15500 'earthquake effect (by William Yu) FOR X = 1 TO Delay OUT &H3D4, 8: OUT &H3D5, X NEXT X OUT &H3D4, 8: OUT &H3D5, 0 DO UNTIL bloodyalarm = 10 'alarm loop SOUND 1500, 1 SOUND 2000, 5 SOUND 0, 3 bloodyalarm = bloodyalarm + 1 LOOP LOCATE 3, 7 PRINT "Picard: Turn off that alarm! " SLEEP 2 LOCATE 3, 7 PRINT "Worf: Our shields have been reduced to almost nothing and the" LOCATE 4, 7 PRINT "cloaking device is off-line, Captain!" SLEEP 4 LOCATE 3, 7 PRINT "Picard: Mr. Worf, what hit us? " LOCATE 4, 7 PRINT " " SLEEP 2 LOCATE 3, 7 PRINT "Worf: It appears to have been a photon torpedo, but it did not show" LOCATE 4, 7 PRINT "up on our sensors. Sir, a ship is decloaking in front of us!" SLEEP 4 PUT (200, 200), jarok% 'unload the DIMmed graphics array at the proper x,y LOCATE 3, 7 'position PRINT "Worf: They are hailing us, Captain, audio only. " LOCATE 4, 7 PRINT " " SLEEP 3 LOCATE 3, 7 PRINT "Picard: Patch them in, Mr. Worf. " SLEEP 2 LOCATE 3, 7 PRINT "Romulan Commander: This is Commander Talek of the Jarok Class vessel" LOCATE 4, 7 PRINT "Toreth. Surrender your ship immediately or face our new cloakable" LOCATE 5, 7 PRINT "photon topedo. They can be fired through our own cloaking fields by" LOCATE 6, 7 PRINT "tuning them to the same frequency." SLEEP 7 LOCATE 3, 7 PRINT "Do you now a} surrender the ship b} blow up the ship c} run like hell" LOCATE 4, 7 PRINT "d} try diplomacy or e} fire at them " LOCATE 5, 7 PRINT " " LOCATE 6, 7 PRINT " " billybob: 'INPUT decision LOCATE 5, 15 PRINT ""; INPUT pd23$ IF pd23$ = "a" THEN CALL paaa1 'CALL right subprogram IF pd23$ = "b" THEN CALL shipexplode IF pd23$ = "c" THEN CALL paac1 IF pd23$ = "d" THEN CALL paad1 IF pd23$ = "e" THEN CALL paae1 IF pd23$ = "" THEN GOTO billybob 'loop if nothing END SUB 'Plot for Picard if c) is chosen SUB pc1 CLS COLOR 4 PALETTE 4, 0 'set red to black PRINT "After telling Ensign Crusher to plot a heading to the Amusement " PRINT "Park Planet in the Omicron Delta region you are relieved of command" PRINT "by the bridge officers. Riker assumes command, and due to bad command" PRINT "decisions made by the aforementioned individual the Enterprise meets" PRINT "its demise in the Epfaoluri Star System. Everyone dies." PRINT PRINT " THE END. YOU LOSE. HAVE A NICE DAY." FOR PALS = 0 TO 63 'slowly change red (black) back to normal red PALETTE 4, PALS NEXT SLEEP CALL cycledown 'CALL the change-all-colors-to-black subprogram END SUB 'phaser effect sub SUB phaser N = 150 DIM Y(N) DIM X(N) DIM s(N) DIM c(N) DIM X1(N) DIM Y1(N) DIM c1(N) DIM s1(N) RANDOMIZE TIMER CLS FOR I = 1 TO N X(I) = INT(RND * 640 + 1) Y(I) = INT(RND * 480 + 1) s(I) = INT(RND * 5 + 1) s1(I) = INT(RND * 5 + 1) X1(I) = INT(RND * 640 + 1) Y1(I) = INT(RND * 480 + 1) IF s1(I) <= 3 THEN c1(I) = 8 IF s1(I) = 4 THEN c1(I) = 7 IF s1(I) = 5 THEN c1(I) = 15 IF s(I) <= 3 THEN c(I) = 8 IF s(I) = 4 THEN c(I) = 7 IF s(I) = 5 THEN c(I) = 15 NEXT I DO FOR I = 1 TO N PSET (X(I), Y(I)), 0 PSET (X1(I), Y1(I)), 0 X(I) = X(I) - s(I) X1(I) = X1(I) - s1(I) IF X(I) <= 1 THEN GOSUB 2 IF X1(I) >= 640 THEN GOSUB 3 PSET (X(I), Y(I)), c(I) PSET (X1(I), Y1(I)), c1(I) NEXT I LINE (200, 200)-(412, 236), 0, BF PUT (200, 200), trek% 'unload the DIMmed graphics array at the proper x,y IF secondprise > 50 THEN 'position FOR g = 1 TO 500 LINE (395, 209)-(640, 250), RND * 15 NEXT LINE (395, 209)-(640, 250), 0 LINE (1, 1)-(200, 1), 0 secondprise = 0 EXIT SUB END IF secondprise = secondprise + 1 LOOP UNTIL secondprise = 110 EXIT SUB 2 X(I) = 640 Y(I) = INT(RND * 480 + 1) RETURN 3 X1(I) = 1 Y1(I) = INT(RND * 480 + 1) RETURN END SUB 'photon torpedo effect sub SUB photon N = 150 DIM Y(N) DIM X(N) DIM s(N) DIM c(N) DIM X1(N) DIM Y1(N) DIM c1(N) DIM s1(N) RANDOMIZE TIMER CLS FOR I = 1 TO N X(I) = INT(RND * 640 + 1) Y(I) = INT(RND * 480 + 1) s(I) = INT(RND * 5 + 1) s1(I) = INT(RND * 5 + 1) X1(I) = INT(RND * 640 + 1) Y1(I) = INT(RND * 480 + 1) IF s1(I) <= 3 THEN c1(I) = 8 IF s1(I) = 4 THEN c1(I) = 7 IF s1(I) = 5 THEN c1(I) = 15 IF s(I) <= 3 THEN c(I) = 8 IF s(I) = 4 THEN c(I) = 7 IF s(I) = 5 THEN c(I) = 15 NEXT I DO FOR I = 1 TO N PSET (X(I), Y(I)), 0 PSET (X1(I), Y1(I)), 0 X(I) = X(I) - s(I) X1(I) = X1(I) - s1(I) IF X(I) <= 1 THEN GOSUB 222 IF X1(I) >= 640 THEN GOSUB 333 PSET (X(I), Y(I)), c(I) PSET (X1(I), Y1(I)), c1(I) NEXT I LINE (200, 200)-(412, 236), 0, BF PUT (200, 200), trek% 'unload the DIMmed graphics array at the proper x,y IF secondprise > 50 THEN 'position photonx = 326 DO LINE (photonx - 3, 215)-(photonx - 3, 219), 0 PSET (photonx, 215), 0 PSET (photonx + 2, 217), 0 PSET (photonx, 217), 0 PSET (photonx - 2, 217), 0 PSET (photonx, 219), 0 photonx = photonx + 1 PSET (photonx - 2, 215), 11 PSET (photonx + 2, 215), 11 PSET (photonx, 217), 11 PSET (photonx - 2, 219), 11 PSET (photonx + 2, 219), 11 FOR ptime = 1 TO 1000 NEXT LINE (photonx - 3, 215)-(photonx - 3, 219), 0 PSET (photonx - 2, 215), 0 PSET (photonx + 2, 215), 0 PSET (photonx, 217), 0 PSET (photonx - 2, 219), 0 PSET (photonx + 2, 219), 0 photonx = photonx + 1 PSET (photonx, 215), 11 PSET (photonx + 2, 217), 11 PSET (photonx, 217), 11 PSET (photonx - 2, 217), 11 PSET (photonx, 219), 11 FOR ptime = 1 TO 1000 NEXT LOOP UNTIL photonx > 621 EXIT SUB secondprise = 0 asteroid = 0 END IF secondprise = secondprise + 1 LOOP EXIT SUB 222 X(I) = 640 Y(I) = INT(RND * 480 + 1) RETURN 333 X1(I) = 1 Y1(I) = INT(RND * 480 + 1) RETURN END SUB 'Single pixel scroller (By Martin Linde) SUB PixelScroll (Text$, Col%, NewY%) DIM Move(1277) DIM Temp(20) Temp = 255 - Col PALETTE Temp, 0 COLOR Temp: PRINT Text$ Tmp2 = 1 FOR X = 0 TO LEN(Text$) * 8 IF X > 319 * Tmp2 THEN Tmp = Tmp + 7: Tmp2 = Tmp2 + 1 GET (X, 0 + Tmp)-(X, 7 + Tmp), Temp PUT (319, NewY), Temp, PRESET GET (2, NewY)-(320, NewY + 7), Move PUT (1, NewY), Move, PSET NEXT X FOR X = 1 TO 320 GET (2, NewY)-(320, NewY + 7), Move PUT (1, NewY), Move, PSET NEXT SCREEN 0: SCREEN 13 END SUB 'Shareware sub, don't send money, because I'm not planning on SUB r1 'making a full version CLS LOCATE 3, 7 COLOR 11 PRINT "This is only the shareware version of The Dark Star Project. If you" LOCATE 4, 7 PRINT "would like to receive the other five characters and the .wav file sound" LOCATE 5, 7 PRINT "track, send $20 to the following address:" LOCATE 7, 15 COLOR 10 PRINT "Adam Dalke" LOCATE 8, 15 PRINT "21018-84th Ave. W" LOCATE 9, 15 PRINT "Edmonds, WA 98026" LOCATE 11, 7 COLOR 12 PRINT "U.S. CURRENCY ONLY, PLEASE!" SLEEP CALL cycledown 'CALL the change-all-colors-to-black subprogram END SUB 'the Enterprise explode subprogram SUB shipexplode CLS CALL stars 'CALL the subprogram for the starry background PUT (200, 200), trek% 'unload the DIMmed graphics array at the proper x,y FOR f = 1 TO 50 'position q = INT(RND * 200 + 200) j = INT(RND * 35) + 200 FOR h = 1 TO 10 CIRCLE (q, j), h, 12 CIRCLE (q + 1, j), h, 12 NEXT h SOUND 40, 3 FOR h = 1 TO 10 CIRCLE (q, j), h, 0 NEXT h FOR h = 1 TO 10 CIRCLE (q + 1, j), h, 0 NEXT h SOUND 0, 3 NEXT f DO LOCATE 16, 25 COLOR RND * 10 PRINT "Game Over. You lose. Have a nice day." LOOP UNTIL INKEY$ <> "" END SUB SUB stars 'the subprogram for the starry background I = 0 DO X = INT(RND * 640 + 1) Y = INT(RND * 480 + 1) COLOR 15 PSET (X, Y) COLOR 7 PSET (X - 1, Y) PSET (X + 1, Y) PSET (X, Y - 1) PSET (X, Y + 1) COLOR 8 PSET (X - 2, Y) PSET (X + 2, Y) PSET (X, Y - 2) PSET (X, Y + 2) I = I + 1 LOOP UNTIL I = 20 COLOR 8 I = 0 DO X = INT(RND * 640 + 1) Y = INT(RND * 480 + 1) PSET (X, Y) I = I + 1 LOOP UNTIL I = 180 COLOR 15 I = 0 DO X = INT(RND * 640 + 1) Y = INT(RND * 480 + 1) PSET (X, Y) I = I + 1 LOOP UNTIL I = 90 COLOR 7 I = 0 DO X = INT(RND * 640 + 1) Y = INT(RND * 480 + 1) PSET (X, Y) I = I + 1 LOOP UNTIL I = 150 END SUB SUB warp 'the warp effect sub N = 150 DIM Y(N) DIM X(N) DIM s(N) DIM c(N) DIM X1(N) DIM Y1(N) DIM c1(N) DIM s1(N) RANDOMIZE TIMER CLS FOR I = 1 TO N X(I) = INT(RND * 640 + 1) Y(I) = INT(RND * 480 + 1) s(I) = INT(RND * 5 + 1) s1(I) = INT(RND * 5 + 1) X1(I) = INT(RND * 640 + 1) Y1(I) = INT(RND * 480 + 1) IF s1(I) <= 3 THEN c1(I) = 8 IF s1(I) = 4 THEN c1(I) = 7 IF s1(I) = 5 THEN c1(I) = 15 IF s(I) <= 3 THEN c(I) = 8 IF s(I) = 4 THEN c(I) = 7 IF s(I) = 5 THEN c(I) = 15 NEXT I secondprise = 1 DO FOR I = 1 TO N PSET (X(I), Y(I)), 0 PSET (X1(I), Y1(I)), 0 X(I) = X(I) - s(I) X1(I) = X1(I) - s1(I) IF X(I) <= 1 THEN GOSUB 22 IF X1(I) >= 640 THEN GOSUB 33 PSET (X(I), Y(I)), c(I) PSET (X1(I), Y1(I)), c1(I) NEXT I IF secondprise > 425 THEN LINE (secondprise - 22, 200)-(secondprise + 212, 236), 0, BF LINE (630, 147)-(630, 257), 11 LINE (secondprise - 223, 207)-(640, 207), 11 SLEEP 1 LINE (630, 147)-(630, 257), 0 LINE (177, 207)-(640, 207), 0 EXIT SUB END IF IF secondprise < 100 THEN LINE (secondprise - 1, 200)-(secondprise + 212, 236), 0, BF PUT (secondprise, 200), trek% 'unload the DIMmed graphics array at the proper speed = 1 'x,y position secondprise = secondprise + speed END IF IF secondprise >= 100 THEN LINE (secondprise - 2, 200)-(secondprise + 212, 236), 0, BF PUT (secondprise, 200), trek2% 'unload the DIMmed graphics array at the proper speed = 2 'x,y position secondprise = secondprise + speed END IF IF secondprise = 200 THEN warped = 1 IF warped = 1 THEN LINE (secondprise - 22, 200)-(secondprise + 212, 236), 0, BF PUT (secondprise, 200), trek3% 'unload the DIMmed graphics array at the proper LINE (secondprise + 1, 207)-(secondprise - 23, 207), 11 'x,y position speed = 20 secondprise = secondprise + speed END IF LOOP 22 X(I) = 640 Y(I) = INT(RND * 480 + 1) RETURN 33 X1(I) = 1 Y1(I) = INT(RND * 480 + 1) RETURN END SUB