Retrocomputer, Emulazione, Riparazioni Scambi/Vendite e collezionismo - Cerco Commodore - Approfondimenti, Listati Basic Commodore

Commodore CErco COmmodore - l'iniziativa di appassionati di retrocomputer


Listato per il basic del Commodore 64 per utilizzarlo come un generatore di note.

Sfrutta le enormi potenzialità del SID (il suo integrato sonoro). E' interamente scritto in basic 2.0 ed è suddiviso in due funzionalità. All'inizio un menù permette di accedere o ad un piano elettronico oppure ad un editor di suoni. Per mezzo dell'editor di suoni si possono inserire note (fino a 1000) che verranno poi suonate in sequenza.

        10 poke775,191:clr:print chr$(147):poke53280,3:poke53281,3:a1$="Programma by Pastore Carlo"
        20 a2$="(c) 1990":a3$="Premi un tasto":aa=len(a1$):bb=len(a2$):cc=len(a3$)
        30 print"qqq]]] in reverse": for i=1 to aa:for j=1 to 50:next j:print mid$(a1$,i,1);:next
        40 print"q in reverse":for i = 1 to bb : for j = 1 to 50 : next j : print mid$ (a,i,1):next
        45 fori=1to600:next
        50 print"q in reverse":fori=1tocc:forj=1to50:nextj:print mid$(a3$,i,1);:next
        60 poke198,0:wait198,1:print chr$(147):poke646,1:poke53280,0:poke53281,0:poke198,0
        70 print"5 q in reverse 5 ]Menù :":print"3 q in reverse 8 ]1- Music editor"
        80 print"2 q in reverse 8 ]2- Piano elettronico"
        90 get d$="": if d$="" then 90
        100 if d$="1" then 1000
        110 if d$="2" then 10000
        120 if d$<>"1" or d$<>"2" then 90
        1000 print chr$(147):poke 646,1
        1010 input"3 q in reverse Quante note vuoi inserire (1-1000)";z
        1020 if z<1 or z>1000 then 1000
        1030 dim x(z),y(z):n=0
        1040 if n=z then 1150
        1041 n=n+1
        1050 input"cuore in reverse Qual'è la nota";x$
        1060 if x$="do" then x(n)=33:y(n)=135:goto 1040
        1070 if x$="re" then x(n)=37:y(n)=162:goto 1040
        1080 if x$="mi" then x(n)=42:y(n)=62:goto 1040
        1090 if x$="fa" then x(n)=44:y(n)=193:goto 1040
        1100 if x$="sol" then x(n)=50:y(n)=60:goto 1040
        1110 if x$="la" then x(n)=56:y(n)=99:goto 1040
        1120 if x$="si" then x(n)=63:y(n)=75:goto 1040
        1121 if x$="hd" then x(n)=67:y(n)=15:goto 1040
        1130 if x$<>"do" or x$<>"re" or x$<>"mi" or x$<>"fa" or x$<>"sol" then 1040
        1140 if x$<>"la" or x$<>"si" or x$<>"hd" then 1040
        1150 poke646,7:print chr$(147):print"suono il motivo (s/n) ?"
        1160 get r$:if r$="" then 1160
        1170 if r$="s" then 1190
        1180 clr:print chr$(147):goto 70
        1190 sid=54272:fori=0to24:pokesid+i,0:next
        1191 print chr$(147):input"Volume (0-15)";v
        1192 if v<0 or v>15 then v=15
        1193 input "2 q in reverse Forma d'onda (17-33-65-129)";q
        1200 print chr$(147):pokesid+24,v:pokesid+5,31:pokesid+6,31:pokesid+4,q
        1210 fori=1ton:pokesid+1,x(i):pokesid,y(i):pokesid+4,q:forh=1to180:nexth
        1220 p  okesid+4,q-1:forj=1to20:nextj:nexti:pokesid+24,0:pokesid+4,q-1
        1230 print chr$(147):input"Ancora";s$
        1240 if s$="si" then 1200
        1250 clr:print chr$(147):poke646,1:goto 70
        10000 w1$="Piano elettronico":w2$="Programma by Pastore Carlo (c) 1990"
        10001 xx=len(w1$):yy=len(w2$):print"2 q in reverse";chr$(147)
        10002 fori=1toxx:forj=1to50:nextj:print mid$(w1$,i,1);:next
        10003 print"q in reverse":for i=1toyy:forj=1to50:nextj:print mid$(w2$,i,1);:next
        10010 print"s in reverse 6 q in reverse Q = do - W = re - E = mi - R = fa"
        10020 print"q in reverse T = sol - Y = la - U = si - I = do (alto)"
        10021 print"q in reverse A = do# - S = re# - D = fa# - F = sol#"
        10022 print"q in reverse G = la#":poke198,0
        10030 sid=54272:fori=0to24:pokesid+i,0:next:pokesid+24,15:pokesid+4,17
        10031 pokesid+5,10:pokesid+6,10
        10040 get z$:if z$="" then 10040
        10050 if z$="q" then pokesid+4,17:goto 12000
        10060   if z$="w" then pokesid+4,17:goto 12010
        10070 if z$="e" then pokesid+4,17:goto 12020
        10080 if z$="r" then pokesid+4,17:goto 12030
        10090 if z$="t" then pokesid+4,17:goto 12040
        10100 if z$="y" then pokesid+4,17:goto 12050
        10110 if z$="u" then pokesid+4,17:goto 12060
        10120 if z$="i" then pokesid+4,17:goto 12070
        10130 if z$="a" then pokesid+4,17:goto 12080
        10140 if z$="s" then pokesid+4,17:goto 12090
        10150 if z$="d" then pokesid+4,17:goto 12100
        10160 if z$="f" then pokesid+4,17:goto 12110
        10170 if z$="g" then pokesid+4,17:goto 12120
        10171 if z$="1" then print chr$(147):clr:end
        10180 if z$<>"q" or z$<>"w" or z$<>"e" or z$<>"r" or z$<>"t" then 10040
        10190 if z$<>"y" or z$<>"u" or z$<>"i" or z$<>"a" or z$<>"s" then 10040
        10200 if z$<>"d" or z$<>"f" or z$<>"g" or z$<>"1" then 10040
        12000 pokesid+1,33:pokesid,135:fori=1to180:next:pokesid+4,16:goto 10040
        12010   pokesid+1,37:pokesid,162:fori=1to180:next:pokesid+4,16:goto 10040
        12020 pokesid+1,42:pokesid,62:fori=1to180:next:pokesid+4,16:goto 10040
        12030 pokesid+1,44:pokesid,193:fori=1to180:next:pokesid+4,16:goto 10040
        12040 pokesid+1,50:pokesid,60:fori=1to180:next:pokesid+4,16:goto 10040
        12050 pokesid+1,56:pokesid,99:fori=1to180:next:pokesid+4,16:goto 10040
        12060 pokesid+1,63:pokesid,75:fori=1to180:next:pokesid+4,16:goto 10040
        12070 pokesid+1,67:pokesid,15:fori=1to180:next:pokesid+4,16:goto 10040
        12080   pokesid+1,35:pokesid,134:fori=1to180:next:pokesid+4,16:goto 10040
        12090 pokesid+1,39:pokesid,223:fori=1to180:next:pokesid+4,16:goto 10040
        12100 pokesid+1,47:pokesid,107:fori=1to180:next:pokesid+4,16:goto 10040
        12110 pokesid+1,53:pokesid,57:fori=1to180:next:pokesid+4,16:goto 10040
        12120 pokesid+1,59:pokesid,190:fori=1to180:next:pokesid+4,16:goto 10040
		

Torna indietro



Copyright 2003 - 2018 (c) - Tutti i diritti riservati -