Sinclair BASIC e Le belle cose: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
m fix tecnico tag HTML
 
LauBot (discussione | contributi)
m Bot: passaggio degli url da HTTP a HTTPS
 
Riga 1:
{{Album <!-- per la compilazione vedi Template:Album -->
Il '''Sinclair BASIC''' (dal nome di Sir [[Clive Sinclair]]) è un dialetto del [[linguaggio di programmazione]] [[BASIC]] utilizzato negli [[home computer]] ad [[8 bit]] prodotti da [[Sinclair Research]] e [[Timex Sinclair]]. L'[[interprete (informatica)|interprete]] del Sinclair BASIC fu sviluppato da ''Nine Tiles Networks Ltd.''.
|titolo = Le belle cose
|titoloalfa = belle cose, Le
|artista = Sikitikis
|tipo album = Studio
|giornomese = 19 novembre
|anno = 2012
|postdata =
|etichetta = [[Infecta Suoni E Affini]]
|produttore =
|durata =
|genere = Alternative Rock
|genere2 = Indie Pop
|genere3 = Musica elettronica
|registrato = 2011-2012
|numero di dischi = 1
|numero di tracce = 11
|note =
|numero dischi d'oro =
|numero dischi di platino =
|precedente = [[Dischi fuori moda]]
|anno precedente = 2010
|successivo =
}}
 
'''''Le belle cose''''' è il quarto [[album discografico|album]] in studio dei [[Sikitikis]], band [[cagliari]]tana, pubblicato il 19 novembre [[2012]].
Sviluppato nel [[1979]], nacque originariamente per essere incluso nei 4 [[Kilobyte|KB]] di [[read-only memory|ROM]] del [[Sinclair ZX80]] e, a causa di questo ridotto quantitativo di memoria, risultò essere nella sua versione iniziale una [[implementazione]] incompleta del BASIC standard [[American National Standards Institute|ANSI]] del [[1978]]. Il linguaggio evolvette da questa prima versione fino a quella quasi completa integrata nei 16 KB di ROM dello [[ZX Spectrum]], passando per una versione intermedia inserita negli 8 KB di ROM dei computer [[Sinclair ZX81]] e [[Timex Sinclair 1000]].
 
==Il disco==
==Il Sinclair BASIC dello ZX Spectrum==
Il disco è stato registrato presso il Natural Head Quarter di [[Corlo (Ferrara)|Corlo]] ([[provincia di Ferrara|FE]]) e lo Sleepwalkers di [[Guspini]] ([[provincia di Cagliari|CA]]) da Manuele “Max Stirner” Fusaroli e Gabriele Boi.
===Parole riservate===
Il [[missaggio]] è stato curato dallo stesso Fusaroli presso lo studio di Corlo, mentre la masterizzazione è stata curata da Sean Magee a [[Londra]].<ref>[http://www.rockit.it/sikitikis/album/le-belle-cose/20847 Le belle cose] rockit.it</ref>
[[File:ZXSpectrum48k.jpg|thumb|right|La tastiera di uno [[ZX Spectrum]]: le parole chiave del [[BASIC]] erano inserite mediante la pressione di particolari combinazioni di tasti funzione e lettere. Si notino intorno ai tasti i suggerimenti dei comandi scritti con colori differenti, ad indicare la combinazione richiesta]]
L'immagine di copertina è tratta dall'opera ''Guardo oltre'' di [[Federico Carta]].
Sullo ZX Spectrum c'erano 86 parole riservate al Sinclair BASIC: queste includevano ''comandi'' (ce n'erano 50), ''funzioni'' (31) ed altre ''parole chiave'' (5), inserite attraverso uno specifico sistema delle macchine Sinclair. I comandi più comuni richiedevano la pressione di un singolo tasto: ad esempio, la pressione del tasto "P" causava l'apparizione dell'intera stringa <code>PRINT</code> (comando). I comandi di uso meno frequente richiedevano delle sequenze di tasti più complesso: ad esempio, <code>BEEP</code> richiedeva la pressione dei tasti CAPS SHIFT e SYMBOL SHIFT per accedere alla modalità estesa della tastiera (gli ultimi modelli integravano il tasto EXTENDED MODE che sostituiva questa combinazione), poi si doveva tenere premuto il tasto SYMBOL SHIFT e contemporaneamente premere il tasto "Z". Le parole chiave erano indicate sulla tastiera con uno schema a colori che indicava la sequenza di tasti SHIFT che era necessaria. Quello che segue è l'elenco delle parole chiave (quelle <u>sottolineate</u> sono funzioni):
Il singolo di lancio dell'album è l'omonima traccia ''Le belle cose'', per la quale è stato realizzato un video diretto e montato da [[Luca Percivale]].<ref>[https://www.youtube.com/watch?v=ZpeCRs5ta20 Sikitikis - Le belle cose] youtube.com</ref>
 
==Tracce==
:<u>ABS</u>, <u>ACS</u>, <u>AND</u><sup><small>1</small></sup>, <u>ASN</u>, ''AT'', <u>ATN</u>, <u>ATTR</u>, BEEP, BIN, BORDER, BRIGHT<sup>7</sup>, CAT<sup><small>2</small></sup>, <u>CHR$</u><sup><small>3</small></sup>, CIRCLE, CLEAR, CLOSE#<sup><small>2</small></sup>, CLS, <u>CODE</u><sup><small>3</small></sup>, CONTINUE, COPY, <u>COS</u>, DATA, DEF FN, DIM, DRAW, ERASE<sup><small>2</small></sup>, <u>EXP</u>, FLASH<sup>7</sup>, <u>FN</u>, FOR, FORMAT<sup><small>2</small></sup>, GO SUB, GO TO, IF<sup><small>4</small></sup>, <u>IN</u>, INK<sup>7</sup>, <u>INKEY$</u><sup><small>3</small></sup>, INPUT, <u>INT</u>, INVERSE<sup>7</sup>, <u>LEN</u>, LET<sup><small>5</small></sup>, ''LINE'', LIST, LLIST, <u>LN</u>, LOAD, LPRINT, MERGE, MOVE<sup><small>2</small></sup>, NEW, NEXT, <u>NOT</u><sup><small>1</small></sup>, OPEN#<sup><small>2</small></sup>, <u>OR</u><sup><small>1</small></sup>, OUT, OVER<sup>7</sup>, PAPER<sup>7</sup>, PAUSE, <u>PEEK</u>, <u>PI</u>, PLOT, <u>POINT</u>, POKE, PRINT, RANDOMIZE, READ, REM, RESTORE, RETURN, <u>RND</u>, RUN, SAVE, <u>SCREEN$</u><sup><small>3</small></sup>, <u>SGN</u>, <u>SIN</u>, <u>SQR</u>, ''STEP'', <u>STR$</u><sup><small>3</small></sup>, ''TAB'', <u>TAN</u>, ''THEN'' <sup><small>4</small></sup>, <u>TO</u>, <u>USR</u><sup><small>8</small></sup>, <u>VAL</u><sup><small>3, 6</small></sup>, <u>VAL$</u><sup><small>3</small></sup>, VERIFY
{{Tracce
|Titolo1 = Le belle cose
|Titolo2 = La mia piccola rivoluzione
|Titolo3 = Soli
|Featuring3 = [[Sista Namely]]
|Titolo4 = Tiramisù
|Titolo5 = Apnea
|Titolo6 = Aria
|Titolo7 = Col cuore in gola
|Titolo8 = Hai fatto male (a farmi bene)
|Titolo9 = La casa sull'albero
|Titolo10 = Hey tu!
|Titolo11 = Amori stupidi
}}
 
==Formazione==
I comandi presenti solo sullo ZX81 e sui suoi [[clone (informatica)|cloni]], sul TS1000 e sul [[Timex Sinclair 1500]] erano:
* Diablo (Alessandro Spedicati): [[Canto|voce]] ed [[Effetto musicale|effetti sonori]].
* Jimi (Gianmarco Diana): [[Basso elettrico|basso]].
* Zico (Enrico Trudu): [[Organo (strumento musicale)|organo]] e [[Tastiera (strumento musicale)|tastiere]].
* Lazy (Sergio Lasi): [[Batteria (strumento musicale)|batteria]].
 
==Note==
:FAST, SCROLL, SLOW, UNPLOT, GOSUB, GOTO (questi ultimi sullo Spectrum erano sostituiti da GO SUB e GO TO)
 
<references/>
Sullo ZX Spectrum ogni parola riservata era assegnata ad un carattere il cui codice era compreso fra 165 e 255 della tabella [[ASCII]] che veniva espanso utilizzando facendo riferimento ad una tavola di [[Token (testo)|token]] residente in ROM. Come conseguenza di ciò, in un programma le parole riservate occupavano giusto 1 [[byte]] di memoria, un metodo che garantiva un ottimo risparmio di memoria rispetto ai sistemi di memorizzazione tradizionali lettera-per-lettera (un sistema utilizzato anche sui computer [[Commodore BASIC|Commodore]]). L'interprete BASIC poteva, inoltre, riconoscere i comandi o le funzioni analizzando un singolo byte del listato.
 
{{Portale|musica}}
Gli Spectrum della serie ''128K'' (lo ZX Spectrum 128, +2, +3, +2A e +2B) introdussero un sistema di inserimento delle parole chiave del BASIC convenzionale, lettera-per-lettera, nonché 2 nuovi comandi nessuno dei quali presenti o riconosciuti dall'interprete BASIC dei precedenti modelli a 48K:
 
*PLAY (che pilotava il [[microprocessore|chip]] sonoro [[General Instrument AY-3-8910|AY-3-8910]] dello Spectrum 128K)
*SPECTRUM (che impostava lo Spectrum 128K in modalità compatibile Spectrum 48K)
 
===Note===
# Le funzioni <code>AND</code>, <code>NOT</code> e <code>OR</code> erano [[operatore logico|operatori logici]].
# <code>CAT</code>, <code>ERASE</code>, <code>FORMAT</code> e <code>MOVE</code> erano stati inizialmente pensati per essere utilizzati con delle periferiche ma al momento del lancio dello ZX Spectrum questi comandi non erano stati ancora implementati ed il loro uso generava un errore ("Invalid Stream"). Successivamente essi furono implementati nella ''shadow'' ROM dello [[ZX Interface 1]] ed usati per lo [[ZX Microdrive]] (la ''shadow'' ROM era indirizzata quando l'interprete BASIC trovava un errore: per questo motivo molti comandi per il Microdrive utilizzavano un carattere "*").
# I nomi delle variabili di tipo [[stringa (informatica)|stringa]] dovevano essere lunghe 1 solo carattere: <code>LET A=5</code>, <code>LET Apples=5</code> e <code>LET A$="Hello"</code> sono tutte dichiarazioni valide, mentre non lo è <code>LET APPLES$="Fruit"</code>.
# A differenza di altri dialetti BASIC, il Sinclair BASIC non includeva l'operatore <code>ELSE</code> nella clausola <code>IF&ndash;THEN(&ndash;ELSE)</code>. Per questo motivo il controllo <br>&nbsp;&nbsp;&nbsp;<code>10 IF V=5 THEN GO TO 50 ELSE GO TO 100</code><br>diventava<br>&nbsp;&nbsp;&nbsp;<code>10 IF V=5 THEN GO TO 50</code><br>&nbsp;&nbsp;&nbsp;<code>20 GO TO 100</code>
# <code>LET</code> è obbligatorio (es.: <code>LET A=1</code> ma mai <code>A=1</code>), a differenza di molti altri dialetti BASIC.
# La funzione <code>VAL</code> non valutava solo i numeri ma anche intere espressioni. Per esempio, dato <code>LET A$="3*3+4+COS(0)"</code> il comando <code>PRINT VAL(A$)</code> restituiva 14.
# <code>INK</code>, <code>PAPER</code>, <code>FLASH</code>, <code>BRIGHT</code>, <code>OVER</code> e <code>INVERSE</code> impostavano gli attribuiti per la visualizzazione del testo e della grafica sullo schermo: potevano operare come comandi, ed in questo caso modificavano tutti i successivi output fino ad una nuova modifica delle impostazioni, oppure come parametro di <code>PRINT</code>, ed in questo caso la modifica era annullata al termine della sua esecuzione.
# Poteva essere avviata l'esecuzione di [[linguaggio macchina]] usando la funzione <code>USR</code> passandogli come valore l'indirizzo di memoria a cui iniziava il codice ed ottenendo come risultato il contenuto dell'intero registro BC (su altri computer basati sullo [[Zilog Z80|Z80]] veniva restituito il valore del registro HL), per cui:<br>&nbsp;&nbsp;&nbsp;<code>LET A=USR 30000</code><br>iniziava l'esecuzione del codice macchina presente all'indirizzo 30000 e, dopo il suo completamento, memorizzava il valore della coppia di byte costituenti il registro BC nella variabile <code>a</code>, che poteva essere utilizzata dal programma chiamante.
 
A differenza dei dialetti BASIC per home computer derivati dal [[Microsoft BASIC]], le funzioni <code>LEFT$()</code>, <code>MID$()</code> e <code>RIGHT$()</code> del Sinclair BASIC accedevano alle stringhe come [[array]]: ad esempio, <code>A$ (5 TO 10)</code> restituiva una sottostringa contenente i caratteri di <code>A$</code> compresi fra il 5° ed il 10°. Come nei moderni linguaggi di programmazione quali il [[Python]], era possibile rimpiazzare i comandi <code>LEFT$()</code> e <code>RIGHT$()</code> semplicemente omettendo la parte sinistra o destra del parametro: per questo motivo <code>A$ ( TO 5)</code> è equivalente a <code>LEFT$(A$,5)</code>.
 
==Timex BASIC==
Il dialetto Timex BASIC, utilizzato nei compatibili Spectrum come il [[Timex Sinclair 2068]] (ma non nel [[Timex Computer 2048]] che utilizzava il Sinclair BASIC tradizionale) aveva le seguenti parole chiavi aggiuntive:
 
* <code>DELETE</code> cancellava un intervallo di linee del programma BASIC
* <code>FREE</code> era una funzione che restituiva il quantitativo di memoria libera.
* <code>ON ERR</code> era una funzione che intercettava gli errori, utilizzata principalmente per salti condizionali <code>ON ERR GO TO</code> o <code>ON ERR GO SUB</code>.
* <code>RESET</code> resettava la macchina e le periferiche.
* <code>SOUND</code> pilotava il chip audio AY-3-8192.
* <code>STICK</code> leggeva la posizione del [[joystick]] interno ([[Timex Sinclair 2090]]).
 
==Bibliografia==
*{{cita libro|autore=Mike Lord|titolo=Alla scoperta del BASIC Spectrum|editore=Gruppo Editoriale Jackson|anno=1985|annooriginale=1982|ISBN=887056228X|url=http://www.museodelcomputer.org/index.php/nav=Biblioteca.40/Documento=143/Livello=SCHEDA/Language=ITA|formato=pdf}}
* {{en}} Steven Vickers, ''[http://www.worldofspectrum.org/ZXBasicManual/ Sinclar ZX Spectrum BASIC Programming]'', Sinclair Research, 1982
* {{en}} Neil Ardley, ''Sinclair ZX Spectrum+ User Guide'', Dorling Kindersley in associazione con Sinclair Research, 1984, ISBN 0-86318-080-9.
 
==Voci correlate==
* [[Beta BASIC]], di ''Andy Wright'': nato come estensione del Sinclair BASIC, alla fine divenne un interprete vero e proprio.
* [[SuperBASIC]], dialetto BASIC molto avanzato, introdotto con il [[Sinclair QL]]: aveva delle similitudini con il Sinclair BASIC.
 
==Collegamenti esterni==
* [http://www.worldofspectrum.org/ZX81BasicProgramming/ Sinclair ZX81 Basic Programming]
* Andrew Owen, [http://scratchpad.wikia.com/wiki/Sinclair_BASIC_History The History of Sinclair BASIC]
 
{{Portale|informatica}}
 
[[Categoria:Computer Sinclair]]
[[Categoria:BASIC]]