====== 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