10 REM MACCHINA DA CAFFE' ESPRESSO PER COMMODORE 64, V 1.0 20 REM (C) 2020, AMEDEO VALOROSO, WWW.VALOROSO.IT 30 PRINT "{clear}" 40 PRINT: PRINT 50 PRINT " {$b0}{$c0:36}{$ae}" 60 PRINT " {$dd} COMMODORE 64 / IL MIGLIOR CAFFE' {$dd}" 70 PRINT " {$dd} WWW.VALOROSO.IT {$dd}" 80 PRINT " {$ad}{$c0:36}{$bd}" 100 REM ELENCO COMANDI 110 PRINT 120 PRINT " {$b0}{$c0:32}{$ae}" 130 PRINT " {$dd} {$dd}" 140 PRINT " {$dd} A - ACCENDI LA MACCHINA {$dd}" 150 PRINT " {$dd} S - SPEGNI LA MACCHINA {$dd}" 160 PRINT " {$dd} C - CAFFE' CORTO {$dd}" 170 PRINT " {$dd} L - CAFFE' LUNGO {$dd}" 180 PRINT " {$dd} X - ESCI DAL PROGRAMMA {$dd}" 200 PRINT " {$dd} {$dd}" 210 PRINT " {$ad}{$c0:32}{$bd}" 300 REM STATO INIZIALE USCITE (SPENTE) 310 POKE 56579,0 400 REM RIQUADRO DEGLI STATI 410 PRINT 420 PRINT " {$b0}{$c0:36}{$ae}" 430 IF A=0 THEN PRINT " {$dd} ACCENDERE LA MACCHINA {$dd}" 440 IF A=1 AND R=0 THEN PRINT " {$dd} CARICARE LA POLVERE DI CAFFE' {$dd}" 450 IF A=1 AND R=1 THEN PRINT " {$dd} ACQUA IN RISCALDAMENTO ... {$dd}" 480 PRINT " {$ad}{$c0:36}{$bd}" 600 REM CICLO PRINCIPALE E COMANDI 610 GET C$ 620 IF C$="A" THEN GOSUB 2000 630 IF C$="S" THEN GOSUB 2100 640 IF C$="C" THEN GOSUB 3000 650 IF C$="L" THEN GOSUB 3500 680 IF C$="X" THEN GOTO 4000 700 REM MACCHINA IN RISCALDAMENTO? 710 IF (PEEK(56577) AND 16) = 0 THEN RT=1 750 REM VISUALIZZAZIONE PERIODICA DELLO STATO 760 W=W+1 770 IF W=60 THEN GOSUB 2200 800 GOTO 600 2000 REM ACCENDI MACCHINA 2010 PRINT "{up:2}"; 2020 PRINT " {$dd}{yellow} MACCHINA ACCESA {ltblue}{$dd}" 2030 PRINT 2060 A=1: R=1: W=0 2080 POKE 56579,1 2090 RETURN 2100 REM SPEGNI MACCHINA 2110 PRINT "{up:2}"; 2120 PRINT " {$dd}{yellow} MACCHINA SPENTA {ltblue}{$dd}" 2130 PRINT 2160 A=0: R=0: W=0 2180 POKE 56579,0 2190 RETURN 2200 REM STATO MACCHINA 2210 W=0 2220 REM RISCALDAMENTO? 2230 IF RT=0 THEN R=0 2240 IF RT=1 THEN R=1 2250 RT=0 2300 REM VISUALIZZAZIONE STATO 2310 PRINT "{up:2}"; 2320 IF A=0 THEN PRINT " {$dd} ACCENDERE LA MACCHINA {$dd}" 2330 IF A=1 AND R=0 THEN PRINT " {$dd} CARICARE LA POLVERE DI CAFFE' {$dd}" 2340 IF A=1 AND R=1 THEN PRINT " {$dd} ACQUA IN RISCALDAMENTO ... {$dd}" 2350 PRINT 2390 RETURN 3000 REM PREPARAZIONE CAFFE' CORTO 3010 W=0 3050 PRINT "{up:2}"; 3060 IF A=0 THEN PRINT " {$dd}{ltred} PRIMA ACCENDERE LA MACCHINA ! {ltblue}{$dd}": PRINT: RETURN 3070 IF R=1 THEN PRINT " {$dd}{ltred} PRIMA ATTENDERE IL RISCALDAMENTO ! {ltblue}{$dd}": PRINT: RETURN 3080 PRINT " {$dd}{yellow} PREPARO IL CAFFE' CORTO... {ltblue}{$dd}" 3100 POKE 56579,3 3110 REM CICLO DI ATTESA (T = SECONDI) 3120 FOR T=1 TO 10 3130 FOR I=1 TO 17 3140 H=12*5^3 3150 NEXT I 3160 NEXT T 3200 POKE 56579,1 3210 PRINT "{up}"; 3220 PRINT " {$dd}{green} IL CAFFE' CORTO E' PRONTO ! {ltblue}{$dd}" 3230 PRINT 3280 RETURN 3500 REM PREPARAZIONE CAFFE' LUNGO 3510 W=0 3550 PRINT "{up:2}"; 3560 IF A=0 THEN PRINT " {$dd}{ltred} PRIMA ACCENDERE LA MACCHINA ! {ltblue}{$dd}": PRINT: RETURN 3570 IF R=1 THEN PRINT " {$dd}{ltred} PRIMA ATTENDERE IL RISCALDAMENTO ! {ltblue}{$dd}": PRINT: RETURN 3580 PRINT " {$dd}{yellow} PREPARO IL CAFFE' LUNGO... {ltblue}{$dd}" 3600 POKE 56579,3 3610 REM CICLO DI ATTESA (T = SECONDI) 3620 FOR T=1 TO 14 3630 FOR I=1 TO 17 3640 H=12*5^3 3650 NEXT I 3660 NEXT T 3700 POKE 56579,1 3710 PRINT "{up}"; 3720 PRINT " {$dd}{green} IL CAFFE' LUNGO E' PRONTO ! {ltblue}{$dd}" 3730 PRINT 3780 RETURN 4000 REM USCITA DAL PROGRAMMA 4010 PRINT "{up:2}"; 4020 PRINT " {$dd} CIAO DA {yellow}AMEDEO VALOROSO{ltblue} ! {$dd}" 4030 PRINT 4050 POKE 56579,0 4080 END