Menu

Home Storia Commodore Commodore PET Commodore VIC-20 Commodore MAX Machine Commodore 64 Commodore 16 Commodore 128 Commodore 65 Amiga 500 Amiga 600 Amiga 1200 Riparazioni C64 Datassette Manutenzione Taratura Azimuth Datassette Riparazioni Amiga 500 Test Riparazione Alimentatori C64 VIC20 Formattare Floppy Disk 720 Kb Alimentatore ATX per Amiga 500 Sostituire Floppy Drive Amiga con Floppy Drive PC Creare Cassette per CBM64-128, Vic20 e CBM16 Trasferire File PC-Amiga (Amiga Explorer) Trasferire file PC-Amiga (ADF Sender Terminal) Visualizzare Immagini e Foto PC-C64 Visualizzare Immagini e Foto PC-Amiga Costruire Cavo Seriale Null-Modem Cavo Video Scart C64, C128, Vic20 Adattatore Joystick C64/C16 Restauro estetico Emulatori Adattatori Emulatori Online Commodore SD2IEC BASIC Collezionare Commodore Retrogaming Altri Computer Vintage Giochi Non Ufficiali

COMANDI BASIC

CONT Comando per far ripartire l'esecuzione di un programma che è stato interrotto con il tasto STOP

LIST Consente di listare le righe di un programma nella memoria.

LOAD Comando per caricare nella memoria un programma da nastro (datassette) o da disco (floppy drive).

NEW Cancella l'intero programma nella memoria.

RUN Avvia l'esecuzione di un programma nella memoria.

CLOSE Completa e chiude qualsiasi file usato dall'istruzione OPEN.

CLR Cancella qualsiasi variabile nella memoria lasciando intatto il programma.

CMD Invia l'output dello schermo ad un altro dispositivo (stampante, datassette o floppy drive).

DATA Istruzione eseguita da un elenco di voci da usare dalle istruzioni READ.

DEF FN Consente di definire con un nome breve, un calcolo complesso come ad esempio una FUNZIONE.

END Con questo comando il programma si interrompe come se fossero esaurite le righe.

FOR..TO..STEP Funziona con l'istruzione NEXT, per ripetere una sezione di programma.

GET Consente di trasferire dati da tastiera, un carattere alla volta.

GOTO La riga successiva da eseguire sarà quella con il numero di riga che segue questo comando.

GOSUB Simile a GOTO ma il programma ricorda quale riga è stata eseguita per ultima.

IF..THEN Consente al computer di analizzare una situazione e di intraprendere due azioni possibili in relazione al risultato.

INPUT Consente al programma di acquisire dati dall'utente, assegnando questi ad una variabile.

NEXT Sempre usando con l'istruzione FOR. Quando il programma raggiunge un'istruzione NEXT, controlla l'istruzione FOR.

ON Attiva i comandi GOTO e GOSUB.

OPEN Consente al computer di accedere ai vari dispositivi (datassette, floppy drive, stampante o schermo).

POKE E' sempre seguito da due numeri o formule. La prima locazione è di memoria, il secondo numero è un valore decimale che va da 0 a 255.

PRINT Può essere seguita da stringhe di testo con virgolette, nomi variabili, funzioni o segni di punteggiatura.

$ Definisce una "variabile". Simbolo $ e nome della variabile con una lettera (esempio $A).

READ Usato per assegnare informazioni da istruzioni DATA alle variabili, per far si che le informazioni possano essere usate.

RESTORE All'interno di un programma, il puntatore al quale un elemento in un'istruzione DATA verrà letto (READ), viene successivamente ripristinato al primo elemento nella lista. Pertanto consente di rileggere le informazioni.

RETURN Quando il programma incontra questo comando, va all'istruzione successiva al comando GOSUB.

STOP Interrompe l'esecuzione del programma.

SYS E' seguito da un numero decimale o da un valore numerico da 0 a 65535.

SYS 64738 Questo comando provoca il RESET della macchina. Utile ad esempio nel CBM 64 dove manca il tasto del reset.

WAIT Viene usato per interrompere il programma fino a che i contenuti di una locazione di memoria non cambiano in modo specifico.

PLAY Nel BASIC 1.0 di Microsoft o superiore, serve per impartire una nota musicale da eseguire. Va seguito dal nome del tasto corrispondente alla nota che si vuole far eseguire come ad esempio "D" o una sequenza di note: "DAFG"

bottom corner

esempi di basic

Esempi BASIC torna alla pagina 1

CREARE UNA CHAT BOT

La mia prima esperienza

Quando ero bambino, e mi riferisco agli anni ottanta, in tutti i film dove in alcune sequenze si faceva uso di un computer, bastava chiedergli qualsiasi cosa e la macchina, come per magia, rispondeva sempre con una risposta precisa e sensata. O che rispondesse a monitor o addirittura con una voce "robotica", non c'era domanda alla quale il computer non potesse rispondere. WOW... Voglio un computer anche io!!!

La mia fantasia correva. Con un computer in casa posso avere un vero e proprio "amico virtuale". Posso dialogarci, fargli domande... (giocarci :D ). Dovevo averlo!!

Un bel giorno presi la decisione ed utilizzai tutti i soldi che avevo messo da parte per comprarmi "il computer" un bel Commodore 64!! E così feci. Tornato a casa fiero, orgoglioso e felice, lo collegai subito alla mia TV nella cameretta ed in pochi secondi trovai il canale di riferimento. Lo accesi... ci siamo! Finalmente!! Che emozione!!! (e chi se la scorda anche a distanza di decenni). Il cursore lampeggiava aspettando un mio comando. La prima riga che scrissi fu: ciao come ti chiami? E la sua risposta fu la seguente: ?syntax error.

Non era esattamente la risposta che mi aspettassi dal computer. Provai a digitare: come stai? Stessa risposta: ?syntax error. Con grandissima delusione constatai che qualsiasi fosse la mia domanda il computer dava sempre la stessa.. odiosa risposta: ?syntax error. Eppure nei film non era cosi. Il computer sa tutto. il computer risponde sempre. Il computer parla, perché con me non parla?

Altri amici avevano il Commodore 64 e tutti lo usavano per giocarci. Anche io naturalmente, e come tutti sapevo usare solo e sempre lo stesso comando per caricare il gioco da cassetta: LOAD. Ma un giorno un amico mi regalò una piccola rivista (se ne trovavano tantissime nelle edicole) dove venivano spiegati i concetti del linguaggio BASIC , il linguaggio di programmazione dei computer dell'epoca. Bene, fu l'inizio di tutto. Capii che nessuna macchina è in grado di darti risposte se prima non viene "programmata". Nessuna macchina è "intelligente". E nei film questo non era menzionato.

Ma io volevo sempre e solo la stessa cosa. Un computer che rispondesse in modo sensato alle mie domande!! Dopo aver compreso alcune regole "basiche" di programmazione era il momento di ottenere quello che ho sempre voluto. E quindi cominciai a scrivere il mio primo programmino, quello che vi riporto sotto:

10 PRINT " BENVENUTO "
20 PRINT " DIGITA LA TUA DOMANDA "
30 PRINT
40 INPUT " ";A$
50 IF A$="COME TI CHIAMI" THEN PRINT "COMMODORE 64"
60 IF A$="COME STAI" THEN PRINT "BENE GRAZIE"
70 GOTO 20
80 END

Adesso vediamo se alla domanda: "come ti chiami" il computer mi risponde con un odioso "?syntax error" o con "Commodore 64" cioè la risposta che volevo avere. E vediamo se chiedendo "come stai" cosa mi risponde. In effetti la risposta la conoscevo: "bene grazie".

ANALIZZIAMO ADESSO OGNI SINGOLO ELEMENTO

Con il programma impostato nel modo di cui sopra, dopo ogni risposta il computer mi riporta sempre al punto dove posso fare altre domande, grazie alla riga "70 GOTO 20" dove si dice al programma che finita l'esecuzione il programma riparte dalla riga 20.

Da notare come nella riga 40 il comando INPUT sia seguito da una coppia di virgolette fra le quali uno spazio "vuoto". Quello spazio che sta a significare la riga di domanda che verrà digitata durante l'esecuzione del programma. Domanda che naturalmente in fase di programmazione non posso sapere. Questa domanda verrà memorizzata nella "variabile": A$. Possiamo nominare la variabile con qualsiasi lettera dopo il simbolo "$" (A$, B$, C$... Z$) cosi che un programma possa contenere un numero multiplo di variabili nella stringa.

La riga 30 serve solo a dire al programma che durante l'esecuzione quello spazio deve rimanere vuoto (nessuna informazione dopo il PRINT), cosi da ottenere uno spazio di stacco. La riga 50 è la "logica" del programma (IF): "se" la "domanda" è uguale a "domanda digitata" allora (THEN) scrivi (PRINT) la seguente "risposta abbinata" (fra le virgolette in quanto costante di stringa).

Avevo realizzato la "chiave", la base, il punto di partenza. Potevo a quel punto immettere nel programma infinite risposte ad infinite domande, fino ad ottenere un risultato il più possibile completo. Più erano le risposte alle domande e più il programma sarebbe risultato veritiero, in pratica una specie di "amico virtuale basico". Se poi a determinate domande si assegna un "comando" ecco che da semplice amico virtuale il programma diventa un "assistente virtuale", un po come quelli ai quali oggi siamo abituati.

Se ad esempio vogliamo rendere la grafica un po' più professionale (simile al DOS) e accentuare il titolo del programma aggiungiamo le seguenti due righe all'inizio del codice:

10 POKE 53280,0
15 POKE 53281,0

Il significato di questi due codici e come modificare i colori a vostro piacimento lo spiego nella prima pagina dedicata al LINGUAGGIO BASIC.

Nell'immagine a sinistra la pagina di programmazione e a destra il risultato grafico a programma avviato:

PALLINA RIMBALZANTE

Quello che segue è un semplice programma di animazione che come scopo ha quello di visualizzare nello schermo una pallina rimbalzante, che si muoverà da sinistra verso destra per poi tornare indietro. Il comando REM è semplicemente un commento di cosa andrà ad eseguire il programma, mentre i due punti ":" servono per separare un'istruzione dall'altra. Gli spazzi sono sempre necessari. All'interno delle graffe viene riportato come ottenere il simbolo da inserire nel programma, ad esempio dove trovate questo {CRSR LEFT} significa che dovete tenere premuto il tasto SHIFT e contemporaneamente premere il tasto per spostare il cursore verso sinistra.

10 REM PALLA RIMBALZANTE
20 PRINT "{CLR/HOME}"
30 FOR X=1 to 10: PRINT "{CRSR DOWN}": NEXT
40 FOR BL=1 to 40
50 PRINT" O{CRSR LEFT}";: REM (O è uno SHIFT-Q)
60 FOR TM=1 TO 5
70 NEXT TM
80 NEXT BL
90 REM MOVE BALL RIGHT TO LEFT
100 FOR BL=40 TO 1 STEP -1
110 PRINT" {CRSR LEFT}{CRSR LEFT}O{CRSR LEFT}";
120 FOR TM=1 TO 5
130 NEXT TM
140 NEXT BL
150 GOTO 20
160 END

ESEMPIO PER FAR ESEGUIRE UN SUONO

Fare eseguire un suono può essere utile per testare il funzionamento del chip audio in assenza di un lettore di dati (datassette o floppy drive) o di un qualsiasi gioco o programma. Nel caso del Commodore 64 la versione BASIC è la V2, pertanto per fare eseguire un semplice suono è necessario scrivere un piccolo programma come il seguente:

5 FOR L = 54272 TO 54296 : POKE L,0 : NEXT
10 POKE 54296,15
20 POKE 54277,190
30 POKE 54278,248
40 POKE 54273,17 : POKE 54272,37
50 POKE 54276,17
60 FOR T = 1 TO 250 : NEXT
70 POKE 54276,16

Se invece stiamo utilizzando una versione BASIC più evoluta come il BASIC V7.0 di Microsoft del Commodore 128 per fare un esempio, o la versione MSX BASIC 1.0 dell' MSX 1 (per citare un altro esempio), il comando per fare eseguire un suono o una specifica nota musicale è molto più semplice:

PLAY "D"

In questo caso verrà eseguita una nota corrispondente al tasto "D", ma possiamo far eseguire una sequenza di note semplicemente digitando lo stesso comando "PLAY" seguito da più note:

PLAY "CDEFGA"

Esempi BASIC torna alla pagina 1

HomePage | passionecommodore.it | Privacy Policy | Cookie Policy