====== Riparazioni ======
===== Intro =====
Di seguito una serie di indicazioni per il troubleshooting di base e un elenco di **riparazioni** di hardware, computer e periferiche, soprattutto **Commodore**.
===== Test/attività di base =====
==== Ispezione visiva ====
E' importante **ispezionare entrambi i lati della scheda** sotto esame alla ricerca di:
* **saldature non di fabbrica**
* eventuali **ponticelli** fatti con cavi di rame
* chip sostituiti
* mod tipo doppio Kernal o reset esterno
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.
==== Postazione di test ====
La postazione di test deve essere **sicuramente funzionante**, in particolar modo:
* l'**alimentatore**
* l'**uscita video**
Prima di collegare il computer da testare, è fondamentale **verificare la postazione di test (alimentazione e video) con un computer sicuramente funzionante (muletto)**, così da escludere problemi nel resto della catena del segnale
==== Schemi ====
Di seguito alcuni link a **schemi di schede Commodore**.
=== C64 ===
Per il C64 uno specchietto che dovrebbe fare chiarezza:
^Assy^Rev^Schematic^
|250407|A|[[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/251138-sheet1of2.gif|251138 1/2]] [[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/251138-sheet2of2.gif|251138 2/2]]|
|250425|B|[[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/251469-1of2.gif|251469 1/2]] [[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/251469-2of2.gif|251469 2/2]]|
|250466|B-3|[[https://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/252278-1.gif|252278 1/2]] [[https://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/252278-2.gif|252278 2/2]]|
|250469|E|[[https://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/252312-left.gif|252312 1/2]] [[https://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/252312-right.gif|252312 2/2]]|
=== VIC 20 ===
ffff:
^Assy^Rev^Schematic^
|324001-03|-|[[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/vic20/324001_1.gif|1/3]] [[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/vic20/324001_2.gif|2/3]] [[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/vic20/324001_3.gif|3/3]]|
==== Tensioni ====
La prima cosa da testare in un computer, funzionante o no, sono le **tensioni**.
=== Alimentatore VIC20 CR / C64 ===
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**:
{{:content:retrocomputing:riparazioni:c64-power-supply--connector-pinout.jpg?400|}}
Le tensioni da considerare **valide** sono:
* **DC: 4,9-5,25 V**
* **AC: max 10,5V :?:**
Se così non è, è meglio considerare il PSU **non** funzionante, pena danni irreversibili al computer.
=== Scheda C64 ===
Sulla scheda del C64 sono presenti le seguenti tensioni:
* **5V out del pulsante di accensione** vanno alla **parte logica (sinistra) della scheda**, dove sono presenti i chip. Vcc dei chip sono alimentati da questa tensione
* i regolatori di tensione **VR7805 e 7812** prendono tensione da un ponte raddrizzatore che regola la tensione **9V AC** e forniscono tensione al **VIC-II** e al **SID**. Qui di seguito viene spiegato meglio:
^Tensione^Da ^In uso a ^
|12V |7812|VIC-II e SID|
|5V |7805|VIC-II |
|5V |switch|chip logici|
=== Scheda VIC20 ===
Di seguito uno schema della parte di **alimentazione del VIC20**:
{{:content:retrocomputing:power-vic20.gif?700|}}
Il VIC20 funziona quasi esclusivamente con la **sola tensione 5VDC** dell'alimentatore.
Il **ramo a 9VAC**:
* arriva sulla **User Port** direttamente in **9VAC**, tramite il caratteristico **doppino nero** che attraversa tutta la parte superiore della scheda del VIC 20
* serve a generare, dopo il fusibile, ponte a diodi e condensatori, la **+9V che alimenta il motore del Datassette**
In sostanza, **nel VIC20 tutto il ramo a 9VAC serve solo ad alimentare la User Port e il Datassette**. :!: Può anche **saltare il fusibile** ed avere comunque un computer funzionante, a parte il lettore a cassette (e la user port)
=== Misurazione ===
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:
{{:content:retrocomputing:riparazioni:user-port.png?400|}}
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ì:
{{:content:retrocomputing:riparazioni:pulsante-c64.png|}}
In particolare, con **vista dal retro della scheda**, si possono testare i pin e misurare le tensioni prendendo questi riferimenti:
{{:content:retrocomputing:riparazioni:alimentazione-pin.png|}}
Per **misurare le tensioni sui pin**:
* **5V DC:** misurare tra **un pin a 5V e uno GND**
* **9V AC:** misurare tra **i due pin 9V AC**
==== Temperatura componenti (termocamera) ====
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**:
{{:content:retrocomputing:riparazioni:flir_20240727_110231_538.jpg?600|}}
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 |
A volte il problema non è dovuto ai chip troppo **caldi (in cortocircuito)**, ma a quelli **//freddi// (morti)**
==== Dead test cartridge ====
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 **[[https://youtu.be/mVVkv_-4cjU?t=633|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|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:
* **SID**
* 2x **CIA** (6526)
* 3x **ROM** (901225, 901226, 901227)
Dopo qualche secondo di schermo nero, anche con i componenti sopra rimossi, al termine dei test si ottiene questa schermata:
{{:content:retrocomputing:riparazioni:deat_test.jpg?800|}}
Se invece i componenti **non sono zoccolati**, conviene **[[#test_preliminari|testare i segnali]] con il tester/oscilloscopio**.
=== Lampeggii ===
La //Dead test// può produrre dei **lampeggii** che stanno ad indicare solitamente:
* problemi ad uno o più chip RAM
* problemi al **//data bit//** corrispondente, come da indicazioni in **[[#c64_9|questa riparazione]]**
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.
Un'alternativa a rimuovere tutti i chip non necessari, può essere quella di **dissaldare da essi solo il pin //data bit// che viene indicato dai lampeggii**.
==== Jupiter Lander ====
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:
* **SID**
* **CIA2** (6526) - lasciare CIA1 per la tastiera
* 3x **ROM** (901225, 901226, 901227)
{{:content:retrocomputing:riparazioni:20230917_105525.jpg?800|}}
==== Pulizia ====
A volte la semplice azione di rimozione/inserimento chip, previa pulizia, può fare partire i computer.
=== Alcol ===
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 **[[https://youtu.be/0lYhzBuB7hI|qui]]**.
=== Scheda ===
La scheda, se molto sporca, si può pulire su di un lavello con:
* abbondante **acqua ragia** e acqua corrente calda
* poi **sapone** e acqua corrente calda
* **asciugare** rapidamente con aria compressa
Il tutto come spiegato **[[https://youtu.be/S6hg4fsdQIc?si=Aweq0g2Qe4VFjR-o|qui]]**.
==== Test preliminari ====
Di seguito una serie di test da eseguire //sempre// per diagnosticare un problema su di un Commodore.
* **misurare le tensioni**:
* **9 VAC e 5 VDC** sul connettore **User Port**
* **12 e 5 VDC** sul pin di destra dei regolatori **7802 e 7805**
* con l'**oscilloscopio testare**:
* **U7 CPU:**
* pin 1 e 39 (clock-in da VICII e clock-out): 984 KHz per PAL
* pin 40 (reset): spegnere e accendere computer; il segnale deve stare a 0 per 1 secondo e poi alto a 5 V dopo
* se il test pin 40 reset CPU non va, verificare **U20 556 (di fianco alle RAM)**; vedi **[[#analisi22|qui]]**
* pin 7-23 (address bus): tutti i pin devono mostrare attività, con onda quadra variabile e ampiezza circa 5 Vpp
* pin 30-37 (data bus): come //address bus//
* se il clock sulla CPU non va, testare **U19 VIC-II:**
* pin 21 (Clock Color): 17.73 MHz (PAL clock)
* pin 22 (Clock In): 7.47 MHz
* se il clock sul VIC non va, testare **U31 8701** (per una board 250425):
* pin 13 (Clock In): valore 17.73 MHz (PAL clock)
* se il VIC-II va, ma non c'è segnale video, verificare connettore **video CN5**, con cavo con spinotto a **8 pin**
* pin 4 (Composite): 1.2 V
* pin 1 (Luminance): 1.4 V
* pin 6 (Color/Chrominance): 1.08 V
==== Sintomi 'classici' ====
Di seguito alcuni **sintomi 'classici'** dove il componente colpevole può essere facilmente individuato.
=== C64 ===
* compare un garbage screen -> **Character ROM (901225)**
{{:content:retrocomputing:riparazioni:901225.png|}}
* lo schermo centrale si presenta vuoto -> **Basic ROM (901226)**
{{:content:retrocomputing:riparazioni:901226.png|}}
* schermo iniziale con colori errati e 'sfarfallanti' -> **Color SRAM (U6 - 2114)**:
{{:content:retrocomputing:c64_color_ram_-_dimensioni_grandi.jpeg?600|}}
* **schermo nero**:
* Kernal ROM (901227)
* PLA
* ... un sacco di altri componenti
* per **questi ed altri sintomi** cercare nella **[[https://www.pictorial64.com/|Pictorial Guide]]**
==== Diag Test ====
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:
{{:content:retrocomputing:riparazioni:harness-kit00.jpg?800|}}
Nell'immagine sopra ho collegato una tastiera; se uso quella invece del terminatore del kit, ottengo la segnalazione di 'OPEN':
{{:content:retrocomputing:riparazioni:harness-kit02.jpg?800|}}
Questa invece la **schermata corretta per tutti i chip e porte** collegando tutti i terminatori (quello della tastiera compreso):
{{:content:retrocomputing:riparazioni:harness-kit01.jpg?800|}}
Un SID di quelli moderni (**X-SID**) darà errore per sé (6581) e per la Control Port, in quanto non supporta i convertitori analogici per i paddle
==== Tastiera non risponde bene ====
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ì:
* svitare viti tastiera
* togliere i tasti ad uno ad uno sollevandoli con il manico di uno spazzolino da denti
* svitare le vitine del PCB, dissaldare il caps-lock e pulire il PCB con WD-40
* togliere i perni neri dei tasti
* pulire tasti e perni con acqua e sapone e spazzolino
* asciugare e rimontare tasti
* prima di rimontare il PCB si può pulire il **retro in gomma conduttiva** dei perni come di seguito:
* prendere una matita grossa e farle la punta con temperino
* strofinare la punta con una limetta unghie monouso e raccogliere la **grafite** in un contenitore
* intingere la punta di un cottonfioc prima in alcol isopropilico, poi nella polvere di grafite
* spennellare tutti i gommini conduttivi
* la **barra spaziatrice** si monta così:
{{:content:retrocomputing:riparazioni:c64-barra.png?600|}}
=== Molle ===
Per pulire le **molle della tastiera** immergerle in una soluzione di **aceto di alcol e Coca Cola per 1 ora** ...
==== Retrobright (o Retr0bright) ====
=== Case ===
* Innanzitutto è importante **pulire con detergente e sapone liquido** il case, onde evitare il formarsi di macchie poi con il redrobright.
* Poi **coprire con nastro carta le etichette 'Commodore' e 'Power'**
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 [[https://it.wikipedia.org/wiki/Perossido_di_idrogeno#Concentrazione_in_volumi|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.
== Metodo EMD69 ==
Sempre per il **case**, è possibile usare un metodo **alternativo**, che promette risultati migliori. Viene descritto in **[[https://youtu.be/zSY4MCDrJTI?si=NXiS1AwYXX3dK3_-|questo video]]** di EMD69 e prevede:
* all'interno di una bacinella, creare una **soluzione** composta da:
* 200 ml della stessa crema vol.40 di cui sopra
* poca acqua calda
* 2 misurini di Vanish Oxi Action
* dopo aver ben mescolato la soluzione:
* applicarla tutta con un pennello e guanti protettivi
* avvolgere il case con **cellophane**
* lasciare al sole per molte ore (anche 6-8 ore)
=== Tasti ===
* **tasti** del C64C, C128, C64G:
* predisporre un cartone
* posizionare i tasti sul cartone
* tralasciare i tasti funzione e rimuovere i 2 perni di plastica sotto la barra spaziatrice
* con un pennellino spennellare i tasti con crema vol.40, aiutandosi con i guanti
* coprirli col cellophane
* mettere al sole per 6-8 ore
{{:content:retrocomputing:riparazioni:retrobright-tasti01.jpeg?800|}}
{{:content:retrocomputing:riparazioni:retrobright-tasti-sole.png|}}
* **tasti** del Plus/4 o 128: attenzione che **i PETSCII si cancellano** lasciandoli al sole come sopra :!: Lasciarli al massimo 2-3 ore
==== VIC II ====
Il **pin 15 del VIC II** (Sync / Lumimance) all'oscilloscopio compare così:
* con **colore uniforme azzurro chiaro** (attivato //RVS ON// e digitato spazio per tutta la superficie video):
{{:content:retrocomputing:riparazioni:vicii-uniforme.jpeg|}}
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.
* durante un videogioco:
{{:content:retrocomputing:riparazioni:vicii-vario.jpeg|}}
Qui invece i colori cambiano di continuo e quindi in output compaiono righe verticali che cambiano di continuo.
==== TL866II-Plus ====
Il **TL866II-Plus** consente di programmare EPROM e verificare vari chip. Per l'**installazione sotto Linux** vedi **[[https://nerdyelectronics.com/install-tl866-ii-programmers-software-xgpro-on-a-linux-machine/|qui]]**.
=== Load ===
Le **ROM** per i vari Commodore possono essere scaricate da **[[http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/|qua]]**.
Per **caricare le ROM in formato .bin nel programmatore** fare:
{{:content:retrocomputing:riparazioni:xgpro01.png|}}
=== Programmazione ===
Una volta ottenuta la ROM .bin si può programmare la EPROM, che in precedenza deve essere stata **cancellata con il dispositivo apposito**:
{{:content:retrocomputing:riparazioni:eprom-eraser.png?600|}}
* inserire una **EPROM** di valore adeguato nel programmatore TL866II-Plus. Le **2764 sono da 64 bit**, quindi contengono esattamente 8 KB:
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.
* eseguire il programma **Xgpro**, selezionare il tipo di EPROM :
{{:content:retrocomputing:xgpro01.png?800|}}
{{:content:retrocomputing:xgpro02.png?800|}}
=== Adattatore ===
Questa EPROM 2764 dovrà essere inserita nel computer Commodore con un **adattatore 2364**, come questo:
{{:content:retrocomputing:riparazioni:xgpro09.png?600|}}
Fare attenzione alle serigrafie con 'Top' e 'Bottom', dove è anche indicato **la posizione in cui mettere le resistenze** da 10K in funzione della dimensione della EPROM
Lo **schema dell'adattatore** è il seguente, credo tratto dal blog di **[[https://blog.worldofjani.com/?p=757|World of Jani]]**:
{{:content:retrocomputing:riparazioni:2364-schema.png?400|}}
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**:
{{:content:retrocomputing:riparazioni:xgpro10.png?600|}}
== Leggere e Verificare ROM 2364 ==
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:
{{:content:retrocomputing:riparazioni:xgpro12.jpg?600|}}
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:
{{:content:retrocomputing:riparazioni:xgpro11.png?600|}}
=== Logic Test ===
== PLA ==
E' possibile fare anche un **test logico** delle C64 **PLA**, scaricando il template file da **[[http://www.breakintoprogram.co.uk/wp-content/uploads/2021/03/C64-82S100-PLA.zip|qui]]** e poi:
{{:content:retrocomputing:riparazioni:xgpro07.png?600|}}
{{:content:retrocomputing:riparazioni:xgpro02.png|}}
Il chip PLA può essere quindi **testato**:
{{:content:retrocomputing:riparazioni:xgpro03.png|}}
Se dà **//All Vector Testing Normal//** la PLA dovrebbe funzionare correttamente.
== Bad PLA ==
Di seguito invece l'esito per una **PLA non funzionante**:
{{:content:retrocomputing:riparazioni:xgpro04.png|}}
{{:content:retrocomputing:riparazioni:xgpro05.png|}}
Quella sopra fallisce per **varie linee KO**. Invece quest'altra ha un probabile **cortocircuito** interno:
{{:content:retrocomputing:riparazioni:xgpro06.png|}}
=== Altri chip logici ===
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ù.
Per testare chip come ad es. il **74LS14**, **scrivere solo '7414'**
In **alternativa** è possibile premere direttamente **//'Autofind'//**; se il chip è nell'elenco del programmatore e **se è funzionante**, sarà elencato:
{{:content:retrocomputing:riparazioni:xgpro13.png?600|}}
Qui sopra un chip 4066 è stato identificato, quindi presumibilmente è buono.
=== Riferimenti ===
**[[https://www.youtube.com/watch?v=SQ0MVKTrAD4|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 **[[https://www.deviantart.com/chickengeorge88/journal/Commodore-Eprom-Programming-Tutorial-861253208|qui]]**.
===== C64 =====
==== Sintomo ====
**Sintomo: schermo nero**
==== Analisi ====
* sostituito vari chip zoccolati con altri di altra scheda, senza esito
* in particolare verificato che sostituendo la **PLA** ho ottenuto a video **colori vari o righe colorate, alternate a schermi neri**. Ciò è sintomo di una PLA difettosa (due, in questo caso...)
==== Riparazione ====
**Soluzione: sostituito PLA con chip di nuovo tipo**
===== C64 #2 =====
==== Sintomo ====
**Sintomo: bordo di colore ok, ma sfondo con blocchi strani o linee (garbage screen)**
==== Analisi ====
* toccando la **ROM caratteri 901225-01** compaiono a video schermo blu o caratteri strani che scrollano verso il basso; rimosso e pulito contatti e piedini senza successo
* **Dead Test 781220** viene portato a termine
* **cartridge Jupiter Lander** funziona (bypassa le ROM)
* sostituito **2x multiplexor RAM 74LS257**, senza successo
==== Riparazione ====
* **rimosso zoccolo della ROM caratteri e messo strisce prese da Amazon**: il garbage screen è sparito e si vede bordi ok e sfondo vuoto :!:
* presa **ROM Basic** da altro C64: funziona!
**Soluzione: sostituito zoccolo della ROM caratteri; sostituito ROM Basic, che è risultata comunque poi funzionante**. Probabilmente l'inserimento di quest'ultimo non era adeguato.
===== C64 #3 =====
==== Sintomo ====
**Sintomo: schermo nero con assenza di segnale video**
==== Analisi ====
* l'alimentazione 5V DC agli integrati logici della parte sx della scheda arriva correttamente
* non c'è ingresso né uscita delle tensioni verso/da i **regolatori di tensione 7805 e 7812**
* testato **fusibile**: ok
=== Schema ===
Controllato lo **[[http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/251469-2of2.gif|schema]]** della board assy 250425 (apparentemente è quello corretto anche se viene segnalato come 251469). Di seguito uno zoom dell'alimentazione:
{{:content:retrocomputing:riparazioni:250425-alimentazione.png?600|}}
* testato alimentazioni come spiegato **[[#tensioni|sopra]]**. In realtà dopo una serie di accensioni/spegnimenti ha buttato fuori le tensioni corrette e, da misurazioni precedenti, apparentemente il pulsante non attivava il ramo di tensione a 9V AC. Deciso quindi di **sostituire il pulsante di accensione**.
==== Riparazione ====
* **dissaldato pulsante di accensione e riparato come da [[https://www.youtube.com/watch?v=iIILJiJdIJA|video di EMD69]]**
**Soluzione: riparato pulsante di accensione**.
In altri casi simili, con **assenza totale video**, conviene testare o sostituire il **generatore di clock 8701 del VIC II**
===== VIC20 =====
==== Sintomo ====
Si accende con **regolari sfondo bianco e bordo celeste, ma nessun carattere a video**
==== Analisi ====
Di seguito i test effettuati.
=== Cartucce gioco ===
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.
=== ROM Basic ===
Guardando un **[[https://www.youtube.com/watch?v=jY_ne61TiPc|video su YouTube]]** viene segnalato che il sintomo lamentato è causato dalla **ROM Basic**. Si rende quindi necessario:
- dissaldare ROM
- usare zoccolo ad hoc 2364 (tipo vecchio) per EPROM 2764
- programmare EPROM
come spiegato **[[#TL866II-Plus|qui]]**.
==== Riparazione ====
=== Dissaldatura ===
Per **dissaldare chip** conviene:
- settare la **temperatura della stazione dissaldante a 350 C**
- appoggiare **verticalmente** la punta sulla piazzola
- attendere 2 secondi che lo stagno si sciolga (roteando la punta, si dovrebbe sentire il piedino che si muove)
-premere il pulsante per succhiare lo stagno
- l'aria dovrebbe fluire dentro la piazzola ormai libera di stagno e si sente anche come rumore, di aria libera, non 'soffocata'
- in caso di mancata dissaldatura (potrebbe essere una piazzola di massa, con molto metallo) aggiungere **stagno nuovo** al vecchio, prima di dissaldare nuovamente (punto 2.)
- ispezionare visivamente la dissaldatura: dovrebbe notarsi il foro libero di stagno intorno al piedino del chip, che dovrebbe muoversi liberamente dentro la piazzola
- in casi difficili usare **stazione saldante ad aria (per SMD)** dall'altro lato e tirare gentilmente con una pinzetta
- pulire poi sempre le piazzole dallo stagno residuo aspirandolo con la dissaldatrice e anche l'eventuale stagno presente sui pin dei chip, qualora siano funzionanti e si voglia riutilizzarli
**Soluzione: sostituzione ROM Basic con EPROM programmata**
===== VIC20 #2 =====
==== Sintomo ====
Si accende con **video assente e righe diagonali che scorrono**
{{:content:retrocomputing:riparazioni:vic20-difetto.jpg?400|}}
==== Analisi ====
Testato tensioni e segnali dei vari integrati; non sono stati rilevate anomalie.
==== Riparazione ====
Recuperato **VIC chip 6561 zoccolato** da altro VIC 20 funzionante.
* installato 6561 sul VIC 20 che presentava il difetto: ha funzionato
* installato il presunto VIC chip 6561 sul VIC 20 che prima funzionava: non ha funzionato
* alcuni tasti non rispondevano bene; pulito contatti in gomma dei tasti, come spiegato **[[#tastiera_non_risponde_bene|sopra]]**
**Soluzione: sostituito VIC chip 6561 e pulito contatti in gomma tasti**
===== VC1541 bianco =====
==== Funzionamento normale ====
Di seguito viene descritto il **funzionamento normale**, al fine di verificare scostamenti da questa //baseline//.
**Avvio corretto:**
* LED verde acceso
* LED rosso acceso e motore che gira, entrambi per 1-2 secondi
* accendendo il computer si ha ancora per un attimo LED rosso e motore
* dare il seguente comando:
LOAD "*",8
* compare "SEARCHING FOR *" e subito dopo "LOADING". Il motore lavora.
* una volta terminato il caricamento comparirà "READY.". Il motore si arresta.
* si potrà quindi dare i comandi //LIST// e //RUN//
* il motore del floppy lavorerà ancora e infine il programma si avvierà
==== Sintomo ====
**Sintomo: il drive resta su "SEARCHING FOR"**
Il problema, come sopra, è che non legge nessun floppy. Di seguito i test effettuati,
==== Analisi ====
=== Misurato tensioni 5V e 12V ===
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
=== Cavo seriale ===
Per verificare che il **cavo seriale** funzioni, si può:
* testare i **pin per continuità** ai due capi
* col drive **spento**, dando il comando //LOAD"*",8// compare l'errore "?DEVICE NOT PRESENT", che avvisa che non trova il drive. Invece col drive **acceso** riconosce il device, ma presenta l'errore "SEARCHING FOR *". Ciò significa che il cavo seriale è funzionante.
=== Oscilloscopio ===
Si può collegare la **clip nera (negativo)** della sonda dell'oscilloscopio alla vite del VR2 oppure al negativo dei condensatori elettrolitici
* 6502: OK. Linee dati ed indirizzi mostrano **attività (bit 1 e 0 in movimento)**
* 2x6522: OK. Linee dati ed indirizzi mostrano attività
* ROM 901229-05: OK. I pin mostrano attività
* ROM 325302-01: OK. I pin mostrano attività
* **74LS14 (inverter)**: dal datasheet alcuni **pin (11 e 13)** non presentano il segnale invertito rispetto ai corrispondenti pin (10 e 12). In particolare presentano un **segnale a 3V** :!: invece che a 5V.
* **7406 (altro inverter)**: **pin 6 a 3V** :!:
=== Cambio chip ===
* provato a sostituire le VIA 6522 con altre di altro drive, ma i pin del 74LS14 e 7406 (vedi sopra) restano a 3V. D'altro canto le 6522, dai test eseguiti in precedenza con l'oscilloscopio, risultavano a posto.
==== Riparazione ====
Da indicazioni di **[[https://cbm8bit.com/articles/ray-charlsen/article21|Ray Charlsen]]** e dai test effettuati sopra, i **possibili colpevoli sono il 74LS14 e 7406**. Dopo aver ordinato i chip e atteso la consegna:
* **sostituito il solo 74LS14**: i pin che prima segnavano 3V anche sul 7406 **adesso presentano valori normali a 5V o 0V** :!:
* inserito un floppy: adesso, dopo LOAD"*",8, compare LOADING e quindi READY. LIST e RUN funzionano correttamente,
**Soluzione: Il problema era quindi il 74LS14**, che è stato sostituito,
===== 1541 marrone =====
==== Sintomo ====
**Sintomo:** LED verde OK, ma **LED rosso e il motore restano accesi continuamente**
==== Analisi ====
* tensioni 5V e 12V OK
* oscilloscopio:
* **6502: linee indirizzi (A) e dati (D) ferme su 0V o 5V, non hanno attività** :!:
==== Riparazione ====
* Preso a prestito CPU **6502** da VC1541.
* adesso il LED rosso e il motore non sono continuamente accesi :!:
* c'è attività sui pin A e D del 6502
* caricamento programmi da floppy ok
**Soluzione**: **sostituito il 6502**. Confermato anche dal fatto che, messa questa CPU al posto di quella del VC1541, il drive presenta gli stessi sintomi.
===== 1541 ?FILE NOT FOUND ERROR =====
==== Sintomo ====
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:
{{:content:retrocomputing:riparazioni:1570-02.png?600|}}
==== Riparazione ====
=== Pulizia testina ===
**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**.
**Se dà ancora FILE NOT FOUND, pulire nuovamente con IPA, sopra e sotto**
I caricamenti dovrebbero procedere correttamente (sistemato così tre drive che presentavano lo stesso sintomo).
===== 1541-II =====
==== Funzionamento normale ====
A differenza di un normale 1541, in un **1541-II l'avvio corretto è:**
* LED **rosso** ('Power') acceso
* LED **verde** ('Drive') acceso e motore che gira, entrambi per 1-2 secondi
==== Sintomo ====
**Sintomo:** LED rosso OK, ma **LED verde e il motore restano accesi continuamente.**
==== Analisi ====
* tensioni 5V e 12V //sembrano// OK
* rimosso il blocco meccanico con il motore e la testina: il LED verde si spegne
* testato l'**"error channel"**; il seguente test consente di testare il corretto funzionamento dell'elettronica:
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:
* '15': può essere un qualsiasi numero fino a 127; corrisponde al //file#// e ad esso si farà riferimento nel resto dei comandi
* '8': è il //device#// floppy drive (solitamente 8)
* '15': è il //command channel#//; i canali 2 e 14 possono essere invece usati per i //data channel//
Il comando **//INPUT#//** legge dati da una periferica; è necessario che prima sia aperto un canale con //OPEN//.
I comandi disco devono essere dati all'**interno di un programma, non //standalone//**, pena comparsa dell'errore //'?ILLEGAL DIRECT ERROR'//
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")|
* un **errore "0"** significa **'nessun errore'**
* un **READ ERROR su Track 18 Block 0** significa che il floppy non è mai stato formattato
Il **manuale del drive 1541** è reperibile **{{ :content:retrocomputing:riparazioni:commodore_vic_1541_floppy_drive_users_manual.pdf |qui}}**.
==== Riparazione ====
* arrivato **altro 1541-II funzionante**
* il vecchio 1541-II con il nuovo alimentatore funziona correttamente
* **ritestato vecchio alimentatore: ottenuto valori 5V e 16V, invece di 12V**, quindi i 16V non consentivano di far funzionare correttamente motore e parte meccanica
* caricamento programmi da floppy ok
**Soluzione**: **problema con l'alimentatore che buttava fuori 16V, invece di 12V**.
===== 1541 ?FILE NOT FOUND ERROR #2 (FAIL) =====
==== Sintomo ====
**Sintomo: avvio drive corretto, ma '?//FILE NOT FOUND ERROR//' caricando un disco**, anche dopo aver pulito la testina con IPA
Fondamentale usare un **floppy sicuramente funzionante**, come indicato **[[#sintomo7|qui]]**.
==== Analisi ====
=== Error Channel ===
Per prima cosa conviene [[#analisi7|testare l'error channel]]
=== 1541 Diagnostic Cartridge ===
Poi si può eseguire, anche da Kung Fu Flash, la [[http://blog.worldofjani.com/?p=2180|1541 Diagnostic Cartridge]]. Per una **spiegazione dei vari test** si può fare riferimento [[https://www.valoroso.it/en/check-the-commodore-1541-drive-with-the-1541-diagnostic-cartridge-by-jani/|qui]].
=== Resistenza testina ===
Poi si può testare i valori di **resistenza tra i pin del connettore testina**:
{{:content:retrocomputing:riparazioni:1541-connettore-testina01.jpg?600|}}
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|
I **valori corretti sono tra i 10 e i 30 Ohm**; nel caso in cui si leggano **valori di KOhm la testina è danneggiata e non è riparabile**
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**:
{{:content:retrocomputing:riparazioni:floppy-drive-newtronics.jpg|}}
=== Riferimenti ===
Si può sempre fare riferimento alla **[[http://www.bitsavers.org/pdf/commodore/1541_Maintenance_Guide_1984.pdf|1541 Maintenance Guide]]**, dove a pag- 3-8, vengono elencati i range di resistenza possibili per il connettore testina:
{{:content:retrocomputing:riparazioni:1541-connettore-testina02.png|}}
**Soluzione (FAIL): purtroppo in questo caso la testina è danneggiata; la parte elettronica si può riutilizzare**
===== Plus/4 =====
==== Sintomo ====
**Sintomo: schermo nero, ma segnale video presente**
==== Architettura ====
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|
==== Analisi ====
=== 8501R1 ===
Mi sono concentrato sulla CPU 8501R1.
* **Misurato tensioni sui PIN del 8501:**
^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**.
Misurazioni su di un **8501 correttamente funzionante:**
^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|
* **sostituito 8501R1** con equivalente preso da C16 funzionante: **lo sfondo nero è scomparso, ma è comparso il bordo viola e sfondo bianco corretto, ma con caratteri vari (//garbage screen//)**:
{{:content:retrocomputing:riparazioni:plus4-001.png?800|}}
* a seguito della sostituzione CPU, tutti i PIN A0-A15 hanno mostrato un'attività regolare
* testato CPU, apparentemente non funzionante, del Plus/4 su C16: è comparso schermo nero, a riprova che l'**8501 del Plus/4 era difettoso**
=== Garbage screen ===
Ho cercato quindi di risolvere il problema del **//garbage screen//**.
== 8360R2 ==
* sostituito TED con equivalente da C16: sempre //garbage screen//
== 318006-01 ==
* sostituito BASIC ROM con equivalente da C16: sempre //garbage screen//
== 318004-04 ==
* sostituito KERNAL,Char set ROM con equivalente da C16: sempre //garbage screen//
== 3251641-02 ==
* sostituito PLA con equivalente da C16: sempre //garbage screen//
**Riassunto: testato TED, 2xROM e PLA su C16 - funzionano**
== 317053-01 e 317054-01 ==
* rimosso 3-Plus-1 ROM: stesso sintomo
== 4264-15 ==
* controllato attività su chip **RAM** agli indirizzi A*: sembra ok
== 74LS257 ==
* controllato attività su chip **multiplexer** per RAM: sembra ok, ma da verificare meglio :?:
== Cartridge ==
* testato **cartuccia Jack-Attack**: stesso sintomo
=== Diag264 ===
**Ordinato cartuccia Diag264**. Una volta arrivata settata così:
{{:content:retrocomputing:riparazioni:diag-settings.png?800|}}
== Low RAM test ==
* all'accensione vedo **6 lampeggi** e compare il seguente **pattern**:
{{:content:retrocomputing:riparazioni:1banco-difettoso2.png?800|}}
* e subito dopo questo altro:
{{:content:retrocomputing:riparazioni:1banco-difettoso.png?800|}}
La **[[http://www.inchocks.co.uk/commodore/Diag264/|documentazione]]** rivela particolari interessanti. In particolare, durante il //low RAM test//, in **presenza di un problema**:
- il bordo flasha da 1 a 8 volte, indicando la //data line// guasta :?:
- i pattern devono essere uniformi; se compaiono altre lettere al posto di **'@'** il problema risiede nel banco RAM secondo questa tabella (estratto della doc):
{{:content:retrocomputing:riparazioni:estratto-doc-diag264-2.png?800|}}
Compaiono una serie di **'D'**, quindi il problema risiede nel **banco RAM U13**.
* **dissaldato RAM U13**. Al posto delle **RAM 4264** usato **chip equivalenti 8264**.
Al **boot** la situazione è migliorata, ma ci sono ancora dei **caratteri spuri**:
{{:content:retrocomputing:riparazioni:1banco.png?800|}}
* testato con la **Diag264**: questa volta non compaiono caratteri diversi da **'@'**, però flasha 7 volte
**Se compaiono solo i pattern e i flash, ciclicamente, allora c'è un problema. Un //diag// normale prevede anche i check mostrati più avanti**
* provato a fare **//piggybacking//** sui rimanenti banchi di memoria RAM, fino a che, provando il **chip U16** la situazione è migliorata, anche se c'è un lampeggio in corrispondenza del '.' di 'READY.':
{{:content:retrocomputing:riparazioni:plus4-2banchi.jpg?800|}}
* effettuato **altro //piggybacking//** sul **chip U17**: il **boot adesso è regolare** :!:
== Altri test ==
* inserito **Diag264: adesso i check non presentano più lampeggi nè caratteri strani e proseguono:**
{{:content:retrocomputing:riparazioni:diagtest002.jpg?800|}}
==== Riparazione ====
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:
{{:content:retrocomputing:riparazioni:plus4-flat-keyb.png|}}
Di seguito un //recap// della riparazione.
* sostituito CPU 8501R1 con equivalente da C16 funzionante
* lo schermo nero non è comparso, ma al suo posto è arrivato un **garbage screen**
* dalla **Diag264** sono emersi problemi di RAM nel chip U13
* altri banchi non funzionanti (U16 e U17) sono stati trovati col //piggibacking//
* dissaldato banchi RAM non funzionanti; saldato zoccoli e inserito chip RAM 8264:
{{:content:retrocomputing:riparazioni:plus4-ram.png?600|}}
**Soluzione**: **sostituito CPU 8501R1 e 3 chip RAM**
{{:content:retrocomputing:riparazioni:plus4-working.png?800|}}
===== Datassette =====
==== Sintomo ====
**Sintomo: il datassette non legge le cassette**
==== Analisi ====
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**.
==== Allineamento testina ====
Ho:
* scaricato un **programma per allineamento testina del Datassette da [[https://csdb.dk/release/?id=143459|qua]]**
* caricato il **programma sulla Kung Fu Flash**
* una volta **avviato** basta seguire le istruzioni a video:
{{:content:retrocomputing:riparazioni:azimuth01.jpg?600|}}
In sostanza, si tratta di:
* inserire una cassetta funzionante e premere **Play**
* premere F1 o F3 a seconda che la cassetta sia originale o meno (Turbo tape)
* dovrebbero **comparire 2 o 3 colonne** che devono essere rese le più **compatte** possibili, **girando con un cacciavitino la vite dell'azimuth**
* si può quindi uscire con Return
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.
**Soluzione: allineato azimuth testina**
===== Datassette #2 =====
==== Sintomo ====
**Sintomo: premendo Rewind o F.Fwd la cassetta non si muove**
==== Analisi ====
Provato lo stesso datassette su di un altro C64 e qui il lettore funziona.
Giusto come //reference//, inserisco qui il **pinout** del connettore datassette:
{{:content:retrocomputing:riparazioni:datassette.png|}}
I 6 V del motore si attivano solo quando si premono i pulsanti sul datassette, altrimenti il pin resta a circa 0 V.
==== Riparazione ====
**Soluzione: pulito bene con alcol IPA e cotton fiocc i contatti del pettine del connettore datassette sul C64**. Il comandi sul datassette hanno ripreso a funzionare e i giochi a caricare.
===== C64C =====
==== Sintomo ====
Il computer si avvia, ma è **tutto in minuscolo. La tastiera non risponde, solo premendo alcuni tasti si vede qualcosa, ma l'output è sbagliato**
==== Analisi ====
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.
* Inserito **6526 da altro C64** con tastiera funzionante: stesso sintomo
* Testato il 6526A su altro C64: funziona
* **diagnostico 586220** senza //harness kit// su keyboard dà "OPEN" (forse per la mancanza del kit?)
* la coppia di valori orari in basso a destra sono uguali tra AM e PM, segno che la CIA 6526A dovrebbe essere ok
:!: 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!
* rimosso CIA1 corretto: aveva un **piedino rotto** e saldato alla meno peggio!
* messo CIA2 su zoccolo del CIA1: **garbage screen** (due volte)
* poi **schermo nero: saltato fusibile!**
* inserito 6526 da U1 a U2, per testare il chip: si vede schermo normale, senza cursore, come ovvio che sia visto che U1 adesso è vuoto
* ... dopo varie prove con schermo nero, ho **rimosso lo zoccolo di U1: adesso il computer si avvia**, ma come da sintomo iniziale non funziona la tastiera
* installato **nuovo zoccolo** (in realtà due file di zoccoli): inserito 6525 su U1: la tastiera non va (cursore lampeggiante, of course)
* eseguito **test continuità pin CN1 (tastiera) e U1 (6526)**: si tratta di 20 pin; avevo saldato male il pin 5 dello zoccolo;
* risaldato pin 5: test continuità adesso ok, ma la tastiera ancora non va
* provato **altra CIA**: tastiera ko
* invertito CIA: idem
* :!: inserito **cartridge Jupiter Lander e i tasti 'A', 'D' ed 'F1' funzionano**! Invece la cartuccia Omega Race no...
* ipotesi di problema su **ROM Kernal+Basic**:
* ordinato **EPROM 27128** perchè l'immagine ROM è da 16 KB. In più i PIN vanno bene, non serve adattatore per zoccolo
* programmato EPROM, testata: stesso effetto
* testato PIN **4066** (U18) tra U1 e CN1; comportamento simile a 4066 su C64 con tastiera funzionante
* inserito **cartuccia Lemans: il paddle funziona e anche 'A' e 'F1'**
* :!: provato poi a premere alcune **combinazioni di tasti: '1' e '2' esce '2', '7' e '8' esce '8', '3' e '5' esce '5'; premendo '7' + altri tasti questi escono: 'Y','U','G','H','V','B'**
* **cambiato zoccolo CIA1 con più standard 40 pin**: stesso problema tastiera
* :!: inserito **Kung Fu Flash: il joystick sulla porta 2 consente di muoversi nei menu e selezionare le voci**
* :!: provato **gioco Choplifter** (gli altri richiedono di premere RUN/STOP per essere avviati): **usa joystick su porta 1, però l'elicottero va sempre 'su', come se ci fosse qualcuno che spinge la leva joystick verso l'alto**
Questo aspetto legato alla **leva del joystick 1 apparentemente 'bloccata' verso l'alto** si rivelerà decisivo per il troubleshooting
* testato **segnali su CN1 con oscilloscopio:**
* i pin da 3 a 11 sono a 5V
* i pin da 13 a 19 sono a 5 V con dei //drop// con frequenza a 60 Hz, come da norma
* :!: il **pin 12, che corrisponde alla Row 0 nella matrice tastiera, segna 0.6 V invece dei 5 V di un connettore funzionante**; lo schema del **collegamento completo** è il seguente:
{{:content:retrocomputing:riparazioni:cia1-pin12.png|}}
In pratica: **pin 1 Control Port 1 <-> filtro EM6 <-> linea JOY A0 <-> pin 12 CN1 tastiera <-> ROW 0 <-> porta in ingresso PB0 su CIA1**
**Il pin 1 della porta joystick 1 controlla effettivamente l''UP' del joystick!** Quindi, il fatto che **la linea PB0 sia bassa (0.6 V corrisponde a //low//) spiega il comportamento del joystick**
E' come se un'intera linea di tasti (Row 0) sia bloccata; di seguito la **//keyboard matrix//** per il C64:
{{:content:retrocomputing:riparazioni:keyboard-matrix01.png|}}
=== Funzionamento matrice tastiera ===
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... FIXME
**La domanda allora è: cosa tiene la linea PB0 bassa?**
==== Riparazione ====
* rieffettuate **saldature pin 12 su CN1 e pin 10 su zoccolo CIA1 (PB0)**: stesso problema
* :!: **rimosso filtro EM6: PB0 è tornata a 5 V e la tastiera funziona!** 8-)
* il filtro EM6 l'avevo precedentemente testato (continuità tra i pin esterni, nessuna continuità dagli esterni verso l'interno) e non aveva problemi; l'ho quindi **risaldato**. La linea PB0 è rimasta a 5 V e la tastiera continua a funzionare
* **test effettuati**: Choplifter su porta 1 joy ok, joy 2 ok, tastiera ok, datassette ok
* effettuato pulizia standard, case e tastiera
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!
{{:content:retrocomputing:riparazioni:c64c-black-keyboard.jpg?800|}}
**Risaldato filtro EM6 che teneva la linea PB0 tastiera giù**
In casi simili, bisogna verificare sul CN1 se le tensioni arrivano a 5 V su (quasi) tutti i pin, come indicato sopra.
===== C64 #4 =====
==== Sintomo ====
Il computer si avvia con bordo e sfondo corretti, ma con un **garbage screen**
{{:content:retrocomputing:garbage01.png|}}
==== Analisi ====
Concentro la mia analisi sui chip che possono essere coinvolti nella generazione di questo //garbage screen//.
* **901225-01 Char ROM**: dissaldato, zoccolato e messo sostituto -> garbage screen uguale
* **CIA U2** (dopo aver verificato la **[[https://www.pictorial64.com/|Pictorial Guide]]**: dissaldato chip e fatto partire il computer senza CIA2 -> **funziona** :!:
* installato quindi zoccolo e messo altra CIA 6526 -> **OK**
Dopo qualche tempo ha ripreso a dare **nuovamente garbage screen**. E' necessaria una nuova analisi.
* il computer **parte correttamente con la Dead Test 781220**
* il **gioco Jupiter Lander funziona** (anche tasti)
* il **gioco Lemans funziona** (anche tasti)
* :!: **toccato col dito la Char ROM 901225-01 e lo sfondo corretto inizia a comparire, per poi scomparire una volta tolto il dito**:
{{:content:retrocomputing:funziona_quasi_2.png|}}
{{:content:retrocomputing:funziona_quasi1.png|}}
* anche **rimuovendo del tutto la Char ROM si ottiene lo stesso garbage screen**, sintomo che il problema è proprio quel chip:
{{:content:retrocomputing:garbage_senza_char_rom.png|}}
==== Riparazione ====
* testato i **pin dello zoccolo ROM char**; hanno tutti continuità (ad es. verso i pin delle altre ROM), **a parte un pin molto importante, che è il suo CS (chip select) che va al pin della PLA della linea ROM char**, che non è attivo:
{{:content:retrocomputing:char-rom-pla.png|}}
Se questa pista non è attiva, è impossibile per la PLA selezionare la ROM char e quindi è come se quest'ultimo chip non funzionasse
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:
{{:content:retrocomputing:ponticello.png|}}
Il trucco ha funzionato e adesso il computer si avvia regolarmente!
{{:content:retrocomputing:c64_ok.png|}}
Il corretto funzionamento di tutti i suoi componenti è confermato dal **dead test con il kit di harness collegato**:
{{:content:retrocomputing:c64_ok2.png|}}
**Sostituito CIA2; ricreato pista tra ROM Char e PLA**. Purtroppo il SID si è rivelato parzialmente difettoso, quindi l'ho sostituito con un altro 6581
===== C128 =====
==== Sintomo ====
Il computer si avvia correttamente, ma dopo pochi secondi a volte si freeza, semplicissimi programmi Basic partono ma poi danno Syntax Error, in modalità C64 ha dato un Out of Memory e in entrambe le modalità ogni tanto cambiava caratteri e/o colori
{{:content:retrocomputing:riparazioni:c128-garbage.jpg|}}
{{:content:retrocomputing:riparazioni:c128-basic-error.jpg|}}
==== Analisi ====
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 **{{:content:retrocomputing:riparazioni:781220_manual.pdf|manuale della Dead Test}}**, sette flash corrispondono ai banchi U39/U47:
{{:content:retrocomputing:riparazioni:c128-7-flashes.jpg|}}
==== Riparazione ====
Procedo quindi a:
* dissaldatura RAM segnalate come difettose
* inserimento zoccolo
* inserimento 'nuove' **RAM 4164**
Bisogna fare **attenzione al verso di inserimento dei chip!** Sul C128, a differenza del C64, molti chip vanno inseriti con la tacca verso il basso della scheda.
Dopo aver inserito le memorie col verso corretto, il computer funziona, così come il **dead test viene portato a termine**:
{{:content:retrocomputing:riparazioni:c128-deadtest-ok.jpg|}}
**Sostituito banchi RAM segnalati come difettosi dalla Dead Test**
===== VIC 20 #3 =====
==== Descrizione ====
Si tratta di un VIC 20 prima serie, con tastiera **//Eurostile//**:
{{:content:retrocomputing:riparazioni:vic20-eurostile.png|}}
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):
{{:content:retrocomputing:riparazioni:vic20-psu.jpg|}}
==== Sintomo ====
Il computer si avvia correttamente, ma i caratteri sono sfuocati e i colori non nitidi
{{:content:retrocomputing:riparazioni:vic20_2.jpg|}}
==== Analisi ====
Su di un **[[https://forums.atariage.com/topic/266431-vic-20-pro-tip-adjust-your-pots/|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:
{{:content:retrocomputing:riparazioni:vic20_1.jpg?500|}}
==== Riparazione ====
In realtà, prima di effettuare un test dei condensatori, ho provato semplicemente a **inserire un VIC chip sicuramente funzionante**, cosa che si è rivelata corretta!
{{:content:retrocomputing:riparazioni:vic20-vicchipok.jpeg|}}
**Sostituito VIC chip**
===== Plus/4 #2 =====
==== Descrizione ====
Si tratta di un Plus/4 con la tastiera molto ingiallita:
{{:content:retrocomputing:riparazioni:plus4_2_nokeyb.jpg|}}
==== Sintomo ====
La tastiera non funziona, ma i tasti funzione sì e anche quelli cursore
{{:content:retrocomputing:riparazioni:plus4_nokeyb.jpg|}}
==== Analisi ====
I sintomi sono identici alla situazione descritta **[[https://www.lemon64.com/forum/viewtopic.php?t=78411|qui]]**; ma in quel caso si sono limitati a cambiare tastiera.
=== Diag 264 ===
Provata una **cartridge Diag 264, senza harness kit** (per istruzioni vedi **[[https://www.inchocks.co.uk/commodore/Diag264/|qui]]**):
{{:content:retrocomputing:riparazioni:plus4-diag264.png|}}
**Testato la Diag 264 su di un Plus/4 con la tastiera funzionante**; il //'BAD'// sulla tastiera (e sulle altre porte) compare ugualmente, segno che sarebbe necessario il terminatore dell'harness kit
=== Scheda ===
La **scheda** si presenta relativamente pulita e in ordine:
{{:content:retrocomputing:riparazioni:plus4-board.png|}}
Le **tensioni sulla User Port** (stessi pin del C64) sono ok:
{{:content:retrocomputing:riparazioni:plus4-user-port.png|}}
=== Jack Attack ===
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.
=== Service manual ===
Scaricato il **{{:content:retrocomputing:riparazioni:service_manual_model_plus_4_computer.pdf|Plus/4 Service Manual}}**; dall'analisi della **keyboard matrix** i tasti cursore sono inseriti al suo interno, così come tutti gli altri:
{{:content:retrocomputing:riparazioni:plus4-keyb-matrix.png|}}
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ì:
{{:content:retrocomputing:riparazioni:plus4-keyb-flat.png|}}
=== Smontaggio tastiera ===
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:
{{:content:retrocomputing:riparazioni:plus4-keyb-led.png|}}
:!: Fare attenzione ai **4 tondini di gomma dei tasti cursore e ai 4 dei tasti funzione**, che sono appoggiati e rischiano di cadere:
{{:content:retrocomputing:riparazioni:plus4-keyb-pcb.png|}}
:!: C'è anche una **piccola molla** solo appoggiata, vicino al LED:
{{:content:retrocomputing:riparazioni:plus4-keyb-molla.png|}}
=== Pulizia tastiera ===
Dopo una **pulizia del PCB con WD40 detergente contatti** e **dei gommini dei tasti con cotton fiocc imbevuto di IPA** qualche tasto comincia a funzionare. Altri tasti sono 'duri', per cui sembra necessario il trattamento con soluzione a base di grafite.
Dopo aver **spennellato i contatti di gomma con soluzione a base di grafite**...
=== Linee keyboard ===
**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**:
{{:content:retrocomputing:riparazioni:plus4-keyb-rows-colums.png|}}
Le **Colonne** sono da intendere colonne di tasti presenti sulla tastiera del Plus/4; nella matrice sopra in realtà sono messe come righe :!: :
{{:content:retrocomputing:riparazioni:plus4-keyb-rows-cols.png|}}
Mentre i nuclei **FB41-48** misurano tutti 0 V e dovrebbero corrispondere a COLUMNS=Outputs
{{:content:retrocomputing:riparazioni:plus4-fbxx.png|}}
**[[https://www.keymmodore.com/wiring-c-16/|Qui]]** viene spiegato il **funzionamento di una keyboard matrix C16/Plus4**; qui invece c'è un **[[https://youtu.be/25xlligwsL8|video]]** FIXME
Nel **Service Manual**, relativamente alla tastiera, si suggerisce:
{{:content:retrocomputing:riparazioni:plus4-keyb-service-manual.png?700|}}
==== Riparazione ====
...
**bla bla bla**
===== VIC 20 #4 =====
==== Descrizione ====
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).
==== Sintomo ====
A seguito di questo cortocircuito, il computer è rimasto acceso, i giochi su cartuccia sono funzionanti, ma il datassette non funziona più.
Colori a video assenti
Datassette non risponde più ai comandi
==== Analisi ====
=== Colori assenti ===
Relativamente ai **colori a video assenti**, ho provveduto a **regolare il trimmer di destra vicino al VIC chip con cacciavite plastico/ceramico apposito**:
{{:content:retrocomputing:vic_chip_regolazioni.png|}}
Regolando il **potenziometro di destra** ho risolto il problema del colore.
=== Datassette non funzionante ===
Per il problema intercorso sul **datassette** invece ho inizialmente effettuato **[[#riparazione10|pulizia approfondita contatti porta datassette]]**, senza esito.
Mi sono quindi concentrato sulla parte di **[[#scheda_vic20|alimentazione della scheda]]**:
* effettuato **[[#misurazione|misurazione tensioni sulla User Port]]**:
* la **5 VDC** è presente
* mentre la **9 VAC è assente** :!:
I 9 VAC arrivano sulla User Port **dal cavo nero che attraversa tutta la parte superiore della scheda**;
* verificato che **manca la tensione 9 VAC nei due pin centrali del ponte a diodi**:
{{:content:retrocomputing:bridge-rectifier.png|}}
* ed infine verificato che **il fusibile su quel ramo è saltato** :!:
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.
==== Riparazione ====
**Sostituito fusibile**, che era scattato a seguito del corto dei pin 9 VAC sulla User Port
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.
===== C64 #5 =====
==== Intro ====
Il 'paziente' è una board 250407, con bel chip VICII ceramico:
{{:content:retrocomputing:riparazioni:c64_5_vicii.jpg?600|}}
==== Sintomo ====
**Sintomo: schermo nero, con aggancio del segnale video (//blip// iniziale)**
==== Analisi ====
* pulito scheda un po' impolverata e pulito contatti user port e cassette port
* testato fusibile, **tensioni** DC e AC su user port e su uscita 7812 e 7805: ok
* lo schermo nero permane anche con la **Dead Test** (nessun lampeggio)
* test **termocamera**:
{{:content:retrocomputing:riparazioni:flir_20240727_110231_538.jpg?800|}}
La **ROM Kernel (901227)** pare effettivamente tanto calda... More on that later
* **CPU**:
* linee **indirizzi** apparentemente ok
* linee **dati**: D0 e D1 bassi 1,8/2 V, a volte sale sopra 4 V:
{{:content:retrocomputing:riparazioni:img_20240726_215915_923.jpg?600|}}
Sulle linee dati si dovrebbe vedere attività e segnali che raggiungono i **5 V**
==== Riparazione ====
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:
{{:content:retrocomputing:riparazioni:c64_5_harness.jpg?600|}}
**Soluzione: sostituito ROM Kernal difettosa**, che era probabilmente in corto, visto la temperatura elevata, causando problemi sul bus dati
===== C64 #6 =====
==== Intro ====
Dopo un po' di tempo riprendo in mano **[[#c64_4|questo C64]]**, che questa volta non si avvia.
==== Sintomo ====
**Sintomo: garbage screen colorato**
==== Analisi ====
All'avvio compaiono pattern colorati variabili:
{{:content:retrocomputing:riparazioni:c64-garbage01.png?600|}}
{{:content:retrocomputing:riparazioni:c64-garbage02.png?600|}}
Inserendo la cartuccia di **Jupiter Lander** si vede solo qualche spezzone di testo (ad es. in basso 'HI' e anche 'FUEL'):
{{:content:retrocomputing:riparazioni:c64-garbage04-jupiter.png?600|}}
=== Dead Test ===
Inserendo una cartuccia **Dead Test 781220** vengono presentati a video **3 lampeggi**, indice della RAM U11 difettosa.
=== Termocamera ===
L'analisi con la **termocamera** evidenzia la **RAM U11 //fredda//** (probabilmente 'morta'):
{{:content:retrocomputing:riparazioni:c64-garbage03-flir.png?600|}}
==== Riparazione ====
**Dissaldato RAM U11**, zoccolato e inserito **nuova RAM 4164**: il sistema è ripartito correttamente
La nuova RAM adesso non è più fredda:
{{:content:retrocomputing:riparazioni:c64-garbage05-flir.png?600|}}
===== C64 #7 =====
==== Intro ====
Questa volta si tratta di una 250407 con solo VICII e SID zoccolati.
==== Sintomo ====
**Sintomo: schermo nero con aggancio segnale video iniziale**
Dopo riduzione a **sistema minimo presenta lampeggi variabili**
==== Analisi ====
=== Ispezione visiva ===
Da un'**ispezione visiva** non si notano lavorazioni o manomissioni sulla scheda
=== Misurazione tensioni ===
Su di una scheda mai testata, conviene prima di procedere col test tensioni, rimuovere i chip zoccolati, così da evitare che si danneggino se la scheda ha problemi
**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.
=== Oscilloscopio ===
Con l'**oscilloscopio** misuro:
* il **reset** al **pin 40**: il segnale resta a 0 V per 1 secondo e poi si stabilizza a 5 V
* **clock in e out sulla CPU** ai **pin 1 e 39**: ottengo per entrambi 984 KHz, che per un VICII PAL (che è quello che genera il clock) sono corretti
=== Termocamera ===
Con la **termocamera** verifico la temperatura dei chip, che risulta essere elevata per il VICII, ma **[[#temperatura_componenti_termocamera|nella norma]]** per tale componente e per la **Kernal ROM**.
* VIC II:
{{:content:retrocomputing:riparazioni:c64temp-vicii.png?600|}}
* Kernal:
{{:content:retrocomputing:riparazioni:c64temp-kernal.png?600|}}
Dall'immagine sopra si può apprezzare come invece le RAM siano apparentemente calde 'il giusto'.
Come indicato più sotto, per arrivare ad un **sistema minimo** non è sufficiente dissaldare il solo pin Vcc come indicato qui, ma **tutti i pin**, altrimenti possono interferire con gli altri chip e con le letture dell'oscilloscopio
* Provo a **dissaldare il PIN 24 Vcc** della Kernal ROM: a differenza di **[[#analisi18|qui]]** la **Dead Test** dà schermo nero
Dopo aver dissaldato il pin Vcc, controllare sempre la mancanza di continuità con il ramo a 5 VDC; in caso contrario muovere il pin nella piazzola con una pinzetta
* Visto che il VIC II è zoccolato ed è molto caldo lo sostituisco con uno sicuramente funzionante: sempre schermo nero
=== Muletto ===
Su di un **muletto** testo:
* **VIC II: OK**, sul muletto funziona
* **SID: schermo nero e una volta garbage screen**; quindi, oltre ad essere difettoso, deve avere un corto, che impedisce l'avvio del computer :!:
=== Sistema minimo e Dead Test cartridge ===
* Ritesto nuovamente il C64 in esame con il suo VIC II, ma **//senza// SID**: con Dead Test sempre schermo nero...
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**:
* dissaldo il pin 24 Vcc della **901226 (Basic ROM)**: dopo un'attesa di qualche secondo che parta la Dead Test, ottengo un **garbage screen**, consitente tra un reboot e l'altro (sempre garbage screen e sempre lo stesso tipo):
{{:content:retrocomputing:riparazioni:c64-garbage.png?600|}}
* dissaldo il pin 24 Vcc della **901225 (Character ROM)**: stesso garbage screen di sopra della Dead Test
=== Pictorial Guide ===
Prima di procedere con ulteriori dissaldature, controllo la **[[https://www.pictorial64.com/|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:
* dissaldo il **pin 20 Vcc della CIA1**: stesso garbage screen di sopra
* dissaldo il **pin 20 Vcc della CIA2**: :!:
* ottengo **subito 6 flash**
* poi spegnendo e riaccendendo **5 flash** che sembrano consistenti ai successivi riavvii
* scollegando l'alimentazione e la scheda Dead Test e ricollegandole ottengo **8 flash**
* al successivo reboot **3 flash**...
E' evidente che non c'è una singola RAM guasta, ma visto i flash variabili, i colpevoli potrebbero essere i **multiplexer**
=== Oscilloscopio #2 ===
Riprendo l'analisi con l'oscilloscopio.
* **CPU:** tutte le **linee dati** sono ok, con attività e ampiezza corretta:
* invece per le **linee indirizzi**, A13 e A14 sembrano fissi a 5V con pochissimi picchi a 0V; mentre A7, A9 e A15 presentano questo segnale evidentemente non corretto:
{{:content:retrocomputing:riparazioni:c64-bus-ind-a7.png|}}
Qui di seguito come le linee indirizzi vengono gestite dai due **multiplexer**:
{{:content:retrocomputing:riparazioni:c64-multiplexer-schema.png?200|}}
Sembra esserci quindi un **problema sul bus indirizzi**; in questi i casi i sospettati potrebbero essere i multiplexer o la PLA.
* provo quindi a **dissaldare e testare i multiplexer 74LS257**; questi si rivelano **funzionanti sul muletto** :!: e sul programmatore **TL866II**:
{{:content:retrocomputing:riparazioni:c64-xgpro-74257.png|}}
* allora procedo a **dissaldare e testare la PLA**, che effettivamente è **difettosa** :!:, sia **sul muletto che sul programmatore TL866II**:
{{:content:retrocomputing:riparazioni:c64-pla-ko.png|}}
Purtroppo, anche inserita una **PLA sicuramente funzionante**, il computer presenta i **flash variabili** di prima.
* in casi simili il colpevole può rivelarsi anche **U14 cioè MOS 7709 o SN74LS258**; infatti, **dissaldato e testato sul TL866II risulta in //failed//** :!: Usato un 74LS258 da altra board donatrice, compare però il seguente **garbage screen**:
{{:content:retrocomputing:riparazioni:c64-74ls258.png?600|}}
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.
* visto la presenza di vari **chip logici MOS**, notoriamente proni a fallire, mi decido a dissaldarli:
* **U27 MOS 7712 (7408)** testato sul TL866II è risultato OK
* **U15 MOS 7711 (74139)** testato sul TL866II è risultato OK
* **U8 MOS 7707 (7406)** testato sul TL866II è risultato OK, mentre dava **segnali strani all'oscilloscopio**, rispetto ad una 250407 muletto.
Questo il datasheet del 7406, che è un **//inverter//**:
{{:content:retrocomputing:riparazioni:c64-7406.png?200|}}
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:
{{:content:retrocomputing:riparazioni:c64-7406-02.png?400|}}
Mi decido quindi a tornare sui miei passi:
* risaldo pin **Vcc di CIA1 e 2** e la Dead Test parte correttamente! :!:
{{:content:retrocomputing:riparazioni:c64-dead-ok.jpg?600|}}
* mi faccio coraggio e collego, uno dopo l'altra, le **ROM** e il sistema si avvia correttamente! :!:
{{:content:retrocomputing:riparazioni:c64-boot-ok.jpg?600|}}
**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.
==== Riparazione ====
**Sostituito i chip SID, PLA e 7709 (74LS258)**
===== 1570 ?FILE NOT FOUND ERROR #3 =====
==== Sintomo ====
**Sintomo: avvio drive corretto, ma '?//FILE NOT FOUND ERROR//' caricando un disco**, anche dopo aver pulito la testina con IPA
==== Analisi ====
=== Elettronica ===
Eseguito test per [[#analisi7|l'error channel]] e l'**output** è corretto:
73 CBM DOS V3.0 1570 0 0
Ne consegue che l'**elettronica è a posto**.
=== Testina ===
Eseguito test [[#resistenza_testina|resistenza testina]] e i valori sono in un range compreso tra 11,5 e 33,3 Ohm, quindi nella norma.
=== 1541 Diag/Test ===
Per una descrizione dei vari tool nella //1541 Diag/Test// si può vedere il sito di **[[https://www.valoroso.it/verificare-il-drive-commodore-1541-con-la-1541-diagnostic-cartridge-by-jani/|Amedeo Valoroso]]**
== Alignment check ==
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':
{{:content:retrocomputing:riparazioni:1570-01.png?600|}}
Questi valori potrebbero essere ottenuti anche in presenza di un drive e floppy funzionanti, per cui non ci si deve necessariamente preoccupare
== Error Scan ==
Al termine del tool //Error Scan// ottengo un risultato con **alcuni settori danneggiati**.
Ciò potrebbe essere dovuto al floppy, più che al drive. Con un floppy funzionante non dovrebbe capitare
== Speed Check ==
Con //Speed Check// verifico che la velocità del disco è molto vicina (298.5 RPM) al valore nominale di 300.
== Fast Format ==
Adesso il disco viene formattato correttamente (quindi cancellato) e se letto presenta il suo contenuto.
=== Caricamento da floppy ===
Eseguito **caricamento con successo dai floppy sicuramente funzionanti //Zork 1// e //Test/Demo Diskette//**, quindi questo è la migliore conferma che il drive funziona :!:
==== Riparazione ====
Il drive alla fine è risultato funzionante; potrebbe avere avuto bisogno di una reinizializzazione, tramite i tool di 1541 Diag/Test, in particolare grazie a //Fast Format//.
Più probabile che **il floppy usato inizialmente non fosse funzionante**, quindi è fondamentale **usare un floppy testato e possibilmente originale** (vedi **[[#sintomo7|qui]]**).
==== Riferimenti per i drive ====
Altri suggerimenti utili sui drive si trovano **[[https://retro64.altervista.org/blog/commodore-1541-disk-drive-maintenance-part-2-head-alignment/|qui]]**.
===== C64 #8 =====
==== Intro ====
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.
==== Sintomo ====
**Sintomo: schermo nero con aggancio segnale video iniziale**. Una volta sistemato lo schermo nero, **audio con scariche**
==== Analisi ====
=== Ispezione visiva ===
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:
{{:content:retrocomputing:riparazioni:c64_8_u20_ponte_-_dimensioni_grandi.jpeg|}}
Anche i pad del 556 sono stati manomessi in fase di dissaldatura:
{{:content:retrocomputing:riparazioni:c648_u20_pads_-_dimensioni_grandi.jpeg|}}
=== Sistema minimo e misurazione tensioni ===
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.
=== Dead Test cartridge ===
Inserisco la **Dead Test**, ma ottengo uno schermo nero.
=== Oscilloscopio ===
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ì.
=== Circuito reset ===
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:
{{:content:retrocomputing:riparazioni:556.png|}}
Nel caso di **U20 - 556** del C64, dei due viene quindi usato il 'timer 555 B'.
**Normalmente funziona così:**
* tutto parte da **U20 - 556**
* all'accensione, sul **pin 8 (//trigger//)** la tensione dovrebbe scendere ad 1/3 di Vcc, ma qui non lo fa...
* questo causa un output sui **pin 12 e 13 (//threshold// e //discharge//)**, che **parte da 0 e sale lentamente in un secondo circa fino a 2/3 di Vcc, per poi scendere immediatamente a zero**, come visualizzato in **[[https://youtu.be/OZdtVFZlweo|questo video]]** (parte dall'accensione, 0 V)
* quindi visto dal **pin 9 (//output//)**, esaurito il secondo spiegato sopra, la tensione va a **da Vcc a zero**, come visualizzato in **[[https://youtu.be/5mCR6eKYrc4|quest'altro video]]** (parte dall'accensione, 0V)
* il pin 9 di U20 é collegato al **pin 9 di U8 - 7406** oppure **MOS 7707**, che è l'ingresso di una porta **//inverter//**
* il **pin 8 di U8** é l'uscita invertita del pin 9, che è collegata al **pin 40 della CPU 6510** (/Reset)
Normalmente sul pin 40 della CPU 6510 la tensione dovrebbe essere a zero inizialmente e dopo un secondo sale a Vcc
{{:content:retrocomputing:riparazioni:c64_8_u20_schema.jpg|}}
A differenza del comportamento normale, qui **non sale la tensione sui pin 12 e 13 di U20 - 556 lentamente per 1 secondo, per poi discendere a zero**, ma **resta praticamente fissa a zero**. Il **7406** invece sembra invertire correttamente i valori sulle sue porte, quantomeno la 8 e 9. C'è quindi un probabile **problema sul 556 oppure sui componenti passivi di supporto**
==== Riparazione ====
* Ho provato a **sostituire il 556** ma l'effetto non cambia
* Testato //in circuit// i **componenti passivi (resistenze e condensatori)** del circuito di reset, ma confrontati con quelli di un'altra scheda 250425, sembrano uguali.
* Ho comunque provato a:
* rimuovere C34, testarlo fuori dalla scheda (è ok) e risaldarlo
* rimuovere **C24**, testarlo con **ESR meter**, verificare che è ok, ma decidere di **sostituirlo**, perchè sembrava essere stato cambiato
Il comportamento del pin 8 (//trigger//) di U20 - 556 rimane identico (4,56 V), **mentre adesso pin 12 e pin 13 mostrano quanto descritto nel funzionamento regolare sopra!**
* inserito **Dead Test** e, dopo qualche secondo, questa si avvia correttamente :!: Quindi **il problema del Reset //sembrerebbe// essere stato risolto sostituendo C24**.
* il giorno dopo lo riaccendo e non parte; verifico che ancora una volta il problema è il circuito di reset; **dissaldo il nuovo C64 e risaldo il vecchio e funziona** :!: Poi il problema si ripresenta ancora una volta; questa volta risolvo rifacendo la **saldatura di C24**
=== Diag Test ===
**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.
=== Audio ===
Per l'audio faccio le seguenti prove:
* pulito zoccolo del SID
* cambiato zoccolo
* cambiato SID
* provato SID su macchina muletto: qui non sento scariche e il SID funziona bene
* cambiato cavo, 5 e 8 poli
* provato su altra TV
* pulito connettore video
* togliendo il SID si sente silenzio
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//**:
{{:content:retrocomputing:riparazioni:c64_8_sid_output.jpg|}}
Mi accorgo che il condensatore **C13 è stato saldato in malo modo**, non da fabbrica:
{{:content:retrocomputing:riparazioni:c64_8_c13_-_dimensioni_grandi.jpeg|}}
Lo dissaldo e lo testo: sembra ok. Lo **sostituisco** con uno di uguale capacità. Faccio ripartire il computer è l'**audio adesso funziona** :!:
=== Sprite ===
Già avviando la Kung Fu Flash mi accorgo che alcune parole sono tremolanti; avviando alcuni giochi mi accorgo che gli **sprite** vengono visualizzati male:
{{:content:retrocomputing:riparazioni:c64_8_vicii.jpeg|}}
* **pulisco i pin del VICII con carta abrasiva**, ma non ottengo miglioramenti
* **cambio il VIC-II** con altro funzionante e questo non esibisce problemi; potrebbe essere proprio il chip la causa
Alla fine decido di tenere il computer così, senza sostituire il chip, che esibisce un funzionamento marginale.
=== SpeedDos ===
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ì.
**Risaldato alcune saldature fredde** fatte dal precedente tecnico su condensatori C24 e C13; è rimasto qualche lieve disturbo audio e una visualizzazione errata degli sprite in alcuni giochi, a causa questo del chip VIC-II. Rimarrebbe da verificare anche il resto delle saldature fatte dal tecnico precedente su tutti i condensatori elettrolitici
===== C64 #9 =====
==== Intro ====
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).
==== Sintomo ====
**Sintomo: schermo nero con aggancio segnale video iniziale; errore su seriale e DEVICE NOT PRESENT su floppy drive funzionante**
==== Analisi ====
=== Ispezione visiva e pulizia ===
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.
=== Misurazione tensioni ===
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.
=== Termocamera ===
Dalla **termocamera** si evincono valori leggermente alti, ma nella norma; c'è il **ponte a diodi** che segna 55 gradi C.
=== Oscilloscopio ===
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.
=== Dead Test cartridge ===
Inserisco la **Dead Test** e ottengo **6 flash**, che si ripetono anche dopo varie accensioni e spegnimento. Di seguito il **[[https://c64.rulez.org/capac/portal/wp-content/uploads/hardver/dead_test/781220_Manual.pdf|manuale]]** della Dead Test 781220.
Qui un estratto della pagina relativa ai flash:
{{:content:retrocomputing:riparazioni:c64-dead-test01.png?600|}}
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:
* i //flash code// sono indicativi di una **//Data Line//** tenuta su o giù, che può essere causato solitamente da:
* un **chip RAM**, più di frequente
* oppure da qualsiasi integrato (ROM, CPU, ...) che si affaccia sul bus dati e setta quella linea in maniera errata
* provare a cambiare la RAM indicata dai flash
* se il risultato del Dead Test è lo stesso, provare a **dissaldare i pin della //Data Line// indicata un integrato alla volta**; se il risultato è lo stesso, risaldare il pin //Data Line// e continuare col successivo
==== Riparazione ====
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:
* 8 flash (a freddo :?:)
* alla successiva accensione, appare la **schermata della Dead Test**, indicando **//Color RAM BAD//** e fermandosi lì
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:
{{:content:retrocomputing:c64_9_u6_-_dimensioni_grandi.jpeg?800|}}
**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** :!::
{{:content:retrocomputing:c64_9_color_ram_bad_-_dimensioni_grandi.jpeg?800|}}
Ma **testata sul muletto, la Color RAM funziona correttamente** :!:
Devo capire perchè dà errore di RAM su U9 e U10 e anche sulla Color.
=== Custom Char ROM ===
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:
{{:content:retrocomputing:riparazioni:c64_9_char_-_dimensioni_grandi.jpeg?600|}}
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.
=== Jupiter Lander ===
Il test con la **cartuccia Jupiter Lander** ha dato come esito, nell'ordine;
* uno pseudo garbage screen, con alcune parole intelleggibili in basso ('fuel', 'score')
* l'avvio del gioco con colori normali; forse le piattaforme di atterraggio sono errate, visto che sono blu e rosse :?:
* avvio del gioco in bianco e nero
=== SID ===
Provo a **rimuovere il SID**, comunque non funzionante e a testare il sistema così: il risultato in Jupiter Lander è lo stesso di sopra
=== Kernal e Basic ROM ===
Rimuovo prima **Kernal** e poi **Basic ROM**:
* Kernal ROM: il risultato in Jupiter Lander è lo stesso di sopra
* Basic ROM: Jupiter Lander sembra avviarsi correttamente sempre, però un paio di volte ha dato colore in B/N
=== Test chip su muletto ===
Testato i chip sul muletto:
* la Basic ROM funziona
* la **Kernal ROM invece no** :!:
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:
{{:content:retrocomputing:riparazioni:c64_9_kernal_-_dimensioni_grandi.jpeg?600|}}
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 FIXME
=== Diag Test ===
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:
{{:content:retrocomputing:riparazioni:c64_9_diag01.jpeg?600|}}
Dopo poco ottengo anche quest'altra segnalazione sulle RAM, che permane anche dopo aver rimosso nuovamente tutte le ROM:
{{:content:retrocomputing:riparazioni:c64_9_diag02_-_dimensioni_grandi.jpeg?600|}}
=== Kung Fu Flash ===
I giochi da **Kung Fu Flash** si caricano con difficoltà, in altri casi si bloccano e presentano questi sprite:
{{:content:retrocomputing:riparazioni:c64_9_intkarate_-_dimensioni_grandi.jpeg?600|}}
Oppure il **menu** della KFF appare errato o all'avvio si bloccano:
{{:content:retrocomputing:riparazioni:c64_9_commando.jpeg?600|}}
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** :!:
=== PLA ===
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**.
=== Datassette ===
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**.
=== Disk Drive ===
Cercando di leggere un **floppy**, compare il messaggio **//"?DEVICE NOT PRESENT"//**:
{{:content:retrocomputing:riparazioni:c64_9_disk_error.jpeg?600|}}
Anche da verifiche con la Diag Test compare:
{{:content:retrocomputing:riparazioni:c64_9_diag04.jpeg?600|}}
* **dissaldato la CIA2 e sostituita, ma compare lo stesso errore**
* ad ogni modo, **la CIA2, testata sul muletto, si è rivelata difettosa** :!:
* dissaldato la **CIA1**, provata sul muletto, ma si è rivelata **funzionante**
* verificato le **porte logiche di U8 (7406)**, collegate al drive:
{{:content:retrocomputing:riparazioni:c64_9_drive2.png?600|}}
{{:content:retrocomputing:riparazioni:c64_9_drive.png?600|}}
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 **[[https://www.breadbox64.com/c64-repair-logs/commodore64/assy-250425-rev-a-3/|pagina web]]** con un'indicazione interessante relativa ai **diodi** di protezione un'altra con **[[https://ist.uwaterloo.ca/~schepers/MJK/dnp.html|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:
{{:content:retrocomputing:riparazioni:c64_9_scheda_rotta_-_dimensioni_grandi.jpeg?600|}}
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 **[[https://retrobox.it/files/pcb/C64_250407.html|PCB Explorer]]**:
{{:content:retrocomputing:riparazioni:c64_9_pcb_exp.png|}}
Procedo quindi a ponticellarla:
{{:content:retrocomputing:riparazioni:c64_9_colla.jpg?600|}}
Questo singolo intervento ha **risolto i problemi della seriale; adesso il floppy drive funziona e la Diag non segnala problemi sulle CIA, nè sulla User o Serial port**
=== Schermata in B/N ===
Ho notato che un'accensione su dieci presentava il **video in bianco e nero**:
{{:content:retrocomputing:riparazioni:c64_9_bn.jpg?600|}}
Per risolvere il problema, è stato sufficiente **agire su questo trimmer**, girandolo di pochissimo verso destra:
{{:content:retrocomputing:riparazioni:c64_9_trimmer.jpeg?600|}}
**Soluzione**: alla fine i **componenti guasti erano: una RAM (U22), la Char ROM custom, la Kernal ROM, il SID, la PLA, la CIA2 e il 7406; si è reso poi necessario ricostruire una pista legata alla seriale**
{{:content:retrocomputing:riparazioni:c64_9_morti02.jpeg?600|}}
===== C64 #10 =====
==== Intro ====
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:
{{:content:retrocomputing:riparazioni:c64_10_scheda_top.png?600|}}
{{:content:retrocomputing:riparazioni:c64_10_scheda_top02.jpeg?600|}}
{{:content:retrocomputing:riparazioni:c64_10_scheda_bottom.png?600|}}
==== Sintomo ====
**Sintomo: schermo nero con aggancio segnale video iniziale**
==== Analisi ====
=== Ispezione visiva e pulizia ===
L'ispezione visiva è stata svolta nella intro; mi limito a spolverare la scheda con un pennello a setole morbide.
=== Misurazione tensioni ===
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.
=== Termocamera ===
Dalla **termocamera** si evincono valori normali:
{{:content:retrocomputing:riparazioni:flir_20240912_082821_585.jpeg?600|}}
{{:content:retrocomputing:riparazioni:flir_20240912_082827_028.jpeg?600|}}
=== Oscilloscopio ===
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.
=== Dead Test cartridge ===
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**.
==== Riparazione ====
Seguo l'esito della Dead Test e **dissaldo la RAM U11**; testata sul muletto risulta effettivamente **difettosa**:
{{:content:retrocomputing:riparazioni:20240912_204551.jpeg?600|}}
La sostituisco e alla successiva accensione ottengo **7 flash**, che corrispondo alla **RAM U9**. Testata sul muletto, anche questa effettivamente **non va**:
{{:content:retrocomputing:riparazioni:20240912_210449.jpeg?600|}}
Sostituita e dopodichè **il computer si avvia** :!: Il Dead Test viene portato a termine senza problemi e anche il **SID funziona**.
=== Diag Test ===
Un test con la //Diag Test// dà **tutto ok**:
{{:content:retrocomputing:riparazioni:c64_10_diag_ok.jpg?600|}}
=== Kung Fu Flash ===
I giochi caricati dalla Kung Fu Flash danno risultato positivo.
**Soluzione**: dopo aver sostituito **due RAM** (marca MT) e la **ROM Kernal** il computer si è avviato correttamente
{{:content:retrocomputing:riparazioni:c64_10_chip_ko.jpg?600|}}
===== Amiga 600 =====
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.
==== Apertura case ====
Svitare le **viti** visibili sul retro (**non** ci sono viti sotto l'etichetta centrale col seriale):
{{:content:retrocomputing:riparazioni:amiga:amiga-case-back.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-case-back02.jpg|}}
Il **case superiore** si solleva facilitando l'allargamento degli scansi laterali con un cacciavite piatto, come indicato in **[[https://youtu.be/Lppysg-ljxE?si=u_PKIuwSuAr3_YUe|questo video]]** (al minuto 1:03). Invece **[[https://www.youtube.com/watch?v=NducB6zFgjk|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:
{{:content:retrocomputing:riparazioni:amiga:amiga-tast-connett01.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-tast-connett02.jpg|}}
Rimuovere il **floppy** svitando una sola **vite** sulla mainboard e tirando il connettore dati e quello alimentazione:
{{:content:retrocomputing:riparazioni:amiga:amiga-floppy-vite.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-floppy-cavo-alim.jpg|}}
Sollevare e rimuovere il **cestello metallico** centrale:
{{:content:retrocomputing:riparazioni:amiga:amiga-gabbietta01.jpg|}}
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.
==== Rimozione shield ====
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.
==== Rimozione condensatori ====
Questa la situazione della scheda a questo punto:
{{:content:retrocomputing:riparazioni:amiga:amiga-spoglia.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-board-sx.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-board-dx.jpg|}}
Si notano alcuni **condensatori** che hanno avuto fuoriuscita dell'elettrolita:
{{:content:retrocomputing:riparazioni:amiga:amiga-cap-leak01.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-cap-leak02.jpg|}}
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 **[[https://youtu.be/o_V4D2PRka0?si=WGdELP95q7_mfW6e|video di EMD69]]**.
Rimuovere anche i **condensatori elettrolitici THT** con la stazione dissaldante.
Togliendo i condensatori si nota l'**elettrolita** fuoriuscito in vari punti:
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak01.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak02.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak03.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak04.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak05.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak06.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak07.jpg|}}
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-leak08.jpg|}}
Di seguito condensatori vecchi rimossi:
{{:content:retrocomputing:riparazioni:amiga:amiga-cap-old.jpg|}}
==== Lavaggio PCB ====
Per il **lavaggio PCB** seguire **[[https://youtu.be/S6hg4fsdQIc?si=cnsAMqTtmSOqIsHB|questo video di EMD69]]**, che riassumo qui:
- rimuovere come spiegato sopra tutti i condensatori SMD e THT
- estrarre l'unico chip zoccolato FIXME
- spazzolare la scheda intingendo uno **spazzolino** da denti nell'**acqua ragia**
- risciacquare con **acqua calda**, aiutandosi con lo spazzolino
- spazzolare la scheda con **sapone liquido**
- risciacquare con **acqua calda**, aiutandosi con lo spazzolino
- ripetere l'operazione per la parte **sopra e sotto** della scheda
- **asciugare accuratamente** per vari minuti con **compressore ad aria**
Qui di seguito si vede la **differenza dopo il lavaggio**, nella stessa zona dell'ultima immagine sopra:
{{:content:retrocomputing:riparazioni:amiga:amiga-pad-ok08.jpg|}}
==== Mappa condensatori ====
**[[https://www.ikod.se/a600-v1-5-cap-map/|Qui]]** c'è una **mappa del posizionamento dei condensatori**. E un'altra mappa è presente **[[https://www.tsb.space/wp-content/uploads/2018/07/capacitor-map-A600-Rev1.pdf|qui]]**.
==== Saldatura condensatori SMD ====
**[[https://youtu.be/o_V4D2PRka0?t=2315|Questo video di EMD69]]** dà indicazioni su **come saldare i condensatori SMD**.
* **prestagnare** i pad
* fare attenzione alla **polarità** dei condensatori
* la striscia nera indica il negativo
* il lato positivo è smussato, quello negativo ha angoli a 90°
* verificare il '+' presente sul PCB
* usare
* aria calda
* oppure saldatore normale, fino a che il componente non 'affonda'
=== Metodo alternativo ===
In **[[https://youtu.be/valF3HSD1oY?t=954|quest'altro video]]** viene mostrato un **metodo alternativo**, dove vengono saldate solo le estremità.
==== AmigaOS (Kickstart + Workbench) ====
**AmigaOS** è composto di due parti:
- il **Kickstart** su ROM; una volta avviato presenta una videata con un floppy
- un **Workbench** su floppy, che deve parte dopo il Kickstart
- in alternativa al Workbench, è possibile far partire dei giochi su floppy/Gotek
Lo zoccolo del chip Kickstart è più **largo** del chip stesso; perchè sia inserito in modo corretto, il chip deve essere **allineato sulla destra**
==== Test ====
L'avvio di un gioco tramite Gotek avviene correttamente; video e audio funzionano perfettamente:
{{:content:retrocomputing:riparazioni:amiga:amiga-gioco-ok.jpg?600|}}
===== Pong console =====
Ho recuperato una vecchia **Pong console clone** degli anni '70, che veniva descritta come //"funziona perfettamente"//; la realtà è un po' diversa...
{{:content:retrocomputing:riparazioni:pong:pong01.jpeg|}}
Questo tipo di console usano un chip all-in-one **[[https://it.wikipedia.org/wiki/AY-3-8500|AY-3-8500]]** della General Instrument:
{{:content:retrocomputing:riparazioni:pong:pong_chip_-_dimensioni_grandi.jpeg?800|}}
==== Sintomo ====
**Sintomo: audio funzionante, ma schermo via modulatore RF assente**
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.
==== Riparazione ====
Aprendo la console vengono esposti la **scheda principale e il modulatore RF**:
{{:content:retrocomputing:riparazioni:pong:pong_scheda_e_modulatore_rf_-_dimensioni_grandi.jpeg?800|}}
La cosa da notare è che ci sono dei **segnali in ingresso al modulatore RF**, provenienti dalla scheda, che sono i seguenti:
{{:content:retrocomputing:riparazioni:pong:pong_segnali01_-_dimensioni_grandi.jpeg|}}
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:
{{:content:retrocomputing:riparazioni:pong:pong_oscillo_composito_-_dimensioni_grandi.jpeg|}}
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**:
{{:content:retrocomputing:riparazioni:pong:pong_rf_corto_-_dimensioni_grandi.jpeg?600|}}
Mi decido quindi a **rimuovere** del tutto il **modulatore RF**, a prelevare il segnale composito e gnd e terminarli su di un **connettore RCA**:
{{:content:retrocomputing:riparazioni:pong:pong_rimosso_rf01_-_dimensioni_grandi.jpeg|}}
=== Mod composito ===
Ottengo un output corretto a video! :!: Il **problema è che è abbastanza scuro**:
{{:content:retrocomputing:riparazioni:pong:pong_video_scuro01_-_dimensioni_grandi.jpeg|}}
{{:content:retrocomputing:riparazioni:pong:pong_video_scuro02_-_dimensioni_grandi.jpeg|}}
=== Amplificazione segnale composito ===
E' quindi necessario **amplificare il segnale composito**; per farlo si può usare un **transitor 2N3904**; ho usato questo schema:
{{:content:retrocomputing:riparazioni:pong:img_20241013_125344_454.jpg|}}
Predispongo il circuito su di una breadboard:
{{:content:retrocomputing:riparazioni:pong:pong_mod_composito01_-_dimensioni_grandi.jpeg|}}
L'amplificazione del segnale composito tramite transistor ha risolto il problema della scurezza del video:
{{:content:retrocomputing:riparazioni:pong:pong_videook02_-_dimensioni_grandi.jpeg|}}
{{:content:retrocomputing:riparazioni:pong:pong_video_brillante01_-_dimensioni_grandi.jpeg|}}
=== Millefori ===
L'ultimo passo è quello di ricreare il circuito in maniera definitiva su di una piccola **millefori**:
{{:content:retrocomputing:riparazioni:pong:pong_millefori.jpeg?600|}}
Operazione correttamente riuscita!
**Soluzione: dopo aver rimosso il modulatore RF, ho amplificato il segnale composito tramite un transitor e il video sul monitor appare brillante**
===== C64 #11 =====
==== Intro ====
Questa volta sotto i ferri finisce una scheda 250425 di un C64. La particolarità è la schermatura/aletta di raffreddamento del VIC II:
{{:content:retrocomputing:riparazioni:c64_10_shield.jpg|}}
==== Sintomo ====
**Sintomo: si avvia con un paio di caratteri strani a video, oppure 'Ready'**
{{:content:retrocomputing:riparazioni:c64_11_tv01.jpeg?600|}}
{{:content:retrocomputing:riparazioni:c64_11_tv02.jpeg?600|}}
==== Analisi ====
=== Ispezione visiva ===
Non noto manomissioni alla scheda.
=== Misurazione tensioni ===
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.
=== Termocamera ===
Dalla **termocamera** si evincono valori normali:
{{:content:retrocomputing:riparazioni:c64_11_flir.jpeg?600|}}
=== Oscilloscopio ===
Testato con **oscilloscopio la CPU**:
* clock in e out ok
* reset ok
* bus indirizzi A0-A11 ok
* A12-A15 KO :!: (5V); controllando meglio questi pin hanno un comportamento strano; appena accesi sono ok, poi dopo 2 secondi si settano a 5V, con segnale sporco
* bus dati D0-D7 ok
==== Riparazione ====
Verifico che le **linee A12-A15 finiscono nel PLA** :!:
{{:content:retrocomputing:riparazioni:c64_11_pla_a12-a15.png|}}
Dissaldo quindi il PLA; ma **testata** su
* programmatore:
{{:content:retrocomputing:riparazioni:c64_11_pla_test_ok.png|}}
* e su muletto dà OK. Quindi il PLA sembra a posto.
=== Dead Test cartridge ===
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:
{{:content:retrocomputing:riparazioni:c64_11_ram_mt.jpg|}}
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.
=== Diag cartridge ===
Anche l'errore sulla //Control Port// è dovuto al SID difettoso:
{{:content:retrocomputing:riparazioni:c64_11_diag.jpeg|}}
=== Kung Fu Flash ===
I giochi caricati dalla Kung Fu Flash danno FIXME.
**Soluzione**: dopo aver sostituito **due RAM** (marca MT) il computer si è avviato correttamente. Il SID non funziona.
{{:content:retrocomputing:riparazioni:c64_11_morti.jpeg?600|}}
===== VIC20 #5 =====
==== Intro ====
Un VIC 20 un po' sporco mi capita tra le mani.
==== Sintomo ====
**Sintomo: all'avvio presenta bordo azzurro e sfondo bianco ma niente caratteri. Inoltre all'inizio si notano delle strisce orizzontali che scompaiono verso l'alto.**
{{:content:retrocomputing:riparazioni:vic20_5_schermo_bianco_-_dimensioni_grandi.jpeg?600|}}
==== Analisi ====
=== Ispezione visiva ===
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:
* la CPU funziona
* il VIC idem
* le tensioni a maggior ragione sono ok
Quindi passo direttamente alla riparazione.
==== 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 **[[#tl866ii-plus|qui]]** e il computer è partito correttamente:
{{:content:retrocomputing:riparazioni:vic20_5_schermo_ok_-_dimensioni_grandi.jpeg?600|}}
=== Diag test ===
Un test con una cartridge di Diag conferma il funzionamento dei componenti fondamentali del VIC 20:
{{:content:retrocomputing:riparazioni:vic20_5_diag_-_dimensioni_grandi.jpeg?600|}}
**Soluzione:** sostituito **ROM Basic** con EEPROM appositamente programmata
===== VIC20 #6 =====
==== Intro ====
Questo VIC 20 mi arriva di un colore molto giallo e con un buco con quello che sembra un adattatore per antenna RF.
==== Sintomo ====
**Sintomo: all'avvio presenta schermo nero, con modulazione video.**
==== Analisi ====
=== Ispezione visiva ===
Il modulatore RF è stato inserito direttamente nel case:
{{:content:retrocomputing:riparazioni:vic20_6_mod_-_dimensioni_grandi.jpeg?600|}}
Inoltre mancano molte viti che fissano la scheda al case inferiore.
=== Tensioni ===
Misuro le seguenti tensioni sulla User Port:
* 4,96 V DC
* 10,41 V AC
La prima mi sembra giusto un filo bassina.
=== Oscilloscopio ===
Misurando la **CPU** all'oscilloscopio noto segnali che sembrano tutti a posto; questo mi spinge a dire che la CPU funziona correttamente.
=== Termocamera ===
Un test con termocamera non evidenzia componenti particolarmente caldi:
{{:content:retrocomputing:riparazioni:vic20_6_flir_-_dimensioni_grandi.jpeg?600|}}
==== Riparazione ====
=== Kernal ROM ===
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.
=== Porte ===
Ulteriori test hanno evidenziato però alcune problematiche:
* il **datassette**, a parte all'inizio, sembra non rispondere ai comandi di Play o Ffwd/Rwd, anche dopo una pulizia dei contatti del pettine
* una **cartuccia** di //Raid on fort Knox// non si avvia; testato lo stesso gioco sul VIC20#5 e qui parte senza problemi
* il **joystick** non va
* collegando un **drive 1541**, al boot del computer dà schermo nero o bordo e sfondo corretti ma pieno di caratteri colorati senza senso:
{{:content:retrocomputing:riparazioni:vic20_6_uab3_02.jpg?600|}}
L'insieme dei sintomi farebbe propendere per un **problema al VIA (2) 6522 UAB3**. Analizzando le varie **porte con un oscilloscopio** e comparando i segnali con una VIA di un altro VIC 20 funzionante non noto però significative differenze
Infatti, tutte queste periferiche vengono gestite tramite ingressi/uscite sulla VIA (2):
{{:content:retrocomputing:riparazioni:vic20_6_uab301.png?600|}}
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.
**Soluzione:** sostituito **ROM Kernal** con EEPROM appositamente programmata e **VIA (2) 6522 UAB3**
===== Riferimenti =====
Di seguito alcuni riferimenti utili per riparazioni dei retrocomputing Commodore.
* **[[https://www.pictorial64.com/|Pictorial Guide C64]]**: a fronte di una serie di sintomi a video, viene indicato uno o più chip che possono generare il problema relativo
* **[[https://portcommodore.com/rcarlsen/cbm/|Ray Carlsen]]**: schemi e diagnosi da parte di un guru Commodore
* **[[https://retro64.altervista.org/blog/commodore-64-repair-a-quick-guide-on-the-steps-required-to-fix-it/|Retro 64]]**: alcuni casi di riparazioni C64, con descrizione dei fault più comuni
* **[[http://tech.guitarsite.de/c64_scope.html|Sven's TechSite]]**: immagini di misurazioni con l'oscilloscopio di quasi tutti i chip del C64
* **[[https://retrobox.it/pcb-explorer/|Retrobox PCB explorer]]**: PCB explorer di vari computer Commodore, anche a 8 bit (non C64 250425)
* **[[https://www.youtube.com/@EMD69|Canale YouTube di EMD69]]**: molti video che spiegano come riparare varie macchine Commodore