Menu

Home Breve storia Commodore VIC-20 Commodore 16 Commodore 64 Commodore 65 Commodore 128 Amiga 500 Amiga 600 Amiga 1200 Riparazioni C64 Datassette Manutenzione Riparazioni Amiga 500 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-Amiga Costruire Cavo Seriale Null-Modem Restauro estetico Emulatori Datassette Floppy BASIC Collezionare Commodore Retrogaming

Manuale del Commodore 64

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 realzione al risultato.

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

NEXT Sempre usanto 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.

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.

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

bottom corner

basic

BASIC

il BASIC è il linguaggio di programmazione sviluppato dalla Microsoft usato da tutti i computer di casa Commodore a 8 bit, dal primo Commodore PET (1977) fino al Commodore 128 (1985).

Jack Tramiel acquistò la licenza illimitata di utilizzo del Microsoft BASIC pagando a Bill Gates la somma di 25.000 dollari. Il linguaggio era adattato per il processore MOS 6502 e nel tempo ne furono sviluppate diverse versioni con varie correzioni di errori e aggirnamenti per il riconoscimento delle periferiche.

Come si può notare nella schermata di boot dei vari computer Commodore, viene riportata la versione BASIC in utilizzo sulla macchina stessa. Nel Commodore 64 e nel VIC-20 ad esempio si trova la versione 2.0 (V2), nel Commodore 16, plus/4 e 116 è installata la varsione 3.5 (V3.5), nel Commodore 128 la versione 7.0 e ne fu sviluppata una versione 10 per il Commodore 65.

SEMPLICI ESEMPI DI PROGRAMMAZIONE IN LINGUAGGIO BASIC SU C64

CALCOLI MATEMATICI

Per far eseguire un calcolo matematico al computer si usa l'istruzione "PRINT" come nell'esempio: PRINT 10 + 5 seguito dal tasto RETURN alla pressione del quale il computer darà come risultato: 15.

Si può far eseguire al computer qualsiasi calcolo matematico usando "+" per le somme, "-" per le sottrazioni, "*" per le moltiplicazioni e "/" per le divisioni. Il tasto con la freccia rivolta verso l'alto da come istruzione: elevamento a potenza. Questi simboli sono detti "OPERATORI. Naturalmente si possono far eseguire calcoli molto più complessi e come abbreviazione la parola "PRINT" può essere sostituita dal simbolo "?". Si possono ad esempio utilizzare le parentesi come nell'esempio: ? (10 + 5) * (20 + 5). Alla pressione del tasto RETURN il computer darà come risultato 375.

ISTRUZIONI COMBINATE

I COMANDI "PRINT" E "GOTO"

Una serie di istruzioni combinate generano un PROGRAMMA. L'esempio più breve e pratico è quello di istruire la macchina a ricevere un'informazione, memorizzarla ed eseguirla. In BASIC si usa la parola "PRINT" per "stampare" l'informazione nella memoria e la parola "GOTO" per dire al computer di portarsi su una determinata riga di comando del programma per eseguirla nuovamente. Digitando ad esempio la seguente riga: 10 PRINT "PASSIONECOMMODORE", il computer ci darà come risultato la parola stessa da noi immessa. Ma se oltre a questo comando digitiamo una seconda riga: 20 GOTO 10 diremo al computer di tornare alla riga 10 (GOTO = vai a) e ripeterla come risultato all'infinito. Digitando il comando RUN avremo pertanto una serie infinita dello stesso risultato, ossia il ripetersi della parola PASSIONECOMMODORE su una colonna in verticale. Se dopo le virgolette sulla prima riga di comando aggiungiamo il simbolo ";" la parola verrà ripetuta all'infinito ma per orizzontale. Possiamo inoltre dire al computer che il programma è finito, aggiungendo un'ultima riga di comando con l'istruzione "END". Qui sotto i due esempi:

10 PRINT "PASSIONECOMMODORE"
20 GOTO 10
30 END
RUN

10 PRINT "PASSIONECOMMODORE";
20 GOTO 10
30 END
RUN

Per fermare l'esecuzione del programma in qualsiasi momento basta premere il tasto "RUN STOP", mentre per visualizzare nuovamente tutto il programma basta digitare "LIST".

Perchè cominciare ogni riga di comando con un numero? Dare un numero ad ogni riga di comando serve a dare una progressione all'esecuzione delle stesse. Possiamo ad esempio dare come nome alla prima riga il numero 10, alla seconda il numero 20, alla terza il numero 30 e così via. Perchè utilizzare i numeri 10,20,30 e non 1,2 e 3? Non siamo obbligati ad utilizzare questi numeri decimali. Questi si usano per il semplice motivo che se ci accorgiamo di aver dimenticato di scrivere una riga di comando o ne vogliamo comunque aggiungere un'altra fra due già scritte, possiamo farlo dando come nome un numero che sta fra la prima e la seconda, come ad esempio il numero 15 fra il 10 e il 20.

I COMANDI "FOR" E "NEXT"

Se invece di far ripetere all'infinito una parola, vogliamo che venga ripetuta per un numero precisato di volte (ad esempio 3), possaimo usare i comandi FOR e NEXT come nell'esempio:

10 FOR CT = 1 TO 3
20 PRINT "PASSIONECOMMODORE"
30 NEXT CT
40 END

Digitando RUN il risultato sarà il seguente:

PASSIONECOMMODORE
PASSIONECOMMODORE
PASSIONECOMMODORE

I COMANDI "IF" E "THAN"

I comandi IF (se) e THEN (allora) danno al programma una LOGICA. La stessa Logica che poi è la base della programmazione. Per fare un esempio di utilizzo di questa logica possiamo far ripetere al computer la parola PASSIONECOMMODORE per un numero preciso di volte (come nell'esempio usato con i comandi FOR e NEXT), ad esempio 5 volte:

10 CT = 0
20 PRINT "PASSIONECOMMODORE"
30 CT = CT + 1
40 IF CT < 5 THEN 20
50 END

Digitando RUN otteniamo come risultato la parola PASSIONECOMMODORE ripetuta per 5 volte. La riga di comando 40 richiama come risultato l'informazione della riga 20. Naturalmente possiamo utilizzare i vari simboli <,>,=,<>,>= e <= per dare i rispettivi significati: minore di, maggiore di, uguale a, diverso da, maggiore di o uguale a e minore di o uguale a. Già con questi simboli è facile immaginare quante informazioni possiamo immettere nei programmi.

I COLORI DELLO SFONDO E DEL BORDO

Considerando che il valore 53280 si riferisce a quello del bordo e dei caratteri dello schermo e 53281 a quello dello sfondo, possiamo cambiarli assegnandoa ciascuno di essi un colore a nostra scelta. I 16 colori disponibili hanno come assegnazione un numero che va appunto da 0 a 15, come nella seguente tabella:

0 NERO
1 BIANCO
2 ROSSO
3 CELESTE
4 PORPORA
5 VERDE
6 BLU
7 GIALLO

8 ARANCIO
9 MARRONE
10 ROSSO CHIARO
11 GRIGIO 1
12 GRIGIO 2
13 VERDE CHIARO
14 AZZURRO
15 GRIGIO 3

Digitandi l'istruzione POKE seguita dal codice dello schermo o dello sfondo, possiamo poi dopo la virgola assegnare il colore che preferiamo come nell'esempio:

POKE 53280,1 (assegnamo al bordo il colore bianco)
POKE 53281,7 (assegnamo allo sfondo il colore giallo)
Possiamo dunque assegnare tutte le combinazioni di colori che preferiamo come negli esempi quì sotto:

Possiamo ad esempio dare allo screen un aspetto simile al CP/M del Commodore 128 o di quello che sarebbe diventato il DOS nei PC, assegnando sia al bordo che allo sfondo il colore nero digitando:

POKE 53280,0
POKE 53281,0

Possiamo inoltre passare dalla modalità automatica dei caratteri in maiuscolo a quella in minuscolo, premendo contemporaneamente i tasti C=+SHIFT ottenendo questo aspetto:

ESEMPIO DI ANIMAZIONE

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

Questi semplici esempi servono per capire le nozioni base del BASIC, e li trovate nel manuale del Commodore 64. Ne inserirò altri e cercherò di far capire come si possano "personalizzare" i programmi. Partendo appunto da questi semplici programmi, una volta compresi i meccanismi del BASIC, se ne possono creare con varie personalizzazioni.

Home | Breve storia | Commodore VIC-20 | Commodore 16 | Commodore 64 | Commodore 65 | Commodore 128 | Amiga 500 | Amiga 600 | Amiga 1200 |Riparazioni C64 | Datassette Manutenzione | Riparazioni Amiga 500 | Alimentatore ATX su Amiga 500 |Creare cassette C64 | Creare floppy Amiga metodo 1 | Creare floppy Amiga metodo 2 | Visualizzare foto o mmagini PC-Amiga | Cavo seriale Null-Modem | Folppy Drive PC-Amiga | Reastauro estetico | Emulatori datassesse floppy drive | BASIC | Collezionare Commodore | Retrogaming