BASICODE - BASICODE
BASICODE era un progetto per computer inteso a creare uno standard unificato per il linguaggio di programmazione BASIC . BASIC era disponibile su molti computer domestici popolari , ma c'erano innumerevoli varianti che erano per lo più incompatibili tra loro. Il progetto è stato avviato nel 1980 da Hobbyscoop, un programma radiofonico dell'organizzazione radiotelevisiva olandese Nederlandse Omroep Stichting (NOS).
L'implementazione di base erano applicazioni di utilità specifiche dell'architettura che eseguivano chiamate di subroutine per testo, audio e suono definite nello standard del linguaggio BASICODE in base alle capacità del computer in questione. Queste applicazioni, chiamate Bascoder , hanno anche consentito la condivisione di dati e programmi su diverse piattaforme di computer definendo un formato di dati per le cassette compatte che venivano regolarmente utilizzate come supporti di memorizzazione negli anni '80. Un programma BASICODE memorizzato su cassetta può essere caricato ed eseguito su qualsiasi computer che supporti la lingua. BASICODE è stato spesso chiamato " Esperanto per computer" per questo motivo.
BASICODE
La situazione all'inizio degli anni '80
Dalla fine degli anni '70 alla fine degli anni '80 i computer domestici basati su processori a 8 bit erano molto popolari. Tra i modelli più noti c'erano il TRS-80 di Tandy , il PET 2001 , VIC-20 , C64 , C128 e Plus / 4 di Commodore , l' Atari 400/800 (XL / XE) , i computer Sinclair Research ( ZX80 , ZX81 , ZX Spectrum ) e la famiglia KC85 popolare nella Repubblica Democratica Tedesca . Tutti questi computer avevano una CPU del tipo MOS Technology 6502 o Zilog Z80 , da 16 a 64 kilobyte di RAM , connettori per un lettore di cassette o integrato per l'archiviazione dei dati e infine un interprete BASIC che era generalmente memorizzato nella ROM . La curva di apprendimento piatta del BASIC, che era stata progettata pensando ai nuovi arrivati alla programmazione, e la disponibilità immediata del linguaggio su tutti questi computer hanno portato molti utenti a scrivere e condividere i propri programmi.
Un problema era che la condivisione di programmi e dati tra computer di produttori diversi era difficile perché i vari dialetti BASIC erano totalmente incompatibili in alcune aree. Hanno usato diversi comandi BASIC per eseguire la stessa azione (come cancellare lo schermo, disegnare un pixel o riprodurre un suono), in modo che un programma BASIC scritto per il C64 non funzionasse su un Atari XL senza modifiche e viceversa. Un'altra difficoltà era il fatto che, sebbene questi computer fossero simili, differivano comunque per aspetti hardware chiave come la risoluzione dello schermo, la tavolozza dei colori disponibile o le capacità audio. Infine, anche i formati di dati utilizzati per memorizzare i dati su cassetta erano incompatibili.
Il primo standard
Intorno al 1980 l'emittente olandese NOS iniziò a trasmettere programmi per computer via radio. Poiché programmi e dati venivano memorizzati come audio su cassette compatte, era possibile registrare una trasmissione del genere su nastro e caricarla successivamente nel computer. Tuttavia, a causa dei problemi menzionati in precedenza, il programma doveva essere adattato a quasi tutti i tipi di computer più diffusi e trasmesso anche più volte. Poiché la cassetta compatta ha una densità di dati molto bassa rispetto ai supporti di memorizzazione odierni, la registrazione dei programmi ha richiesto molto tempo e solo un numero limitato di programmi poteva essere trasmesso per spettacolo. Quindi, la trasmissione aggiuntiva di diverse versioni degli stessi programmi è stata un grande inconveniente.
Nel 1982 i dirigenti di NOS decisero di sviluppare un formato dati unificato. Un'applicazione specifica per ogni modello di computer, chiamata Bascoder , gestiva il richiamo e l'archiviazione di programmi e dati in questo formato unificato da nastro. I Bascoder erano trasmessi anche da NOS, ma potevano anche essere acquistati da NOS in cassetta e condivisi tra amici e conoscenti. Il formato, che era molto ben protetto dalle interferenze, poteva essere letto e scritto da tutti i comuni hardware dei computer domestici. La robustezza del formato ha reso possibile anche la trasmissione tramite radio a onde medie , che ha aumentato la portata e, a sua volta, il numero di potenziali utenti. Ad esempio, i dati trasmessi dalla stazione radio olandese Hilversum potrebbero essere ricevuti in gran parte della Repubblica democratica tedesca .
CODICE BASE 2
Lo standard ha risolto uno dei suddetti problemi, i formati di dati incompatibili. Tuttavia, i programmi dovevano ancora essere adattati al dialetto BASIC di ogni computer e alle capacità hardware. Limitare i programmi a usare solo istruzioni comuni a tutti i dialetti significava grandi limitazioni in termini di funzionalità, ad esempio astenersi completamente dall'usare grafica e suono e solo metodi scomodi per inserire dati usando la tastiera e per controllare l'output dei caratteri sullo schermo. Per questo motivo, nel 1984 è stato creato lo standard avanzato BASICODE 2. I Bascoder che utilizzavano questo standard non contenevano solo routine per l'input e l'output di dati su nastro. Oltre a una serie di circa 50 comandi, funzioni e operatori BASIC comuni a tutti i dialetti BASIC, lo standard linguistico di BASICODE 2 definiva una libreria di subroutine che emulava le stesse capacità su tutti i computer supportati.
Per ottenere ciò, tutte le righe di programma inferiori a 1000 erano riservate al Bascoder, ei programmi BASICODE potevano iniziare solo dalla riga numero 1000. Le subroutine del Bascoder nelle righe inferiori a 1000 venivano chiamate con un comando GOSUB . Gli argomenti necessari sono stati passati al Bascoder utilizzando speciali variabili predefinite riservate all'uso da parte del Bascoder. Lo standard conteneva una serie di regole aggiuntive rese necessarie dalle limitazioni di alcuni modelli di computer. Ad esempio, sullo ZX-81 una riga di codice poteva contenere solo un singolo comando BASIC, un comportamento che quasi nessun altro computer condivideva. Su un computer della serie KC, una riga di codice non può essere più lunga di 60 caratteri. Queste limitazioni dovevano essere applicate a tutti i programmi BASICODE per garantire l'indipendenza dalla piattaforma, perché il Bascoder era interpretato dallo stesso interprete BASIC specifico del computer del programma BASICODE stesso.
Pertanto, i Bascoder sono stati caricati sui vari computer come normali programmi e hanno fornito le routine aggiuntive per lo standard comune e l'I / O della cassetta in seguito. I programmi scritti in BASICODE erano utilizzabili solo dopo che il Bascoder era stato caricato e avviato. Tuttavia, su alcuni computer i programmi BASICODE potrebbero essere uniti alle routine dei Bascoder e salvati nel formato dati nativo. Il programma risultante non era più indipendente dalla piattaforma, ma a causa della maggiore densità di dati della maggior parte dei formati nativi, poteva essere caricato molto più velocemente dello stesso programma in formato BASICODE. Inoltre, poiché non era necessario caricare il Bascoder completo per eseguire il programma, più RAM rimaneva disponibile in fase di esecuzione.
C'erano BASICODE 2 Bascoder per Exidy Sorcerer , Color Genie , Commodore PET , VIC-20 , C64 , Amiga , Sinclair ZX81 , ZX Spectrum , QL , Acorn Atom , BBC Micro , Electron , Tandy TRS-80 , MSX , Oric Atmos , P2000T , Grundy NewBrain , Amstrad CPC , IBM PC , Apple II , Texas Instruments TI-99 / 4A , Mattel Aquarius e altri. Inoltre, gli utenti avanzati erano in grado di scrivere il proprio Bascoder per il proprio sistema preferito, poiché lo standard linguistico e il formato dei dati erano aperti e ben documentati. Lo standard BASICODE 2 ha reso possibile lo sviluppo di programmi indipendenti dalla piattaforma con capacità avanzate (per l'epoca). Inoltre, BASICODE è stato utilizzato per trasmettere e condividere informazioni come notizie sulla scena del computer via radio sotto forma di cosiddetti "giornali". In questo modo sono stati trasmessi anche un tutorial sulla codifica BASICODE e altra documentazione.
CODICE BASE 3 / 3C
Nel 1986 è stato sviluppato il nuovo standard BASICODE 3. Le aggiunte più importanti sono state routine per semplici grafici monocromatici , lettura e scrittura di dati da programmi e output audio. BASICODE 3 rese BASICODE popolare nella scena informatica della DDR, e dal 1989 in poi i programmi BASICODE furono trasmessi via radio in tutta la DDR. Inoltre, è stato pubblicato un libro che includeva un disco in vinile con Bascoder per tutti i computer comuni nella DDR. L'ultima revisione di BASICODE, che presentava grafica a colori, è stata rilasciata come BASICODE 3C nel 1991.
La fine di BASICODE
A partire dal 1990 circa la popolarità di BASICODE è diminuita rapidamente a causa dell'aumento dei computer a 16 e 32 bit, in particolare varianti per PC IBM e sistemi compatibili. Anche se c'erano Bascoder per queste macchine, BASICODE era troppo limitato per utilizzare le risorse fornite da quella generazione di computer. Inoltre, a causa del numero molto minore di architetture comuni nell'era a 16 e 32 bit, il motivo principale per lo sviluppo e l'uso di BASICODE è diventato discutibile. Man mano che l'hardware e il software dei nuovi sistemi diventavano sempre più complessi, la maggior parte degli utenti diventava incapace o riluttante a scrivere programmi. L'aumento delle interfacce utente grafiche ha contribuito al declino della popolarità dei computer a 8 bit e di conseguenza anche BASICODE.
Il successore dell'emittente statale della RDT, il Deutschlandsender Kultur (che in seguito divenne parte della nuova Deutschlandradio ), continuò a trasmettere programmi BASICODE fino al 1992 circa. Uno standard pianificato chiamato BASICODE 4 non divenne mai realtà, perché NOS smise di supportare il progetto poco dopo BASICODE 3C è stato rilasciato. BASICODE è ancora utilizzato dagli appassionati, in particolare dai fan dei computer a 8 bit, per un valore nostalgico, ma non ha alcuna rilevanza pratica.
Significato storico
BASICODE è stato un primo tentativo di creare uno standard per lo scambio di programmi e dati tra architetture di computer domestici reciprocamente incompatibili. È più o meno contemporaneo allo standard MSX sviluppato da Microsoft , che specificava una piattaforma hardware condivisa oltre a un dialetto BASIC comune. Questi computer sono stati venduti da più società e sono stati in concorrenza diretta con altri computer domestici popolari. MSX ha avuto successo soprattutto nei mercati interni dei produttori, ad esempio Giappone , Corea del Sud , Paesi Bassi e Brasile . A differenza di MSX, BASICODE non definiva alcun hardware, ma uno standard di linguaggio per il linguaggio di programmazione BASIC, che era quasi onnipresente nei computer domestici, oltre a un formato dati per cassette compatte che poteva essere letto e scritto su tutti i computer per i quali BASICODE era disponibile. Di conseguenza, l'implementazione di BASICODE dipendeva esclusivamente da software aggiuntivo e quindi non era limitata ai computer di produttori specifici. La base installata di BASICODE è difficile da stimare, perché sia i Basicoder che i programmi scritti in BASICODE erano disponibili gratuitamente. C'era un Bascoder per quasi tutti i computer di casa venduti in quest'epoca. Commercialmente, BASICODE non aveva importanza perché era sempre condiviso gratuitamente.
Si deve affermare che BASICODE, per impostazione predefinita, non era in grado di utilizzare le capacità dei computer host nella loro piena estensione. Lo standard linguistico definito da BASICODE era il minimo comune denominatore di tutti i sistemi informatici rilevanti. Questo concetto è stato parzialmente abbandonato solo con BASICODE3 / 3C, poiché alcuni computer o varianti di computer come ZX80 / ZX81 e KC87 non erano in grado di grafica e colore e le nuove sezioni di BASICODE che utilizzavano queste funzionalità non erano utilizzabili su di essi. Soprattutto per le applicazioni che facevano affidamento sul tempo, sulla grafica o sul suono, ad esempio i videogiochi , BASICODE era chiaramente inferiore ai programmi scritti in BASIC "nativo" o codice macchina . I punti di forza di BASICODE erano nelle aree della progettazione di applicazioni, del software educativo e della condivisione dei dati. Il formato BASICODE è stato utilizzato anche per i programmi Pascal . Pascal era un linguaggio molto più coerente tra i sistemi, ma i compilatori erano disponibili solo per pochissimi tipi di computer domestici.
Il concetto di base di BASICODE, che è la definizione di uno standard di linguaggio per lo sviluppo di software indipendente dalla piattaforma e l'implementazione di detto standard come runtime specifico del sistema (Bascoder) è stato successivamente rivisitato nel linguaggio di programmazione Java , sotto forma di sistema operativo -specifiche Java Virtual Machine che eseguono programmi Java. Inoltre, la distribuzione di dati e informazioni nel formato dati BASICODE ricorda gli attuali tipi di documenti indipendenti dalla piattaforma come il Portable Document Format (PDF) e le applicazioni di lettura PDF necessarie.
Il formato dati BASICODE
Nel formato BASICODE, la registrazione dei programmi è analoga alla registrazione dei dati. Quindi, durante la registrazione di programmi, i comandi non vengono letti e scritti sotto forma di unità a byte singolo ( token ), ma carattere per carattere.
Un blocco dati inizia con il carattere 02 (STX, inizio del testo) e termina con il carattere 03 (ETX, fine del testo). Dopo ETX, viene trasmesso un byte di controllo composto dai byte precedenti inclusi STX ed ETX per addizione binaria (XOR). Un carattere 0D (decimale 13) segna la fine di una riga durante la trasmissione. I file di dati creati dai programmi possono utilizzare tutti i caratteri come dati e non devono contenere caratteri di controllo. Vengono letti e scritti in blocchi di 1024 byte.
Ogni byte viene trasmesso nella sequenza "1 bit di inizio - 8 bit di dati - 2 bit di arresto". I bit di dati vengono inviati prima con il bit meno significativo. Il bit più significativo viene trasmesso invertito ed è sempre 0 (trasmesso come 1) perché BASICODE utilizza solo caratteri ASCII . Quindi un altro modo per descrivere la sequenza di trasmissione è "1 bit di inizio - 7 bit di dati - 3 bit di arresto". La ridondanza risultante ha lo scopo di massimizzare la compatibilità con diversi computer.
Per i segnali audio, vengono utilizzate onde quadre sotto forma di un'onda da 1200 Hz per un bit "0" e due onde da 2400 Hz per un bit "1", con un tempo di 1/1200 di secondo per ogni bit. Una pausa più lunga di 1/1800 di secondo tra le onde segna l'inizio di un byte, rendendo l'onda successiva il bit di inizio. Dopo il bit di inizio e prima degli otto bit di dati c'è un'altra pausa di almeno 1/1800 di secondo. Un segnale a 2400 Hz con una lunghezza di cinque secondi segna l'inizio di una trasmissione e viene utilizzato per la sincronizzazione del programma di lettura. Al termine della trasmissione viene inviato un segnale a 2400 Hz della durata di un secondo.
La velocità dati teorica di questo formato è di 1200 bit al secondo. Considerando la trasmissione di tre bit aggiuntivi per byte di dati e le pause prima e dopo il bit di inizio, ciò si traduce in una velocità dati utilizzabile di 102 byte al secondo e circa 6 kilobyte al minuto.
Decodifica di cassette audio
Su un computer moderno, le cassette audio Basicode possono essere decodificate utilizzando minimodem , un modem software disponibile gratuitamente. Se la cassetta è stata convertita in un file wav chiamato basicode.wav , il seguente comando la decodificherà nei corrispondenti byte di dati in un file chiamato basicode.txt .
minimodem --rx 1200 -S 1200 -M 2400 --startbits 1 -7 --stopbits 3 -f basicode.wav >basicode.txt
Guarda anche
Ulteriore lettura
- (in tedesco) Michael Wiegand, Manfred Fillinger: BASICODE. Mit Programmkassette. Ravensburger Buchverlag, Ravensburg 1986, ISBN 3-473-44010-8
- (in olandese) Hermine Bakker, Jaques Haubrich (autori), Stichting BASICODE (editore): Het BASICODE-3 boek. 3. Auflage. Kluwer Technische Boeken BV, Deventer / Antwerpen 1988, ISBN 90-201-2111-1
- (in tedesco) Horst Völz: Basicode mit Programmen auf Schallplatte für Heimcomputer. Verlag Technik, Berlino 1990, ISBN 3-341-00895-0
link esterno
- (in olandese) Sito ufficiale olandese di Hobbyscoop , il gruppo di sviluppo originale di BASICODE
- BASICODE: un esempio di folclore informatico olandese - Informazioni storiche
- (in tedesco) BasiCode - Software für alle - Informazioni su storia e programmazione
- BASICODE: ancora attivo all'interno di un e-group Yahoo
- i download di immagini su nastro scaricabili sono con il permesso di Hobbyscoop
- Una raccolta di programmi BASICODE di vari autori Vari programmi BASICODE