title: SAM BASIC
text: # SAM BASIC
  
  Il SAM BASIC era l'interprete BASIC contenuto nella ROM dell'home computer ad 8 bit SAM Coupé. Come in molti altri home computer dell'epoca, il SAM BASIC assolveva anche al compito di sistema operativo. Fu scritto da Andrew Wright (BetaSoft) come evoluzione del Beta BASIC dello ZX Spectrum.
  
  ## Caratteristiche principali
  
  Il SAM BASIC supportava la numerazione delle righe del programma: il più elevato numero di riga poteva essere 61439. Ogni riga poteva contenere fino a 127 istruzioni. Le stringhe potevano contenere fino a 64 KB di caratteri mentre gli array erano limitati solo dalla memoria disponibile. Il SAM BASIC era un interprete molto evoluto, supportando la programmazione strutturata e le procedure con le variabili locali ed i parametri passati per valore o per riferimento.
  
  L'interprete aveva un ottimo supporto per la grafica, con istruzioni di tracciamento di linee, di circonferenze e di riempimento molto veloci. Supportava inoltre la memorizzazione di sequenze di istruzioni grafiche per poi riprodurle successivamente senza doverle reinterpretare (un linguaggio interpretato converte ogni istruzione che incontra nel relativo codice macchina durante l'esecuzione del programma). Il SAM BASIC sopperiva alla mancanza del supporto hardware agli sprite mettendo a disposizione delle istruzioni per ritagliare e ricopiare porzioni di schermo. Esistevano anche istruzioni per passare fra le varie modalità grafiche e per modificare il numero di colonne dello schermo (32, 64 o 85).
  
  Il SAM BASIC gestiva il chip audio permettendo anche di riprodurre musica tramite interrupt.
  
  L'interprete integrava 56 funzioni matematiche e per la manipolazione delle stringhe ma anche per la gestione del mouse e della penna ottica.
  
  ## MasterBASIC
  
  A metà del 1991 Wright presentò un'estensione per l'interprete della macchina chiamata MasterBASIC. Rispetto al SAM BASIC, integrava alcune funzioni aggiuntive nell'editor, come ad esempio la possibilità di spostarsi con i cursori saltando singole parole, potenziava le funzionalità di debugging introducendo il tracciamento dell'esecuzione del programma, introduceva una serie di istruzioni per il trattamento delle stringhe dati, ampliava le possibilità di gestione del suono e della grafica.
  
  Il MasterBASIC richiedeva il SAMDOS versione 2.0 o superiore oppure il MasterDOS.
  
  