10 REM ALBERO DI NATALE COMANDATO DAL COMMODORE 64, V 1.0 20 REM (C) 2020, AMEDEO VALOROSO, WWW.VALOROSO.IT 30 PRINT "{clear}" 50 PRINT " {$b0}{$c0:36}{$ae}" 60 PRINT " {$dd} ALBERO DI NATALE COMMODORE 64 {$dd}" 70 PRINT " {$dd} WWW.VALOROSO.IT {$dd}" 80 PRINT " {$ad}{$c0:36}{$bd}" 100 REM STATO INIZIALE USCITE (SPENTE) 110 POKE 56579,0 120 S=0 200 REM ELENCO COMANDI 210 PRINT 220 PRINT " {$b0}{$c0:32}{$ae}" 230 REM PRINT " {$dd} {$dd}" 240 PRINT " {$dd} {white}ACCENSIONE SINGOLA{ltblue} {$dd}" 250 PRINT " {$dd} 1 - LAMPADA PUNTALE {$dd}" 260 PRINT " {$dd} 2 - LUCI GIALLE {$dd}" 270 PRINT " {$dd} 3 - LUCI BIANCHE {$dd}" 280 PRINT " {$dd} 4 - LUCI COLORATE {$dd}" 290 PRINT " {$dd} 0 - SPEGNI TUTTO {$dd}" 310 PRINT " {$dd} {white}ACCENDI / SPEGNI{ltblue} {$dd}" 320 PRINT " {$dd} A - LAMPADA PUNTALE {$dd}" 330 PRINT " {$dd} B - LUCI GIALLE {$dd}" 340 PRINT " {$dd} C - LUCI BIANCHE {$dd}" 350 PRINT " {$dd} D - LUCI COLORATE {$dd}" 360 PRINT " {$dd} {$dd}" 400 PRINT " {$dd} S - ACCENDI SEQUENZA {$dd}" 410 PRINT " {$dd} X - ESCI {$dd}" 420 PRINT " {$dd} {$dd}" 430 PRINT: GOSUB 2600 440 PRINT " {$ad}{$c0:32}{$bd}" 450 PRINT "{up:1}"; 600 REM CICLO PRINCIPALE E COMANDI DA TASTIERA 610 GET C$ 620 IF C$="0" THEN GOSUB 1000 630 IF C$="1" THEN GOSUB 1100 640 IF C$="2" THEN GOSUB 1200 650 IF C$="3" THEN GOSUB 1300 660 IF C$="4" THEN GOSUB 1400 700 IF C$="A" THEN GOSUB 2100 710 IF C$="B" THEN GOSUB 2200 720 IF C$="C" THEN GOSUB 2300 730 IF C$="D" THEN GOSUB 2400 800 IF C$="X" THEN GOTO 4000 810 IF C$="S" THEN GOSUB 3000 900 S=0 910 IF C$<>"" THEN GOSUB 2600 920 GOTO 600 1000 REM SPEGNI TUTTE LE USCITE 1010 POKE 56579,0 1020 GOTO 2600 1100 REM SOLO USCITA 1 1110 POKE 56579,1 1120 GOTO 2600 1200 REM SOLO USCITA 2 1210 POKE 56579,2 1220 GOTO 2600 1300 REM SOLO USCITA 3 1310 POKE 56579,4 1320 GOTO 2600 1400 REM SOLO USCITA 4 1410 POKE 56579,8 1420 GOTO 2600 2100 REM ALTERNA USCITA 1 2110 V=PEEK(56579) 2120 IF (V AND 1) > 0 THEN POKE 56579,V-1 2130 IF (V AND 1) = 0 THEN POKE 56579,V+1 2140 GOTO 2600 2200 REM ALTERNA USCITA 2 2210 V=PEEK(56579) 2220 IF (V AND 2) > 0 THEN POKE 56579,V-2 2230 IF (V AND 2) = 0 THEN POKE 56579,V+2 2240 GOTO 2600 2300 REM ALTERNA USCITA 3 2310 V=PEEK(56579) 2320 IF (V AND 4) > 0 THEN POKE 56579,V-4 2330 IF (V AND 4) = 0 THEN POKE 56579,V+4 2340 GOTO 2600 2400 REM ALTERNA USCITA 4 2410 V=PEEK(56579) 2420 IF (V AND 8) > 0 THEN POKE 56579,V-8 2430 IF (V AND 8) = 0 THEN POKE 56579,V+8 2440 GOTO 2600 2600 REM SCRIVE LO STATO DELLE USCITE 2610 PRINT "{up:1}"; 2620 PRINT " {$dd} {white}STATO USCITE:{ltblue}"; 2650 V=PEEK(56579) 2660 IF (V AND 1) > 0 THEN PRINT " {white}1"; 2670 IF (V AND 1) = 0 THEN PRINT " {black}1"; 2680 IF (V AND 2) > 0 THEN PRINT " {white}2"; 2690 IF (V AND 2) = 0 THEN PRINT " {black}2"; 2700 IF (V AND 4) > 0 THEN PRINT " {white}3"; 2710 IF (V AND 4) = 0 THEN PRINT " {black}3"; 2720 IF (V AND 8) > 0 THEN PRINT " {white}4"; 2730 IF (V AND 8) = 0 THEN PRINT " {black}4"; 2740 IF S = 0 THEN PRINT " {ltblue}"; 2750 IF S > 0 THEN PRINT " {yellow}S{ltblue}"; 2760 PRINT " {$dd}" 2770 RETURN 3000 REM SEQUENZA PERSONALIZZATA 3010 S=1: REM IDENTIFICA CHE CI SI TROVA NELLA SEQUENZA 3020 POKE 56579,3: GOSUB 2600: REM 1 E 2 3030 T=5: GOSUB 3900: REM ATTESA T SECONDI 3040 IF C$<>"" THEN RETURN: REM ANNULLA? 3050 POKE 56579,4: GOSUB 2600: REM 3 3060 T=5: GOSUB 3900: REM ATTESA T SECONDI 3070 IF C$<>"" THEN RETURN: REM ANNULLA? 3080 POKE 56579,9: GOSUB 2600: REM 1 E 4 3090 T=5: GOSUB 3900: REM ATTESA T SECONDI 3100 IF C$<>"" THEN RETURN: REM ANNULLA? 3110 GOSUB 1100: REM SOLO USCITA 1 3120 T=2: GOSUB 3900: REM ATTESA T SECONDI 3130 IF C$<>"" THEN RETURN: REM ANNULLA? 3500 GOTO 3000 3900 REM ATTESA T SECONDI 3910 FOR I=1 TO T 3920 FOR J=1 TO 644: NEXT J 3930 GET C$: IF C$<>"" THEN RETURN 3940 NEXT I 3950 RETURN 4000 REM USCITA DAL PROGRAMMA 4010 POKE 56579,0 4020 PRINT "{clear}" 4030 PRINT " {$b0}{$c0:36}{$ae}" 4040 PRINT " {$dd} WWW.VALOROSO.IT {$dd}" 4050 PRINT " {$ad}{$c0:36}{$bd}" 4060 PRINT "{down:2}" 4070 PRINT " CIAO DA {yellow}AMEDEO VALOROSO{ltblue} !" 4080 PRINT "{down:2}" 4090 END