DECLARE FUNCTION yn$ (prompt$, chars$) ' ' Press F5 to see my new and improved snow program ' ' During program, press 'c' DEFINT A-L, N-Q, S-Z 'DEFINT A-Z ' TYPE xyPoint x AS SINGLE y AS SINGLE END TYPE TYPE snowType x AS SINGLE y AS SINGLE size AS SINGLE speed AS SINGLE wind AS SINGLE lop AS SINGLE inc AS SINGLE moved AS SINGLE END TYPE TYPE colorType red AS INTEGER blue AS INTEGER green AS INTEGER END TYPE DIM treepic(1000) DIM xSafety(320 * 9) CONST maxSnow = 10 CONST mushPer = .9 CONST restartTime = 3 * 60 auto = 1 snowPerLine = 1 lines = 20 z = lines DIM tree(65, 65) DIM snof(maxSnow * 200) AS snowType DIM pal(0 TO 256) AS colorType RANDOMIZE TIMER 'SCREEN 12: scrn = 12 SCREEN 13: scrn = 13: FOR i = 0 TO 255 OUT &H3C6, &HFF OUT &H3C7, i pal(i).red = INP(&H3C9) pal(i).green = INP(&H3C9) pal(i).blue = INP(&H3C9) NEXT top: RESTORE CLS IF scrn = 12 THEN yy = 60 * 2 xx = 60 * 2 n = 2 FOR y = 0 TO 37 * n STEP n FOR x = 0 TO 63 * n STEP n READ tree(INT(x / 2), INT(y / 2)) LINE (x + xx, y + yy)-(x + xx + n, y + yy + n), tree(INT(x / 2), INT(y / 2)), BF NEXT x NEXT y ELSE yy = 120 + INT(RND * 20) xx = 10 + INT(RND * 20) xx2 = 120 + INT(RND * 20) xx3 = 240 + INT(RND * 20) FOR y = 0 TO 37 FOR x = 0 TO 63 READ tree(x, y) NEXT x NEXT y IF again = 1 THEN FOR i = 1 TO 14 OUT &H3C6, &HFF OUT &H3C8, i OUT &H3C9, 0 OUT &H3C9, 0 OUT &H3C9, 0 NEXT END IF COLOR 15: LOCATE 1, 1: PRINT "Loading..." cleanup: FOR x = 1 TO 320 STEP 2 - (again) FOR y = yy + 38 TO 200 m = RND IF m < .1 AND y > yy + 45 THEN PSET (x, y), 8 '8 ELSEIF m > .9 AND y > yy + 40 THEN PSET (x, y), 6 '6 ELSEIF m < .7 AND m > .4 THEN PSET (x, y), 2 '2 ELSE PSET (x, y), 10 '10 END IF NEXT NEXT FOR x = 320 - (again * 320) TO 1 STEP -2 FOR y = yy + 38 TO 200 m = RND IF m < .1 AND y > yy + 40 THEN PSET (x, y), 8 ELSEIF m > .9 AND y > yy + 40 THEN PSET (x, y), 6 ELSEIF m < .7 AND m > .4 THEN PSET (x, y), 2 ELSE PSET (x, y), 10 'FOR pause = 1 TO 100: NEXT END IF NEXT NEXT END IF IF kil = 1 THEN again = 1 IF again <> 1 THEN FOR x = 39 TO 3 STEP -2 FOR y = 0 TO 37 STEP 2 PSET (xx + x, yy + y), tree(x, y) PSET (xx2 + x, yy + y), tree(x, y) PSET (xx3 + x, yy + y), tree(x, y) NEXT NEXT FOR x = 3 TO 40 STEP 2 FOR y = 1 TO 37 STEP 2 PSET (xx + x, yy + y), tree(x, y) PSET (xx2 + x, yy + y), tree(x, y) PSET (xx3 + x, yy + y), tree(x, y) NEXT NEXT FOR x = 40 TO 3 STEP -2 FOR y = 0 TO 37 STEP 2 PSET (xx + x, yy + y), tree(x, y) PSET (xx2 + x, yy + y), tree(x, y) PSET (xx3 + x, yy + y), tree(x, y) NEXT NEXT FOR x = 3 TO 40 FOR y = 1 TO 37 STEP 2 PSET (xx + x, yy + y), tree(x, y) PSET (xx2 + x, yy + y), tree(x, y) PSET (xx3 + x, yy + y), tree(x, y) NEXT NEXT GET (xx + 3, yy + 0)-(xx + 40, yy + 37), treepic ELSE PUT (xx + 3, yy), treepic, PSET PUT (xx2 + 3, yy), treepic, PSET PUT (xx3 + 3, yy), treepic, PSET END IF IF again = 1 THEN FOR i = 1 TO 16 OUT &H3C6, &HFF OUT &H3C8, i OUT &H3C9, pal(i).red OUT &H3C9, pal(i).green OUT &H3C9, pal(i).blue NEXT END IF COLOR 0: LOCATE 1, 1: PRINT "Loading..." IF kil = 1 THEN again = 0: RETURN snower: 'snow loop snowPerLine = 1 lines = 20 zz = 0 again = 0 FOR i = 0 TO maxSnow * 100 snof(i).x = 0 snof(i).y = 0 NEXT DO z = z + 1 IF z >= lines THEN z = 1: GOSUB newF GOSUB moveS IF drawer < 2 THEN GOSUB drawS 'IF INKEY$ <> "" THEN kbd$ = INKEY$ ELSE kbd$ = kbd2$ kbd$ = INKEY$ IF kbd$ = "d" THEN IF drawer = 0 THEN drawer = 1 ELSE drawer = 0 END IF IF kbd$ = "r" THEN kil = 1: GOSUB cleanup: kil = 0 IF kbd$ = "k" THEN IF killer = 0 THEN killer = 1 ELSE killer = 0 ELSE COLOR 15 IF kbd$ = "c" THEN IF colr = 0 THEN colr = 1 ELSE colr = 0 ELSE COLOR 15 IF kbd$ = "1" THEN snowPerLine = 1: lines = 15: auto = 0 IF kbd$ = "2" THEN snowPerLine = 1: lines = 10: auto = 0 IF kbd$ = "3" THEN snowPerLine = 1: lines = 5: auto = 0 IF kbd$ = "4" THEN snowPerLine = 1: lines = 1: auto = 0 IF kbd$ = "5" THEN snowPerLine = 2: lines = 1: auto = 0 IF kbd$ = "6" THEN snowPerLine = 3: lines = 1: auto = 0 IF kbd$ = "7" THEN snowPerLine = 5: lines = 5: auto = 0 IF kbd$ = "8" THEN snowPerLine = 10: lines = 5: auto = 0 IF kbd$ = "9" THEN snowPerLine = 10: lines = 1: auto = 0 IF kbd$ = "0" THEN snowPerLine = 1: lines = 20: auto = 0 IF kbd$ = "q" OR kbd$ = "Q" OR kbd$ = "x" OR kbd$ = "X" OR kbd$ = CHR$(27) THEN EXIT DO kbd2$ = "" 'screen IF auto = 1 AND (TIMER) > (oldtime + 3) THEN lines = lines - 1 IF lines = 8 THEN auto = 0 END IF IF kbd$ = "z" THEN CLEAR RUN again = 1 EXIT DO END IF LOOP IF again = 1 THEN again = 1: GOTO top SYSTEM newF: FOR i = 1 TO snowPerLine agn: yp = yp + 1 m = INT(RND * (snowPerLine * 200)) IF yp > (snowPerLine * 200) * 1 THEN yp = 0: RETURN IF snof(m).y <> 0 THEN GOTO agn yp = 0 agn2: xs = INT(RND * 320) IF zp = 620 AND killed = 0 THEN COLOR 12 LOCATE 1, 1: PRINT "OUT OF SNOW SPACE!!!" LOCATE 2, 1: ans$ = yn$("Kill safety?", "yn") IF ans$ = "n" THEN PRINT "Restarting program, please wait...": SLEEP 4: CLEAR : RUN killed = 1 LOCATE 3, 1: PRINT "KILLING SAFETY, PLEASE WAIT..." LINE (0, 60)-(320, 70), 12, BF FOR i = 1 TO 320 * 9 LOCATE 4, 1: PRINT (320 * 9) - i xSafety(i) = 0 'FOR pause = 1 TO 10: NEXT IF i / 9 = INT(i / 9) AND (i / 9) / 5 = INT((i / 9) / 5) THEN LINE (0, 60)-(i / 9, 70), 0, BF NEXT LOCATE 1, 1: PRINT " " LOCATE 2, 1: PRINT " " LOCATE 3, 1: PRINT " " LOCATE 4, 1: PRINT " " END IF IF xSafety(xs) <> 0 THEN zp = zp + 1: GOTO agn2 zp = 0 snof(m).y = 1 snof(m).x = xs IF killed = 0 THEN xSafety(xs) = 1 rndd = INT(RND * 3) + 1 IF rndd = 1 THEN snof(m).speed = .5 snof(m).inc = 2 ELSEIF rndd = 2 THEN snof(m).speed = 1 snof(m).inc = 3 ELSE snof(m).speed = 2 snof(m).inc = 3 END IF snof(m).size = INT(RND * 3) + 1 snof(m).wind = 0 snof(m).lop = 0 totalS = totalS + 1 NEXT RETURN moveS: FOR i = 1 TO snowPerLine * 200 IF snof(i).y <> 0 THEN snof(i).lop = snof(i).lop + snof(i).inc snof(i).moved = 0 IF snof(i).lop = 4 AND snof(i).inc = 4 THEN snof(i).y = snof(i).y + 2: snof(i).moved = 1: snof(i).lop = 0 IF snof(i).lop >= 3 THEN snof(i).y = snof(i).y + 1: snof(i).moved = 1: snof(i).lop = 0 IF snof(i).y > 200 THEN snof(i).y = 0: totalS = totalS - 1: xSafety(snof(i).x) = 0 END IF NEXT RETURN drawS: FOR i = 1 TO snowPerLine * 200 IF snof(i).y <> 0 THEN 'IF snof(i).y > yy THEN IF snof(i).inc <> 4 THEN pnt = POINT(snof(i).x, snof(i).y) pnt2 = POINT(snof(i).x, snof(i).y + 1) pntl = POINT(snof(i).x - 1, snof(i).y + 1) pntr = POINT(snof(i).x + 1, snof(i).y + 1) IF pnt2 <> 0 AND pntl = 0 THEN PSET (snof(i).x, snof(i).y - 1), 0 snof(i).x = snof(i).x - 1 ELSEIF pnt2 <> 0 AND pntr = 0 THEN PSET (snof(i).x, snof(i).y - 1), 0 snof(i).x = snof(i).x + 1 END IF ELSE pnt = POINT(snof(i).x, snof(i).y - 1) pnt2 = POINT(snof(i).x, snof(i).y) pntl = POINT(snof(i).x - 1, snof(i).y) pntr = POINT(snof(i).x + 1, snof(i).y) pnt3 = POINT(snof(i).x, snof(i).y + 1) pntl2 = POINT(snof(i).x - 1, snof(i).y + 1) pntr2 = POINT(snof(i).x + 1, snof(i).y + 1) IF (pnt <> 0 OR pnt2 <> 0) AND (pntl = 0 OR pntl2 = 0) THEN 'PSET (snof(i).x, snof(i).y), 0 'PSET (snof(i).x, snof(i).y - 1), 0 'PSET (snof(i).x, snof(i).y - 2), 0 snof(i).y = snof(i).y + 1 ELSEIF (pnt <> 0 OR pnt2 <> 0) AND (pntr = 0 OR pntr2 = 0) THEN 'PSET (snof(i).x, snof(i).y), 0 'PSET (snof(i).x, snof(i).y - 1), 0 'PSET (snof(i).x, snof(i).y - 2), 0 snof(i).y = snof(i).y + 1 END IF GOTO skipper IF pnt2 <> 0 AND pntl2 = 0 THEN PSET (snof(i).x, snof(i).y), 0 PSET (snof(i).x, snof(i).y - 1), 0 PSET (snof(i).x, snof(i).y - 2), 0 snof(i).x = snof(i).x - 1 ELSEIF pnt2 <> 0 AND pntr2 = 0 THEN PSET (snof(i).x, snof(i).y), 0 PSET (snof(i).x, snof(i).y - 1), 0 PSET (snof(i).x, snof(i).y - 2), 0 snof(i).x = snof(i).x + 1 END IF skipper: 'BEEP END IF rndd = RND IF killer = 0 THEN IF pnt <> 0 AND snof(i).moved = 1 THEN snof(i).y = 0: totalS = totalS - 1: xSafety(snof(i).x) = 0 GOTO skp ELSEIF (pnt = 2 OR pnt = 10 OR pnt = 0) AND (pnt2 = 15 OR pnt2 = 7 OR pnt2 = 8) AND snof(i).lop >= 3 THEN 'snof(i).y = 0: totalS = totalS - 1: xSafety(snof(i).x) = 0 'GOTO skp END IF 'END IF END IF enddIf: IF killer = 0 THEN IF snof(i).inc <> 4 THEN PSET (snof(i).x, snof(i).y - 1), 0 ELSE PSET (snof(i).x, snof(i).y - 2), 0 END IF ELSE IF snof(i).inc <> 4 THEN PSET (snof(i).x, snof(i).y - 1), 0 ELSE PSET (snof(i).x, snof(i).y - 1), 0 PSET (snof(i).x, snof(i).y - 2), 0 END IF END IF IF drawer = 0 THEN IF colr = 0 THEN PSET (snof(i).x, snof(i).y), 15 ELSE IF snof(i).speed = .5 THEN cler = 8 IF snof(i).speed = 1 THEN cler = 7 IF snof(i).speed = 2 THEN cler = 15 PSET (snof(i).x, snof(i).y), cler END IF END IF skp: END IF NEXT IF drawer = 1 THEN drawer = 2 RETURN 'CHRISTMAS TREE DATA DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DEFSNG A-L, N-Q, S-Z ' 'Ask user something ' ' FUNCTION yn$ (prompt$, chars$) DIM char$(20) chars = LEN(chars$) chars2$ = chars$ FOR ip = 1 TO chars char$(ip) = LEFT$(chars2$, 1) chars2$ = RIGHT$(chars$, (chars - ip)) NEXT ip loop. = 1 PRINT prompt$; "["; : GOSUB blah: PRINT "] ==> "; DO: LOOP WHILE INKEY$ <> "" DO y$ = INKEY$ FOR ip = 1 TO chars IF y$ = char$(ip) THEN yn.$ = char$(ip): loop. = 0 NEXT ip IF y$ <> "" AND loop. <> 0 THEN BEEP LOOP WHILE loop. = 1 PRINT yn.$ yn$ = yn.$ GOTO endFunc blah: FOR ip = 1 TO chars IF ip <> chars THEN PRINT char$(ip); ","; ELSE PRINT char$(ip); NEXT ip RETURN endFunc: END FUNCTION