Post

Visualizzazione dei post da febbraio, 2016

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

Immagine
di  Francesco Sblendorio Dopo la   prima parte , dedicata alla preparazione dell’ambiente di sviluppo, eccoci finalmente “sul pezzo”, pronti ad affrontare le differenze tra le versioni   7.0 per DOS   e   3.01 per CP/M   di   Turbo Pascal . Dichiarazione delle  STRING he. In  Turbo Pascal 7  siamo abituati a usare il tipo  STRING  senza specificarne la lunghezza. Nelle dichiarazioni di variabili si assume come default la lunghezza massima di  255  caratteri, mentre nelle dichiarazioni dei parametri di procedure e funzioni viene assunta una lunghezza variabile, in funzione del parametro effettivo fornito. Tutto ciò in  Turbo Pascal 3   non  è possibile: bisogna  sempre  specificare la lunghezza massima tra parentesi quadre. Per comodità potete definire un nuovo tipo e usarlo al posto di “STRING” senza specifica della lunghezza massima: TYPE STRINGVAR = STRING[255]; VAR s:STRINGVAR ; Short-circuit boolean evaluation:  non c’è . Nelle istruzioni dove è prevista la valutazione di una cond

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

Immagine
di  Francesco Sblendorio 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  RetroArchive :  http://www.retroarchive.org/cp