BAX-59 (BAsic X-compiler
for TI-59)
UN CROSS-COMPILATORE
A CROSS-COMPILER
|
|||||||
Ho così deciso di scrivere un compilatore ex novo (**), scegliendo bene il linguaggio "target": la scelta è caduta per motivi di semplicità sul Dartmouth BASIC (versione 1968 - con qualche piccola modifica) che, essendo appassionato di storia dell'informatica, stavo proprio studiando in quel periodo. Inoltre il prodotto doveva essere interfacciabile dall'esterno e quindi con il mio emulatore di TI-59 Il progetto BAX-59 (BAsic X-compiler for TI-59) è così partito ed il risultato finale, dopo varie versioni delle quali la prima stabile era la terza, è il cross-compiler CC5B.EXE che accetta in input un file .BAS e produce un file .SOA. Lo schema qui sotto identifica il flusso dei dati di BAX-59. In pratica, come si può vedere, abbiamo tre passaggi - due per il cross-compiler e il terzo per l'ottimizzatore (che fino alla versione 5A era contenuto in un file eseguibile a se stante).. BAX-59, contrariamente al suo antenato omonimo, non ha la possibilità di segmentare il programma .SOA se troppo esteso per la capacità di memoria della TI-59: ma, almeno sul mio emulatore, il meccanismo del "CROM Emulator" consente di ovviare totalmente a questa mancanza, come spiegato sul manuale di utilizzo. Due file batch (BAX59.BAT e
BAX59-64.BAT) consentono di automatizzare il processo di compilazione. |
|||||||
LE CARATTERISTICHE DEL LINGUAGGIO THE FEATURES OF THE LANGUAGE |
|||||||
Un esempio di sessione con il sistema DTSS (emulato in Windows) Le parole chiave di BAX-59 sono le seguenti:
Nella cartella BAX59\PROG\ sono presenti anche circa una trentina di esempi con nome SAMPLExx che possono essere usati come guida per vedere come viene effettuata la traduzione. Viene riportato come esempio il calcolo del massimo comun divisore (SAMPLE01.BAS) di due triple di numeri. Notate che ogni gruppo di istruzioni TI-59 SOA è commentata con il riferimento alla relativa linea BASIC che l'ha generata.
Al termine della compilazione vengono stampate le istruzioni per l'esecuzione o sull'emulatore o sulla TI-59 reale .......):
|
|||||||
BAX-59 versione 5 (anche a 32/64 bit). |
|||||||
La nuova versione numero 5 di BAX-59 (con un manuale d'uso) introduce parecchie novità rispetto alla precedente versione 4 tra cui la fase di ottimizzazione che ora produce direttamente il file .SOA pronto per l'importazione nel mio emulatore di TI-59.
Interfaccia di BAX59 con il mio emulatore di TI-59 (versione inglese) Nel link per il download sotto riportato è la release 5B del cross-compiler sia nella versione a 16 bit che in quella a 32/64 bit, senza il codice sorgente. Download BAX59 compiler (5.0B) (compreso il manuale - user's guide included) BAX-59 has all messages and documentation in
English.
|
|||||||
NOTE |
|||||||
(**) In rete ho trovato altri due prodotti "concorrenti" di BAX-59 entrambi francesi ma che presentano dei decisi punti deboli: il primo è una specie di Macro-Assembler mascherato da linguaggio ad alto livello (ma perché imparare un Macro Assembler per programmare di nuovo in Assembler - quello della TI-59?) con un'ottima documentazione, il secondo, più interessante, propone un linguaggio ad alto livello, simile al C chiamato T, ed un codice sorgente da far compilare sulla propria piattaforma: non sono riuscito ad ottenere un eseguibile ed ogni contatto con l'autore è andato a vuoto. Bel sito dal punto di vista grafico ma manca qualsiasi documentazione utile, quindi in conclusione una completa delusione. Per chi fosse interessato basta cercare su Google "TI 59 COMPILER" per avere più informazioni su questi prodotti. | |||||||
(*) TI-PPC Notes è lo splendido bollettino pubblicato da un gruppo di utenti, situato vicino a Washington, delle calcolatrici Texas Instruments tra il 1980 e il 1991: da www.rskey.org ho potuto scaricare tutte le annate, le ho stampate e rilegate. |