SPREADSHEET E DINTORNI: UN FOGLIO ELETTRONICO IN GW-BASIC

A SPREADSHEET PROGRAM IN GW-BASIC

 

Nel Settembre del 1984 sempre sulla mia solita rivista di settore, MC Micromputer, uscì un articolo molto interessante sull'implementazione di un foglio elettronico ("SPREADSHEET") scritto in BASIC per il Commodore 64. Lo ricopiai subito (compresa una correzione uscita nel Gennaio 1985) e dopo un po' di uso lo archiviai. Sapevo dell'esistenza del Visicalc per Apple-II ma l'utilizzo di un foglio elettronico era, all'epoca, fuori dai miei interessi.

Venduto il C-64 e comperato il solito PC XT compatibile taiwanese avevo incominciato ad usare il Lotus 123, ma sempre come semplice utente. La prospettiva cambiò un attimo quando mi arrivò un Olivetti M10 da 24K e così per utilizzarlo un po' pensai di tradurre SPREADSHEET in Basic M-10: la cosa si rivelò interessante anche perché lavoravo con uno schermo ridotto e con 14K di memoria in meno rispetto al C-64; comunque tagliate alcune cose SPREADSHEET funzionò alla fine anche sull'M-10.

Il portatile Olivetti M10 (con 24K di memoria)

Circa 10 anni dopo mi interessai al Visicalc per i miei soliti studi di storia dell'informatica e così mi venne a mente che potevo, come esperimento, far girare SPREADSHEET contemporaneamente sul PC IBM, il Commodore 64 e l'Olivetti M10. Ripreso in mano il listato originale l'ho tradotto in GWBASIC (in realtà usavo il solito Quick Basic mantenendo però la compatibilità col GW),l'ho esteso ed ampliato allo stesso tempo anche per le altre due macchine. Questa caratteristica di scrivere software in BASIC portabile (!) su più modelli era una costante degli anni '80 e c'erano riviste che pubblicavano listati di programmi per più macchine (di solito Commodore 64 e Sinclair Spectrum).

L'esperimento è stato interessante anche perché oggi c'è la possibilità di far girare il tutto su emulatori per PC e quindi facilitando di molto lo sviluppo (senza contare la velocità di esecuzione...): io ho usato Win-Vice 2.1 per il C64 e VirtualT per l'M10 e qui sotto li potete vedere tutti in esecuzione.

Dalla versione BASE (ora arrivata alla 1.6A) sono poi derivati altri due programmi e cioè

  • SPREADSHEET ADVANCED (arrivato alla versione 13) che è diventato praticamente un clone di Visicalc;

  • J-SPREAD (versione 3.9 e 4.0), riscritto quasi del tutto in Microsoft P.D.S. 7.1, che è stato integrato nel mio gestionale SPC-JUNIOR come base del modulo di ANALISI DI BILANCIO.

Nel download proposto a fine pagina è disponibile pure la documentazione per tutte le versioni.

Nota: La versione BASE 1.6 è stata portata anche in ERRE PC 3.0 come programma dimostrativo.

BASICALC per PC (40 colonne) e SPREADSHEET ADVANCED in esecuzione

Così per curiosità ho fatto un giro per la Rete per vedere se c'erano altri programmi di foglio elettronico scritti in BASIC per altre macchine dell'epoca: ne ho trovati molti ma solo tre li ho ritenuti interessanti e comunque sono stati fatti funzionare solo dopo alcune modifiche in quanto contenevano degli errori.

1) TABELL per Olivetti M10, Commodore 64 e Sinclair ZX Spectrum della Libreria di Software della Fratelli Fabbri Editori (n. 5) nel 1984: era presente solo il listato della versione per M-10 che è stata convertita anche per il Commodore 64 (per motivi sconosciuti - forse semplice pigrizia - la versione originale su nastro per il C-64 non implementava la maggior parte delle funzionalità del programma per M-10 ed era quindi praticamente inutile). Successivamente questo progetto, rivelatosi più interessante del previsto, è stato esteso sulle due piattaforme e portato pure su PC - in versione 40 ed 80 colonne (vedi Nota 3);

2) BASICALC scritto per l'Apple II nel 1982 da un programmatore americano e pubblicato sulla rivista SOFTALK del Luglio 1982 (a cui si sono aggiunte delle correzioni nel Settembre dello stesso anno): l'ho esteso e convertito anche per Commodore 64 e MBASIC-86 che è la versione del BASIC derivata dall' MBASIC-80 del mitico CP/M (questa versione funziona su PC tramite il driver ANSI.SYS);

E' da notare che in tutti i casi (MBASIC-86 a parte) è stata possibile ottenere la versione compilata che, ovviamente, è più prestazionale rispetto alla versione sorgente. La versione per Apple II, non possedendo la macchina reale, è stata fatta girare sull'emulatore AppleWin, compresa la compilazione con l'ottimo TASC della Microsoft: il tutto ha funzionato benissimo......

3) VSCALC scritto per il VIC-20 (con espansione video a 40 colonne) da un programmatore belga o olandese nel 1984: l'ho ampliato e riscritto per il VIC-20 a schermo standard, il C64, il C16 e il Plus4 e così anche il VIC-20 (sebbene espanso a 28K) ha potuto avere il "suo" foglio elettronico.

Notate in alto a destra i 9K di memoria disponibili (!!).

Ovviamente tutte e tre i programmi sono state convertiti anche in GWBASIC (a 40 e 80 colonne).

Nel link sottostante potete scaricare tutte le versioni di cui è parlato in questa pagina: per le versioni non PC sono compresi anche i sorgenti ed il tutto è disponibile direttamente tramite il disco in .D64 per i Commodore e in .DSK per AppleII.

   Download: SPREADSHEET.RAR

N O T E

1) SPREADSHEET ADVANCED è disponibile in una nuova versione ed è stato ricompilato anche sotto QB64, così da poter essere eseguito anche con i Windows più recenti.

2) Oltre ai programmi succitati, ne sono stati trovati altri tre molto interessanti solo per PC-IBM (PC-CALC, QSHEET e ZCALC) che meritano una pagina a parte. soprattutto l'ultimo che è uno dei programmi dimostrativi del linguaggio ZBASIC (v 4.02-1987), il cui studio si è rivelato molto interessante, anche perché è nato e si è evoluto come linguaggio multipiattaforma (APPLE II, TRS-80, CP/M, APPLE MACINTOSH e MS-DOS).

3) Come sospettavo (da alcuni messaggi e commenti lasciati in inglese) TABELL in realtà è stato "ispirato" (leggi "copiato") da un programma commerciale americano della Skyline Software - chiamato PortaCalc - che era disponibile sin dall'Estate del 1983 per i "gemelli" dell'Olivetti - Tandy M100 e NEC PC8201A. Di questo programma non ho trovato traccia in rete, se non per qualche recensione su riviste e libri, per cui il codice sorgente pubblicato dalla Fratelli Fabbri è l'unico esistente. Porta (che sta per "Portable") era una serie di programmi applicativi per quella tipologia di macchine che copriva vari aspetti applicativi, scientifici e commerciali.