1: ' Press SHIFT-F5 to start 2: ' 3: ' 4: ' Sorry that most of this code is cryptc or messy. Most of it was written 5: ' as 2:00 in the morning. Most of this was actually written back in may of 6: ' 94, I'm just now getting around to releasing it. There's not musch for 7: ' internal comments in this thing, its not very elegant code anyway. I don't 8: ' really suggest for anyone to learn by looking at this. If you want to see 9: ' some very well written code to learn from, look for some of my other creations 10: ' like: QPlasma - 256 color plasma generator: Has very well written code, 11: ' I commented the heck out of it. Get this if you want to 12: ' see some really nice pallete manipulation. 13: ' StarField - Simple 3-D starfield - Good for starters 14: ' 15: ' coming soon : QTris - 256 color tetris with raytraced (wow!) backgrounds. 16: ' NEVER before has a QBasic game accomplished what 17: ' QTris will 18: ' QDraw - 256 color drawing program, uses my new file format 19: ' that I'll introduce with QTris. Also can load GIF's 20: ' and QPlasma style palette files. Mouse support too! 21: ' 22: ' If any of you want to see my Path Generator that I used for the 3-D tunnel, 23: ' write me at Skream@aol.com and I'll upload it. 24: 25: DEFINT A-Z 26: 27: DECLARE FUNCTION ComputerType () 28: DECLARE SUB Fade (ty, tx, text$) 29: 30: DEF FNMove (xp%, yp%, xr%, yr%, n%, vstop%) 31: ul = yr: ll = xr: bl = vstop - yr: rl = 319 - xr 32: SELECT CASE n 33: CASE 1 34: IF yp > ul THEN IF xp > ll THEN FNMove = 1 ELSE FNMove = 2 ELSE IF xp > ll THEN FNMove = 4 ELSE FNMove = 3 35: CASE 2 36: IF yp > ul THEN IF xp < rl THEN FNMove = 2 ELSE FNMove = 1 ELSE IF xp < rl THEN FNMove = 3 ELSE FNMove = 4 37: CASE 3 38: IF yp < bl THEN IF xp < rl THEN FNMove = 3 ELSE FNMove = 4 ELSE IF xp < rl THEN FNMove = 2 ELSE FNMove = 1 39: CASE 4 40: IF yp < bl THEN IF xp > ll THEN FNMove = 4 ELSE FNMove = 3 ELSE IF xp > ll THEN FNMove = 1 ELSE FNMove = 2 41: END SELECT 42: END DEF 43: 44: OPTION BASE 1 45: RANDOMIZE TIMER 46: DIM SHARED ScrollDelay 47: 48: ScrollDelay = ComputerType 49: 50: SCREEN 7, , 0 51: Fade 9, 17, "QStar!" 52: Fade 10, 12, "by Michael Teator" 53: Fade 12, 7, "Please wait... initializing." 54: 55: Stars = 100 56: NumBoxes = 4 57: Dist = 5 58: LineClr = 9 59: DelayClr = LineClr - 8 60: Grid3DClr = 5 61: Counter = 1 62: NumDelayVectors = 8 63: NumCircles = 20 64: 65: DIM ReflTxt#(124) 66: DIM BoxXradius(NumBoxes), BoxYradius(NumBoxes), BoxX(NumBoxes), BoxY(NumBoxes), BoxDir(NumBoxes), BoxClr(NumBoxes) 67: DIM StarX(Stars), StarY(Stars), StarSpeed(Stars), StarClr(Stars) 68: DIM LineX(2), LineY(2), LineDir(2), DelayVector(4 * NumDelayVectors) 69: DIM Colors(4) 70: DIM ForeCircles(3 * NumCircles), CircleR(NumCircles * 3 + 1) 71: 72: RESTORE TubeData 73: READ NumFrames 74: DIM CircleX(NumFrames), CircleY(NumFrames), CircleC(NumFrames) 75: FOR num = 1 TO NumFrames 76: READ CircleX(num), CircleY(num) 77: NEXT 78: 79: FOR num = 1 TO NumFrames 80: clr = INT(RND * 2) + 1 81: IF clr = 1 THEN CircleC(num) = 9 ELSE CircleC(num) = 1 82: NEXT 83: 84: CircleR(1) = 40 85: 86: FOR num = 1 TO NumCircles * 3 STEP 3 87: CircleR(num + 1) = num ^ (3 / 2) / 2 + CircleR(1) 88: NEXT 89: 90: RESTORE Colors 91: FOR num = 1 TO 4 92: READ Colors(num) 93: NEXT 94: 95: PickClr = 1 96: BoxCount = 1 97: DO 98: BoxClr(BoxCount) = Colors(PickClr) 99: IF PickClr < 4 THEN PickClr = PickClr + 1 ELSE PickClr = 1 100: BoxCount = BoxCount + 1 101: LOOP UNTIL BoxCount > NumBoxes 102: 103: LineX(1) = 62 104: LineY(1) = 53 105: LineX(2) = 120 106: LineY(2) = 198 107: LineDir(1) = 1 108: LineDir(2) = 2 109: 110: FOR num = 1 TO Stars 111: StarPlane = INT(RND * 4) + 1 112: SELECT CASE StarPlane 113: CASE 1 114: StarSpeed(num) = 8 115: StarClr(num) = 15 116: StarX(num) = INT(RND * 319) 117: StarY(num) = INT(RND * 199) 118: CASE 2 119: StarSpeed(num) = 5 120: StarClr(num) = 7 121: StarX(num) = INT(RND * 319) 122: StarY(num) = INT(RND * 181) 123: CASE 3 124: StarSpeed(num) = 3 125: StarClr(num) = 7 126: StarX(num) = INT(RND * 319) 127: StarY(num) = INT(RND * 163) 128: CASE 4 129: StarSpeed(num) = 1 130: StarClr(num) = 8 131: StarX(num) = INT(RND * 319) 132: StarY(num) = INT(RND * 144) 133: END SELECT 134: NEXT 135: 136: FOR num = 1 TO NumBoxes 137: BoxXradius(num) = INT(RND * 20) + 1 138: BoxYradius(num) = INT(RND * 20) + 1 139: BoxX(num) = INT(RND * (319 - BoxXradius(num) * 2)) + BoxXradius(num) 140: BoxY(num) = INT(RND * (158 + num * 4 - BoxYradius(num) * 2)) + BoxYradius(num) 141: BoxDir(num) = INT(RND * 4) + 1 142: NEXT 143: 144: RESTORE Scroller 145: DO 146: READ ScrollTxt$ 147: Scroller$ = Scroller$ + ScrollTxt$ 148: LOOP UNTIL ScrollTxt$ = "" 149: Scroller$ = SPACE$(30) + Scroller$ 150: TxtLength = LEN(Scroller$) + 1 151: 152: FOR Frames = 2 TO 6 153: SCREEN , , Frames, 0 154: SELECT CASE Frames 155: CASE 2: RESTORE Grid3DFrame2 156: CASE 3: RESTORE Grid3DFrame3 157: CASE 4: RESTORE Grid3DFrame4 158: CASE 5: RESTORE Grid3DFrame5 159: CASE 6: RESTORE Grid3DFrame6 160: END SELECT 161: FOR Grid3DLine = 1 TO 8 162: READ x1!, y1!, x2!, y2! 163: LINE (x1!, y1!)-(x2!, y2!), Grid3DClr 164: NEXT 165: RESTORE Grid3DCommons 166: FOR Grid3DLine = 1 TO 15 167: READ x1, y1, x2, y2 168: LINE (x1, y1)-(x2, y2), Grid3DClr 169: NEXT 170: NEXT 171: 172: SCREEN , , 1, 0 173: RESTORE Grid3DFrame1 174: FOR Grid3DLine = 1 TO 6 175: READ x1, y1, x2, y2 176: LINE (x1, y1)-(x2, y2), Grid3DClr 177: PCOPY 1, 0 178: NEXT 179: RESTORE Grid3DCommons 180: FOR Grid3DLine = 1 TO 15 181: READ x1, y1, x2, y2 182: LINE (x1, y1)-(x2, y2), Grid3DClr 183: PCOPY 1, 0 184: NEXT 185: 186: SCREEN , , 0 187: LOCATE 12, 18: COLOR 10: PRINT "READY!" 188: SLEEP 1 189: 190: DO 191: SCREEN , , 7, 0 192: PCOPY 1, 7 193: IF Counter < TxtLength THEN 194: LOCATE 18, 5: COLOR 4: PRINT MID$(Scroller$, Counter, 30) 195: TopLine = 136 196: BotRefl = 151 197: DO 198: GET (32, TopLine)-(270, TopLine), ReflTxt# 199: PUT (32, BotRefl), ReflTxt#, XOR 200: TopLine = TopLine + 1 201: BotRefl = BotRefl - 1 202: LOOP UNTIL TopLine = 143 203: IF counter2 = ScrollDelay THEN counter2 = 0: Counter = Counter + 1 ELSE counter2 = counter2 + 1 204: ELSE 205: GOTO Part2 206: END IF 207: FOR NumStars = 1 TO Stars 208: StarX(NumStars) = StarX(NumStars) - StarSpeed(NumStars) 209: IF StarX(NumStars) < 0 THEN 210: StarX(NumStars) = 319 211: SELECT CASE StarSpeed(NumStars) 212: CASE 8 213: StarY(NumStars) = INT(RND * 199) 214: CASE 5 215: StarY(NumStars) = INT(RND * 181) 216: CASE 3 217: StarY(NumStars) = INT(RND * 163) 218: CASE 1 219: StarY(NumStars) = INT(RND * 144) 220: END SELECT 221: END IF 222: PSET (StarX(NumStars), StarY(NumStars)), StarClr(NumStars) 223: NEXT 224: FOR num = 1 TO NumBoxes 225: LINE (BoxX(num) - BoxXradius(num), BoxY(num) - BoxYradius(num))-(BoxX(num) + BoxXradius(num), BoxY(num) + BoxYradius(num)), BoxClr(num), B 226: BoxDir(num) = FNMove(BoxX(num), BoxY(num), BoxXradius(num), BoxYradius(num), BoxDir(num), 158 + num * 4) 227: SELECT CASE BoxDir(num) 228: CASE 4: BoxY(num) = BoxY(num) + 1: BoxX(num) = BoxX(num) - 1 229: CASE 1: BoxY(num) = BoxY(num) - 1: BoxX(num) = BoxX(num) - 1 230: CASE 3: BoxY(num) = BoxY(num) + 1: BoxX(num) = BoxX(num) + 1 231: CASE 2: BoxY(num) = BoxY(num) - 1: BoxX(num) = BoxX(num) + 1 232: END SELECT 233: NEXT 234: FOR Delays = 1 TO NumDelayVectors * 4 STEP 4 235: LINE (DelayVector(Delays), DelayVector(Delays + 1))-(DelayVector(Delays + 2), DelayVector(Delays + 3)), DelayClr 236: NEXT 237: FOR num = 1 TO 2 238: LineDir(num) = FNMove(LineX(num), LineY(num), 0, 0, LineDir(num), 199) 239: SELECT CASE LineDir(num) 240: CASE 4: LineY(num) = LineY(num) + Dist: LineX(num) = LineX(num) - Dist 241: CASE 1: LineY(num) = LineY(num) - Dist: LineX(num) = LineX(num) - Dist 242: CASE 3: LineY(num) = LineY(num) + Dist: LineX(num) = LineX(num) + Dist 243: CASE 2: LineY(num) = LineY(num) - Dist: LineX(num) = LineX(num) + Dist 244: END SELECT 245: NEXT 246: LINE (LineX(1), LineY(1))-(LineX(2), LineY(2)), LineClr 247: FOR Shift = NumDelayVectors * 4 TO 8 STEP -4 248: DelayVector(Shift) = DelayVector(Shift - 4) 249: DelayVector(Shift - 1) = DelayVector(Shift - 5) 250: DelayVector(Shift - 2) = DelayVector(Shift - 6) 251: DelayVector(Shift - 3) = DelayVector(Shift - 7) 252: NEXT 253: DelayVector(1) = LineX(1) 254: DelayVector(2) = LineY(1) 255: DelayVector(3) = LineX(2) 256: DelayVector(4) = LineY(2) 257: PCOPY 7, 0 258: SCREEN , , 0, 0 259: LOOP 260: 261: Part2: 262: 263: FrameCounter = 1 264: FOR FrameNum = 1 TO NumFrames 265: SCREEN , , 7, 0 266: PCOPY FrameCounter, 7 267: FrameCounter = FrameCounter + 1 268: IF FrameCounter > 6 THEN FrameCounter = 1 269: CIRCLE (CircleX(FrameNum), CircleY(FrameNum)), CircleR(1), CircleC(FrameNum) 270: CountEm = NumCircles + 1 271: FOR Tube = 1 TO NumCircles * 3 STEP 3 272: CountEm = CountEm - 1 273: IF ForeCircles(Tube) <> 0 THEN 274: AdjCircleX = CINT((ForeCircles(Tube) * CountEm * 2 + 160) / (CountEm * 2 + 1)) 275: AdjCircleY = CINT((ForeCircles(Tube + 1) * CountEm * 2 + 99) / (CountEm * 2 + 1)) 276: CIRCLE (AdjCircleX, AdjCircleY), CircleR(Tube + 1), ForeCircles(Tube + 2) 277: END IF 278: NEXT 279: FOR Shift = NumCircles * 3 TO 6 STEP -3 280: ForeCircles(Shift) = ForeCircles(Shift - 3) 281: ForeCircles(Shift - 1) = ForeCircles(Shift - 4) 282: ForeCircles(Shift - 2) = ForeCircles(Shift - 5) 283: NEXT 284: ForeCircles(1) = CircleX(FrameNum) 285: ForeCircles(2) = CircleY(FrameNum) 286: ForeCircles(3) = CircleC(FrameNum) 287: PCOPY 7, 0 288: SCREEN , , 0, 0 289: NEXT 290: 291: SCREEN 0 292: WIDTH 80 293: LOCATE 1, 1 294: RESTORE Logo 295: FOR lines = 1 TO 20 296: READ OneLine$ 297: Fade lines, 1, OneLine$ 298: NEXT 299: LOCATE 22 300: DO: LOOP UNTIL INKEY$ <> "" 301: SYSTEM 302: 303: Scroller: 304: DATA "Hi! Welcome to QStar! Like the graphics? " 305: DATA "Someone told me this was impossible with QBasic... " 306: DATA "guess my poor friend was wrong! " 307: DATA "This is 320x200x16 graphics and runs at 30fps on a fast 486. " 308: DATA "Write me and tell me what you think! " 309: DATA "America Online: Skream. " 310: DATA "Internet: skream@aol.com " 311: DATA "Next demo: Flying into the starfield and some other tricks! " 312: DATA "Code by Skream. Later... :) " 313: DATA "" 314: 315: Grid3DFrame1: 316: DATA 0,144,319,144, 0,146,319,146, 0,151,319,151, 0,160,319,160 317: DATA 0,175,319,175, 0,199,319,199, 0,199,319,199, 0,199,319,199 318: 319: Grid3DFrame2: 320: DATA 0,144,319,144, 0,145,319,145, 0,146,319,146, 0,152,319,152 321: DATA 0,162,319,162, 0,178,319,178, 0,199,319,199, 0,199,319,199 322: 323: Grid3DFrame3: 324: DATA 0,144,319,144, 0,145,319,145, 0,147,319,147, 0,153,319,153 325: DATA 0,164,319,164, 0,182,319,182, 0,199,319,199, 0,199,319,199 326: 327: Grid3DFrame4: 328: DATA 0,144,319,144, 0,146,319,146, 0,148,319,148, 0,154,319,154 329: DATA 0,166,319,166, 0,186,319,186, 0,199,319,199, 0,199,319,199 330: 331: Grid3DFrame5: 332: DATA 0,144,319,144, 0,146,319,146, 0,149,319,149, 0,156,319,156 333: DATA 0,169,319,169, 0,190,319,190, 0,199,319,199, 0,199,319,199 334: 335: Grid3DFrame6: 336: DATA 0,144,319,144, 0,145,319,145, 0,147,319,147, 0,150,319,150 337: DATA 0,158,319,158, 0,172,319,172, 0,194,319,194, 0,199,319,199 338: 339: Grid3DCommons: 340: DATA 280,144,319,153, 200,144,225,199, 220,144,275,199, 240,144,319,189 341: DATA 260,144,319,167, 300,144,319,147, 140,144,130,199, 120,144, 95,199 342: DATA 100,144, 45,199, 80,144, 0,189, 60,144, 0,167, 40,144, 0,153 343: DATA 20,144, 0,147, 160,144,160,199, 180,144,190,199 344: 345: Colors: 346: DATA 10,11,12,14 347: 348: Logo: 349: DATA "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 350: DATA "³ ú ú ú ú ú . ú ú . ³ 351: DATA "³ú ÛÛÛÛÛÛÛ» ÛÛ» ÛÛ» ÛÛÛÛÛÛ» .ÛÛÛÛÛÛÛ» ÛÛÛÛÛ». ÛÛÛ» ÛÛÛ» ÛÛ» . ú ³ 352: DATA "³ ú ÛÛÉÍÍÍͼúÛÛº ÛÛɼ ÛÛÉÍÍÛÛ» ÛÛÉÍÍÍͼ ÛÛÉÍÍÛÛ» ÛÛÛÛ» ÛÛÛÛº ÛÛº ³ 353: DATA "³ ÛÛÛÛÛÛÛ» ÛÛÛÛÛɼ ÛÛÛÛÛÛɼ ÛÛÛÛÛ» úÛÛÛÛÛÛÛº ÛÛÉÛÛÛÛÉÛÛº ÛÛº ú ³ 354: DATA "³ ú ÈÍÍÍÍÛÛº ÛÛÉÍÛÛ» ÛÛÉÍÍÛÛ» ÛÛÉÍͼ. ÛÛÉÍÍÛÛº ÛÛºÈÛÛɼÛÛº Èͼ ú ³ 355: DATA "³ ÛÛÛÛÛÛÛº ÛÛº ÛÛ» ÛÛº úÛÛº ÛÛÛÛÛÛÛ» ÛÛº ÛÛº ÛÛº.Èͼ ÛÛº ÛÛ» ú ³ 356: DATA "³ ú ÈÍÍÍÍÍͼ Èͼ Èͼ.Èͼ Èͼ ÈÍÍÍÍÍͼ Èͼ. Èͼ.Èͼ ú Èͼ Èͼ ú ³ 357: DATA "³ . ú ú . ú ú ú ú ³ 358: DATA "³ ú ÖÄÄÄÄÄ¿ ÒÄ¿ .ÖÄÄ¿ ÖÄ¿ ÄÒÄ ÖÄÄ¿ ÒÄÄ¿ ÒÄÄ¿ ÖÄÒÄ¿ ÖÄÄ¿ ÖÄ¿ ú ³ 359: DATA "³ú º ú ³ ÇÄÁ¿ ÇÄÄ´. ÓÄ¿ º º ú º ³ ÇÄ ú º º ³ º ú³ ÓÄ¿ ú ³ 360: DATA "³ ú º ú ³ ÐÄÄÙ Ð Á ÓÄÄÙ ÄÐÄ ÓÄÄÙ ÐÄÄÙ ÐÄÄÙ Ð Ð Á ÓÄÄÙ ÓÄÄÙ ³ 361: DATA "³ º ³ ú write to: ú ú . ú ³ 362: DATA "³ú ÓÄÄÄÅÄÙ skream@aol.com . ú ú ³ 363: DATA "³ ú ú ú ú ú ú ú ³ 364: DATA "³ ú ú See ya later... ú ú ³ 365: DATA "³ Look for more demos soon! ú ú ³ 366: DATA "³ ú ú This has been a presentation of Skream! design ú ú ³ 367: DATA "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 368: DATA " press a key . . . 369: 370: 371: TubeData: 372: ' Data created by Path Generator Version 1.0 373: ' by Michael Teator in May 1994 374: ' Comment: This one should look great! -Skream 375: ' Date: 05-24-1994 Time: 08:32:11 376: ' Number of points 377: DATA 474 378: ' ------ Path data ------ 379: DATA 159,99,159,99,159,99,159,99,159,99,159,99,159,99,158,100,157,100,156,101,154,102,153,103,152,105,149,107,147,108,145,110,144,112,139,114,136,116,130,119 380: DATA 122,122,116,125,108,128,101,132,92,136,83,139,75,142,67,145,57,146,47,146,40,147,38,147,45,146,53,146,59,145,69,142,82,138,95,134,114,127,130,121 381: DATA 148,113,162,103,171,97,185,88,196,81,209,74,220,66,230,61,242,54,252,48,264,42,270,36,267,38,261,43,256,48,250,53,240,60,230,68,218,75,209,82 382: DATA 198,88,188,93,177,96,164,99,151,101,139,102,126,102,113,102,104,102,89,102,78,101,66,101,51,101,40,101,29,101,19,101,26,101,42,101,57,101,71,100 383: DATA 90,98,100,98,110,97,124,97,140,97,158,99,177,102,190,105,206,111,216,116,228,122,238,129,251,136,264,144,276,152,281,154,285,157,269,157,256,155,240,152 384: DATA 221,148,205,142,185,135,163,129,150,126,136,122,119,119,106,117,94,115,80,115,69,116,55,119,51,121,53,127,60,128,75,128,89,128,108,127,129,126,144,124 385: DATA 160,122,172,121,189,118,212,117,224,116,236,113,249,108,257,103,264,97,269,87,269,78,267,76,260,81,254,90,250,96,242,103,234,110,225,115,212,120,200,125 386: DATA 188,129,173,133,159,135,139,135,128,134,128,132,136,130,149,130,165,130,182,128,197,123,209,118,225,110,237,103,245,97,254,90,263,82,266,78,262,91,257,98 387: DATA 247,103,232,108,218,111,206,115,196,117,185,115,172,110,164,104,154,95,144,85,134,76,123,65,113,58,100,53,84,48,74,48,62,48,52,51,47,57,42,66 388: DATA 41,70,44,75,51,78,60,76,69,71,78,65,86,59,94,54,103,49,114,45,128,44,142,46,150,50,156,56,158,64,161,74,163,84,163,96,163,108,163,116 389: DATA 164,126,166,138,167,146,170,152,178,161,188,164,190,160,186,155,181,153,173,151,168,142,165,130,165,116,165,100,164,83,164,68,164,54,162,40,162,36,160,44 390: DATA 159,58,158,72,158,89,158,102,158,117,158,129,159,140,159,153,158,162,158,169,159,167,164,158,167,144,167,129,167,115,168,96,168,85,168,68,168,52,166,40 391: DATA 164,32,161,31,158,41,157,52,157,66,158,82,158,98,159,113,158,127,158,138,158,147,156,156,155,160,152,162,148,160,143,156,135,146,127,137,117,122,108,108 392: DATA 99,93,91,79,82,66,75,59,68,55,59,48,47,40,52,47,60,53,73,59,86,68,103,80,117,90,132,98,144,105,162,114,183,123,198,130,218,140,232,146 393: DATA 250,154,272,161,280,162,284,156,279,150,268,145,252,139,236,132,227,129,213,125,205,116,199,100,198,79,198,64,200,52,202,43,207,36,208,41,207,53,203,67 394: DATA 196,86,188,95,178,104,169,110,159,116,146,122,135,128,124,137,114,144,105,150,92,155,82,156,66,157,63,156,75,154,85,152,96,149,108,144,118,139,128,132 395: DATA 138,124,146,113,148,101,142,92,133,89,123,90,109,93,92,94,78,95,61,95,48,94,41,92,42,85,49,78,57,72,71,63,86,55,105,47,119,44,133,42 396: DATA 152,41,170,41,188,42,208,46,224,51,236,57,249,65,258,76,265,89,266,99,266,112,263,126,257,138,250,147,240,155,231,158,223,160,214,161,201,160,188,156 397: DATA 175,149,165,140,160,132,150,118,141,107,130,99,116,98,111,105,111,113,116,120,124,127,134,137,146,144,160,147,176,146,190,141,199,131,205,119,205,105,202,93 398: DATA 191,81,186,79,181,87,175,100,169,110,161,124,155,138,149,148,144,153,147,150,155,137,166,124,176,113,183,97,187,83,188,69,186,53,182,44,181,53,183,67 399: DATA 186,75,192,86,204,94,224,99,238,100,256,99,272,94,288,91,294,88,285,90,270,95,252,98,239,100,226,103,206,106,181,106,156,106,137,107,122,107,113,106 400: DATA 94,108,82,109,75,110,86,112,103,111,124,109,145,107,172,102,194,97,210,90,220,83,237,70,245,64,244,74,232,90,218,103,206,111,189,115,171,117,154,112 401: DATA 141,103,136,88,136,66,136,55,137,47,135,56,133,70,125,81,112,87,92,91,87,85,97,76,109,76,119,85,123,100,124,113,126,124,131,127,143,125,152,118 402: DATA 156,112,159,107,162,103,163,100,164,100,166,99,167,99,168,99,169,99,169,99,169,99,169,99,169,99,169,99 403: 404: FUNCTION ComputerType 405: 406: CLS 407: PRINT "Welcome to QStar!" 408: PRINT 409: PRINT "Please select the speed computer you are using:" 410: PRINT " (1) 286" 411: PRINT " (2) Slow 386" 412: PRINT " (3) Fast 386 or slow 486" 413: PRINT " (4) Fast 486" 414: PRINT " (5) Pentium" 415: PRINT : PRINT 416: PRINT "Please note that these settings only affect the scroller." 417: DO 418: selection$ = INKEY$ 419: SELECT CASE selection$ 420: CASE "1" TO "5" 421: ComputerType = VAL(selection$) - 1 422: EXIT FUNCTION 423: END SELECT 424: LOOP 425: 426: END FUNCTION 427: 428: SUB Fade (ty, tx, text$) 429: 430: LOCATE ty, tx: COLOR 8: PRINT text$ 431: FOR n = 1 TO (ScrollDelay * 5000): NEXT 432: LOCATE ty, tx: COLOR 7: PRINT text$ 433: FOR n = 1 TO (ScrollDelay * 5000): NEXT 434: LOCATE ty, tx: COLOR 15: PRINT text$ 435: FOR n = 1 TO (ScrollDelay * 5000): NEXT 436: 437: END SUB 438: |