23 lines
899 B
QBasic
23 lines
899 B
QBasic
10 PRINT CHR$(147):PRINT " MUSIC BOX":PRINT
|
|
20 PRINT "PLAY NOTES WITH A S D F G H J K":PRINT "1=SQUARE 2=SAW 3=TRIANGLE Q=QUIT":PRINT
|
|
30 S=54272:FOR I=0 TO 24:POKE S+I,0:NEXT:POKE S+5,9:POKE S+6,240:POKE S+24,15
|
|
40 W=65:DIM F(8):F(1)=4291:F(2)=4817:F(3)=5407:F(4)=5730
|
|
45 F(5)=6434:F(6)=7217:F(7)=8103:F(8)=8581
|
|
50 GET A$:IF A$="" THEN 50
|
|
60 IF A$="Q" THEN 160
|
|
70 IF A$="1" THEN W=65:PRINT "SQUARE WAVE":GOTO 50
|
|
80 IF A$="2" THEN W=33:PRINT "SAW WAVE":GOTO 50
|
|
90 IF A$="3" THEN W=17:PRINT "TRIANGLE WAVE":GOTO 50
|
|
100 N=0:IF A$="A" THEN N=1
|
|
105 IF A$="S" THEN N=2
|
|
110 IF A$="D" THEN N=3
|
|
115 IF A$="F" THEN N=4
|
|
120 IF A$="G" THEN N=5
|
|
125 IF A$="H" THEN N=6
|
|
130 IF A$="J" THEN N=7
|
|
135 IF A$="K" THEN N=8
|
|
140 IF N=0 THEN 50
|
|
145 POKE S,F(N)-INT(F(N)/256)*256:POKE S+1,INT(F(N)/256):POKE S+4,W
|
|
150 FOR D=1 TO 80:NEXT:POKE S+4,W-1:GOTO 50
|
|
160 FOR I=0 TO 24:POKE S+I,0:NEXT:PRINT CHR$(147):END
|
|
|