c64-basic/music-box/music-box.bas

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