Riattivazione Scheda

Home Indietro Su Avanti

Riporto in queste pagine la successione degli eventi che hanno riportato in ordine cronologico dal 2008 al 2011 a far funzionare la mia scheda MK-82:

1° e 2° Quadrimestre 2008
Ho preparato un foglio di polistirolo espanso foderandolo di carta stagnola, quindi ho estratto tutti gli integrati dalla scheda e li ho  posizionati sul polistirolo in modo da mantenere la medesima posizione in cui si trovavano sulla scheda. Ho verificato con un tester la continuità di ogni pista sulla scheda seguendo tutti i collegamenti riportati sugli schemi elettrici della Big Board I che avevo scaricato dal sito di Dave Tweed. Non ci sono differenze! Ho letto inoltre il contenuto delle 2 Eprom presenti sulla mia BigBoard I: una contenente il Bios P.F.M 3.3 e l’altra contenente la mappatura per la Generazione dei Caratteri Video salvando i loro contenuti. Ho provveduto tramite un programmino a disassemblare il contenuto del BIOS per verificarlo almeno per la prima parte di avvio confrontandolo con le informazioni in mio possesso allo scopo di verificare se le eprom avessero avuto nel tempo una perdita del loro contenuto: sembra tutto regolare.

15 Agosto 2008
Ho appena acceso di nuovo e per la prima volta dopo almeno 20 anni la mia scheda. Il video appare immobile e sempre pieno di caratteri tipo “8” o “0” sincronizzati in una maschera di 24 x 80 caratteri talvolta lampeggianti. La mancata pulizia dello schermo è sintomo di errate operazioni da parte del processore. Non posso sapere se le varie temporizzazioni (clock) sono corrette, se l’alimentatore possa avere del “ripple” o se la sezione video funzioni correttamente. Dal momento che il pulsante di reset sembra non influisca sulle operazioni del processore non posso escludere che anche la sezione di reset della CPU non possa avere qualche problemino. Inoltre non possiedo neppure un oscilloscopio per poter effettuare altre ulteriori verifiche, come non posso sapere se alcuni integrati possano essere difettosi o guasti del tutto.

17 Agosto 2008
Se tolgo la Eprom Generatore di caratteri e provo ad accendere la scheda non appare nulla sullo schermo. Viceversa se la lascio inserita nella scheda e provo ad estrarre la Eprom BIOS sul video appare una perfetta maschera di 24 x 80 caratteri perfettamente sincronizzati ed immobili. Presumo che la CPU o la DRAM non funzionino correttamente da poter caricare il BIOS, eseguirlo e quindi effettuare il clear screen. Però anche il pulsante di reset sembra non attivi alcunché.

19 Agosto 2008
Sono riuscito a farmi imprestare un oscilloscopio doppia traccia per cui ho verificato almeno la correttezza dei clock della scheda: il clock principale di 20MHz è una onda perfettamente sinusoidale, mentre tutti gli altri estratti per divisione da questo sono tutti perfettamente onde quadre in perfetto sincronismo con il clock principale e hanno la frequenza specificata dal manuale per le varie sezioni circuitali. Non è che c’è per caso qualche falso contatto nella scheda?

28 Agosto 2008
Ho verificato l’alimentatore (si tratta di un kit  Lx.380 della Rivista Nuova Elettronica) ed ho anche alimentato la scheda con un alimentatore proveniente da un normale PC. I valori di tensione di tutte le alimentazioni rientrano nelle normali tolleranze, ma ancora nulla cambia. Ho bisogno di incontrare persone più esperte di me su queste vecchie circuiterie per poter verificare tutti gli integrati della scheda.

Dicembre 2009
Non disponendo di altri integrati per la memoria DRAM ho chiesto sul newsgroup it.comp.retrocomputing e un carissimo amico mi ha inviato ben 32 integrati tipo Texas 4116 che in precedenza ha verificato uno ad uno su una espansione di memoria del suo Apple II. Li ho sostituiti  tutti ma ancora la scheda non fa il clear screen.

Gennaio 2010
Ho fatto diverse fotografie dei diversi segnali (Clock, Data Bus, Address Bus, Control Bus, ecc.) al mio oscilloscopio pubblicandoli sul sito insieme allo schema elettrico della scheda (vedere le pagine 2-01 e A-01 del file seguente: Big_Board_1980.pdf ) per chiedere aiuto alla rete. Sembra che la CPU Z80 non sia bloccata ma probabilmente non sta facendo nulla. Chissà per quale ragione non sta caricando il BIOS nella DRAM?

Febbraio 2010
Philip Avery che vive in New Zealand ha un vecchio Kaypro II.  Phil mi ha suggerito di scavalcare il circuito di reset collegando i componenti R40-C140 direttamente sul pin 12 lato saldature di U103 dopo aver sollevato il pin dell’integrato in modo da scollegarlo dal circuito. Probabilmente ci sono altri problemi in quanto ancora la scheda non fa il reset però premendo più volte il pulsante di reset almeno lo schermo comincia a cambiare stato: lampeggia in tutto od in parte.  Non immaginavo fosse così difficile provare a far ripartire questa scheda. Gary E Kaufman (http://www.classiccmp.org/pipermail/cctech/2006-March/019509.html) mi ha gentilmente inviato un file binario di nome CRTRAM.BIN  che lui utilizzava per testare le schede quando a suo tempo, molti anni fa, le assemblava: in pratica evitava di far ricopiare il BIOS in RAM facendo lavorare il processore senza RAM e attivando il clear screen. In questo modo era in grado di verificare il resto della circuiteria per poi concentrarsi sulla sezione DRAM (che evidentemente è sempre stata un punto critico della scheda). Ho programmato un chip 2716 Eprom usato che avevo e lo ho inserito al posto della EPROM PFM di sistema. Purtroppo non è cambiato nulla. Ma il problema principale è che non ho le capacità e la familiarità con i segnali digitali per capire che cosa non fa partire la scheda. Ho fatto ulteriori fotografie di diversi segnali al mio oscilloscopio e le ho pubblicate per mettere in condizione qualcuno su qualche Forum di potermi aiutare a identificare la problematica. Da un Forum mi danno il seguente suggerimento: “Enrico, your traces show me that at least the Z80 is operating normally–it appears to be executing instructions and is not halted. It does not appear to have NMI asserted, which is also good. ….. I would start looking is at the buffers to the Z80 (U83, U65, U78, U79, U82). A failure in any of these would produce the problem you’re seeing.” AND “If you are using the “standard” 2716 EPROM with the Big Board Monitor software, I note that the first task performed is the clearing of the display memory to spaces. Since that isn’t happening, the failure is probably somewhere between the Z80 and memory.

Marzo-Aprile 2010
Roberto Bazzano, una persona davvero disponibile (website http://www.z80ne.com) ha verificato tutti i chip che gli avevo inviato mediante un dispositivo per il test di integrati TTL riscontrando anomalie nei seguenti 3 ICs: U101 ovvero un 74LS14 – impiegato secondo gli schemi elettrico per:

  • A-4 pin 1-2 Segnale Ready da Floppy Drive,
  • B-4 pin 3-4 Segnale Raw Data sul Floppy Controller 1771,
  • C-4 pin 5-6 per estrarre il segnale di clock da quello Raw Data,
  • D-4 pin 9-8 Segnale Clock Data nel Floppy Controller 1771,
  • E-1 pin 11-10 Funzione Cold Reset,
  • F-1 pin 13-12 Pulsante di Reset

Ne deduco che almeno la funzione di reset dovrebbe cominciare a funzionare correttamente, oltre a risolvere anche altre funzionalità al momento non ancora verificate. U75 ovvero un 74LS151 molto sensibile al rumore. E’ impiegato nella parte  video in cui viene abilitato sequenzialmente da U161 per presentare i dati sul Video Out. U74 ovvero un 74LS174 molto sensibile al rumore. E’ impiegato nella parte  video in cui sul fronte di salita sul suo pin pin 9 il dato presente in ingresso viene trasferito in uscita e mantenuto in tale stato fino al prossimo fronte di salita sul pin 9. Entrambi gli integrati trasportano il segnale video in uscita dalla EPROM generatore di caratteri, forse è proprio per questo motivo che lo schermo è sempre pieno di strani caratteri. Roberto sta completando le verifiche dei miei integrati. Sono contento che ne trovi qualcuno rotto almeno potrà essere identificato meglio il problema e quindi risolto. Roberto ha verificato tutti gli integrati trovandone 4 guasti.  Li ho sostituiti ma la scheda SBC non ne vuole sapere di resettare. Occorrerà provare a verificare lo stato di alcuni segnali attorno alla CPU Z80 per verificare se per caso sia bloccata o capire che cosa stia facendo.

18 Maggio 2010
Oggi Roberto Bazzano ha ricevuto la mia preziosa ed unica scheda MK-82 accompagnata dagli schemi elettrici e descrittivi. Si tratta di una persona estremamente disponibile e con cognizioni tecniche-pratiche di assoluto primo livello soprattutto nella diagnostica e riparazione elettronica. 15 Settembre 2010 Ho risentito Roberto oggi: mi ha parlato di una cosa che neanche io sapevo: una “Race Condition”: in pratica un disallineamento nella sincronizzazione dei segnali che porta a stati logici casuali che rendono l’accesso alla parte di memoria RAM della scheda inutilizzabile. E’ evidente che in questo modo la scheda non può fare neppure lo start perché la prima operazione che il BIOS prevede è la sua copia nella parte alta della RAM (F000H-FFF0H), operazione che non potendo avvenire correttamente inibisce ogni successiva operazione del processore, compreso il clear screen per poi quindi attendere un invio da tastiera o da porta seriale.

13-14 Novembre 2010
Finalmente la PRIMA GRANDE “buona” notizia dal grande Roberto: dopo una serie di *lunghe* sessioni passate davanti all’analizzatore, sono riuscito a capire quanto segue. Innanzitutto, non sembra essere una race condition sulla ram: i segnali di RAS e CAS sono corretti. La CPU legge correttamente il firmware in ROM e lo esegue correttamente: si vedono chiaramente tutte le istruzioni eseguite. In particolare si vede la copia di tutto il firmware in RAM fatto tramite l’istruzione ED B0, poi si vede la CPU saltare in ram e cominciare a leggere ed eseguire il codice dalla RAM. Le prime cose che fa quando esegue tale codice sono disabilitare gli interrupt (istruzione F3), e poi eseguire un loop che azzera la memoria video. Questo loop termina con un’istruzione JR presente alla locazione F032. Quello che succede è che quando la CPU legge la locazione F033 che dovrebbe contenere FA, che è il displacement per l’istruzione di salto, al suo posto legge *quasi* sempre D2. Ovviamente in questa condizione salta ad una locazione errata e non fa più quello che deve. La cosa *molto* strana è che se analizzo le uscite dei buffer collegati direttamente alla ram, quando la CPU copia la locazione F033 dalla eprom alla ram mi ritrovo correttamente FA sull’uscita dei buffer e direttamente in ingresso alla ram. Invece, quando dopo poco rilegge quella locazione, all’ingresso dei buffer lato ram mi ritrovo D2 anziché FA. Quindi non dovrebbe essere un qualcosa a valle dei buffer verso la CPU, ma sembra che semplicemente la ram perda qualche bit (ovviamente ho già cambiato gli integrati e il risultato è sempre uguale). A questo punto propendo per il circuito di refresh: magari i timing non sono proprio perfetti o succede qualcosa in quella locazione per cui la ram non si rinfresca correttamente e si perdono 2 bit. Ovviamente gli stessi bit delle istruzioni precedenti vengono letti correttamente. Oggi, ravanando con l’analizzatore, mi sono accorto che quando la CPU copia la locazione F233 in ram durante la copia iniziale del firmware (locazione che nella eprom contiene D2), gli indirizzi sulla ram non erano stabili durante la transizione del CAS da 1 a 0. Il risultato era che andavano a 0 quando c’era la transizione del CAS, così la ram modificava l’indirizzo di colonna da 64 a 60, e il D2 veniva scritto nella locazione F033 anziché nella F233. Ecco perché in lettura della F033 mi ritrovavo D2 anziché FA (che era stato scritto prima). Il difetto era causato da U58. Si tratta proprio di un problema di latenza durante il transito dei segnali attraverso quell’integrato, perché gli indirizzi al suo ingresso erano ben stabili prima che il segnale MUXC variasse da 0 a 1. Quando il MUXC andava a 1, i segnali in uscita di U58 impiegavano un po’ a stabilizzarsi, e nel frattempo si attivava il CAS con i segnali non ancora stabili. Controllando lo schema, mi sono accorto che U58 (e U59) sono dei 74157, e le loro uscite sono collegate a ben 32 (!!!) integrati RAM. Peccato che il 74157 abbia un fanout di 10, quindi oltre i 10 ingressi collegati alle sue uscite non se ne garantisce il funzionamento…  Infatti hanno messo delle resistenze da 33 ohm sulle loro uscite per limitare la corrente, altrimenti l’assorbimento dei 32 ingressi delle ram avrebbe bruciato gli integrati. Però, così facendo, il 74157 è oltre al limite operativo, quindi può senz’altro essere che i transistor sulle sue uscite impieghino più del necessario a fornire la corrente/tensione necessaria. Ma dico io, come cavolo si fa a progettare una roba simile?!?!? Non potevano mettere dei buffer (un banale 74LS244) sulle uscite dei 74157??? Addirittura il segnale CAS, che è sempre collegato a tutte le 32 ram, l’hanno bufferizzato con 2 inverter in parallelo!!!! Mamma mia, che obbrobrio…. Poi, mi sono accorto che sulla scheda i 74157 erano stati sostituiti con dei 74LS157 (mica l’avevo fatto io?!?!?). Ora, sebbene abbiano entrambi un fanout di 10, il 74157 assorbe 50mA, mentre il 74LS157 solamente 5 mA. Logico quindi pensare che il 74LS157 avesse comunque meno corrente a disposizione da fornire alle sue uscite rispetto al 74157. Morale della favola: ho sostituito i 74LS157 con dei 74157 e finalmente il video si è azzerato ed è comparso una sorta di (incomprensibile) prompt. Siamo quindi andati oltre al blocco completo allo startup. Ora c’è ancora qualcosa fuori fase perchè i caratteri al prompt sono senza senso, però la cosa che mi conforta è che ad ogni reset (tramite il tasto, che funziona sempre) sono sempre gli stessi.  Adesso parte la fase 2: bisogna seguire cosa fa il codice istruzione per istruzione per capire perchè vengono fuori quei caratteracci.  In questo senso può essere utile avere una copia del firmware sicuramente funzionante. Foto della PRIMA videata della mia MK-82 dopo ben 27 anni: 20 Novembre 2010
Un’altra grandiosa notizia da Roberto: Finalmente oggi è comparso il corretto prompt “system monitor 3.3”. Non avevo la macchina fotografica con me, mi spiace…  Si trattava di un falso contatto sulla Eprom del generatore di caratteri. Controllando con la lente mi sono accorto che c’era una saldatura interrotta su un pin: ho quindi rifatto tutte le saldature ed è partito. Poi partiva a singhiozzo, a volte si a volte no: quando non partiva bastava premere qualche chip e ripartiva. Ho quindi tolto tutti i chip vitali (buffer e simili), gli ho limato i pin per togliere l’ossido, dato il deossidante agli zoccoli e rifatto le saldature: ora sembra stabile e parte sempre. Comunque il problema enorme di questa scheda è che gli zoccoli degli integrati, specialmente quelli grigi, sono di pessima qualità: basta togliere un integrato che si sfilano le mollette che tengono i pin, e spesso queste ultime sono troppo dilatate e non spingono correttamente il pin sul contatto. A questo aggiungi l’ossido e le saldature interrotte, e il quadro è completo Ho poi collegato una tastiera parallela (quella del computer di NE) facendo un cavo adattatore: il computer riceve i caratteri ma sbaglia a leggere i tasti, cioè io premo ad es. la A e compare un numero o un simbolo. Ora devo capire perchè.

Aprile 2011
Grazie alla sua esperienza, Roberto Bazzano (Sito Web: www.z80ne.com ) è riuscito a resuscitare la mia scheda. Stava cercando di verificare la possibilità di collegare un drive 8” senza alcuna possibilità di successo. Purtroppo mi informa che essa si comporta in modo instabile: si blocca in continuazione, il suo funzionamento non è lineare, e le condizioni di errore non sono riproducibili. Ci sono falsi contatti a iosa: bisognerebbe veramente dissaldarla completamente e risaldare tutto, e cambiare tutti i condensatori di disaccoppiamento a disco con dei 100nF in poliestere. Si tratta di un lavoro che non è detto che possa riuscire senza danneggiare la scheda. In effetti gli zoccoli di tutti gli integrati sono del tipo DIP == Socket Dual Wipe Type e ho sempre pensato che sarebbe stato meglio se fossero stati presenti zoccoli Tulip == Socket Machine Tooled.  Roberto mi ha confermato inoltre che a suo avviso tutti gli integrati presenti dovrebbero essere funzionanti. Altri con cui sono in contatto mi suggeriscono di controllare qualche “giro di massa” o “disturbi che potrebbero essere presenti sulle linee di alimentazione”. Dopo un primo momento di apprensione per come poter fare a dissaldare tutti o buona parte degli zoccoli presenti, sono riuscito a sapere che proprio dove lavoro è disponibile una pistola dissaldatrice a temperatura regolabile dotata di pompetta elettrica. Cosi’ ho cominciato ad esercitarmi con altre schede di recupero e sto vedendo che anche se con molta pazienza è possibile dissaldare qualsiasi componente senza danneggiare troppo le piste dei circuiti stampati doppia faccia. In ogni caso prima di tentare di dissaldare qualsiasi componente, è indispensabile ravvivare prima e bene le saldature. Pertanto mi propongo al ritorno della mia scheda di ravvivare tutte le saldature, riverificare i percorsi delle piste e tentare di capire se la scheda si comporti stabilmente e solo in secondo luogo poter dissaldare quella parte di zoccoli relativi alla componentistica di controllo e bufferizzazione dei dati. Sono davvero sfiduciato.

19 Giugno 2011
Roberto Bazzano (Sito Web: www.z80ne.com ) è una persona davvero incredibile:  non solo adesso la scheda è stabile, ma ha generato, su un supporto da 5.25”, il sistema operativo CP/M  dalla immagine del disco di boot  per la mia scheda tramite le immagini  .IMD messe a disposizione da Dave Dunfield (http://www.classiccmp.org/dunfield/img/ ) , quindi ha costruito un cavo adattatore per collegare una unità drive 5.25” al connettore IDC 50pins della mia scheda e si è messo a provare. Dapprima ha individuato dei falsi contatti dovuti all’U105 (TTL SN7406) e poi su mia indicazione (analizzando foto dettagliate della scheda) la rottura parziale della resistenza multipla RN1 (indicata sulla board con RP1). Il risultato è la seguente MERAVIGLIOSA schermata: Sono davvero senza parole: è riuscito a resuscitare la mia scheda. Nel frattempo ho realizzato un circuito indicatomi da Alex Cameron di Melbourne che utilizzando un PIC 16F84 consente di “trasformare” una qualsiasi tastiera PS/2 in una tastiera parallela secondo la sequenza di cablaggio come necessita la scheda BigBoard I. Per verificare il suo funzionamento ho realizzato anche un circuito che accende i led in corrispondenza ad ogni bit della interfaccia parallela e verificando la corretta accensione binaria dei leds con una tabella ASCII. Tutto OK.

Sabato 5 novembre 2011
Roberto ha concluso anche le ultime prove e la scheda vive di vita propria. E’ in grado di  fare il boot del proprio sistema CP/M, copiare tramite comando PIP tra drive 3.5″ e 8″ e adesso dispone finalmente anche della interfaccia seriale con una nuova SIO/O. Non presenta piu’ alcuna instabilità e sembra nuova di fabbrica. Nel frattempo sono riuscito a collegare un drive 8″ ad un vecchio PC dotato di interfaccia floppy disk di tipo FM/MFM e generato con il programma di Dave Dunfield dei floppy fisici nei vari formati 8″, 5.25″ e 3.5″ impiegando drive da 80 tracce.

Sabato 12 Novembre 2011
La scheda mi è appena arrivata ed ecco come si presenta.

 

Giovedi 17 Novembre 2011
Attendendo l’arrivo della scheda e pregando che il servizio postale non me la perda da qualche parte, avevo preparato un cavo flat di adattamento secondo le indicazioni specifiche fornitemi da Roberto. Il cavo flat non ha particolari differenza tra drive 8″, 3.5″ e 5.25″ ad eccezione delle connessioni relative ai Drive Select ed ai Motor On. Ad eccezione di questi fili tutti gli altri sono semplicemente in parallelo, mentre : – tutti i Drive Select saranno connessi direttamente al drive 8″ e solo il Drive select desiderato alla unità desiderata per i drive 3.5″ e 5.25″. Se il drive A dovrà essere un drive da 3.5″ allora il Ds0 della BigBoard I  andrà collegato al Ds1 del drive da 3.5″ e solo a questo (agli altri drive no!) poiché questo internamente è configurato come DS1 dalla fabbrica. Analogamente nel caso di un drive da 5.25″; – i Motor On saranno connessi in parallelo a tutte le unità siano esse da 8″, da 5.25″ o da 3.5″. (Prevedo in futuro di predisporre una sorta di commutatore esterno in modo da poter impostare quale disco potrà eseguire il boot del sistema operativo CP/M).  Preparo su un piano la scheda e predispongo tutto l’equipaggiamento composto da un alimentatore ATX con il relativo connettore per il prelievo delle alimentazioni anche per il drive 8″, l’alimentatore a +24Vdc per il solo drive 8″, il cavo flat di adattamento, un cavo flat per collegare gli altri drive 3.5″ o 5.25″, un drive da 3.5″ impostato come drive B, l’adattatore per la tastiera PS/2-parallela, il tasto di reset, un monitor Q.bell impostato su ingresso CVBS e quindi accendo il tutto. Lo schermo appare senza caratteri (avrà la scheda fatto il clear screen?). Faccio qualche ulteriore prova per aggiustare qualche piccolo imprevisto e premo il tasto “invio” e a video compare la scritta “***  System monitor 3.3  ***“ ed il prompt “*“. Mi fermo qualche istante e tiro un ancora forte respiro di stupore e incredulità. Quindi oso di più e premo il tasto “b”. Sento un click sul drive da 8″ , qualche ulteriore rumore corrispondente ad un avanzamento del suo stepper motor e sul display compare “60K CP/M VERSION 2.2” ed il prompt “A>“. Quindi proseguo digitando “dir”. Ancora quello stesso rumore cui non ero più abituato e appare il contenuto del disco di sistema CP/M. Continuo inizializzando il drive da 3.5″ per poi copiare sistema e file dal drive 8″ al drive 3.5″. Quindi li inverto fra loro e effettuo il bootstrap del CP/M dal drive 3.5″. Tutto funziona alla perfezione. Ogni volta che spengo o faccio il reset della scheda ottengo la stessa stabilità e PERFEZIONE. Ho il batticuore ed una emozione come un bimbo di 5 anni. Vedo finalmente che tutto funziona:

 

Dicembre 2011
Avrei voluto creare un apposito contenitore in legno per la mia vecchia scheda, ma il poco tempo libero e la mia vita sempre di corsa, mi hanno portato riutilizzare il case di un mio vecchio PC minitower.  Ho fissato al suo interno la mia BigBoard I, ho provveduto ad attestare i cavi di alimentazione su un connettore maschio ATX,

e creato una apposita minischedina dotata di un commutatore rotativo che opportunamente cablata consente di utilizzare normali cavi flat per floppy drive.

In questo modo con la massima pulizia posso collegare alla interfaccia della scheda unità floppy disk drive di differenti formati: 2 drive da 3,5″ 1,44Mb, 1 drive da 5,25″ 1,2MB e su un connettore esterno anche un eventuale ulteriore drive 8″ e posso impostare qualsiasi di essi come disco di bootstrap secondo la seguente sequenza del commutatore rotativo:

Ogni volta che accendo la scheda non perde mai un colpo. Agosto 2020 Dopo vari anni nonostante la riparazione iniziale il problema del falso contatto della eprom del generatore di caratteri a volte fa comparire il promp strano e a volte il reset della scheda non avviene piu regolarmente fino al blocco totale al reset.

Translate »