Ho avviato una operazione di recupero di un po’ di materiale ‘storico’ relativo all’HP3000, contenuto in quella che era definita le Contributed Software Library: un archivio di software non commerciale, in larga parte completo di sorgenti, che veniva distribuito attraverso l’HP-3000 Regional User Group.
Nonostante tutta la libreria occupi circa 30MByte, una inezia per i tempi di oggi, l’operazione è abbastanza complessa, perchè la facilità di scambio di materiale digitale che oggi è un fatto assodato, all’epoca era quasi fantascienza, visto che ogni sistema era ben chiuso all’interno del recinto del suo ecosistema, e l’interscambio di dati da e verso altri sistemi era considerata alla stregua di una attività di frontiera.
D’altro canto, non è un caso che uno dei miei primi progetti lavorativi seri, sul finire degli anni ’70, fu proprio quello di sviluppare un sistema di interscambio di dati fra l’HP/3000 ed i neonati personal computer, nello specifico dei Superbrain QD (2xZ80@4MHz, 64k RAM, CP/m).
L’emulazione, ovviamente, si comporta come la macchina fisica, e quindi non fa eccezione. La forma migliore per il trasferimento rimane quella seriale seriale via terminale – sempre emulato, ma a 9600bps – e questo rende l’operazione certamente lunga e farraginosa. Ma è solo una questione di tempo, e una volta trasferiti e riorganizzati, diventa semplice condividerli utilizzando un nastro magnetico (9 tracce, ma sempre virtuale) in uno dei formati compatibili con l’emulatore simh.
Nella libreria c’è molto software interessante per fotografare quel momento storico, ma uno in particolare è oggettivamente mitico, visto che quel codice ha generato un filone che arriva sino ai giorni nostri: mi riferisco ad adventure.
La versione del gioco è derivata direttamente dal lavoro di Will Crowther e Don Woods, e – come l’originale – è scritto in Fortran (/3000). Il programma è lungo 5296 linee, molto ben commentate, ed è accompagnato da un file dati che contiene la struttura del database. Altri due file contengono una documentazione, stringata ma sufficiente, e un file job per compilare il programma. Non c’è indicazione di chi siano gli autori del porting, mentre i ‘credits’ delle istruzioni riportano oltre i due citati autori anche Gary Palter. Sulla storia delle varie versioni di questo programma vi segnalo questo post apparso sul newsgroup alt.folklore.computers.
Una particolarità della versione per l’HP3000 – non mi risulta che fosse nel programma originale- è che il sistema può essere configurato per gestire degli orari di apertura, al di fuori dei quali non è possibile giocare: all’epoca i secondi di CPU erano entità preziose, ed andavano gestite in modo adeguato; il gioco era riservato alle fasce orarie di utilizzazione ridotta o nulla. Il file testuale contenente il database è letto una sola volta al momento della inizializzazione del programma: alla prima esecuzione viene compilato in una struttura binaria che consente una esecuzione più rapida.
Il programma fa uso di una capability non standard per gli account dell’HP/3000: PH (Process handling); nel file che potete scaricare più avanti ci sono comunque le istruzioni per duplicare le configurazioni necessarie a caricare correttamente l’immagine del nastro. Il programma è installato nel ‘gruppo’ ADV dell’account GAMES (la strutturazione del file system dell’HP3000 è abbastanza dissimile da quelle odierne), ma è organizzato in modo da essere lanciato da un qualsiasi account con il comando RUN ADVENTUR.ADV.GAMES.
Per configurare i parametri operativi è necessario entrare in maintenance mode. Per farlo bisogna digitare le parole MAGIC MODE alla prima domanda del programma dopo le istruzioni, ed inserire le parole magiche, come in questa videata:
E’ possibile salvare lo stato del gioco (con il comando save) e ripristinarlo successivamente (restore), ma è necessario attendere un tempo predefinito, modificabile in maintenance mode, prima di potere riprendere l’esplorazione.
Sull’immagine del nastro ci sono oltre al colossal cave adventure (sorgente, eseguibile e file di appoggio, ready-to-run), anche wumpus, strartrek1, e startrek2, che erano già presenti nelle immagini di pi-3000, ma che ho riorganizzato con una diversa logica in vista dell’allargamento della libreria.
Il materiale è contenuto in games.hp3000.0.1