Rivista: Commodore Computer Club (IT) – N.ro: 14 / ottobre 1984 – Trascrizione: David La Monaca
Altri due estratti dal numero 14 di Commodore Computer Club, una delle riviste italiane più famose ed apprezzate degli anni Ottanta, tutta dedicata alle macchine Commodore.
Generatore ritmi è un programma che sfrutta il potente chip SID del C64 per fornire la base ritmica sulla quale eseguire brani musicali con stili diversi. I ritmi che si possono generare sono 4: valzer, swing, slow rock e disco. Il programma è predisposto anche per variare la velocità dei ritmi prescelti. La velocità ottimale per valzer e swing è 250, per slow rock è 200, mentre per disco è 350, ma modificando questo parametro, ad esempio rallentandolo, sarà possibile esercitarsi col proprio strumento in fase di apprendimento di una canzone o di una partitura musicale. Per interrompere il ritmo generato basta tenere premuto un tasto qualunque fino a che non viene visualizzato di nuovo il menù principale. Il programma è interamente scritto in BASIC e perciò si presta facilmente a modifiche, personalizzazioni e miglioramenti.
Download link: ccc14-genritmi.prg
Stoplist è un piccola utility composta da poche righe in BASIC che, una volta caricato in memoria, modificherà il comportamento del comando LIST. Di norma esso visualizza il listato del programma BASIC in memoria sino all’ultima riga senza fermarsi. Ma a volte sarebbe utile fermare lo scorrimento del listato per poter studiare una parte del programma. Interrompere con RUN/STOP e poi ricominciare con LIST numerodiriga- non è comodo, soprattutto se il listato è molto lungo. Stoplist consente di fermare temporaneamente lo scorrimento del listato premendo il tasto SHIFT. Rilasciandolo il listato continuerà la sua corsa. Per bloccare indefinitamente una parte del listato si può premere SHIFT LOCK. Il programma occupa soltanto una decina di byte in Linguaggio macchina e in pratica agisce direttamente sulla routine del comando LIST del sistema operativo, usando i vettori delle locazioni 774 e 775. Quando Stoplist è attivo e il computer riceve il comando LIST, salta prima ad una routine che controlla se è stato premuto il tasto SHIFT e in caso positivo ferma il listato finché SHIFT non viene rilasciato. Infine effettua il salto alla normale routine di LIST del Kernal. IL programma è rilocabile, basta variare il contenuto della variabile A nella linea 10 con una qualsiasi locazione di RAM che ovviamente non interferisca con il normale funzionamento delle risorse necessarie al BASIC e al Kernal.
Download link: ccc14-stoplist.prg

Titolo: Generatore Ritmii e Stoplist
Piattaforma: Commodore 64
Genere: Utilities
Linguaggio: BASIC V2
Autore versione originale: Giancarlo Mariani
Pubblicazione: Commodore Computer Club n. 14, ottobre 1984
Anno: 1984
Digitazione: David La Monaca
Anno: 2026 (marzo)
Download: file .prg
Note: –


Qui di seguito trovate il codice in linguaggio BASIC da copiare sul vostro Commodore 64 originale oppure su un emulatore. Per PC Windows 10/11 suggeriamo VICE con il supporto dell’editor e compilatore CBM Prg Studio.
Di seguito le istruzioni per caricare il listato sull’emulatore VICE:
– Copiare il listato qui sotto e incollatelo in CBM Prg Studio.
– I codici dei caratteri speciali presenti nel listato saranno trattati da CBM Prg Studio e convertiti nei corrispondenti simboli del BASIC V2.
– Selezionare Generate .prg (current file) per ottenere il file programma con estensione .prg (ad es. nomeprogramma.prg)
– Lanciare l’emulatore VICE e dal menu File > Smart attach… > nomeprogramma.prg
Buon divertimento!
Attenzione – Nel listato i caratteri ‘>’ e ‘<‘ potrebbero essere stati sostituiti dai rispettivi codici di encoding HTML ‘>’ e ‘<’. Nel caso siano presenti, sostituite questi valori nel listato prima di caricarlo nell’emulatore.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 100 rem *** generatore di ritmi ***
110 rem *** by mariani giancarlo ***
120 rem *** tel. 0362/72565 ***
130 :
140 poke198,0:print"{clear}{down}{reverse on}generatore di ritmi{down*2}"
150 print"1) valzer"
160 print"2) swing"
170 print"3) slow rock"
180 print"4) disco"
190 input"{down*2}quale (1-4)";a:ifa<1ora>4thenrun
200 ona gosub 240,370,480,590
210 run
220 :
230 rem *** valzer ***
240 print"{clear}{down}{right*7}{reverse on}valzer{down*2}"
250 gosub710
260 gosub690
270 ifpeek(197)<>64thengosub690:return
280 pokes+24,10:pokes+5,9:pokes+6,0
290 forl=1todr/1.2:next
300 fork=1to2
310 pokes+1,7:pokes,4:pokes+4,129
320 forl=1todr:next
330 pokes+4,128
340 nextk:pokes+24,0:goto270
350 :
360 rem *** swing ***
370 print"{clear}{down}{right*7}{reverse on}swing{down*2}"
380 gosub710
390 gosub690
400 ifpeek(197)<>64thengosub690:return
410 pokes+24,10:pokes+5,9:pokes+6,0
420 forl=1todr/1.2:next
430 pokes+1,7:pokes,4:pokes+4,129
440 forl=1todr:next
450 pokes+24,0:pokes+4,128:goto400
460 :
470 rem *** slow rock ***
480 print"{clear}{down}{right*7}{reverse on}slow rock{down*2}"
490 gosub710:gosub690
500 ifpeek(197)<>64thengosub690:return
510 pokes+24,10:pokes+5,9:pokes+6,0
520 fork=1to6
530 hf=45:ifk=4thenhf=60
540 pokes+1,hf:pokes,4:pokes+4,129
550 forl=1todr:next
560 pokes+4,128:nextk:goto500
570 :
580 rem *** disco ***
590 print"{clear}{down}{right*7}{reverse on}disco{down*2}"
600 gosub710:gosub690
610 ifpeek(197)<>64thengosub690:return
620 pokes+24,10:pokes+5,0:pokes+6,255
630 pokes+1,30:pokes,5:pokes+4,129
640 fork=1to6:pokes+1,30:forl=1todr/20:nextl,k:pokes+4,128
650 forl=1to10:next
660 pokes+5,9:pokes+6,0:pokes+1,7:pokes,4
670 pokes+4,129:forl=1todr/2:next
680 pokes+4,128:goto610
690 s=54272:forl=stos+24:pokel,0:next:return
700 :
710 printtab(18)"250"
720 input"{up}veloc.(125-2000)";dr
730 return
740 rem *** type-in & testing by dlm/rmw
1
2
3
4
5
6
7
8
9
10
11 100 rem *** stoplist
110 rem *** by mariani giancarlo
120 rem *** tel. 0362/72565
130 :
140 a=49152: rem a rilocabile
150 for k=0 to 11: read b: poke k+a,b: next
160 b=int(a/256): c=a-b*256
170 poke 774,c: poke 775,b
180 data 72,173,141,2,201,1,240,249
190 data 104,76,26,167
200 rem type-in & testing by dlm/rmw
