Jupiter Ace
Home computer di origine britannica, nato intorno ai primi anni ‘80, il Jupiter Ace è figlio della Jupiter Cantab, fondata da Richard Altwasser e Steven Vickers, due ex membri del team di progettazione del Sinclair ZX Spectrum; in particolare, Altwasser, aveva lavorato allo sviluppo dello ZX-81 e alla progettazione dell’hardware dello Spectrum.
Jupiter Ace si differenziava già all’epoca dall’ambiente di programmazione: invece del più popolare linguaggio BASIC, utilizzava Forth.
Forth era potente e ben strutturato ma, allo stesso tempo, era considerato molto difficile da imparare, mentre BASIC era ormai conosciuto da tutti.
Anche nelle scuole esisteva una sorta di “rifiuto” nel volersi avvicinare a questo nuovo linguaggio; gli studenti preferivano di gran lunga BASIC, linguaggio utilizzato maggiormente (al contrario di Forth, usato solo per il Jupiter Ace).
L’origine del nome di questo home pc deriva da uno dei primissimi computer britannici, il Pilot ACE.
Agli albori della sua diffusione, le vendite al pubblico dimostrarono di essere molto lente (si parlò di difficoltà di produzione che, in realtà, erano già state risolte nel 1983).
La verità era nascosta dietro ad alcune “lacune” tecniche di questo esemplare: dalla scelta di Forth invece che BASIC, al case scadente, alla poca memoria (iniziale), insieme al successo dello ZX Spectrum, …
Inoltre, la grafica si basava su tile e non su pixel, perciò si aveva una visuale monocromatica anziché a colori; ecco un altro motivo che ha limitato fortemente le vendite.
Perciò il Jupiter Ace non ebbe elevate vendite; oggi giorno esistono ancora alcuni degli esemplari ma, spesso, si possono acquistare a prezzi molto elevati, poiché considerati come oggetti da collezione.
L’esemplare venne spesso paragonato allo ZX81 per via delle sue simili dimensioni, l’economicità del suo costo e la forma simile, ma, internamente, assomiglia allo ZX Spectrum.
L’audio e le sue capacità erano controllate dalla CPU con frequenza e durata programmabili e, la fuoriuscita del suono avveniva tramite un piccolo altoparlante integrato.
Grafica e testo potevano essere visualizzati contemporaneamente (grafica standard 256 x 192 limitata però ai 128 caratteri 8 x 8 disponibili, insieme alla stampa grafica 64 x 48).
Per quanto riguarda la memoria, il Jupiter Ace disponeva di una ROM da 8 KB e conteneva il kernel Forth ed il sistema operativo; il dizionario predefinito era di circa 5 KB.
I restanti 3 KB servivano per supportare diverse funzionalità: accesso al registratore, libreria di numeri in virgola mobile e tabella delle definizioni dei caratteri, registrazione, ridefinizione e decompilazione di parole rieditate.
La particolarità della ROM è che era stata scritta nel codice Z80 ma alcuni esemplari erano stati codificati in Forth.
Torniamo un momento al linguaggio Forth; abbiamo definito tale linguaggio come potente e strutturato; inoltre, era considerato un linguaggio adatto proprio ai microcomputer con piccola memoria e prestazioni (relativamente) basse.
I programmi scritti con Forth erano efficienti in termini di memoria; le strutture di controllo potevano annidarsi a qualsiasi livello, limitandosi però solo alla memoria disponibile.
Questo ha consentito di implementare programmi complessi consentendo anche la programmazione ricorsiva (ACE’s Forth venne dichiarato “10 volte più veloce del BASIC”), sfruttando meno della metà della memoria rispetto ad un programma scritto in BASIC.
Abbiamo inoltre accennato molto velocemente al concetto di decompilazione; ma che cosa si intende esattamente?
Forth era stato adattato agli hardware dei pc di casa in modo tale da poter utilizzare nastri senza dischi essendo in grado di salvare/caricare i vocabolari compilati dell’utente, invece che i soliti blocchi di programmazione numerati utilizzati dai sistemi di dischetti.
Il processo di decompilazione ha quindi evitato di sprecare RAM nella simulazione di un sistema a blocchi assente, utilizzato sia con driver del disco che con quelli a nastro.
Come avveniva la decompilazione?
Facciamo una distinzione: Definer VS Compiler, vi dice già qualcosa?
- Definer era associato a “DOES”: con questo termine si indicava la creazione di nuove parole di definizione, utilizzate a loro volta per la costruzione di strutture di dati.
- Compiler era associato a “RUNS”: creava nuove parole di compilazione, utilizzate molto ma molto meno rispetto estendere il linguaggio con parole del compilatore in cui CREATE….DOES dipendeva dall’implementazione Forth.
A tal proposito, queste duplici coppie, (Definer….DOES; Compiler….CREATE) rappresentarono la soluzione dell’assenza del sistema di dischi più flessibili utilizzati da Forth, non attraverso la memorizzazione della sorgente, ma attraverso la compilazione del codice dopo la modifica.
Tutto questo, a cascata, rappresentava un altro enorme vantaggio: il risparmio del tempo di lettura e scrittura di programmi da cassetta.
Purtroppo però, queste caratteristiche non furono sufficienti per salvare la produzione e la commercializzazione del Jupiter Ace; dopo che la Jupiter Cantad cessò la sua attività, il marchio venne acquistato da Boldfield Computing Ltd nel 1984, prima ancora di essere venduto a Paul Andrews Andrews UK Limited nel 2015.
Rimanete in contatto con noi e segui la nostra rubrica per scoprire quale sarà il prossimo esemplare dell’Archeologia Digitale.