VISICALC |
Nei miei studi sulla storia dell'informatica, un posto rilevante spetta a VisiCalc per tutta una serie di motivi che vanno dal fatto di essere stato il primo programma di foglio di calcolo al fatto di essere stato portato su quasi tutte le piattaforme dell'epoca (dall' Apple II/III al TRS-80 al Commodore PET 8032, all'Atari 800, al PC-IBM e ai vari HP-85/87, HP serie 100 - tra cui il 125 in CP/M). Addirittura HP sviluppò una versione per il suo minicomputer HP3000 che chiamò Deluxe VisiCalc/3000 della quale sono rimaste pochissime tracce. In rete si trovano quasi tutti i manuali per i VisiCalc dei computer sopra elencati e non avendone nessuno da provare - PC IBM a parte - la parola d'ordine per vedere all'opera VisiCalc è EMULARE!
LA STORIA VisiCalc (che sta per
VISIbile CALCulator) è stato il primo
programma di foglio di calcolo ("spreadsheet" in inglese) per
computer, uscito originariamente per l'Apple II. E' spesso considerato
l'applicazione che
ha trasformato il microcomputer da un hobby per appassionati in un serio
strumento di
lavoro. VisiCalc ha venduto oltre 700.000 copie in sei anni.
Considerando la sua età, VisiCalc è sorprendente capace. Il
sistema di menù "slash-based" e le funzioni '@' sono molto
pratiche. Le celle possono contenere etichette o numeri (ma non
date) e si possono immette riferimenti a celle nello stile 'A1'
ancora oggi usato dai moderni fogli elettronici come Microsoft
Excel. Il limite di 63 colonne e 254 è meno stringente di quanto
sembri se si considera che la visualizzazione avviene una
finestra di 80x25 (o peggio 40x25) caratteri. Le funzioni di
VisiCalc (circa una trentina) includono sia funzioni
numeriche semplici come SUM, MAX e AVERAGE, come pure LOOKUP
che le comuni trigonometriche e logaritmiche. Il formato dei
dati numerici può essere di tipo intero, decimale, scientifico o
"a grafico". Quest'ultimo formato, che visualizza una riga di
asterischi lunga quanto il numero stesso, è stato usato per
creare una tavola "grafica" della funzione seno. VisiCalc è
sorprendentemente agile riguardo la replicazione delle formule:
per ogni riferimento di cella nella formula, viene chiesto se si
vuole mantenere il riferimento non modificato o se si vuole
aggiornarlo relativamente alla posizione della cella. C'è poi la
possibilità di fissare righe o colonne come titolo (vedi la riga
1 dell'esempio) o di dividere il foglio in due finestre per
visualizzarne due aree diverse contemporaneamente.
L'EMULAZIONE Dopo aver scaricato la documentazione reperibile in
rete, il passo successivo è stato quello di reperire le immagini dei
dischi VisiCalc e di farli eseguire sui vari emulatori, non sempre con
successo. Vediamo cosa è successo macchina per macchina (vedi
anche la tabella riassuntiva
1) APPLE ][. Per APPLE ][
la scelta tra i vari emulatori disponibili è caduta su APPLEWIN.
Per far girare l'emulatore basta procurarsi una copia del DOS 3.3 Apple,
assegnarlo al Drive 1, assegnare l'immagine VisiCalc al Drive 2 e
lanciare l'emulatore. Dopo un CATALOG,D2 lanciare VisiCalc con
BRUN VISICALC (o qualcosa di simile). Agli inizi, paradossalmente, per la macchina che ha visto
nascere VisiCalc si trovava in rete poca documentazione, ma finalmente
la situazione è migliorata, così dopo la Reference Card della prima versione - la 1.35 -
con il relativo manuale e svariati file di testo con elenchi di
comandi (il migliore di questi è un file PDF qui
riportato
Lo schermo di VisiCalc per Apple II - versione italiana
VisiCalc Advanced per Apple II GS 2) APPLE III. Per Apple
III
non c'è stato niente da fare: con l'emulatore SARA
non ha funzionato. Peccato perché la versione VisiCalc Advanced
è molto interessante e costituiva l'evoluzione naturale di
VisiCalc verso un prodotto più prestazionale (funzioni
finanziarie estese, larghezza individuale per le colonne, formati cella
personalizzati, protezione celle ecc...). Alla fine comunque sul sito
https://winworldpc.com/product/visicalc è stato trovato il manuale
ed i dischi da uno dei quali è stato estratto l'help e che è stato messo
in un file PDF
qui riportato
3) COMMODORE PET 8032 & 4032. Qui la scelta è obbligata: WIN VICE è perfetto! La difficoltà è stata quella di reperire l'immagine della ROM di protezione, ma una volta trovata tutto è andato liscio. Per avviare VisiCalc, si configura la ROM come qui sotto.
La ROM di protezione per il PET. Si associa poi l'immagine del disco VisiCalc al drive 8: per far partire VisiCalc LOAD"*",8 e poi RUN.
Purtroppo anche per questa macchina c'è pochissima documentazione (solo
la "Pocket Reference Guide"). Un fattore critico di questa implementazione
è il fatto che venga lasciata pochissima memoria per il foglio
elettronico (uno semplice come quello dell'esempio lascia liberi
solo 5K contro, ad esempio, i 16K dell'Atari che è sempre una macchina
da 32K di memoria ): questo è dovuto probabilmente che questa versione
di Visicalc contiene un proprio DOS per la gestione dei dischi anziché
usare il Kernal del PET. Allo stesso modo è possibile avere anche
le 40 colonne usando l'emulazione per il Commodore PET 4032 con
la stessa ROM di cui sopra. Con i modelli superiori (PET 8096) è
possibile, sfruttando l'espansione di memoria da 64K ed avendo la
versione 1.76A di Visicalc ottenere 73K di memoria per i propri fogli
elettronici: al momento non sono ancora riuscito a configurare WIN Vice
per replicare questo risultato. Mio commento finale: peccato non sia mai
uscita una versione per C64 ma solo il Multiplan
4) TRS-80. Qui tutto bene: ho fatto girare VisiCalc su tre emulatori (TRS32 di Matthew Reed- in figura, TRS80 di Matthew Hamilton e SDLTRS). Quest'ultimo va configurato, salvato su un file .t8c e richiamato dopo la partenza con il tasto F7. La documentazione per il TRS-80 è veramente imponente e disponibile per le varie versioni di VisiCalc.
E' stata ritrovata anche la versione 02.09.02 a 80 colonne per il TRS-80 Mod. 4!
5) ATARI 800. ATARI 800 EMULATOR ha risposto pienamente alle aspettative. Tramite un file batch è possibile configurare il tutto e farlo girare comodamente. Questa macchina, assieme ai TRS-80, dispone di TUTTA la documentazione! (compreso il libro di Beil sopracitato)
6) HP 85, 86 e 87. Qui nessun problema. La versione di VisiCalc Plus per HP-85 è stata fatta girare su due emulatori (HP85 EMULATOR di Everett Kaser e HP-EMU di Olivier de Smeet che fa girare anche il VisiCalc Plus per HP-87 con un ottimo manuale). Questa versione, oltre ad avere un maggior numero di funzioni, si può interfacciare con una serie di programmi in HP Basic per disegnare istogrammi, diagrammi a torta, curve di regressione ecc. Un HP-87XM espanso al suo massimo e cioè a 640K (come un XT IBM !) poteva tenere in memoria tutte le 16002 celle di un tabellone VisiCalc.
VisiCalc Plus per HP-87 VisiCalc per HP-85 7) HP 125/120/150 e HP-75. Purtroppo niente da fare: non esistono emulatori per queste macchine, ma almeno esiste un ottima documentazione. Di solito il nome ufficiale per VisiCalc riporta anche il modello della macchina: si parla così di VISICALC/125, VISICALC/150, VISICALC/75 ecc. La versione per HP-75 (su ROM) si è rivelata la più interessante perché implementata su un dispositivo portatile e perché presenta caratteristiche differenti dalle altre versioni (è interfacciabile con l'HP Basic residente). La versione per HP-120/125 è l'unica di VisiCalc sotto CP/M. Un'occhiata particolare alla versione "touch-screen" per HP-150 (sotto MSDOS 2 o 3 ma non PC IBM compatibile):
Sempre dall'immagine del disco di VISICALC/150 ho
recuperato l'help del programma
8) PC-IBM. Qui, ovviamente, si può spaziare come si vuole. Consiglio di scaricare VC.COM (la versione 1.0 e cioè 27K di puro assembler 8088 !!!) dal sito www.bricklin.com e di farlo tranquillamente girare su una macchina DOS o Windows (16/32 bit). Io l'ho messo su un floppy 3"½ (assieme alla versione 1.1) ed ho importato dai dischi delle altre versioni i file di esempio.
Ho fatto poi lo stesso lavoro usando invece un floppy da 5"¼ (360K): Visicalc, sia 1.0 che 1.1, è stato eseguito direttamente sul mio PC-IBM (512Kb di memoria, floppy A: da 360K e disco fisso C: da 10Mb col DOS 3.30). Al solito, l'uso della memoria disponibile è un po' ballerino - all'avvio sono disponibili solo 151Kb per il foglio elettronico - ma comunque il tutto funziona. In foto il solito XYZ.VC. Sul manuale del PC-DOS IBM 2.0 [Gennaio 1983] ci sono due paginette per aggiornare il VisiCalc 1.1 dal PC DOS 1.1 alla versione 2.0. In realtà per il PC-IBM ho potuto verificare l'esistenza di cinque versioni e precisamente:
Quest'ultima versione doveva probabilmente rispondere al predominio del Lotus 1-2-3 che all'epoca era diventato lo stato dell'arte nel campo dei fogli elettronici: solo qualche mese dopo, agli inizi del 1985, la Visicorp veniva acquisita da Lotus e il "progetto" VisiCalc chiuso definitivamente.
Visicalc IV (vers. 1.2 con "StretchCalc")
Visicalc Advanced per PC-IBM
Il programma di test in esecuzione con Windows XP N.B 1: Le due versioni più "antiche" di Visicalc (1.0 & 1.1) presentano alcuni problemi nell'essere eseguite in un ambiente moderno: non riescono ad utilizzare completamente la memoria disponibile (solo 128K a cui vanno tolti la parte DOS residente ed i 27K di Visicalc stesso - restano così al meglio 70K per il foglio elettronico); hanno problemi nella gestione del file system (non è possibile ad esempio sovrascrivere un file modificato: bisogna avere un file system FAT12 o FAT16). Questi due problemi vengono nettamente ridotti usando l'emulatore DOSBox (v. 0.74): infatti montando il device su cui risiede VisiCalc come A: (con mount a: <device_path>) si ottiene che VisiCalc 1.0 & 1.1 vedono entrambi 92K utili per il foglio elettronico e tutte le operazioni su file sono possibili. Per la cronaca, la versione DOS riportata dall'emulatore è la 5.0.
N.B. 2: Se si utilizza una stampante IBM Graphics o Epson è possibile fornire la stringa per la stampa in compresso come indicato sul manuale. E' possibile scegliere anche la porta di stampa, sia seriale che parallela (ammesso di avere una stampante DOS compatibile!). N.B. 3: Sul dischetto del Mouse Microsoft (1983 !!!) ho trovato un programmino che permette di aggiungere il mouse alle versioni 1.x di VisiCalc per PC: prima di usare il nostro si lancia "MENU VC", un piccolo TSR, et voilà Visicalc ha il mouse !!!
Il tutto funziona in un ambiente DOS 5/6 puro (o anche in DosBox 0.74) usando come gestore del mouse la versione che viene data con il QuickBasic 4.5 (la 6.24A). Quindi riepilogando, con MS-DOS o DosBox attivati, si può scrivere anche un file batch del tipo: MOUSE N.B. 4: Per ovviare ad una delle manchevolezze principali del programma, e cioè l'help in linea, ho realizzato un piccolo TSR in Turbo Pascal 3 che, lanciato prima di VisiCalc, consente con Shift+F1 di avere almeno una pagina di help: meglio di niente .............
Volendo comunque emulare il PC IBM c'è PCE-PC Emulator di Hampa Hug: abbiamo potuto così vedere all'opera VisiCalc a 40 colonne sul PC-IBM con una CGA !
Purtroppo questo programma ha un grosso neo costituito dal fatto che non dispone di utilità per manipolare direttamente i formati virtuali (PFDC) consentendo, ad esempio, l'import/export di file "reali" dal PC. L'unico modo che ho trovato consiste nel generare delle immagini di dischetti reali (il che richiede potrebbe anche richiedere un lettore di floppy da 5"¼) usando l'utility WinImage e poi con PFDC.EXE trasformarla nel formato richiesto dall'emulatore. |
Una bella foto di tutte le macchine con il loro VisiCalc !! Si riconoscono da sinistra a destra in alto APPLE III, TRS-80 MOD. 3, APPLE II, PC IBM, TRS-80 Mod. 2 ed in basso ATARI-800, HP-150, COMMODORE PET 8032 con dual disk drive. |
Su un articolo di Computer World Vol. XIII N. 10 pag. 13-14-15 vengono comparati vari programmi di foglio elettronico che girano su minicomputer o superiori. Vengono esaminati 17 prodotti, tra i quali anche il nostro Visicalc/3000, e viene proposta a questo scopo una tabella riassuntiva. Scopriamo così che il nostro 3000 ha una capacità di 254x254 celle, consente di proteggere e/o nascondere celle, dispone di 35 funzioni ma nessuna definibile dall'utente, ha 13 formati per le celle numeriche, ha la possibilità di interfacciarsi con package grafici(come è tradizione dei Visicalc HP), lavora su 16 cifre decimali - contro le 11 del normale Visicalc ed è stato scritto in Pascal (!) |