Di seguito una serie di indicazioni per il troubleshooting di base e un elenco di riparazioni di hardware, computer e periferiche, soprattutto Commodore.
E' importante ispezionare entrambi i lati della scheda sotto esame alla ricerca di:
Questi stanno ad indicare riparazioni/manomissioni della scheda, che a volte possono essere la causa dei malfunzionamenti della stessa. Verificare quindi la zona dell'intervento, identificare chip e componenti coinvolti e anticipare eventuali problemi che potrebbero quindi intervenire sul computer una volta acceso.
La postazione di test deve essere sicuramente funzionante, in particolar modo:
Di seguito alcuni link a schemi di schede Commodore.
Per il C64 uno specchietto che dovrebbe fare chiarezza:
Assy | Rev | Schematic |
---|---|---|
250407 | A | 251138 1/2 251138 2/2 |
250425 | B | 251469 1/2 251469 2/2 |
250466 | B-3 | 252278 1/2 252278 2/2 |
250469 | E | 252312 1/2 252312 2/2 |
La prima cosa da testare in un computer, funzionante o no, sono le tensioni.
Si può pensare di utilizzare gli alimentatori originali Commodore, al patto prima di testarne le tensioni. Di seguito un pinout delle tensioni presenti sullo spinotto dell'alimentatore:
Le tensioni da considerare valide sono:
Se così non è, è meglio considerare il PSU non funzionante, pena danni irreversibili al computer.
Sulla scheda del C64 sono presenti le seguenti tensioni:
Tensione | Da | In uso a |
---|---|---|
12V | 7812 | VIC-II e SID |
5V | 7805 | VIC-II |
5V | switch | chip logici |
Di seguito uno schema della parte di alimentazione del VIC20:
Il VIC20 funziona quasi esclusivamente con la sola tensione 5VDC dell'alimentatore.
Il ramo a 9VAC:
Si possono misurare i 9V AC e i 5V DC, provenienti dall'alimentatore, sulla user port, usando i puntali del tester a cavallo delle due fessure:
Se il valore dei 5V DC è molto più basso (ad es. 4-4,1-4,2 V) può essere indicativo di un componente in corto.
Lo stato di on/off del pulsante di accensione del Commodore è configurato così:
In particolare, con vista dal retro della scheda, si possono testare i pin e misurare le tensioni prendendo questi riferimenti:
Per misurare le tensioni sui pin:
Semplicemente con una mano oppure con l'ausilio di una termocamera, misurare la temperatura dei componenti. Di seguito alcune foto di un C64 biscottone, prese con una termocamera FLIR one:
Da quanto sopra si può stilare una tabella dei chip più caldi; dopo 5 minuti dall'accensione del computer (valori in °C - attendendo di piú i valori non si discostano):
Chip | C64 (250407 e 245) | C64C (250469) |
---|---|---|
6510 (CPU) | 61 | - |
906114 (PLA) | 57 | - |
6526 (CIA1 e 2) | 47-53 | 37 |
921225 (Char ROM) | 49-55 | 45 |
921226 (Basic ROM) | 42-56 | - |
921227 (Kernal ROM) | 60 | - |
6569 (VIC-II) | 68-75 | - |
6581 (SID) | 71 | - |
251913 (Basic+Kernal ROM) | - | 41 |
8500 (CPU) | - | 53 |
SuperPLA | - | 30 |
8565 (VIC-II) | - | 53 |
8580 (SID) | - | 50 |
RAM | 37-45 | 39 |
TTL logic | 37 | 37 |
In presenza di uno schermo nero, conviene utilizzare la Dead Test cartridge (anche su Kung Fu Flash ) togliendo tutti i componenti non strettamente necessari, se sono zoccolati, come spiegato in questo video. La Dead test cartridge si usa in presenza di una schermata nera; tipicamente viene usata la 781220 che testa un insieme limitato di chip e non si usa il kit di harness per testare le porte. La Diag Test cartridge 586220 va invece usata dopo, a fine riparazione, per testare tutti i componenti.
I chip che si possono togliere per avere comunque un sistema C64 minimale ma funzionante con la Dead Test sono:
Dopo qualche secondo di schermo nero, anche con i componenti sopra rimossi, al termine dei test si ottiene questa schermata:
Se invece i componenti non sono zoccolati, conviene testare i segnali con il tester/oscilloscopio.
La Dead test può produrre dei lampeggii che stanno ad indicare solitamente:
In quest'ultimo caso, il 'colpevole' può non essere il chip RAM indicato nello schema, ma uno qualsiasi dei chip che utilizza il data bus, quindi purtroppo quasi tutti… In questo caso bisogna rimuovere tutti i chip principali, non necessari al boot.
Con la cartuccia di Jupiter Lander si puo far partire un sistema minimale, simile alla Dead Test, ma interattivo nel quale si riesce anche a provare la tastiera, anche in condizioni di un suo non perfetto funzionamento di tutti i tasti e il joystick. E' quindi possibile rimuovere i seguenti componenti:
A volte la semplice azione di rimozione/inserimento chip, previa pulizia, può fare partire i computer.
Togliere/rimettere i chip, dopo aver pulito con alcol isopropilico (IPA) chip e contatti zoccoli.
Pulire anche i contatti dei pettini porta datassette e user port con IPA e cotton fiocc.
Un video con indicazioni di pulizia approfondite si trova qui.
La scheda, se molto sporca, si può pulire su di un lavello con:
Il tutto come spiegato qui.
Di seguito una serie di test da eseguire sempre per diagnosticare un problema su di un Commodore.
Di seguito alcuni sintomi 'classici' dove il componente colpevole può essere facilmente individuato.
La Diag test cartridge va usata dopo aver effettuato la riparazione, per testare il funzionamento di tutte le porte e componenti. E` quindi necessario l'uso di un harness kit, con terminatori per ogni porta. Tipicamente viene usata la 586220; può essere caricata anche da Kung Fu Flash:
Nell'immagine sopra ho collegato una tastiera; se uso quella invece del terminatore del kit, ottengo la segnalazione di 'OPEN':
Questa invece la schermata corretta per tutti i chip e porte collegando tutti i terminatori (quello della tastiera compreso):
Una tastiera sporca può comportare che alcuni tasti non funzionino bene oppure è richiesto premerli con forza. In questo caso è necessario smontare e pulire i tasti così:
Per pulire le molle della tastiera immergerle in una soluzione di aceto di alcol e Coca Cola per 1 ora …
Per i case dei VIC 20, C64C, C64G, C128… uso perossido di idrogeno, detto 'acqua ossigenata' (H2O2), nella versione in crema a 40 volumi, corrispondenti al 12% di concentrazione (vedi qui), spalmata direttamente sul case con un pennello, proteggendo sempre le mani con guanti in gomma e lasciando al sole qualche ora, max una giornata.
Riapplico ogni ora circa e oriento con la stessa frequenza il case per esporne altre parti e seguire il sole.
Sempre per il case, è possibile usare un metodo alternativo, che promette risultati migliori. Viene descritto in questo video di EMD69 e prevede:
Il pin 15 del VIC II (Sync / Lumimance) all'oscilloscopio compare così:
L'immagine, presente tra i due picchi negativi, da sinistra a destra, viene continuamente refreshata e l'uniformità dei colori nel tempo è data dalla linea retta superiore.
Qui invece i colori cambiano di continuo e quindi in output compaiono righe verticali che cambiano di continuo.
Il TL866II-Plus consente di programmare EPROM e verificare vari chip. Per l'installazione sotto Linux vedi qui.
Le ROM per i vari Commodore possono essere scaricate da qua.
Per caricare le ROM in formato .bin nel programmatore fare:
Una volta ottenuta la ROM .bin si può programmare la EPROM, che in precedenza deve essere stata cancellata con il dispositivo apposito:
Nel caso in cui si abbiano delle 27128 è necessario 'riempirle' in modo che non siano vuote a metà: da Linux si può fare così:
cat kernal.901227-03.bin kernal.901227-03.bin > kernal.901227-03-copy.bin $ ll -h -rw-rw-r-- 1 roberto roberto 8,0K ago 6 14:56 kernal.901227-03.bin -rw-rw-r-- 1 roberto roberto 16K ago 6 15:13 kernal.901227-03-copy.bin
In pratica, il file kernal.901227-03.bin da 8K è stato concatenato a sé stesso per diventare da 16K, adatto ad una EPROM da 128 bit.
Questa EPROM 2764 dovrà essere inserita nel computer Commodore con un adattatore 2364, come questo:
Lo schema dell'adattatore è il seguente, credo tratto dal blog di World of Jani:
E' anche possibile modificare i file .bin nel programmatore, prima di flashare le EPROM, in modo da ottenere una ROM custom con, ad es., un testo personalizzato:
E' possibile costruire un adattatore al contrario, rispetto a quello indicato sopra, con lo zoccolo per le 2364 in alto e i pin per le 2764 in basso, come questo:
In questo modo si possono leggere (con READ) le ROM dei Commodore oppure effettuare prima un Load di un .bin di una ROM e poi un Verify della correttezza della stessa:
E' possibile fare anche un test logico delle C64 PLA, scaricando il template file da qui e poi:
Il chip PLA può essere quindi testato:
Se dà All Vector Testing Normal la PLA dovrebbe funzionare correttamente.
Di seguito invece l'esito per una PLA non funzionante:
Quella sopra fallisce per varie linee KO. Invece quest'altra ha un probabile cortocircuito interno:
Il programmatore può eseguire test anche di altri chip logici; bisogna prestare attenzione alla versione dell'integrato, in quanto per lo stesso ce ne possono essere due o più.
In alternativa è possibile premere direttamente 'Autofind'; se il chip è nell'elenco del programmatore e se è funzionante, sarà elencato:
Qui sopra un chip 4066 è stato identificato, quindi presumibilmente è buono.
Video di RetroChannel in cui spiega il logic test delle PLA e come leggere le ROM 2364 con un adattatore.
Pagina web con indicazioni più per Windows disponibile qui qui.
Controllato lo schema della board assy 250425 (apparentemente è quello corretto anche se viene segnalato come 251469). Di seguito uno zoom dell'alimentazione:
In altri casi simili, con assenza totale video, conviene testare o sostituire il generatore di clock 8701 del VIC II
Di seguito i test effettuati.
Inserito un paio di cartucce gioco, ma i giochi non si avviano. Questo a differenza di quello che succederebbe sul C64, dove le cartucce bypassano eventuali problemi ad alcuni chip (non tutti) che impediscono l'avvio normale.
Guardando un video su YouTube viene segnalato che il sintomo lamentato è causato dalla ROM Basic. Si rende quindi necessario:
come spiegato qui.
Per dissaldare chip conviene:
Testato tensioni e segnali dei vari integrati; non sono stati rilevate anomalie.
Recuperato VIC chip 6561 zoccolato da altro VIC 20 funzionante.
Di seguito viene descritto il funzionamento normale, al fine di verificare scostamenti da questa baseline.
Avvio corretto:
LOAD "*",8
Il problema, come sopra, è che non legge nessun floppy. Di seguito i test effettuati,
Le tensioni 5V e 12V si possono misurare su CR1 e CR2. La prima serve ai chip, la seconda per far funzionare i motori (quello che fa girare i floppy è il servo che muove la testina in avanti e indietro). Tensioni ok
Per verificare che il cavo seriale funzioni, si può:
Da indicazioni di Ray Charlsen e dai test effettuati sopra, i possibili colpevoli sono il 74LS14 e 7406. Dopo aver ordinato i chip e atteso la consegna:
Se, caricando un disco compare '?FILE NOT FOUND ERROR' è probabile che si sia depositata polvere sulla testina.
Utilizzare sempre un floppy sicuramente funzionante, come ad esempio il seguente:
Pulire la testina con cotton fiocc e alcol isopropilico; pulire allo stesso modo anche la plastica sopra, che, in assenza di disco, va a contatto con la testina e la può sporcare.
I caricamenti dovrebbero procedere correttamente (sistemato così tre drive che presentavano lo stesso sintomo).
A differenza di un normale 1541, in un 1541-II l'avvio corretto è:
10 OPEN 15,8,15 20 INPUT#15,E,E$,T,S 30 PRINT E;E$;T;S 40 CLOSE 15
Il comando OPEN presenta i seguenti parametri:
OPEN,file#,device#,channel#
Nell'esempio sopra:
Il comando INPUT# legge dati da una periferica; è necessario che prima sia aperto un canale con OPEN.
Se si ottiene quanto segue l'elettronica è a posto:
RUN 73 CBM DOS V2.6 1541 0 0
In pratica, il comando interroga il drive e ottiene dei valori, con i seguenti significati:
E | E$ | T | S |
---|---|---|---|
Errore numerico (“73”) | Errore testo (“CBM DOS V2.6 1541”) | Track (“0”) | Sector/Block (“0”) |
Il manuale del drive 1541 è reperibile qui.
Fondamentale usare un floppy sicuramente funzionante, come indicato qui.
Per prima cosa conviene testare l'error channel
Poi si può eseguire, anche da Kung Fu Flash, la 1541 Diagnostic Cartridge. Per una spiegazione dei vari test si può fare riferimento qui.
Poi si può testare i valori di resistenza tra i pin del connettore testina:
Un esempio di valori corretti letti da un drive funzionante:
Pin-to-pin | Ohm |
---|---|
1-2 | 12.6 |
1-3 | 13.0 |
1-5 | 24.4 |
2-3 | 14.6 |
3-5 | 26.1 |
2-5 | 13.0 |
In questo caso sono presenti 14 KOhm tra i pin 1 e 5 della testina; la meccanica è quindi non funzionante. Con questo tipo di drive è una situazione comune; si tratta dei drive con leva laterale esterna (non centrale) e meccanica Mitsumi-Newtronics:
Si può sempre fare riferimento alla 1541 Maintenance Guide, dove a pag- 3-8, vengono elencati i range di resistenza possibili per il connettore testina:
Visto che è la prima volta che mi capita questo computer da riparare, ho raccolto alcune informazioni circa l'architettura dello stesso.
Chip | Descrizione | Note |
---|---|---|
8501R1 | CPU | Clock variabile a 1,776 Mhz e 0,89 Mhz, uguale al C16 |
8360R2 | TED | Chip grafico e sonoro, uguale al C16 |
318006-01 | BASIC ROM | Uguale al C16 |
318004-04 | KERNAL, character set ROM | Uguale al C16 |
251641-02 | PLA | Uguale al C16 |
317053-01 e 317054-01 | 3-Plus-1 ROM | |
4264-15 | RAM | |
74LS257 | Multiplexer RAM |
Mi sono concentrato sulla CPU 8501R1.
Pin | Descrizione | Valore misurato | Note |
---|---|---|---|
1 | Clock | 1,773 Mhz e 0,89 Mhz | ok |
14-19 e 21-22 | A8-A13 e A14,A15 | Segnale 'sporco' intorno i 5 V | |
23-30 | P0-P6 | alcuni segnali 'sporchi' intorno i 5 V | |
31-38 | D7-D0 | Attività regolare |
Il test evidenziato mostra valori errati su vari PIN del bus indirizzi.
Pin | Descrizione | Segnale normale |
---|---|---|
6-19 | A0-A13 | Attività normale |
21-22 | A14-A15 | Attività normale |
31-38 | D7-D0 | Attività normale |
24-25 | P6-P5 | 5 V |
26-30 | P4-P0 | 0, 3, 0, 0, 0 V |
Ho cercato quindi di risolvere il problema del garbage screen.
La documentazione rivela particolari interessanti. In particolare, durante il low RAM test, in presenza di un problema:
Compaiono una serie di 'D', quindi il problema risiede nel banco RAM U13.
Al boot la situazione è migliorata, ma ci sono ancora dei caratteri spuri:
Il flat della tastiera può essere rimosso tirando. I pin di metallo sono semplicemente incollati, per cui, se si sollevano, prima di reinserire il flat bisogna eventualmente incollarli con super attack:
Di seguito un recap della riparazione.
Oltre a non leggere le cassette, in una che usa il Turbo tape le righe colorate orizzontali non sono consecutive, ma separate da ampie porzioni di blu.
Ho:
In sostanza, si tratta di:
Provato a rileggere la stessa cassetta di prima e adesso le righe compaiono in maniera consecutiva e senza ampi spazi blu in mezzo. Inoltre il caricamento viene portato correttamente a termine e il gioco si avvia.
Provato lo stesso datassette su di un altro C64 e qui il lettore funziona.
Giusto come reference, inserisco qui il pinout del connettore datassette:
I 6 V del motore si attivano solo quando si premono i pulsanti sul datassette, altrimenti il pin resta a circa 0 V.
La CIA 6526A (U1) è il principale sospettato in questi casi; la ver. A si tratta di un equivalente del 6526, solo che può funzionare anche a 2 Mhz. In ogni caso, il C64C accetta entrambe le versioni.
Dopo verifiche, il chip CIA1 che governa la tastiera sul C64C è quello di fianco al pettine della stessa, sulla destra della mainboard. Ho agito sul CIA sbagliato!
In pratica: pin 1 Control Port 1 ↔ filtro EM6 ↔ linea JOY A0 ↔ pin 12 CN1 tastiera ↔ ROW 0 ↔ porta in ingresso PB0 su CIA1
E' come se un'intera linea di tasti (Row 0) sia bloccata; di seguito la keyboard matrix per il C64:
Il C64 dice al 6526 di mandare impulsi per ogni porta output COLx (PAx) e, nello stesso momento, legge le porte input ROWx (PBx); quando un tasto sulla tastiera viene premuto…
Ecco come appare il C64C riparato e con una tastiera nera, al posto della standard, così che ogni volta che lo userò mi ricorderà del tempo che ci ho perso sopra!
In casi simili, bisogna verificare sul CN1 se le tensioni arrivano a 5 V su (quasi) tutti i pin, come indicato sopra.
Concentro la mia analisi sui chip che possono essere coinvolti nella generazione di questo garbage screen.
Ho provato a risaldare i contatti, da una parte e da un'altra, ma senza successo. Ho preferito quindi più velocemente fare un ponte con un cavo di rame, che metta in contatto il pin 20 CS della ROM char col pin 15 della PLA:
Il trucco ha funzionato e adesso il computer si avvia regolarmente!
Il corretto funzionamento di tutti i suoi componenti è confermato dal dead test con il kit di harness collegato:
Visto i sintomi 'strani', in più con un indicazione di 'Out of memory' sospetto subito problemi alla RAM, che vengono confermati con l'inserimento della Dead Test cartridge 781220, che segnala 7 flash all'avvio.
Come da manuale della Dead Test, sette flash corrispondono ai banchi U39/U47:
Procedo quindi a:
Dopo aver inserito le memorie col verso corretto, il computer funziona, così come il dead test viene portato a termine:
Si tratta di un VIC 20 prima serie, con tastiera Eurostile:
Anche la scheda è particolare, con generosi dissipatori:
Infine l'alimentatore è diverso dai successivi, ha un connettore a due poli ed eroga solo 9 VAC (e non 5 VDC):
Su di un sito, per questo tipo di VIC 20 con gli stessi sintomi, escludono problemi di VIC chip e dicono di verificare i condensatori, uno arancione in particolare:
In realtà, prima di effettuare un test dei condensatori, ho provato semplicemente a inserire un VIC chip sicuramente funzionante, cosa che si è rivelata corretta!
I sintomi sono identici alla situazione descritta qui; ma in quel caso si sono limitati a cambiare tastiera.
Provata una cartridge Diag 264, senza harness kit (per istruzioni vedi qui):
La scheda si presenta relativamente pulita e in ordine:
Le tensioni sulla User Port (stessi pin del C64) sono ok:
Il gioco Jack Attack, sia su cartuccia stand alone, sia sulla Diag 264 risponde ai comandi joystick, anche se non sembra seguire i comandi di direzione esattamente.
Scaricato il Plus/4 Service Manual; dall'analisi della keyboard matrix i tasti cursore sono inseriti al suo interno, così come tutti gli altri:
E' possibile testare la tastiera scollegata premendo un tasto (ad es. rovesciandola e inserendo sotto ad essa un 'perno' che, con il peso della tastiera, produce la pressione del tasto) e testando con un multimetro le 2 connessioni del tasto; ad es. i pin del connettore tastiera 17 e 5, come da matrice sopra, se viene premuto il tasto '1', danno continuità.
Ci sono 18 pin sul cavo flat della tastiera, configurati così:
Ci sono le solite vitine da svitare, simili a quelle del C64, così come bisogna dissaldare i reofori che si collegano al tasto Caps Lock; di diverso c'è il LED, che tiene ferma la tastiera tramite un piccolo perno di plastica, che bisogna sollevare delicatamente con un cacciavite sottile:
Fare attenzione ai 4 tondini di gomma dei tasti cursore e ai 4 dei tasti funzione, che sono appoggiati e rischiano di cadere:
C'è anche una piccola molla solo appoggiata, vicino al LED:
Dopo aver spennellato i contatti di gomma con soluzione a base di grafite…
Verificato i nuclei di ferrite a valle del connettore flat della tastiera FB49-56: misurano tutti circa 4.90 V (si possono misurare indifferentemente sul pin destro o sinistro, danno lo stesso valore). Dovrebbero corrispondere alle ROWS=Inputs; se nessun tasto è premuto stanno a 5 V, tramite le resistenze di pull-up del chip TED:
Le Colonne sono da intendere colonne di tasti presenti sulla tastiera del Plus/4; nella matrice sopra in realtà sono messe come righe :
Mentre i nuclei FB41-48 misurano tutti 0 V e dovrebbero corrispondere a COLUMNS=Outputs
Qui viene spiegato il funzionamento di una keyboard matrix C16/Plus4; qui invece c'è un video
Nel Service Manual, relativamente alla tastiera, si suggerisce:
…
Arrivata solo una board di un VIC 20CR; da un primo test sembrava tutto funzionante, colori a video assenti a parte, poi ho involontariamente causato un cortocircuito sui pin della User Board, appoggiando distrattamente il coperchio della schermatura del VIC chip sopra la stessa porta (probabilmente sull'angolo a sx della stessa, dove c'è l'alimentazione 9 VAC).
A seguito di questo cortocircuito, il computer è rimasto acceso, i giochi su cartuccia sono funzionanti, ma il datassette non funziona più.
Datassette non risponde più ai comandi
Relativamente ai colori a video assenti, ho provveduto a regolare il trimmer di destra vicino al VIC chip con cacciavite plastico/ceramico apposito:
Regolando il potenziometro di destra ho risolto il problema del colore.
Per il problema intercorso sul datassette invece ho inizialmente effettuato pulizia approfondita contatti porta datassette, senza esito.
Mi sono quindi concentrato sulla parte di alimentazione della scheda:
I 9 VAC arrivano sulla User Port dal cavo nero che attraversa tutta la parte superiore della scheda;
Da quanto scritto sopra circa l'alimentazione della scheda VIC 20, questo può funzionare senza problemi anche in assenza del ramo 9 VAC, che serve solo per la User Port e appunto il Datassette.
Il fusibile rotto era da 1A (sigla T1AL250V); ne avevo solo uno da 4A, che come test è andato bene. Ma è sconsigliabile utilizzarlo in produzione; ho ordinato dei fusibili dello stesso amperaggio di quello rotto.
Visto le tensioni troppo basse sulle linee dati D0 e D1 ho dissaldato CPU; testata su muletto, ma si e rivelata funzionante.
Ho quindi cercato di capire perché D0 e D1 fossero bassi; le RAM da termocamera figuravano fredde, quindi ho dissaldato il multiplexer U25 74LS257; sostituito, lo schermo ha continuato ad essere nero e le linee D0 e D1 basse.
A questo punto sono ritornato sulla temperatura elevata della ROM Kernal; sebbene mi risultasse alta su di una scheda 250425, non lo era altrettanto su di una 407. Ho quindi dissaldato il pin Vcc della ROM e, come per magia, la Dead è partita correttamente!
Ho quindi dissaldato completamente la ROM Kernal, saldato uno zoccolo e recuperato una ROM da una precedente board donatrice.
Il test con la Diag card e relativo harness kit ha dato esito positivo:
Dopo un po' di tempo riprendo in mano questo C64, che questa volta non si avvia.
All'avvio compaiono pattern colorati variabili:
Inserendo la cartuccia di Jupiter Lander si vede solo qualche spezzone di testo (ad es. in basso 'HI' e anche 'FUEL'):
Inserendo una cartuccia Dead Test 781220 vengono presentati a video 3 lampeggi, indice della RAM U11 difettosa.
La nuova RAM adesso non è più fredda:
Questa volta si tratta di una 250407 con solo VICII e SID zoccolati.
Dopo riduzione a sistema minimo presenta lampeggi variabili
Da un'ispezione visiva non si notano lavorazioni o manomissioni sulla scheda
Testato tensioni: sul pin di uscita dei regolatori di tensione 7805 e 7812 ottengo rispettivamente 5,1 e 12,3 V. Sulla User port invece sono presenti 4,95 VDC e 9,11 VAC. I valori sono quindi ok.
Con l'oscilloscopio misuro:
Con la termocamera verifico la temperatura dei chip, che risulta essere elevata per il VICII, ma nella norma per tale componente e per la Kernal ROM.
Dall'immagine sopra si può apprezzare come invece le RAM siano apparentemente calde 'il giusto'.
Su di un muletto testo:
Considerato che la Dead Test parte con un sistema minimo composto da: CPU, PLA, VIC II e sottosistema RAM, comincio a dissaldare il pin Vcc dei chip non necessari alla Dead Test:
Prima di procedere con ulteriori dissaldature, controllo la Pictorial Guide, alla ricerca di un sintomo simile, ma non mi sembra di trovare nulla che si avvicini.
Ritorno a dissaldare alcuni chip, in particolare:
Riprendo l'analisi con l'oscilloscopio.
Qui di seguito come le linee indirizzi vengono gestite dai due multiplexer:
Sembra esserci quindi un problema sul bus indirizzi; in questi i casi i sospettati potrebbero essere i multiplexer o la PLA.
Purtroppo, anche inserita una PLA sicuramente funzionante, il computer presenta i flash variabili di prima.
Tra l'altro il Dead Test procede correttamente, con il cursore che ad un certo punto si sposta sullo schermo e addirittura viene testato alla fine il SID.
Questo il datasheet del 7406, che è un inverter:
E questi i valori corretti per il 7406 da un muletto:
Pin SX | Valore | Pin DX | Valore |
---|---|---|---|
1 | Basso | 14 | Alto |
2 | Alto | 13 | Basso |
3 | Onda | 12 | Alto |
4 | Onda#2 | 11 | Alto |
5 | Basso | 10 | Basso |
6 | Alto | 9 | Basso |
7 | Basso | 8 | Alto |
Invece, sulla board in esame per i pin 1, 11, 13 ottengo 1,44 V; controllando sullo schema della 250407 verifico che dipende dalla CIA2 in precedenza scollegata:
Mi decido quindi a tornare sui miei passi:
Quanto indicato qui sopra, dopo la sostituzione del 74LS258, non era necessario ed era dovuto al fatto che avevo lasciato i chip saldati col solo pin Vcc scollegato. Ho quindi imparato che per far partire un sistema minimo senza ROM né CIA bisogna proprio dissadarle del tutto Non è sufficiente dissaldare il pin Vcc. Ciò mi ha portato fuori analisi, sicuramente dopo la sostituzione del 74LS258, che era l'ultimo chip non funzionante.
Anche la Diag Test col kit harness ha dato esito positivo, così come l'avvio di un gioco.
Eseguito test per l'error channel e l'output è corretto:
73 CBM DOS V3.0 1570 0 0
Ne consegue che l'elettronica è a posto.
Eseguito test resistenza testina e i valori sono in un range compreso tra 11,5 e 33,3 Ohm, quindi nella norma.
Per una descrizione dei vari tool nella 1541 Diag/Test si può vedere il sito di Amedeo Valoroso
Eseguito l'Alignment check; la prima e seconda colonna devono essere uguali e la terza pari a 100; l'esito non è spettacolare per la quarta colonna (che dovrebbe in teoria avvicinarsi a 0), ma almeno non sono presenti valori 'rossi':
Al termine del tool Error Scan ottengo un risultato con alcuni settori danneggiati.
Con Speed Check verifico che la velocità del disco è molto vicina (298.5 RPM) al valore nominale di 300.
Adesso il disco viene formattato correttamente (quindi cancellato) e se letto presenta il suo contenuto.
Eseguito caricamento con successo dai floppy sicuramente funzionanti Zork 1 e Test/Demo Diskette, quindi questo è la migliore conferma che il drive funziona
Più probabile che il floppy usato inizialmente non fosse funzionante, quindi è fondamentale usare un floppy testato e possibilmente originale (vedi qui).
Altri suggerimenti utili sui drive si trovano qui.
E' una scheda 250425 con chip zoccolati, con una ROM Kernal custom comprensiva di cavo e interruttore posizionato a fianco le porte joystick, presumibilmente per selezionare il Kernal all'avvio. E' stato venduto come non funzionante.
Come detto, tutti i chip principali sono zoccolati. A parte la modifica alla ROM Kernal, che ho provveduto a rimuovere, noto un ponticello posticcio sul retro su U20 - 556, chip che è stato posizionato su di uno zoccolo:
Anche i pad del 556 sono stati manomessi in fase di dissaldatura:
Visto che sono zoccolati, rimuovo le 2 CIA, le 3 ROM e il SID. Misuro le tensioni e i valori sia sulla User port che nelle uscite dei regolatori di tensione sono ok.
Inserisco la Dead Test, ma ottengo uno schermo nero.
Grazie all'oscilloscopio verifico che su pin 1 e pin 39 (clock in e out) sia presente il segnale a circa 1Mhz, mentre su pin 40 (/RES) il segnale è basso Ciò sta ad indicare un problema con il Circuito di reset, quindi sposto la mia analisi lì.
Il circuito di reset serve in fase di accensione del sistema: quando si accende il Commodore 64, il 556 contribuisce a generare un impulso di reset che mantiene i vari chip in uno stato di reset finché la tensione di alimentazione non è stabile. Un 556 equivale a due 555; la piedinatura è così configurata, quindi in sostanza con un 555 a sinistra e uno a destra:
Nel caso di U20 - 556 del C64, dei due viene quindi usato il 'timer 555 B'.
Normalmente funziona così:
Inserito tutti i chip restanti verifico che il computer funziona; l'audio si sente, ma è distorto, gracchiante, ci sono scariche.
La Diag Test dà esito positivo per tutti i chip/porte; il test audio è sempre gracchiante.
Per l'audio faccio le seguenti prove:
Su questa scheda sento sempre scariche continue che si sovrappongono all'audio.
Analizzo quindi il circuito a valle del SID ed in particolare dopo il pin 27 Audio output:
Mi accorgo che il condensatore C13 è stato saldato in malo modo, non da fabbrica:
Lo dissaldo e lo testo: sembra ok. Lo sostituisco con uno di uguale capacità. Faccio ripartire il computer è l'audio adesso funziona
Già avviando la Kung Fu Flash mi accorgo che alcune parole sono tremolanti; avviando alcuni giochi mi accorgo che gli sprite vengono visualizzati male:
Alla fine decido di tenere il computer così, senza sostituire il chip, che esibisce un funzionamento marginale.
Decido di testare il dual Kernal custom con cui avevo trovato il computer; in una posizione del pulsante si avvia come SpeedDos. Si tratta di una modifica hardware per il FastLoad da floppy drive, che deve essere presente anche nel floppy drive, per il quale è richiesto anche un cavo parallelo ad hoc, da collegare alla User Port del C64. Decido di tenere il Kernal custom così.
La scheda in esame proviene da un C64C, ma si tratta stranamente di una 250407. E' abbastanza sporca, con presenza di una sostanza oleosa su ambo i lati, ossidazione su alcuni pin della CPU, sostituzione della ROM Char e probabile sostituzione, vista la presenza di zoccoli, dei due 74LS257 (multiplexer RAM) e di U6 (color RAM).
L'ispezione visiva è stata svolta nella intro; rimuovo la polvere con pennello soffice e soffiatore. Pulisco residui oleosi e delle lavorazioni precedenti con alcol IPA.
Misuro le tensioni e i valori sulla User port sono normali per la 9 VAC, mentre la 5VDC è un po' bassa (4.74 VDC); le uscite dei regolatori di tensione sono nominali.
Dalla termocamera si evincono valori leggermente alti, ma nella norma; c'è il ponte a diodi che segna 55 gradi C.
Grazie all'oscilloscopio verifico che su pin 1 e pin 39 (clock in e out) sia presente il segnale a circa 1Mhz, così come che sul pin 40 (/RES) il segnale resti basso per circa 1 secondo e poi passi alto, segno che il circuito di reset funziona.
Inserisco la Dead Test e ottengo 6 flash, che si ripetono anche dopo varie accensioni e spegnimento. Di seguito il manuale della Dead Test 781220.
Qui un estratto della pagina relativa ai flash:
La scheda in esame è una Rev.B, quindi 6 flash corrispondono alla RAM U22, che potrebbe essere quella difettosa (o la prima di una serie…), e al Data Bit 2. Inoltre, il manuale continua segnalando che:
Seguo l'esito della Dead Test e dissaldo la RAM U22; testata sul muletto risulta effettivamente non funzionante. La sostituisco e alla successiva accensione ottengo:
La tensione sulla User port, dopo il cambio RAM, risulta nominale (5.00 VDC).
Questo mi torna con lo stato pietoso dello zoccolo della color RAM:
Sostituisco lo zoccolo di U6 e dissaldo una color SRAM da una scheda donatrice; purtroppo dà ancora Color RAM BAD, come si vede anche dai colori sballati, e dopo segnala anche come BAD la RAM U9 e la volta successiva U10 :
Ma testata sul muletto, la Color RAM funziona correttamente
Devo capire perchè dà errore di RAM su U9 e U10 e anche sulla Color.
All'inizio avevo notato che è presente una custom Char ROM, probabilmente per i caratteri spagnoli. Anche qui ci sono delle brutte saldature, per cui decido di rimuoverla:
Una volta rimossa la Char ROM il Dead Test ha terminato correttamente e non ha dato problemi nè di Color RAM, nè di RAM
Non sento però alcun suono dal test SID , per cui immagino sia non funzionante. Però, se fosse solo un problema di Char ROM, dovrei avere il boot normale con cornice e sfondo blu, cosa che non avviene. Ci deve essere qualche altro chip che dà fastidio.
Il test con la cartuccia Jupiter Lander ha dato come esito, nell'ordine;
Provo a rimuovere il SID, comunque non funzionante e a testare il sistema così: il risultato in Jupiter Lander è lo stesso di sopra
Rimuovo prima Kernal e poi Basic ROM:
Testato i chip sul muletto:
Saldato zoccolo su scheda in esame e inserita nuova Kernal ROM funzionante, ma non le altre ROM, il sistema parte così come fa quando mancano le altre ROM:
Saldati zoccoli mancanti (altre ROM e SID), inserito Basic ROM e nuova Char ROM, in sostituzione della custom Char farlocca: il Commodore 64 si avvia correttamente Provato a fare diversi reboot, senza avere problemi di schermo in B/N.
Però a volte Jupiter Lander compare in B/N
Provo ad eseguire un primo giro di Diag Test con harness kit e, anche dopo una pulizia dei contatti con WD40, ottengo comunque alcuni errori. Quelli relativi al SID ci stanno, in quanto uso l'X-SID, ma altri non me li spiego:
Dopo poco ottengo anche quest'altra segnalazione sulle RAM, che permane anche dopo aver rimosso nuovamente tutte le ROM:
I giochi da Kung Fu Flash si caricano con difficoltà, in altri casi si bloccano e presentano questi sprite:
Oppure il menu della KFF appare errato o all'avvio si bloccano:
Ho comunque testato il VIC-II chip sul muletto con lo stesso gioco e questo problema non si è presentato. Quindi il VIC-II appare funzionante
Per questi e gli altri sintomi sopra, provo a dissaldare la PLA e a sostituirla con una funzionante: il menu della KFF adesso è corretto e i giochi funzionano senza problemi
Provato la PLA apparentemente non funzionante sul muletto e si comporta come la scheda in esame, con blocchi simili, quindi è confermato che la PLA è rotta.
Il motore del Datassette non si avvia; effettuato una pulizia con cotton fioc e alcol IPA del pettine del Datassette sulla scheda e il registratore ha comnciato a funzionare.
Cercando di leggere un floppy, compare il messaggio “?DEVICE NOT PRESENT”:
Anche da verifiche con la Diag Test compare:
Il pin 8, che comunque non è interessato dalla comunicazione seriale, è basso sui 3 V, ma anche il pin 12 è a 2,24 V (minore del valore basso TTL output) Sostituito 7406, e adesso i valori sui pin sono corretti (5 V); però comunque ottengo l'errore ?DEVICE NOT PRESENT ERROR
Trovo una pagina web con un'indicazione interessante relativa ai diodi di protezione un'altra con indicazioni sistematiche su come diagnosticare i problemi alla seriale.
Mi concentro però sull'analisi della scheda, in particolare sulla parte dove sono presenti diodi e resistenze collegati al 7406:
Come si vede quella parte di scheda sembra ricostruita e poi tenuta insieme tramite resina; controllando con il tester ne viene fuori una pista risulta interrotta. Si tratta della linea Data della comunicazione seriale (le altre linee sono Atn e Clk), come si evince anche da PCB Explorer:
Procedo quindi a ponticellarla:
Ho notato che un'accensione su dieci presentava il video in bianco e nero:
Per risolvere il problema, è stato sufficiente agire su questo trimmer, girandolo di pochissimo verso destra:
Questo C64 sembra intonso; non noto sporcizia o polvere. Aperto il case, le viti offrono una resistenza, segno che probabilmente non è mai stato aperto prima. Dentro è presente una bella 250407, che appare lucente e intonsa:
L'ispezione visiva è stata svolta nella intro; mi limito a spolverare la scheda con un pennello a setole morbide.
Misuro le tensioni e i valori sulla User port sono normali sia per la 9 VAC, che per la 5VDC; le uscite dei regolatori di tensione sono nominali.
Grazie all'oscilloscopio verifico che su pin 1 e pin 39 (clock in e out) sia presente il segnale a circa 1Mhz, così come che sul pin 40 (/RES) il segnale resti basso per circa 1 secondo e poi passi alto, segno che il circuito di reset funziona.
Inserisco la Dead Test e ottengo 3 flash, che si ripetono anche dopo varie accensioni e spegnimento. La scheda in esame è una Rev.A, quindi 3 flash corrispondono alla RAM U11.
Seguo l'esito della Dead Test e dissaldo la RAM U11; testata sul muletto risulta effettivamente difettosa:
La sostituisco e alla successiva accensione ottengo 7 flash, che corrispondo alla RAM U9. Testata sul muletto, anche questa effettivamente non va:
Sostituita e dopodichè il computer si avvia Il Dead Test viene portato a termine senza problemi e anche il SID funziona.
I giochi caricati dalla Kung Fu Flash danno risultato positivo.
Mi cimento per la prima volta in un recap di un Amiga 600; questa operazione è obbligatoria per questo tipo di macchina, in quanto è sicuro che i condensatori SMD con gli anni perdano l'elettrolita e rischino di rovinare la scheda.
Svitare le viti visibili sul retro (non ci sono viti sotto l'etichetta centrale col seriale):
Il case superiore si solleva facilitando l'allargamento degli scansi laterali con un cacciavite piatto, come indicato in questo video (al minuto 1:03). Invece questo video descrive il processo di disassembly completo di un A600.
Tirare il cavetto di alimentazione led in basso a destra.
Ribbon tastiera: sollevare la parte superiore del connettrore tastiera con un cacciavite sottile e piatto a sinistra e destra. Una volta sollevato sfilare il ribbon e la scheda appare:
Rimuovere il floppy svitando una sola vite sulla mainboard e tirando il connettore dati e quello alimentazione:
Sollevare e rimuovere il cestello metallico centrale:
Svitare l'unica vite che tiene ancorata la scheda al case in basso a sinistra. Per estrarre la scheda, spingere le porte seriali a destra verso l'interno e poi in alto. Sollevare quindi ed estrarre la scheda, con lo shield attaccato sotto.
Svitare i dadi esagonali delle porte video, seriale, ecc… sulla parte posteriore della scheda e anche la vite nella parte laterale della scheda, a fianco le seriali a 9 pin.
Per togliere lo shield da sotto la scheda, dopo aver svitato l'unica vite laterale, sollevare alcune lamelle e partire dalla parte bassa a destra e allargare con un perno quella in basso a sinistra.
Questa la situazione della scheda a questo punto:
Si notano alcuni condensatori che hanno avuto fuoriuscita dell'elettrolita:
Con stazione aria calda settata a 360 °C e aria a… stazionare sopra un condensatore SMD alla volta, se possibile da tutti i lati e sopra. Avere pazienza e non tirare; il condensatore dovrebbe spostarsi da solo. Rimuovere poi con una pinzetta.
Il tutto, come spiegato nel video di EMD69.
Rimuovere anche i condensatori elettrolitici THT con la stazione dissaldante.
Togliendo i condensatori si nota l'elettrolita fuoriuscito in vari punti:
Di seguito condensatori vecchi rimossi:
Per il lavaggio PCB seguire questo video di EMD69, che riassumo qui:
Qui di seguito si vede la differenza dopo il lavaggio, nella stessa zona dell'ultima immagine sopra:
Questo video di EMD69 dà indicazioni su come saldare i condensatori SMD.
In quest'altro video viene mostrato un metodo alternativo, dove vengono saldate solo le estremità.
AmigaOS è composto di due parti:
Ho recuperato una vecchia Pong console clone degli anni '70, che veniva descritta come “funziona perfettamente”; la realtà è un po' diversa…
Questo tipo di console usano un chip all-in-one AY-3-8500 della General Instrument:
Collegando l'uscita RF all'ingresso antenna TV e sintonizzandosi sul canale 32 non si vede niente. Il resto della console sembra funzionare, in quanto i suoni cambiano usando i selettori della console. Il problema quindi sembra essere l'uscita video.
Aprendo la console vengono esposti la scheda principale e il modulatore RF:
La cosa da notare è che ci sono dei segnali in ingresso al modulatore RF, provenienti dalla scheda, che sono i seguenti:
Di questi il segnale composito e massa costituiscono il segnale video vero e proprio, i 6 Vcc servono ad alimentare i componenti all'interno del modulatore; testando il cavo giallo e Gnd all'oscilloscopio ottengo questo segnale:
Solitamente, il segnale composito video ha un'ampiezza di 1 Vpp, qui ottengo 2 Vpp; comunque il segnale di ingresso al modulatore appare corretto. Aprendo e testando invece il modulatore RF mi rendo conto che molti componenti sono in cortocircuito:
Mi decido quindi a rimuovere del tutto il modulatore RF, a prelevare il segnale composito e gnd e terminarli su di un connettore RCA:
E' quindi necessario amplificare il segnale composito; per farlo si può usare un transitor 2N3904; ho usato questo schema:
Predispongo il circuito su di una breadboard:
L'amplificazione del segnale composito tramite transistor ha risolto il problema della scurezza del video:
L'ultimo passo è quello di ricreare il circuito in maniera definitiva su di una piccola millefori:
Operazione correttamente riuscita!
Questa volta sotto i ferri finisce una scheda 250425 di un C64. La particolarità è la schermatura/aletta di raffreddamento del VIC II:
Non noto manomissioni alla scheda.
Misuro le tensioni e i valori sulla User port sono normali sia per la 9 VAC, che per la 5VDC; le uscite dei regolatori di tensione sono nominali.
Testato con oscilloscopio la CPU:
Verifico che le linee A12-A15 finiscono nel PLA
Dissaldo quindi il PLA; ma testata su
Inserisco la Dead Test e ottengo 5 flash, che si ripetono anche dopo varie accensioni e spegnimento. La scheda in esame è una Rev.B, quindi 5 flash corrispondono alla RAM U10. Si tratta di RAM di marca MT, che notoriamente è fallace:
Sostituito U10, ottengo altri 7 flash, corrispondenti alla U9; sostituito anche quella il computer si avvia nel boot della Dead. Purtroppo il SID è risultato essere difettoso.
I giochi caricati dalla Kung Fu Flash danno .
Un VIC 20 un po' sporco mi capita tra le mani.
Noto varie saldature sul retro che non sono sicuro siano originali. Per il resto mi concentro direttamente sul sintomo; bordo e sfondo sono presenti il che indica:
Quindi passo direttamente alla riparazione.
Giusto per recap, le ROM di un VIC 20 sono le seguenti:
ROM | Codice |
---|---|
Basic | 901486-01 |
Kernal | 901460-03 |
Char | 901486-07 |
Il guasto apparente indica solitamente un problema alla ROM Basic. Ho quindi provveduto a programmare una EEPROM e a preparare un adattatore 2364-2764, come indicato qui e il computer è partito correttamente:
Un test con una cartridge di Diag conferma il funzionamento dei componenti fondamentali del VIC 20:
Questo VIC 20 mi arriva di un colore molto giallo e con un buco con quello che sembra un adattatore per antenna RF.
Il modulatore RF è stato inserito direttamente nel case:
Inoltre mancano molte viti che fissano la scheda al case inferiore.
Misuro le seguenti tensioni sulla User Port:
La prima mi sembra giusto un filo bassina.
Misurando la CPU all'oscilloscopio noto segnali che sembrano tutti a posto; questo mi spinge a dire che la CPU funziona correttamente.
A questo punto, comincio a verificare i componenti zoccolati, cioè il VIC e la ROM Kernal (901460-03). Comincio da quest'ultimo, scelta azzeccata, in quanto rimosso la ROM Kernal e sostituita con altra originale funzionante il computer riprende a funzionare
D'altro canto, la stessa ROM provata su di un VIC 20 funzionante produce ugualmente uno schermo nero.
Ulteriori test hanno evidenziato però alcune problematiche:
Infatti, tutte queste periferiche vengono gestite tramite ingressi/uscite sulla VIA (2):
Ho quindi dissaldato entrambi i VIA 6522; non avendo abbastanza zoccoli, ne ho installato uno solo su UAB1, così da verificare se la VIA (2), apparentemente difettosa, poteva dare lì problemi di tastiera. E infatti la VIA (2) su UAB1 dà problemi di tastiera, confermando di essere difettosa
Mi è infine arrivata una nuova VIA 6522, che ho provveduto ad installare, assieme a relativo zoccolo; testato quindi con successo il funzionamento di datassette, cartuccia, joystick e drive.
Di seguito alcuni riferimenti utili per riparazioni dei retrocomputing Commodore.