Quando sento parlare dei tempi d’oro delle Bulettin Board System, mentre tutti si animano e sorridono, pensando ai bei tempi andati, mi si stampa in volto un’ espressione ebete dallo sguardo vitreo ed inespressivo, come un italiano medio che si trovasse ad ascoltare la telecronaca di una partita di baseball insieme ad un gruppo di super tifosi degli Yankees!
Il motivo è semplice, ovvero che quel periodo non l’ho vissuto, vuoi per la tirannia dei miei genitori (che così facendo hanno creato un mostro), vuoi perchè, se anche avessi avuto un Commodore 64, mai e poi mai i tiranni (vedi sopra) mi avrebbero dotato di un costosissimo “adattatore telematico”.
Aggiungi che nell’immaginario comune, con quei cosi “attaccati al telefono”, se sbagliavi numero e ti scappava di chiamare tal Professor Falken, c’era la possibilità di scatenare un conflitto termonucleare tra Russia e USA, o più concretamente di vedersi recapitata una bolletta della SIP da 1 milione di lire…
Il mio accesso alla rete telefonica è avvenuto successivamente con la nascita di quella immensa galassia di internet service provider. Avevo comprato un abbonamento che mi permetteva 20 ore di connessione al mese ad una cifra flat irrisoria, ma questa è un’altra storia…
Ora invece che sono un adulto socialmente ed economicamente emancipato, che a quella che una volta era la linea telefonica si connette anche la lavatrice, mai mi complicherei la vita cercando di collegarmi ad una BBS con il mio amato C=.
Ma da un po’ di tempo a questa parte le cose sono cambiate! Finalmente posso cancellare quell’espressione ebete dal mio volto, perché finalmente so cosa significa “frequentare” una BBS!
La BBS in questione la conoscono già in molti “addetti ai lavori”, e come set di caratteri usa il PETSCII, infatti è fatta per essere consultata con i nostri beneamati Commodore, ma non solo! Parliamo della BBS di RetroCampus, sviluppata dall’ uber nerd Francesco “Ciccio” Sblendorio.
Collegarsi non è complicato, partendo dallo strumento, ovvero il modem, esistono tantissimi kit di modem wifi per Commodore, o per i più pratici ce lo si può anche autoprodurre. Una volta in possesso di uno strumento per collegarsi al web, serve digitare l’indirizzo e la porta della BBS.
Lascio il link con le istruzioni da seguire per collegarsi.
La BBS di retroacademy non è un semplice esercizio di stile, al contrario cresce e si aggiunge sempre di nuove funzionalità.
Sotto vediamo una schermata piuttosto aggiornata al momento in cui scrivo.
Oltre alle sezioni divulgative di RetroCampus e RetroAcademy esistono tutte le aree degne di un portale moderno senza mancare le quelle amate dai più retro’.
La sezione delle testate giornalistiche mostra una scelta non banale delle fonti, ad esempio MedBunker, TPI, Il post, o Butac, solo per citarne alcune. Se siete dei veri nerd, la mattina a colazione, la rassegna stampa ve la fate dal vostro C64, mica sky tg24!
Per i più giocherelloni, la sezione games offre i classici tris, forza 4 (ci ho perso dei pomeriggi contro quel maledetto!) o le più mitiche ed ostiche avventure testuali, giocabili direttamente da BBS.
La sezione “servizi” però merita una menzione speciale. Mi è capitato a Brusaporto e poi a Bologna Nerd di vedere la funzione di download con salvataggio su disco ( su un disk drive 1541) di un gioco e la cosa mi ha lasciato a bocca aperta.
Cosa dire poi della moda del momento: la chat!
Ultimamente la chat si sta animando, e va di moda provare a collegarsi in chat con i dispositivi più disparati. Si sono visti C16 (ero presente in chat quando Francesco Gori stava ultimando i test sul suo modem per C16), C64, C128 a 80 colonne, Amiga, IBM e cloni 8086, PC windows e si vedono circolare ultimamente anche dispositivi android.
Sia chiaro, di BBS ce ne sono sempre state, ma in quest’era di social e di connettività sempre presente, abbiamo finalmente una BBS nuova, in italiano, che non solo richiama le BBS dei tempi d’oro, ma si apre a nuove funzionalità e originali offerte di contenuti, tipiche dei nostri tempi, senza dimenticare di restare “a nostra immagine e somiglianza”.
Quindi cosa aspettate? aprite il vostro emulatore di terminale petscii preferito, e troviamoci in chat!
[World’s first full GALs GVP G-Force Combo 030 50 MHz accelerator card]
Fin dal lontano 1990 io e i miei amici amighisti non eravamo “nella media” degli utenti Amiga: la passione per la grafica 3D ci aveva travolto in pieno con programmi come Sculpt-Animate 4D, TurboSilver, Imagine e, più tardi, Real 3D e LightWave 3D. Va da sé che la bramosia di velocità nel calcolo era all’ordine del giorno: il povero 68000 nudo e crudo arrancava… notti intere passate con l’Amiga acceso e la mattina, al risveglio, il primo pensiero non era la scuola: era quello d’accendere il 1084S e vedere “se aveva finito”! Al fine di potenziare il mio Amiga 2000 il primo passo fu quello d’acquistare, intorno al 1991, una scheda acceleratrice, si trattava di un prodotto italiano: Hardital Big Bang. Montava un 68030+68882 a 25 MHz e 2 Megabyte di RAM. L’accelerazione era davvero notevole, ma buona parte del sistema (espansione RAM SupraRAM 2000 e controller HD Commodore A2090A) rimaneva a 16 bit stretta nel collo di bottiglia del bus Zorro II. Venduta la Big Bang ad un amico (Andrea!), convinsi mio padre, fortunatamente appassionato di tecnologia anche lui, a spendere una fortuna per acquistare una splendida scheda acceleratrice GVP G-Force Combo 030 clockata a ben 50 MHz… praticamente un missile all’epoca (1992)! Questa scheda ha potenziato il mio Amiga 2000 in tutti questi anni ed è in uso ancora oggi. Caratteristiche:
CPU 68030 a 50 MHz, PGA
FPU 68882 a 50 MHz, PGA
4 Megabyte 32-bit Fast RAM saldati on-board
3 SIMM sockets (supportano solo moduli SIMM a 64 pin proprietari GVP da 1 o 4 Megabyte)
controller SCSI-II con chip 33C93A a 14 MHz, connettore SCSI interno 50 pin ed esterno DB25
32 bit expansion bus proprietario per la potente scheda grafica GVP EGS 110/24 (un sogno, introvabile!)
Ammiratela in tutto il suo splendore originale, completa di 3 SIMM GVP da 4 Megabyte ciascuna (RAM totale 16 Megabyte):
Il disco SCSI IBM è attaccato alla “schiena” della scheda (è proprio il disco originale che usavo all’epoca, funziona ancora!)
Completa di Guru-ROM per prestazioni SCSI da paura!
Le schermate di Sysinfo non lasciano dubbi sulla potenza del prodotto, guardate soprattutto le performance del disco SCSI: quasi 4 Megabyte al secondo nel 1992!
Smell the Rubber? 🙂
L’Amiga 2000 così potenziato è stato il mio computer principale d’uso quotidiano fino al 2000-2001: oltre alla grafica 3D navigavo su Internet, gestivo la posta elettronica, masterizzavo audio CD e compilation di MP3, ecc…
Poi, per circa 15 anni, è rimasto inutilizzato nella mia cameretta a casa dei miei, ma in questi ultimi anni, col “ritorno di fiamma” della passione per il retrocomputing, l’ho riscoperto e sto cercando di restaurarlo/conservarlo al meglio.
Durante alcuni severi test di lettura/scrittura su HD mi sono accorto che alcuni file risultavano corrotti (copie non fedeli al 100% del file d’origine):
Ho cominciato ad indagare per capire quale potesse essere la fonte del problema. Il primo indiziato è stato il disco fisso: ne ho messo un altro (grazie Matte!) ma il problema persisteva identico. Provando e riprovando ho notato che gli erorri erano assenti a sistema appena acceso (da freddo) ma si presentavano sempre più numerosi via via che passavano i minuti. Di conseguenza, ho pensato potesse essere un problema di surriscaldamento: su questa scheda ci sono 8 PAL che diventano bollenti, si fa fatica ad appoggiarci sopra i polpastrelli!
La prima azione che ho pensato di fare è stata quella di migliorare il flusso d’aria che raffredda la scheda: le 8 PAL si trovano vicine al fianco dell’alimentatore dell’A2000, fianco che è privo di asole per il passaggio d’aria (le asole sono presenti soltanto sul lato frontale).
Non è proprio la posizione migliore per una buona dissipazione del calore…
Mi sono quindi trasformato in un fresatore 😀 ed ho fresato 38 asole sul fianco dell’alimentatore rivolto verso la scheda acceleratrice; inoltre, per mantenere un flusso d’aria veloce, ho parzializzato le asole originali incollando un lamierino all’interno dell’alimentatore stesso.
Ora l’aria passa anche lateralmente!
Infine, ho applicato un dissipatore di alluminio su ciascuna PAL:
I successivi test di lettura/scrittura su HD hanno mostrato un notevole miglioramento, gli errori erano pochissimi, ma qualche errorino rimaneva… non potevo accettarlo… 😉
La convinzione che il problema potesse essere il risultato di anni di forte surriscaldamento di queste benedette PAL mi ha spinto a cercare una strada per sostituirle. Ma come fare? Parallelamente, l’amico Nicola stava sperimentando la lettura di alcune PAL e la loro sostituzione con GAL (chip più moderni) programmate in modo da risultare perfettamente compatibili. Le GAL sono chip più performanti e non scaldano come le PAL. Avete capito, ora il nostro comune obiettivo sfidante era chiaro: dovevamo in tutti i modi riuscire a sostituire le 8 PAL con 8 GAL! 😀
Il primo problema da risolvere era ovviamente quello di reperire il codice con cui gli ingegneri della GVP avevano programmato le 8 PAL: sul web non si trovava nulla di nulla! Abbiamo quindi tentato di leggere il codice delle PAL, ma tutte 8 sono risultate protette… delusione totale!!!
A questo punto, incredibilmente, il destino si è fatto vivo: Nicola ha trovato ed acquistato (fra l’altro a Rubiera, di fianco a casa!) una rara scheda praticamente IDENTICA alla mia, eccola qua:
Era un chiaro segnale che non dovevamo per nessun motivo mollare, anzi: dovevamo puntare ancora più dritti verso il nostro obiettivo! 😀 Infatti, incredibilmente, la lettura delle 8 PAL della scheda di Nicola ha avuto pieno successo, nemmeno una è risultata protetta! Questa cosa ci ha davvero sorpreso, mai ce lo saremmo aspettato.
Le PAL presenti sulla mia scheda (REV 3 – 1.02) sono:
U34-74F4 AMD PAL20L8-5PC
U35-5F54 MMI PAL16L8DCN
U36-90C6 TI TIBPAL20R6-7CNT
U37-4D7B AMD PAL16L8-5PC
U38-38CC AMD PAL16L8-5PC
U39-F029 AMD PAL20L8-7PC
U40-B520 AMD PAL16L8-5PC
U53-A2B1 AMD PAL20L8-7PC
Le PAL presenti sulla scheda di Nicola (REV 3 – 1.03) sono:
U34-74F4 TI TIBPAL20L8-5CNT
U35-5F54 MMI PAL16L8DCN
U36-90C6 AMD PAL20R6-7PC
U37-4D7B AMD PAL16L8-5PC
U38-38CC AMD PAL16L8-5PC
U39-F029 AMD PAL20L8-7PC
U40-B520 AMD PAL16L8-5PC
U53-A2B1 AMD PAL20L8-7PC
Si tratta, sostanzialmente, di 2 set di PAL identici: tutti i checksum coincidono!
Bene, eravamo finalmente in possesso dei file JED contenenti le programmazioni delle 8 PAL, ed era già un bel risultato perché, in caso di rottura, avremmo avuto la possibilità di ricreare una PAL sostitutiva. Ma il nostro obiettivo, come detto, era di creare un set di 8 GAL sostitutive. Nicola, ormai esperto dopo aver smanettato per giorni con diversi software, è riuscito a convertire i file JED delle PAL in 8 file GJD pronti per programmare 8 GAL.
[segue]
>>> APPROFONDIMENTO: CONVERSIONE PAL ==> GAL
Per trasformare una PAL in GAL si parte da una copia del JED, la “Fuse Map” della PAL, poi con un semplice programma di conversione a riga di comando si trasforma in una Fuse Map compatibile con la programmazione di una GAL.
Le GAL che utilizziamo per rimpiazzare le vecchie PAL, anche se di generazione successiva rispetto a quest’ultime, sono comunque una tecnologia vecchia di anni e ormai sorpassata, ora rimpiazzata dalle moderne FPGA.
Comunque in rete si possono trovare ancora due programmi, uno della Lattice PALTOGAL e uno della National PAL2GAL.
Entrambi validi e compatibili con MSDOS. È possibile comunque utilizzarli su un sistema moderno in emulazione DosBox.
Prima di mostrare come fare la conversione è bene precisare che le funzionalità delle diverse tipologie di PAL possono essere riprodotte su una sola tipologia di GAL: infatti, quest’ultime si possono configurare sia in modalità puramente combinatoria che “registered” (R).
Questo vuol dire che con una GAL16V8 o GAL20V8 possiamo programmare PAL16 L4 L6 L8 R4 o PAL20 L4 L6 L8 R4 R6 ecc…
Utilizzare PALTOGAL della Lattice è molto semplice, si possono specificare i parametri sulla riga di comando oppure eseguirlo in modalità interattiva e fornire una alla volta le informazioni necessarie.
I parametri sono tre: il file JED di input che contiene la Fuse Map della PAL, il file di output ed il numero corrispondente alla conversione che vogliamo fare.
Esempio:
paltogal.exe PAL16L8.JED GAL16V8.GJD -c 2
L’estensione GJD sul file di output non è importante, serve soltanto per identificare la tipologia del JED (GAL JED); più importante è indicare il numero di conversione adatto secondo il seguente elenco da 1 a 64:
È bene notare che questa tipologia di conversione è una “traduzione” della mappa di bit della Fuse Map: le equazioni non vengono estrapolate, l’ordine dei fattori non viene toccato e non viene eseguito nessun tipo di semplificazione. Questo nella maggior parte dei casi può andare benissimo ma come abbiamo visto può essere necessario ottimizzare ulteriormente la programmazione con tool come WinCupl o OPALJR. Ma questa è materia per un altro articolo…
Le GAL sono state scelte come da elenco seguente:
U34-74F4 LATTICE GAL20V8B 15LP
U35-5F54 LATTICE GAL16V8D 15LP
U36-90C6 ATMEL ATF20V8B-15PC
U37-4D7B LATTICE GAL16V8D 15LP
U38-38CC LATTICE GAL16V8D 15LP
U39-F029 LATTICE GAL20V8B 15LP
U40-B520 LATTICE GAL16V8D 15LP
U53-A2B1 LATTICE GAL20V8B 15LP
NOTA per U36: utilizzando una LATTICE GAL20V8B 15LP per U36 l’acceleratrice è risultata un po’ più lenta e si sono ripresentati numerosissimi errori di scrittura su HD, invece una ATMEL ATF20V8B-15PC si è dimostrata compatibile al 100%.
Scaricate qui il set completo di file GJD pronti per programmare le 8 GAL: [Here you can download a complete set of GJD files ready to program the 8 GALs:]
NOTA BENE: questo set è applicabile soltanto alla G-Force 030 a 50 MHz! [PLEASE NOTE: this set is only applicable to the G-Force 030 @ 50MHz!]
[segue]
>>> APPROFONDIMENTO: COME SI COMPORTA LA SCHEDA PRIVANDOLA DELLE PAL?
A mano a mano che sostituivo le PAL con le GAL ho provato a vedere, una ad una, come si comportava il sistema privo della PAL (zoccolo vuoto). Di seguito elenco tutte le prove che ho fatto.
U34 zoccolo vuoto: il sistema non vede più la RAM montata sulla scheda.
U35 zoccolo vuoto: inizialmente non ho riscontrato alcuna differenza. Ho letto che U35 è coinvolto nell’Autoconfig della memoria. Questa scheda può configurare la sua RAM in 2 modi settando il jumper J12: – J12 CHIUSO: i primi 8 Megabyte nello spazio Autoconfig e gli altri 8 estesi – J12 APERTO: tutti i 16 Megabyte estesi La mia scheda è sempre stata configurata con tutti i 16 Megabyte estesi, ecco perchè non ho notato alcuna differenza lasciando vuoto lo zoccolo di U35.
Col jumper J12 aperto (tutta la RAM estesa), la presenza o meno di U35 nello zoccolo, come detto, non comporta evidenti differenze (Sysinfo vede la sola acceleratrice e 16 Megabyte estesi):
Chiudendo il jumper J12 la differenza invece diventa tangibile. U35 nello zoccolo (J12 CHIUSO): Sysinfo elenca una scheda di memoria (virtuale) in più, si tratta degli 8 Megabyte nello spazio Autoconfig. Questo è confermato anche dalle successive due schermate d’informazioni sulla memoria:
U35 zoccolo vuoto (J12 CHIUSO): la scheda di memoria (virtuale) Autoconfig da 8 Megabyte sparisce e rimangono soltanto 8 Megabyte di RAM estesa. Le schermate di Sysinfo lo confermano:
U36 zoccolo vuoto: il sistema non parte, schermo nero.
U37 zoccolo vuoto: il sistema non vede più la RAM montata sulla scheda.
U38 zoccolo vuoto: il sistema non parte, il led di power passa da bassa ad alta luminosità.
U39 zoccolo vuoto: il sistema non parte, schermo nero.
U40 zoccolo vuoto: il sistema diventa lento (~50%) e dà errori al boot.
U53 zoccolo vuoto: il sistema parte ma va in GURU ad ogni boot (errori: 8000 0003, 8000 0004 e 8000 000A).
Ed ecco la scheda acceleratrice nella sua nuova veste “full GAL”: obiettivo raggiunto il 24/10/2020! 😀
Le alte temperature delle PAL sono soltanto un ricordo: le 8 GAL rimangono praticamente fredde anche molto tempo dopo l’accensione! 😉 Ed una decina d’ore di file test continuo senza alcun errore dimostra che i problemi di scrittura sono stati finalmente risolti:
Beh, alla fine devo proprio dire che è stata un’avventura lunga ma divertente, molto emozionante… e la soddisfazione di esserci riusciti è unica, vero Nicola? 😀 Che meraviglia!
Scaricate qui il set completo di file GJD pronti per programmare le 8 GAL: [Here you can download a complete set of GJD files ready to program the 8 GALs:]
Torno a parlare del mio tanto decantato Commodore 128D…
Una macchina veramente avanti per i tempi (siamo nel 1985) in cui fu presentata, progettata in fretta e furia per rimediare al fallimento della serie Commodore 264.
Fu l’ultima macchina a 8 bit prodotta dalla Commodore e venne velocemente abbandonata a causa dell’imminente successo delle macchine a 16 bit e soprattutto della nuova piattaforma Amiga.
Eh è proprio a causa di questa “certa fretta” di rilascio e poi di abbandono che il 128D ebbe diversi problemi di sviluppo hardware come ad esempio il surriscaldamento anomalo a cui andavano incontro i primi prototipi, che costringevano gli sviluppatori a raffreddarlo con metodi artigianali…(Classico modus operandi degli ingegneri della Commodore).
Ho fatto questa premessa per farvi capire quanto abbiano spinto al massimo questa fantastica macchina dotandola anche del più avanzato tra i drive per dischi da 5¼ pollici della Commodore, poiché permetteva di utilizzare le due facce del disco senza la necessità di capovolgerlo come invece per i precedenti drive 1541/1570.
E qua arriviamo alla nota dolente, con ciliegina amara sulla torta (CAN….come direbbe qualcuno dei Nerdoni) in cui mi sono imbattuto qualche giorno fà:
Il classico 20, READ ERROR che tradotto siginifica:
20: READ ERROR (block header not found) Il controllore del disco è impossibilitato ad individuare l’intestazione del blocco-dati richiesto. Causato da un numero illegale di settore, o dall’intestazione che è stata rovinata.
Dove ovviamente è tutto chiaro no? (Ci vuole poco a capire che per “intestazione” la commodore fà riferimento alla TESTINA del 1571…)
Da questo errore “molto chiaro” sono partito a fare varie prove per cercare di capire la problematica e quindi ho cominciato ad eseguire diverse formattazioni cambiando anche tipologia di floppy disk onde evitare problemi di incompatibilità.
Prima ho eseguito questo programmino in modalità 128:
10 OPEN1,8,15,”U0>M1″
20 PRINT#1,”N0:PIPPO,01″
30 CLOSE1
RUN
e ovviamente la formattazione è andata a ramengo con il solito errore prima descritto:
Ho ripetuto la stessa procedura anche in modalità 64 con l’unica differenza che il disco veniva formattato a 664 Blocchi come si vede dalla foto seguente:
Come avete capito quindi in mod. 128 non riusciva a completare la formattazione mentre in mod. 64 la formattazione avveniva correttamente e questo comportamento mi ha mandato fuori strada per un bel pò…fino a quando mi sono ricordato che il 1571 può emulare il 1541 per garantire la compatibilità con software e programmi vari.
In buona sostanza se usato con un Commodore 64, il 1571 attiva automaticamente la modalità 1541 andando quindi a completare correttamente la formattazione.
Ho dedotto che il 1571 stava lavorando in modalità “singola faccia” ed è il motivo percui in mod. 64 la formattazione riusciva.
Fortunatamente avevo un 1571 esterno, comprato qualche tempo fà su ebay ad un ottimo prezzo che mi ha permesso di testare la sostituzione della meccanica sul mio 128D.
Ho avuto ulteriormente problemi di lunghezza di cavi dei vari connettori che mi hanno costretto a provare l’unità in modo volante ma fortunatamente la mia intuizione è stata corretta e finalmente ora la formattazione a 1328 blocchi (doppia faccia, entrambe le testine) avviene perfettamente in entrambe le modalità:
Ora non mi resta che trovare il modo di allungare i fili, o eventualmente scambiarli tra le due unità meccaniche se possibile, in modo da rimettere in ordine finalmente il mio 128D.