home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib38b.dsk / SOUND.WIZ.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  82 lines

  1. 10  REM  *************************
  2. 20  REM  * SOUND.WIZ.DEMO        *
  3. 30  REM  * BY JOSEPH J. STROUT   *
  4. 40  REM  * COPYRIGHT (C) 1990    *
  5. 50  REM  * MINDCRAFT PUBL. CORP. *
  6. 60  REM  * CONCORD, MA 01742     *
  7. 70  REM  *************************
  8. 80  PRINT  CHR$(21): TEXT : HOME :WT = 12
  9. 90  IF  PEEK(1014) = 6  AND  PEEK(1015) = 145  THEN 140
  10. 100  POKE 216,0: ONERR  GOTO 120
  11. 110  PRINT  CHR$(4)"BRUN SOUND.WIZARD": GOTO 140
  12. 120 E =  PEEK(222): PRINT "ERROR LOADING SOUND.WIZARD: ": IF E = 6  THEN  PRINT "FILE NOT FOUND": END 
  13. 130  PRINT "NUMBER "E: END 
  14. 140  POKE 216,0
  15. 150  PRINT : VTAB 24:A$ = "PRESS ANY KEY TO BEGIN.": GOSUB 370: WAIT 49152,128: GET A$
  16. 160  HOME :B$ = "########################################": REM  40 #'S
  17. 170  PRINT B$; LEFT$(B$,1);: FOR I = 1 TO 22: HTAB 40: PRINT  LEFT$(B$,2);: NEXT : PRINT  LEFT$(B$,38);
  18. 180  POKE 2039, ASC(B$) +128
  19. 190  VTAB WT: PRINT : PRINT B$
  20. 200 A$ = "SOUND WIZARD DEMO BY JOSEPH J. STROUT": VTAB 2: GOSUB 370:A$ = "(C) 1990 MINDCRAFT PUBL. CORP.": VTAB 3: GOSUB 370
  21. 210  FOR X = 1 TO 2: FOR Y = 1 TO 6: READ M$(X,Y): GOSUB 330: NEXT : NEXT :X = 1:Y = 1: INVERSE : GOSUB 330: NORMAL : GOTO 360
  22. 220  DATA  "1. BEEP","2. WHITE NOISE","3. TRILL","4. FADE","5. SYNTH","6. VOLUME"
  23. 230  DATA  "A. CRICKETS","B. SPACE POPCORN","C. CLOSE ENCOUNTER","D. BEAM ME UP","E. MACHINE GUN","F. BOUNCING BALL"
  24. 240  WAIT 49152,128: GET A$:A =  ASC(A$) -32 *(A$ >"Z"): IF A = 13  THEN C = Y +6 *(X -1): GOTO 340
  25. 250  IF A = 27  THEN 350
  26. 260  GOSUB 330: IF A >48  AND A <55  THEN X = 1:Y =  VAL(A$): GOTO 320
  27. 270  IF A >64  AND A <71  THEN X = 2:Y = A -64: GOTO 320
  28. 280 X = X -(A = 8): IF X = 0  THEN X = 1 +(Y >1):Y = Y -1
  29. 290 X = X +(A = 21): IF X = 3  THEN X = 2 -(Y <6):Y = Y +1
  30. 300 Y = Y -(A = 11): IF Y = 0  THEN Y = 6:X = 1 +  NOT (X -1)
  31. 310 Y = Y +(A = 10): IF Y = 7  THEN Y = 1:X = 1 +  NOT (X -1)
  32. 320  INVERSE : GOSUB 330: NORMAL : GOTO 240
  33. 330  TEXT : VTAB 1: PRINT : HTAB 3 +16 *(X -1): VTAB 4 +Y: PRINT M$(X,Y): RETURN 
  34. 340  GOSUB 380: ON C GOSUB 390,420,450,490,520,560,600,630,670,720,760,790: GOTO 360
  35. 350  GOSUB 380: PRINT : PRINT :A$ = "ARE YOU SURE YOU WANT TO QUIT?": GOSUB 370: WAIT 49152,128: GET A$: PRINT A$: IF A$ = "Y"  OR A$ = "y"  THEN  TEXT : HOME : END 
  36. 360  GOSUB 380: PRINT : PRINT :A$ = "PRESS KEY OR USE ARROWS.": GOSUB 370:A$ = "<RETURN> TO HEAR, <ESC> TO QUIT.": PRINT : GOSUB 370: GOTO 240
  37. 370  HTAB 21 - LEN(A$)/2: PRINT A$;: RETURN 
  38. 380  POKE 32,1: POKE 33,38: POKE 34,WT +1: POKE 35,23: HOME : RETURN 
  39. 390  PRINT "TYPE ANYTHING; HIT <ESC> WHEN DONE!": PRINT : LIST 400: REM  BEEP
  40. 400  GET A$: IF A$ < > CHR$(27)  THEN  & BEEP ASC(A$) *2,100: GOTO 400
  41. 410  RETURN 
  42. 420  PRINT : LIST 430: REM  WHITE NOISE
  43. 430  FOR J = 1 TO 10: & WHITEJ *20,255: NEXT 
  44. 440  GOTO 820
  45. 450  PRINT : PRINT " PRESS ANY KEY TO STOP:": PRINT : LIST 460: REM  TRILL
  46. 460  & TRILL90,240,40,20
  47. 470  FOR J = 1 TO 100: IF  PEEK(49152) <128  THEN  NEXT : GOTO 460
  48. 480  POKE 49168,0: RETURN 
  49. 490  PRINT "TYPE ANYTHING; HIT <ESC> WHEN DONE!": PRINT : LIST 500: REM  FADE
  50. 500  GET A$: IF A$ < > CHR$(27)  THEN A =  ASC(A$): & VOLUME20: & FADE255 -A *2, INT(A/5), -1: GOTO 500
  51. 510  & VOLUME20: RETURN 
  52. 520  PRINT "HIT 1 THROUGH 9; <ESC> WHEN DONE.": PRINT : LIST 530: REM  SYNTH
  53. 530  GET A$:R =  VAL(A$): IF R  THEN  & SYNTH0, -1,1,1,R,255: GOTO 530
  54. 540  IF A$ < > CHR$(27)  THEN 530
  55. 550  RETURN 
  56. 560  PRINT " PRESS ANY KEY TO STOP: ": LIST 570: REM  VOLUME
  57. 570 V = 32: FOR J = 1 TO 5: & VOLUMEV: & BEEP200,190:V = V/2: NEXT : FOR J = 1 TO 5: & VOLUMEV: & BEEP200,190:V = V *2: NEXT 
  58. 580  IF  PEEK(49152) <128  THEN 570
  59. 590  & VOLUME20: GET A$: RETURN 
  60. 600  PRINT : LIST 610: REM  CRICKETS
  61. 610  FOR J = 1 TO 3: FOR K = 1 TO 255  STEP 4: & WHITE256 -K,50: NEXT K,J
  62. 620  GOTO 820
  63. 630  PRINT " PRESS ANY KEY TO STOP: ": PRINT : LIST 640: REM  SPACE POPCORN
  64. 640  & VOLUME128:P =  INT(256 * RND(1)):R = 1 +( RND(1) >.5): FOR J = 1 TO  INT(5 * RND(1) +1): & FADEP,R, -2: NEXT 
  65. 650  IF  PEEK(49152) <128  THEN 640
  66. 660  GET A$: & VOLUME20: RETURN 
  67. 670  PRINT : LIST 680 -700: REM  CLOSE ENCOUNTER...
  68. 680  & VOLUME1: & FADE0,50,1: REM  LANDING
  69. 690  & SYNTH0, -9,1,9,3,255: REM  BEAM
  70. 700  & VOLUME100: & FADE255,40, -1: REM  TAKE-OFF
  71. 710  GOTO 820
  72. 720  PRINT : LIST 730 -740: REM  BEAM ME UP
  73. 730  FOR V = 20 TO 1  STEP  -1: & VOLUMEV
  74. 740  & SYNTH0, -10,1,10,3,52: NEXT 
  75. 750  GOTO 820
  76. 760  PRINT : LIST 770: REM  MACHINE GUN
  77. 770  FOR L = 1 TO 20: & VOLUME20: & FADE20,10,50: NEXT 
  78. 780  GOTO 820
  79. 790  PRINT : LIST 800 -810: REM  BOUNCING BALL
  80. 800  FOR V = 15 TO 2  STEP  -1: & VOLUMEV: FOR Z = 1 TO V *25: NEXT 
  81. 810  & SYNTH100, -4,200, -8, INT(V/2),25: NEXT 
  82. 820  & VOLUME20: TEXT : VTAB 23: PRINT : HTAB 12: PRINT " PRESS ANY KEY. ";: WAIT 49152,128: GET A$: HTAB 12: PRINT  LEFT$(B$,16);: RETURN