TEXAS INSTRUMENTS !!!


EMULATORE DELLA TI-59 ( e altre...)
 

TI-59 EMULATOR (and others ....)

 

Il mio interesse per il mondo dell'informatica nacque appena finito il liceo, prima di partire per l'avventura universitaria al Politecnico di Milano, dopo aver acquistato il primo numero di una rivista, Micro e Personal Computer nel Settembre 1979. Così dopo aver consultato la "Guida Mercato", che era suddivisa tra Personal Computer, Calcolatrici Programmabili e Schede a Microprocessore,  e compatibilmente con il budget a disposizione decisi di acquistare una calcolatrice programmabile. Già avevo avuto una Texas Instruments SR-10 e una TI-30 così il mio primo "oggetto" programmabile fu la mitica calcolatrice TI-59, della Texas Instruments, acquistata nell'Ottobre dello stesso anno, dopo un'estate lavorativa durante la maturità liceale, seguita nel 1980 dalla stampante PC-100C e svariati moduli Solid State.

Con la TI-59 ho iniziato a programmare, essenzialmente programmi matematici utili per i corsi universitari (Analisi Matematica 2, Calcolo Numerico, Probabilità e Statistica ecc..) e di utilità ma anche giochi e sono riuscito anche a farmi pubblicare un articolo su una rivista tecnica dell'epoca, M&P Computer, che a causa della lunghezza è stato suddiviso in due parti, sui numeri 22 e 23. L'articolo riguardava un argomento che allora era molto di moda tra gli utenti di calcolatrici programmabili e cioè la cosiddetta "programmazione sintetica" che permetteva di scoprire nuove istruzioni e caratteristiche non riportate sui manuali utente. Anche se l'articolo non raggiungeva i risultati ottenuti dai vari user group tedeschi o americani (col senno di poi ero in ritardo di circa due anni) , era comunque molto interessante ed è disponibile una trascrizione qui riportata in versione PDF.

Tra parentesi, nonostante le promesse della rivista - l'iniziativa si chiamava "Il lettore è l'autore" (!) - e i miei solleciti, questo articolo non mi è mai stato pagato (e da qui è nato lo slogan "Roma ladrona".......)

Il mio articolo fu pubblicato nella rubrica "Software SOA" che all'epoca era tenuta da Lorenzo W. Poli responsabile anche del Club STI-59 che è stato l'unico esempio di club professionale italiano dedicato alla TI-59 & 58. Ho anche ritrovato alcuni bollettini dello STI-59 e li ho messi in una pagina a parte assieme ad un po' di storia.

Dopo la mia prima TI-59&PC-100C, comperai una TI-66 nell'Aprile 1984 e, qualche anno più tardi, arrivò un'altra TI-59 con PC-100C ed una TI-57: così è iniziata la mia raccolta personale delle Texas Instruments. Anche se all'inizio mi sono limitato alle sole calcolatrici programmabili in SOA - Sistema Operativo Algebrico (AOS- Algebraic Operating System in inglese), ne sono arrivate anche di altro tipo. Ad oggi (Aprile 2017) si è raggiunta la quota di 80 calcolatrici (più un'altra trentina non Texas Instruments - Casio, Sharp, HP, Litronix ..... ed una decina di calcolatrici scriventi da ufficio - Olivetti, Olympia.....)

Dopo l'arrivo della TI-65, l'unico modello mancante resta, ad oggi, la mitica SR-60 (1976-1979).

Il primo numero di M&P Computer......

 

Gli emulatori

 

Così, nonostante le mie due TI-59 originali fossero, e siano ancor oggi, perfettamente funzionanti ho iniziato a realizzare un emulatore già nel 1992 - ovviamente sotto MS-DOS: successivamente l'emulatore è stato esteso, perfezionato e portato quindi anche su altri modelli: così attualmente (al 10/04/2023) vi sono gli emulatori per:

  • TI-59 con la stampante PC-100C, Module Selector e CROM Emulator

  • TI-58C con la stampante PC-100C, Module Selector  e CROM Emulator

  • TI-58 con la stampante PC-100C, Module Selector e CROM Emulator

  • TI-57 con il programma 57TO59.EXE per la conversione automatica di programmi da TI-57 a TI-58/58C/59

  • TI-66 con la stampante PC-200 e moduli CRAM.

  • TI-57LCD (e TI-57 II)

  • TI-55 (o TI-51 III)

  • TI-55 II ( e TI-56)

  • SR-52 con la stampante PC-100A

  • SR-56 con la stampante PC-100A

  • TI-53

  • TI MBA (finanziaria)

  • TI-62

  • SR-50 (non programmabile)

  • SR-60A (il primo al mondo! - the first in the world!)

  • TI Programmer (non programmabile)

Sono stati aggiunti anche gli emulatori per due calcolatrici non costruite dalla Texas Instruments:

  • NETRONICS NX-3000 (con tutti gli altri modelli che usano lo stesso chipset)

  • SINCLAIR ENTERPRISE PROGRAMMABLE

Le versioni disponibili sono sia per 16 bit che per 32/64 bit (vedi più sotto)

e sono disponibili sia in Italiano che in inglese

 

The emulator versions are for both 16 bit and 32/64 bit (see below)

and are available in both Italian and English..

Nota 1: Module Selector e CROM Emulator sono due dispositivi speciali per TI-58/58C e 59 dei quali solo il primo è stato commercializzato dalla "American Micro Products" nelle due forme automatico e manuale, mentre il secondo, che era un prodotto interno della Texas Instruments, viene dettagliato nel brevetto US4277827.

Nota 2: Tutti i modelli supportano i risultati ottenuti con la cosidetta "programmazione sintetica": così possiamo avere, ad esempio, i cosiddetti "fractured digits" della SR-52, la visualizzazione dei numeri in esadecimale sulla TI-57, l'interrupt della PC-100C per la "grafica" (vedi sotto) ed altre caratteristiche scoperte nel corso del tempo "trafficando" con le TI.

Nota 3: E' stato incluso anche , a livello sperimentale, un emulatore "esteso" e "ragionevole" della TI-58C (TI58CX.EXE e TI58CX-64.EXE) con nuove funzionalità (correzione input cifra a cifra, potenze a base negativa, funzione fattoriale e funzione modulo).

Nota 4: Come indicato è disponibile in anteprima mondiale il primo emulatore della Texas Instruments SR-60A!. Anche gli emulatori per le due calcolatrici non prodotte dalla TI sono, a mia conoscenza, i primi al mondo!!!

La SR-60 (A) è una calcolatrice programmabile di tipo "desktop", l'unica realizzata dalla Texas Instruments: come detto prima è anche l'unica che non possiedo (a parte la TI-88, che però ma non è mai stata commercializzata.....) e per questo motivo merita una pagina a parte.

 

Le versioni degli emulatori - 16 bit e 32/64 bit  


Gli emulatori, inizialmente, erano tutti a 16 bit (scritti come il primo in Quick Basic 4.5 ma poi ricompilati con il Microsft Basic PDS 7.1) e si usano con la tastiera.

Sembrava escluso di poterli trasferire in un ambiente moderno a 32/64 bit senza riscrivere totalmente il codice, ma l'impresa è riuscita! Grazie al grande QB64 è stato possibile portare sotto 32/64 bit tutti gli emulatori mantenendo la compatibilità con i file dati della versione a 16 bit. I sorgenti sono stati compilati con le varie versioni di QB64 (ad oggi 10/04/2024 con la versione 1.50 per mantenere la compatibilità con Windows XP): le dimensioni degli eseguibili sono così dell'ordine dei 3.0÷3.5 Mb l'uno e il download corrispondente è un po' più robusto del solito.

Una volta scompattato il file archivio si troveranno:

1) gli eseguibili a 16 bit nella cartella \TI59: da notare anche dei file eseguibili che iniziano con NEWTI...: questi file implementano un nuovo modello di memoria per le TI-59/58/58C/66 ancora più accurato del precedente e, una volta terminata la fase beta, andranno i sostituire i loro corrispondenti.

2) gli eseguibili a 32/64 bit nella cartella \TI59\EXE64

Gli eseguibili, sia a 16 che a 32/64 bit, utilizzano gli stessi file di configurazione, quindi una loro modifica si ripercuote su entrambi gli ambienti.

Nella pagina galleria emulatori che segue ci sono tutte le schermate dei vari emulatori.

Un'istantanea di esecuzione per "TI-59/64" con tastiera virtuale sotto Windows 7.

La PC-100C in grafica !! 


Con la versione del 2017 l'emulatore della TI-59 si è "triplicato", per così dire: TI59ALT.EXE è uguale a TI59.EXE con un diverso layout e funziona in modalità testo VGA 80x50, TI59GR permette invece di utilizzare il codice esadecimale h25 per far funzionare PC-100C in modalità "grafica" (vedi il mitico programma PLOT60 che fu il primo del suo genere). E' possibile caricare il suddetto codice nei passi multipli di otto, tramite il tasto funzione F8, risparmiando così la sequenza di "impianto" utilizzata sulla TI-59 reale. Nella figura sotto l'esempio ottenuto facendo girare PLOT60 sull'emulatore.

Come si presenta invece il listato di PLOT60 al passo 024 che contiene il codice esadecimale.


 

Linguaggio BASIC Dartmouth per la TI-59 con BAX-59


Com'è noto, le nostre amate TI sono programmabili esclusivamente nel proprio linguaggio di tipo Assemblatore (chiamato impropriamente A.O.S. - dall'inglese Algebraic Operating System), ma ora è possibile, tramite il proprio PC, sviluppare del software utilizzando il linguaggio BASIC Dartmouth (nella versione del 1968 con alcune aggiunte specifiche per la TI-59) tramite il sistema di sviluppo BAX59 - BASIC X-Compiler for TI-59. BAX59 consente di scrivere programmi utilizzando un Editor qualsiasi e di poterli così "tradurre" in linguaggio SOA-AOS: vista anche l'importanza pratica dell'argomento a BAX-59 è stata dedicata una pagina specifica.
 

Linguaggio LIMACE per la TI-57 con LIMACE57


Anche per la TI-57 è disponibile dal 2019 un "linguaggio" ad alto livello, simile al BASIC, denominato "LIMACE" (acronimo di Langage Immédiat pour Machines à Calculer Élémentaires): l'idea è stata proposta nel 1979 sul n° 7 della rivista francese "L'Ordinateur Individuelle" per le calcolatrici TI-57 ed HP-25 e poi abbandonata qualche mese dopo. L'unico risultato utile è stato un sorgente in BASIC TRS-80 per la TI-57 pubblicato sul n. 11 dell'Ottobre 1979, ben scritto da un tale Xavier Ackaouy, che è stata la mia base di partenza. Il tutto è stato tradotto in inglese, è stato esteso - sia in termini di linguaggio che di ambiente -  ed integrato  nell'emulatore della TI-57. Vista anche l'importanza pratica a LIMACE57 è stata dedicata una pagina specifica.
 

Note tecniche per l'emulatore di TI-59 


E' meglio specificare meglio la differenza tra emulatore e simulatore. Un emulatore si prefigge lo scopo di replicare il funzionamento di un sistema (nel nostro caso caso la TI-59) e necessita sempre del software di base del sistema emulato (ottenuto tramite un processo detto dumping), mentre un simulatore, invece, si prefigge di arrivare allo stesso risultato riscrivendo però (in tutto o in parte) le routine di base del programma da simulare, in modo da renderlo comprensibile alla macchina su cui gira (DOS/Windows nel nostro caso). Sono possibili, poi, vari livelli intermedi tra queste due tipologie.

L'emulatore nella sua versione originale era un simulatore vero e proprio ma, con il passare del tempo, è diventato un emulatore della TI-59 a livello di SOA-AOS perché utilizza il dump di parte della ROM (quella che esegue le funzioni statistiche e di conversione) e i 16 registri della ROM (quelli contenenti, tra gli altri, i ben noti registri HIR); chiaramente il passo successivo sarebbe quello di avere il dump della ROM vera e propria con tutte le micro-istruzioni per ottenere l'emulazione completa (quello che è stato fatto per la TI-57 e per la TI-58/59 da Hrast Programmer nei suoi completi emulatori per questi modelli - TI59E.EXE e TI57E.EXE). Nella versione corrente è possibile convertire i file usati da TI59E in quelli usati dal mio emulatore (nelle due direzioni ovviamente): i file .M59 devono essere preventivamente memorizzati nella cartella HRAST.

 

Parlano di noi ..... 

Nonostante l'ambito estremamente specialistico, l'emulatore di TI-59 ha avuto grazie ad Internet una sua, seppur limitata, diffusione. Ad esempio la rivista di Retroinformatica "Jurassic News" nel suo numero 43 del Settembre 2012 ha dedicato un articolo all'emulazione della TI-59 ed ha citato anche il nostro!

Un altra citazione è nel sito di Pierre Houbert, che ha a sua volta realizzata un emulatore della TI-58C con estensioni personalizzate. Il suo sito è una miniera di informazioni, manuali e programmi: consultatelo!

 

File e Documenti da scaricare


Nel link seguente sono contenuti gli emulatori per tutte le calcolatrici sopraelencate:

  • Download Emulatore della TI-59 e degli altri modelli sopra elencati (comprese le versioni 32/64 bit sia in Italiano che in Inglese nonché l'integrazione con BAX59 e LIMACE57 - i cross-compiler in linguaggio ad alto livello per le TI-58/59 e la TI-57)
  • Download Manuale Emulatore TI-59 (in italiano e in inglese ) il tutto aggiornato al 10/04/2024.

Di seguito vengono inoltre elencati una serie di documenti di cui mi sono servito per realizzare gli emulatori, oltre ovviamente ai manuali ufficiali della Texas Instruments per le calcolatrici stesse:

Un'altra lettura, difficile ma affascinante, è quella dei brevetti: ne consiglio tre:

  • US3900722 sulla struttura e le istruzioni del TMC0501 (il microprocessore della SR-50,SR-52,SR-56,TI-58,TI-58C, TI-59);

  • US4153937 che descrive la struttura delle TI-58/59;

  • US4164037 che riguarda la struttura della TI-57.

E' inoltre possibile trovare le varie riviste qui citate su:

MC microcomputer    https://www.digitanto.it/mc-online/PHP/MCsearch.php?ric=pdf&B1=Cerca 

Programbiten             :  https://nivelleringslikaren.eu/nittinian/

Ordinateur de Poche :  https://www.abandonware-magazines.org/affiche_mag.php?mag=15

 


Gli inizi della mia collezione (2009)

TI GALLERY (tutte le calcolatrici emulate...)

                         


Nota: Le immagini con sfondo azzurro sono state tratte dal sito www.datamath.org (Thanks, Joerg!)
Note: The images with a blue background were taken from the site www.datamath.org (Thanks, Joerg)