Turbo Pascal porting: dal 7.0 (DOS) al 3.01 (CP/M) – parte 1

turbo pascal

Lo scopo di questa mini-serie di articoli è riuscire a trasportare programmi scritti anni fa in Turbo Pascal 7.0 (di cui conserviamo ancora i sorgenti) sotto MS-DOS alla versione 3.01, disponibile sotto CP/M, e quindi per ampliare il parco software “retrocomputeristico”.

L’idea mi è venuta un giorno in cui ho desiderato veder girare sul mio Commodore 128 una mia vecchia implementazione del classico gioco delle Torri di Hanoi che scrissi nel 1996 per MS-DOS. Tale implementazione è presente a questo link.

Il risultato è presente su github: https://github.com/sblendorio/hanoi-cpm.
Ha il limite di funzionare bene solo su terminali di tipo KayPro e Commodore 128, ma i concetti espressi in questa mini-serie di articoli sono generali anche se si farà riferimento ogni tanto in modo specifico alla macchina Commodore.

Partiamo col procurarci una copia di Turbo Pascal 3.01 per CP/M: è disponibile presso RetroArchivehttp://www.retroarchive.org/cpm/lang/TP_301A.ZIP.

Dobbiamo a questo punto rendere il contenuto dell’archivio zip fruibile dalla nostra macchina CP/M. Nel caso del Commodore 128 qui c’è una mini-guida che ho scritto adatta allo scopo: http://www.sblendorio.eu/Misc/CPM128.

Effettuiamo quindi il boot di CP/M e se non ci piace il colore magenta di default dei caratteri su C128, possiamo premere CTRL+2 e ottenere un più rassicurante bianco. Bisogna a questo punto istruire Turbo Pascal su che tipo di terminale utilizziamo: per fare questo basta lanciare il comando

TINST

Questa è la schermata che si presenterà:

Schermata 2016-02-17 alle 14.35.35

Scegliamo “S” per “Screen installation”, e avremo a disposizione le seguenti possibilità di tipi di terminale:

Schermata 2016-02-17 alle 14.35.57

Come abbiamo già descritto in un precedente articolo, il Commodore 128 utilizza una emulazione ADM-31, che in questo caso corrisponde a scegliere l’opzione 13 del menu. Per esperienza però posso consigliarvi di scegliere l’opzione 11 (Kaypro with hilite), per due motivi:

  • Ci sono alcune sequenze di escape che sono identiche sia ADM-31 che su Kaypro, le vedremo in seguito
  • Il supporto dell’hilite rende più leggibile il testo sullo schermo

Ovviamente, se non state utilizzando un Commodore 128, scegliete il tipo di terminale che utilizzate col vostro sistema.

Subito dopo, vi verrà chiesto se volete modificare le sequenze di escape pre-impostate: rispondete di NO, pena dover riscrivere uno a uno tutti i comandi di gestione schermo:

Schermata 2016-02-17 alle 14.36.40

Rispondete con il default alle successive domande e salvate le impostazioni. A questo punto siamo pronti per partire: lanciamo il fatidico comando

TURBO

Ed ecco schermate un tempo familiari:

Schermata 2016-02-17 alle 15.22.30

Schermata 2016-02-17 alle 15.22.41

Arrivati a questo punto, possiamo finalmente iniziare a lavorare. Ma per ora vi saluto, spero che la prima parte di questo viaggio vi sia piaciuta vi saluto alla seconda, prossima puntata!

Riferimenti esterni

Francesco Sblendorio

Francesco Sblendorio nasce nel 1977. Nel 1985 fa conoscenza con il mondo dei computer attraverso un Commodore 16: da quel momento la discesa verso il lato oscuro è inesorabile e si trasforma in un geek impenitente. Nell'ambito del retrocomputing ha un sogno: che i vecchi computer non debbano semplicemente sopravvivere (conservando la loro funzionalità), piuttosto devono vivere, attraverso nuovi software sviluppati oggi per i computer di ieri.

Potrebbero interessarti anche...