Il Commodore 64 ha segnato un'epoca, non solo per i giochi, ma anche per la programmazione in BASIC. Oggi voglio condividere un semplice programma che permette di generare un calendario direttamente sullo schermo del C64. Non serve una stampante, basta inserire l'anno e navigare tra i mesi con la pressione di un tasto.
Un po' di teoria
Il programma utilizza l’algoritmo di Zeller per determinare il giorno della settimana in cui cade il primo giorno di ogni mese. Questo permette di allineare correttamente i giorni sotto le colonne dei giorni della settimana. Inoltre, tiene conto degli anni bisestili per calcolare correttamente il mese di febbraio.
Codice BASIC per il calendario
Ecco il codice da digitare direttamente sul tuo Commodore 64:
10 PRINT "{clear}CALENDARIO PER IL COMMODORE 64"
20 PRINT "INSERISCI L'ANNO (1900-2099):"
30 INPUT Y
40 IF Y<1900 OR Y>2099 THEN PRINT "ANNO NON VALIDO! RIPROVA.":GOTO 20
50 DIM M$(12)
60 FOR I=1 TO 12
70 READ M$(I)
80 NEXT I
90 DATA "GENNAIO","FEBBRAIO","MARZO","APRILE","MAGGIO","GIUGNO"
100 DATA "LUGLIO","AGOSTO","SETTEMBRE","OTTOBRE","NOVEMBRE","DICEMBRE"
110 DIM D(12)
120 DATA 31,28,31,30,31,30,31,31,30,31,30,31
130 FOR I=1 TO 12
140 READ D(I)
150 NEXT I
160 IF (Y MOD 4=0 AND Y MOD 100<>0) OR (Y MOD 400=0) THEN D(2)=29
170 PRINT "{clear}CALENDARIO ANNO";Y
180 PRINT "PREMERE UN TASTO PER CONTINUARE..."
190 GET A$: IF A$="" THEN 190
200 FOR M=1 TO 12
210 PRINT "{clear}";M$(M);" ";Y
220 PRINT "LU MA ME GI VE SA DO"
230 REM CALCOLO DEL PRIMO GIORNO DEL MESE CON LA FORMULA DI ZELLER
240 A=INT((14-M)/12)
250 Y1=Y-A
260 M1=M+12*A-2
270 F=(1 + Y1 + INT(Y1/4) - INT(Y1/100) + INT(Y1/400) + INT(31*M1/12)) MOD 7
280 IF F=0 THEN F=7
290 REM STAMPA DEL CALENDARIO
300 FOR I=1 TO F-1
310 PRINT " ";
320 NEXT I
330 FOR D1=1 TO D(M)
340 PRINT RIGHT$(" " + STR$(D1),3);
350 IF (F+D1-1) MOD 7=0 THEN PRINT
360 NEXT D1
370 PRINT: PRINT "PREMERE UN TASTO PER IL PROSSIMO MESE..."
380 GET A$: IF A$="" THEN 380
390 NEXT M
400 PRINT "{clear}FINE DEL CALENDARIO."
410 END
Come Funziona
- Dopo aver caricato il programma, inserisci l'anno desiderato.
- Il calendario verrà mostrato mese per mese.
- Per passare al mese successivo, premi un tasto.
- Alla fine, comparirà il messaggio "FINE DEL CALENDARIO."
Conclusione
Questo piccolo progetto è un ottimo esempio di come il BASIC possa ancora essere utile per applicazioni pratiche su un computer storico come il Commodore 64. Se ti piace smanettare con il codice, puoi migliorarlo ulteriormente, magari aggiungendo colori o effetti grafici per rendere il calendario ancora più accattivante.
Nessun commento:
Posta un commento