Programmare in Basic, tutorial #2

Benvenuti alla seconda puntata del tutorial su come programmare in Basic, il linguaggio del Commodore. Se vi siete persi la prima puntata, potete trovarla qui.

Iscriviti al mio canale YouTube: ValorosoIT. Retro tecnologia, impianti stereo vintage, retro computer, esperimenti e prove. Retroprogrammazione, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Oggi scriviamo un simpatico programma, che può essere utile, dopo le feste, per decidere se mettersi a dieta!

Oltre a digitare e provare il programma, vediamo anche come salvare e caricare un file, su cassetta, dischetto, SD2IEC e Kung Fu Flash.

L’istruzione condizionale che analizziamo oggi è: IF THEN.
Vediamo anche la funzione STR$(n).
Utilizziamo i tasti speciali: COMMODORE + RUN/STOP.
I comandi che analizziamo sono: LOAD, SAVE e NEW.

Corso programmazione linguaggio Basic Commodore 2, C16 IF THEN REM PRINT INPUT

Nelle prossime puntate vedremo altri comandi in Basic e vedremo anche come scrivere dei programmi su un PC Windows, utilizzando il blocco note, per poi trasferirli sul Commodore ed eseguirli.

Per non perdervi le altre puntate del corso, vi suggerisco di iscrivervi al canale YouTube, il cui link si trova qui sotto, e attivare la campanella delle notifiche!

Listato del programma da digitare

Ecco il programma di esempio della seconda lezione del tutorial per imparare a programmare in Basic. In fondo a questa pagina, lo trovate già in formato TXT (per visualizzarlo a video), ed anche in formato PRG, per avviarlo sul Commodore 64. Troverete anche un disco virtuale vuoto D64.

10 REM IL MIO SECONDO PROGRAMMA IN BASIC
20 REM WWW.VALOROSO.IT
30 INPUT "COME TI CHIAMI";A$
40 PRINT
50 PRINT "SCRIVI IL TUO PESO:"
60 INPUT "PRIMA DELLE FERIE";P1
70 INPUT "ADESSO";P2
80 PRINT
90 IF P2>P1 THEN PRINT "MI SPIACE, " A$ ", TEMO DOVRAI METTERTI A DIETA!": PRINT "HAI MESSO SU" STR$(P2-P1) "KG."
100 IF P2<=P1 THEN PRINT "OTTIMO, " A$ ", NON HAI MESSO PESO!"

Programmare in Basic, su quali computer?

Il semplice programma che realizziamo oggi, può essere eseguito su tantissimi Commodore differenti: sul Commodore 16, Commodore Vic-20, sul Commodore 64, C128, ma anche sul PET, sugli emulatori, quelli per PC (quindi il VICE e il CCS64) e potete eseguirlo anche sul vecchio GWBASIC che si trovava nel DOS dei PC.

Se state utilizzando il Commodore PET, ricordatevi di digitare il programma tutto in minuscolo.

Analisi del listato di esempio

Avevamo già visto, nella prima puntata del corso, come digitare il programma sul Commodore, ed anche come eseguirlo.

Corso programmazione Basic Commodore 2, listato programma LIST righe, peso dopo le vacanze ferie

Le prime righe di programma (la 10, la 20 e la 30), contengono le istruzioni REM e INPUT, che avevamo già visto.

Nella riga 30, con l’istruzione INPUT, il nome dell’utente viene salvato nella variabile A$. La variabile è un contenitore di dati e il dollaro ($), dopo il nome della variabile, indica che si tratta una stringa: una sequenza di caratteri. Abbiamo parlato delle variabili nella precedente puntata del tutorial.

La riga 40 (PRINT) serve solo per aggiungere una riga vuota a monitor, tra la richiesta del nome e le successive. La riga successiva, la 50, inizia a scrivere a monitor parte della richiesta. E’ utile per non rendere le successive richieste troppo lunghe sul monitor.

Le righe 60 e 70 contengono l’istruzione INPUT. Ciascuna domanda deve restare all’interno di una riga di monitor. Ho considerato ovviamente il monitor con meno colonne, che è quello del Commodore Vic20.

Il valore digitato su tastiera, in questo caso, è un numero. Viene chiesto dapprima il peso dell’utente prima delle ferie, e viene salvato nella variabile P1.

Successivamente, il computer chiede il peso dopo le ferie, e lo salva nella variabile P2.

Iscriviti al gruppo Facebook. Retro tecnologia, Commodore, impianti stereo vintage, retro computer, esperimenti e prove. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Le variabili P1 e P2 sono a virgola mobile, che possono contenere numeri interi ed anche con la virgola. Ricordatevi che per separare le unità dai decimali, non bisogna digitare la virgola, ma il punto!

La riga 80 (PRINT), come visto prima, serve solo per aggiungere una riga vuota a monitor, tra le domande ed il responso che fornisce il nostro programma in Basic.

Tutorial per programmare in Basic, l’istruzione IF … THEN

Nella riga 90 vediamo una nuova istruzione: IF… THEN

E’ un’istruzione condizionale: il computer esegue tutto quello che c’è dopo il THEN solo se la condizione, che si trova tra IF e THEN, è vera.

In questo caso: se il peso dopo le ferie (P2) è maggiore del peso prima delle ferie (P1), il Commodore esegue anche le due istruzioni PRINT, già descritte nella prima puntata del corso.

STR$ è una funzione, che converte un valore numerico in una stringa. Su alcune versioni del Basic è possibile ometterla, ma ho preferito inserirla per compatibilità con tutti i Commodore ed anche con il GWBASIC del DOS.

In questo caso, il valore numerico scritto a monitor è la differenza tra il peso dopo le ferie e quello prima.

Anche nella riga 100 troviamo una condizione, che è l’opposto della precedente. Su alcune versioni di Basic esiste la condizione inversa, ELSE, da eseguire quando la condizione non è verificata. Purtroppo, nel Commodore 64 non esiste, per cui ho dovuto includere un’altra riga di programma, con la condizione inversa, cioè quando il peso dopo le ferie (P2) è uguale o inferiore a quello precedente (P1).

Salvare un file con il Commodore

Proseguiamo il tutorial, su come programmare in Basic, e vediamo come salvare e caricare il programma.

Corso programmazione Basic Commodore 2, salvataggio file su SD2IEC, floppy disk drive Commodore 1541, SD2IEC, datassette tape, LOAD SAVE

E’ consigliabile salvare spesso il programma, quando lo si digita, per evitare di perdere dati importanti. In genere, si preferisce conservare anche alcuni salvataggi intermedi di un programma. In questo modo, se, lavorando su un programma, questo non dovesse più funzionare, potremmo verificare eventuali differenze con i precedenti salvataggi.

E’ anche consigliabile conservare tutte le versioni del programma, in modo da tenere traccia dello storico funzionalità implementate.

Salvare un programma in Basic su cassetta

Quando il nostro programma è in memoria, per salvare il programma su cassetta, è sufficiente digitare SAVE, con il nome del programma tra virgolette.

SAVE "CORSO-BASIC-2"
Corso programmazione Basic Commodore 2, salvare un file su tape datassette C2N, SAVE, cassetta

Il nome del programma può contenere fino a 16 caratteri.

E’ bene segnarsi il numero del contatore di giri del nastro, indicato sul datassette, in modo da posizionarsi in quella posizione quando dovremo caricare il programma.

Salvare un programma in Basic su floppy disk drive Commodore 1541

Per salvare il programma su dischetto, se si possiede un floppy disk drive, tipo il Commodore 1541, digitare SAVE, con il nome del programma tra virgolette, indicando anche l’indirizzo del drive, che nel mio caso è 8.

SAVE "CORSO-BASIC-2",8
Corso programmazione Basic Commodore 2, caricare un programma file da floppy disk drive 1541 II, due punti, PRG

Attenzione! Se il nome del file già esiste sul dischetto, questo non verrà sovrascritto e nessun errore verrà mostrato sul monitor! Lo stesso dicasi per altri errori. Per questo, è bene guardare il led rosso del floppy disk drive 1541 e verificare che non lampeggi dopo il salvataggio del file.

Per salvare sovrascrivendo il file, bisogna aggiungere @O: (chiocciola, lettera O maiuscola, due punti) prima del nome del file:

SAVE "@O:CORSO-BASIC-2",8

Se il programma già esistesse sul disco, la vecchia versione verrebbe cancellata e sovrascritta con la nuova.

Anche su dischetto, così come per tutti i salvataggi, il nome del file può contenere al massimo 16 caratteri.

Programmare in Basic, salvare un programma su MicroSD con SD2IEC

Proseguiamo il tutorial su come programmare in Basic e vediamo come salvare su scheda SD, tramite SD2IEC. La procedura è la stessa del dischetto, avendo cura di indicare l’indirizzo corretto dell’emulatore, nel mio caso 9.

Iscriviti al gruppo Facebook. Retro tecnologia, Commodore, impianti stereo vintage, retro computer, esperimenti e prove. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Anche su SD2IEC si può salvare il programma con l’opzione @O: per sovrascrivere il file.

Corso programmazione Basic Commodore 2, sovrascrivere salvare un file SD2IEC emulatore MicroSD, SD, opzione @O:

Se non abbiamo aperto alcun disco virtuale, il programma viene salvato nella cartella principale della scheda di memoria SD. In questo caso è meglio aggiungere l’estensione PRG al nome del file, in modo da poterlo utilizzare su PC con gli emulatori.

Se, invece, avessimo aperto un immagine di un disco virtuale D64, prima di digitare il programma, il file verrebbe salvato all’interno dello stesso disco virtuale.

Relativamente ai possibili errori, anche con SD2IEC è bene guardare il led rosso (presente sull’SD2IEC stesso) e verificare che non lampeggi dopo il salvataggio del file.

Corso programmazione Basic Commodore 2, errore durante il salvataggio di un file, led rosso lampeggia

Salvare il programma in Basic su Kung Fu Flash

Per salvare su Kung Fu Flash (questo vale solo per il Commodore 64 e 128), dobbiamo aver collegato un’immagine di un disco D64 prima di digitare il programma.

Innanzitutto, tramite un PC, prepariamo una scheda di memoria MicroSD con un disco virtuale vuoto all’interno. Per comodità, in fondo a questa pagina, ho allegato un disco virtuale vuoto in formato D64.

Ricordatevi di aggiornare la Kung Fu Flash all’ultima versione presente su GitHub. Infatti, le versioni precedenti alla 1.16, non hanno supporto alla scrittura.

A questo punto, possiamo inserire la MicroSD nella Kung Fu Flash ed avviare il Commodore 64. Premete, quindi, il pulsante MENU sulla Kung Fu Flash.

Con i tasti cursore, selezionate il disco virtuale che avete copiato nella MicroSD, ma non premete RETURN. Bisogna premere SHIFT + RETURN per aprire il menu delle opzioni. Scegliere MOUNT.

Corso programmazione Basic Commodore 2, montare un disco D64 virtuale Kung Fu Flash, immagine disco virtuale, MOUNT

A questo punto il Commodore 64 si avvia normalmente.

Potete verificare che il disco virtuale sia montato correttamente con i comandi:

LOAD"$",8
LIST

Si apre un elenco vuoto e non vengono visualizzati errori.

Dopo aver digitato il comando NEW, che analizziamo nel prossimo paragrafo, potete iniziare a digitare il programma. Successivamente, potete salvarlo con lo stesso comando SAVE utilizzato con il floppy disk drive e con la SD2IEC, anche con l’opzione “@O:”.

Anche in questo caso, in caso di errore, non viene visualizzato alcun messaggio a monitor. E’ bene, quindi, salvare il programma su più file, per sicurezza.

L’istruzione NEW per cancellare la memoria

Prima di digitare il programma, scrivere il comando NEW. Potete verificare che la memoria del computer sia ora vuota, digitando nuovamente LIST.

Corso programmazione Basic Commodore 2, comando NEW cancellare la memoria, lista vuota

Bisogna ricordarsi di digitare il comando NEW dopo aver caricato la lista dei file da qualsiasi dispositivo, prima di digitare il programma! Infatti, in memoria è presente l’elenco dei file del disco, che non deve essere mischiato con il nostro programma!

Programmare in Basic, caricare un programma da nastro

Il nostro tutorial per programmare in Basic continua! Vediamo come caricare un file. Per caricarlo da nastro, digitiamo:

LOAD "nome del programma"

Oppure, se non ci ricordiamo il nome del programma, possiamo digitare LOAD ed avviare il nastro. Viene caricato il primo programma disponibile. Se ci posizioniamo al numero di giri che ci siamo segnati quando abbiamo salvato il programma, è tutto molto più semplice.

C’è anche una combinazione di tasti COMMODORE + RUN/STOP per caricare da nastro, senza digitare LOAD.

Corso programmazione Basic Commodore 2, caricare un file da tape datassette nastro 1531 1530, LOAD, Commodore+Run/Stop

Caricare un programma da floppy disk drive Commodore 1541

Per caricare da disk drive, possiamo visualizzare dapprima l’elenco dei file nel dischetto.

Iscriviti al gruppo Facebook. Retro tecnologia, Commodore, impianti stereo vintage, retro computer, esperimenti e prove. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Il comando che si utilizza è il seguente:

LOAD "$",8
LIST

Poi possiamo caricare il file, digitando

LOAD "nome del file",8

Oppure, è possibile posizionarsi con il cursore sulla riga della lista e digitare LOAD, per poi spostarsi con il cursore a destra, aggiungiamo “,8” e due punti “:” per tralasciare quanto scritto dopo.

Corso programmazione Basic Commodore 2, caricare un programma file da floppy disk drive 1541 II, due punti, PRG

Caricare un file da Kung Fu Flash

Per il caricamento dei file da Kung Fu Flash, potete montare il disco virtuale come abbiamo visto prima (utilizzando MOUNT). Poi possiamo caricare il file come se fosse un dischetto.

Corso programmazione Basic Commodore 2, caricare un file da Kung Fu Flash cartuccia LOAD, due punti

In alternativa, possiamo utilizzare anche il file browser della Kung Fu Flash, premendo MENU.

Corso programmazione Basic Commodore 2, caricare un file da Kung Fu Flash file browser PRG D64 disco virtuale immagine disco

Caricare un file da SD sul Commodore con SD2IEC

Infine, per caricare il programma da emulatore SD2IEC, possiamo utilizzare la stessa procedura vista per il dischetto. Oppure, in alternativa, possiamo utilizzare il file browser.

Carichiamo il file browser e vediamo l’elenco dei file presenti nella scheda SD.

Poi scegliamo il file che preferiamo e lo avviamo.

Corso programmazione Basic Commodore 2, caricare un file da SD2IEC file browser PRG D64 disco virtuale, immagine disco

Dopo aver terminato l’esecuzione del nostro programma, possiamo consultare la lista delle istruzioni, digitando LIST.

Listato del programma in Basic del corso #2

Ed ecco il listato del programma in Basic della seconda puntata del tutorial su come programmare in Basic con il Commodore.

Iscriviti al gruppo Facebook. Retro tecnologia, Commodore, impianti stereo vintage, retro computer, esperimenti e prove. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Il programma è disponibile in due formati:

  • CORSO-BASIC-2.TXT, in formato testo, per analizzarlo su PC o per trascriverlo sui vari Commodore o sul GwBasic del DOS;
  • CORSO-BASIC-2.ZIP, cartella compressa ZIP da scompattare. Include il programma in formato PRG, caricabile ed avviabile dal Commodore 64 e un disco virtuale D64 con all’interno il programma caricabile dal C16, Vic20, C64 e C128, nonché emulatori (CCS64, VICE o altri). Include anche un immagine D64 vuota per gli esperimenti con la Kung Fu Flash.

Gli argomenti del corso sono ancora tanti!

Credits: nel video tutorial, la SID music è Delta di Rob Hubbard.

Iscriviti al mio canale YouTube: ValorosoIT. Retro tecnologia, impianti stereo vintage, retro computer, esperimenti e prove. Retroprogrammazione, Basic. Commodore, IBM, Atari, Apple, Texas Instruments, Amstrad, MSX.

Ti piace questa pagina? Condividila:

Pubblicato in Retro Computer, Retro Tecnologia ed Elettronica Vintage, Tutti gli articoli.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *