Frammenti di storia del Newton (3)

Continua questa piccola parentesi a puntate sulla storia del Newton. Avevo pensato a tre parti, ma il materiale è maggiore di quanto pensassi e c’è molta carne al fuoco, pertanto vi sarà anche una quarta parte che spero di pubblicare domani. Per contestualizzare il testo che sto traducendo e presentando qui, è essenziale leggere la prima parte. Le mie osservazioni e integrazioni all’interno del testo citato sono in corsivo fra parentesi quadre.

Autore: Ex Newton OS Engineer
Data: 05/04/99

Espansioni difficili

6. Sono l’autore dei Newton C++ Tools per Macintosh, e dato che il compilatore ARM C++, l’assembler e il linker che avevamo a disposizione erano tutti strumenti MPW, e che non esiste un ambiente ‘standard’ per tool sui sistemi Windows a cui questi tool potevano agganciarsi, non fu mai realizzata una versione Windows dei Newton C++ Tools. Fu discussa, perché alcuni sviluppatori ne fecero richiesta, ma niente più. Mi pare che alcuni dei DDK [Driver Developer Kit o Device Developer Kit] fossero disponibili fino a marzo del 1998 sotto NDA [accordo di non divulgazione], ma si basavano ugualmente su MPW. Probabilmente avremmo potuto intraprendere un porting verso Linux di tutto questo materiale e sarebbe stato un percorso migliore, ma non fu vista come ipotesi fattibile dall’amministrazione o dai tizi del marketing, che cercavano sempre di creare ‘prodotti’ da vendere, non software gratis.

7. Non venne mai creato un modem interno. Sì, esiste un connettore interno che potrebbe essere portato fuori come seconda porta seriale con soltanto il chip driver RS 422 I/O, ma i controlli necessari per la redirezione e la loro verifica per tutti gli usi desiderabili dall’utente non furono mai implementati nel sistema operativo, né sottoposti a debugging. Non è sufficiente avere soltanto l’hardware. Per servire a qualcosa, i prodotti per sistemi informatici devono avere tutti i layer al loro posto; l’hardware è il livello più semplice da ‘vedere’ e comprendere. Il che spiega perché alcuni — che non sono ingegneri di sistema — pensano “ah, ma è facile, basta aggiungere una scheda logica, un chip per il driver e il connettore e funzionerà”. Tempo fa su questo forum qualcuno disse che avrebbe realizzato una scheda per l’adattatore, e ricordo di aver letto molti messaggi riguardanti foto e hack che alcuni nerd erano riusciti a far funzionare, per poi scoprire la mancanza del supporto software. 

Per chi non lo sapesse, è stata poi creata una scheda per aggiungere una porta seriale del tutto identica a quella in uso sui Mac beige, ossia RS 422. Nella comunità Newton questa scheda è nota come SER-001. È possibile vedere la scheda installata in un MessagePad 2x00 in questa foto (trovate altre foto interessanti esplorando l’intero set). La controversia a cui si riferisce la didascalia della foto riguarda il progetto e la creazione di questa scheda. Le versioni dei fatti sono sostanzialmente due: a) il prototipo fu creato da ‘PCBMan’ e venne poi copiato e commercializzato da ‘Knowledge Navigator’ (sono ovviamente due nickname); b) ‘PCBMan’ e ‘Knowledge Navigator’ hanno sviluppato indipendentemente la stessa idea e hanno prodotto ognuno la propria versione della scheda; la grande somiglianza fra le due schede sarebbe dovuta a ragioni intrinseche all’hardware del Newton.

Io ho la fortuna di aver ricevuto un Newton MessagePad 2100 con la SER-001 già installata, e funziona egregiamente. Dico ‘fortuna’ per due motivi. Primo: questa scheda non viene prodotta industrialmente e ormai non ce ne sono molte in circolazione; in più non è facile installarla da soli. Secondo: la grande comodità di avere la SER-001 incorporata è l’eliminazione del famigerato ‘dongle’ per effettuare connessioni con il Mac via cavo seriale. Il dongle non è altro che un adattatore che da un lato si inserisce nella porta Interconnect del Newton (se osservate di nuovo la foto del link precedente, la porta Interconnect è quella piatta, quasi simile a una USB, accanto alla porta seriale della SER-001) e dall’altro offre una porta seriale RS 422. Il dongle è indispensabile per collegare il Newton al Mac via seriale, ed essendo un oggetto abbastanza piccolo, è anche facile perderlo. Una scheda SER-001 installata elimina la necessità del dongle e ogni preoccupazione.

Emulare il Newton OS

8. [Probabilmente il nostro Ex Newton OS Engineer risponde a qualcuno che gli aveva chiesto se potesse creare un emulatore del Newton]. Potrei, ma sono un ingegnere software e faccio questo per mestiere, non per hobby. […] Un emulatore Newton deve emulare non soltanto il processore ARM, ma tutte le funzioni specializzate della MMU [Memory Management Unit] dell’ARM e l’hardware adattato per DMA, IR, schede Flash, schermo, eccetera eccetera. Non è un lavoro facile. La mia stima (e ho un’esperienza trentennale in ingegneria di software e sistemi) è che si tratti di un’impresa di cinque anni-uomo. Tentare una simile avventura senza una documentazione dettagliata dell’hardware di un MessagePad 2000 porterebbe quasi certamente al fallimento.

Mi sembra comunque un’impresa inutile, perché troppe parti del Newton OS erano molto specifiche e legate alle funzioni della CPU e MMU del processore ARM, nonché all’hardware modificato e adattato allo scopo. Apple cercò più di una volta di realizzare un ‘Newton Virtuale’ come progetto secondario all’interno del Newton Group, ma tale progetto non venne mai finanziato né portato avanti davvero. L’ultimo hack fu opera di Greg Christie, che riuscì a far funzionare sotto Mac OS l’Interprete NewtonScript, ma tralasciando tutto l’hardware di basso livello come il supporto per la rete e per l’I/O seriale, per cui il risultato assomigliava più a un NewtonScript/Mac OS che a un Newton OS.

A mio avviso sarebbe stato più interessante implementare un nuovo sistema operativo ‘libero’ per palmari utilizzando il modello di Java/JWT, dato che molti dei vantaggi di NewtonScript/Newton OS sono presenti in Java. Ritengo inoltre che sia relativamente semplice ‘clonare’ il design dell’interfaccia utente del Newton, ovvero creando un ‘Finder’ palmare e un gruppo di librerie di classe per eguagliare gli aspetti migliori del Newton toolbox. Direi che utilizzando Java e un JWT specializzato per piattaforma palmare avrebbe più possibilità di successo e attirerebbe un tipo di collaborazione più in stile GNU, che non il preservare un sistema operativo proprietario abbandonato. 

Paul Guyot, in circa quattro anni di lavoro (2004–2007), ha messo a punto Einstein, un emulatore del Newton OS che gira su altre piattaforme, fra cui Mac OS X (PPC e x86), Windows, Linux. Prima il software era scaricabile dal suo sito, ora è stato pubblicato su Google Code, a questo indirizzo. A meno che non sia cambiato qualcosa nel frattempo, per poter utilizzare Einstein occorre possedere un Newton e fare il dump della ROM originale. Il processo è abbastanza lungo se fatto via seriale (io provai tempo fa, ma dopo aver lasciato il Newton collegato via seriale al mio iBook per sei ore decisi di abbandonare, credendo che l’applicazione per effettuare la copia della ROM fosse andata in crash. Fu Guyot stesso a dirmi che in realtà il processo poteva durare parecchie ore).

Einstein non è completo, e determinate funzioni del Newton non sono ancora supportate. Riporto dalla sezione Problemi conosciuti del manuale di Einstein:

  • Le porte seriali non sono emulate.
  • Le schede PCMCIA non sono emulate.
  • Il volume appare regolabile via software ma i cambiamenti vengono ignorati (tranne quando il suono è spento sul Newton).
  • L’input audio non è emulato.
  • Il tentativo di installare patch di sistema provoca un errore.
  • I tasti non vengono tradotti in maniera appropriata a eccezione che sul Mac (la tastiera è inutile).
  • La rotazione [dello schermo] non sempre funziona correttamente.
  • Su altri PDA con processore ARM, Einstein è mostruosamente lento.
  •  

    Ho visto Einstein in azione su un PowerBook G4 e, malgrado i problemi elencati, è un’esperienza affascinante e il lavoro di Guyot è stato incredibile. Al momento il progetto Einstein sembra dormiente, ma altri sviluppatori sono coinvolti e speriamo si muova qualcosa in futuro.

    Category Mele e appunti Tags , ,

    About Riccardo Mori

    Writer. Translator. Mac consultant. Enthusiast photographer. • If you like what I write, please consider supporting my writing by purchasing my short stories, Minigrooves or by making a donation. Thank you!