Avainsana-arkisto: Commodore

C64 diagnostiikan antama virheellinen PLA testitulos asetusvirheen seurauksena

Ostin diagnostiikkalaitteiston lapsuudenajan C64:n korjaamista varten. Se osoittautui todella päteväksi välineeksi erinäisten vikojen paikantamiseen. Mutta, yhtä vikaa en millään meinannut saada korjattua. Testi herjasi PLA vikaa, vaikka tein testejä kahdella eri koneella, ja kahdellakin uudella PLA:lla. Yksi alkuperäinen PLA oli oikeastikin rikki, mutta molemmat uudet ja yksi vanha olivat ehjiä.

Ylimääräisen PLA:n hankin virheellisen testituloksen seurauksena. Kuvittelin ensimmäisen olevan jollain tapaa rikki / potevan yhteensopivuusongelmia – koska tällaisia tapauksiakin on raportoitu. Syynä virheelliseen testitulokseen oli yksittäisen dippikytkimen asento.

Testilaitteisto

Testilaitteisto koostuu kuudesta osasta: jumpperipalikan moduulista (vasen ylä), softa ROM-moduulista, näppäimistö donglesta, kasettiportti moduulista, peliporttimoduulista ja sarjaporttidonglesta (oikea ala).

Syyllinen

Testilaitteessa, eikä testattavissa PLA-piireissä ollut vikaa, vaan syy oli käyttäjässä. Merkittävässä roolissa olivat ohjeet, jotka kitin mukana seurasivat. Ohjeiden tiedot olivat täysin oikein, mutta ne olisivat voineet olla selkeämmät. Ongelman ydin / ohjeiden epäjohdonmukaisuus johtuu siitä, että ohjeita ei ole tehty mukana tulevalle ROM-softamoduulille, vaikka samat asettelut siitä löytyykin (ja jotka saa aseteltua oikein ohjeiden mukaan).

Ohjeissa on järkeä, kun sitä vertaa sitä varten suunniteltuun ROM-moduuliin. Tässä vaihtoehtoina ovat selkeästi joko HI tai LO kullekin valinnalle, sekä GAME ja EXROM voivat olla joko auki tai kiinni (open/close). Myös järjestys on yhtenevä ohjeen kanssa.

Toisin oli mukana tulleen Versa64Cart:in kanssa. Tässä GAME, EXROM, A15, A14 ja A13 tila valitaan yksittäisten dippikytkimien avulla, jonka lisäksi järjestys on erilainen. HIGH/LOW asennosta kerrotaan SW1-dippikytkinpaketin vasemmalla reunalla. Kaikki tieto oikein tekemiseen on tarjolla, mutta palasia täytyy hieman osata yhdistellä.

Vaikka tekniikan kanssa olisi kuinka paljon paininut, niin uudet asiat ovat aina uusia. Tuskailin ohjeiden kanssa alusta lähtien, en käsittänyt miksi järjestys ei voi olla looginen ja miksi ohjeet eivät voi kertoa kytkinten asentoa – kuten normaalisti esim. automaatio maailmassa. Kun sain testiohjelman käyntiin muutaman yrityksen jälkeen, olin tyytyväinen. Paitsi, että epähuomiossa tuo GAME-dippi oli jäänyt väärään asentoon – tämän virheasennon raapustin myös ohjelappuseen. Tämä ei estänyt softan käynnistymistä, koska valinta ei vaikuta käynnistettävän ohjelman valintaan (ohjelma valitaan A15-13 dipeillä).

Ohjeet

Alla alkuperäinen ohje näyttää tältä:

Alla päivitetty versio taulukosta. Vaikka taulukon esityssuunta onkin vaihtunut ristiin, tämä ei ole ensisijainen parannus oikeiden asetusten tekemiseksi. Yksi suurimmista ongelmista oli dippikytkimien epälooginen järjestys, joka tähän versioon on muutettu. Tässä järjestys vastaa VersaCartin dippikytkimiä ja jumppereita, sulkuihin on merkitty kunkin dippikytkimen numero. Nämäkään päivitykset eivät poista kaikkea epäselvyyttä.

GAME (1)EXROM (2)A15 (3)A14 (4)A13 (5)ROM
HILOLOLOLOLOC64 Diaggnostics 586220++
LOHILOLOHIHIDeadTest
HILOHILOLOLOC64 doctor
HILOHIHIHILO1541 Diag
HILOHIHILOLOBlackBox V3
HILOHILOHILOSYS700 Assembler & SYS32777 Monitor
HIHILOHILOLOC128 Diag 588121
HIHILOHIHILOC128 Diag2 789010

Sekavaa

Eniten hämmennystä aiheutti HI / LO ja Open / Closed -esitystapa. Levyn pintaa dippikytkimien viereen on painettuna HI / LO, joka tarkoittaa signaalin tilaa / tasoa, eli Hi = jännite löytyy ja LO = jännite puuttuu / maadoitettu. Tämä saavutetaan kytkimillä käänteisesti, eli kun kytkin on yläasennossa (ON), niin signaali on LO. Kun kytkin on ala-asennossa (OFF), signaali on HI. Jos tässä kohdin erehtyy miettimään HI/LO tarkoittavan kytkimen fyysistä ylhäällä/alahaalla oloa, niin metsään menee. Kunhan mieltää, että kytkimen asento ON = LO ja OFF = ja HI, niin homma toimii. Mutta on tämä silti sekavaa.

Eikä epäjohdonmukaisuudet lopu tähän. ROM:in tapauksessa esitetään jumpperipalikan fyysistä sijaintia, eli onko se HI / LO-kohdassa. Tämä menee siis juuri niin kuin levylle on painettu.

Oman mausteensa soppaan lisää GAME ja EXROM dippien esitystapa, joka onkin yhtäkkiä Open / Closed, vaikka nämä sijaitsevat dippikytkimen paikoissa 1 ja 2, jolloin ON / OFF esitystapa olisi se kaikkein järkevin. Tässä vaihteeksi esitettiinkin signaalin tasoa tekstillä, Open = HI (OFF) ja Closed = LO (ON). Loogista. Toki tämä kaikki on loogista, kun ROM-moduulina on oikea ’alkuperäinen’ moduuli, mutta se on kaikkea muuta VersaCartin kanssa.

Virhe

Vaikka asian laita selvisikin, on tämä käänteislogiikka jotenkin todella hankala mieltää. Aina sai olla pyörittelemässä, miten päin niiden kytkimien pitikään olla. Tämän takia piirsinkin ohjelappuun dippien asennot siinä järjestyksessä kuin ne levyllä ovat. Jonkun syyn takia GAME dippi oli jäänyt väärään asentoon. Ongelmallisinta tässä on, että kaikki ’toimii’ kuten pitää, oli GAME kummassa asennossa tahansa. Ainoa sivuvaikutus on, että PLA testi joko toimii tai ei toimi.

Miksi testi toimii, mutta tulos on väärin? A13…15, sekä ROM valitsevat käytetyn softan muistipaikan, kun taas GAME ja EXROM ovat fyysisten signaalien reitittämistä. Jos GAME on väärässä asennossa, niin PLA:ta ei ilmeisesti koskaan valita (chip select) testattavaksi, vaan testi tehdäänkin virheellisesti BasicROM:iin. Ei ihme, että tuloksena on vika.

Lisää paranneltu ohje

Lopuksi vielä viimeisin versio taulukosta, joka mielestäni on se kaikkein selkein esitystapa Versa64Cart:ia käytettäessä. Tämä kertoo kunkin kytkinten fyysisen asennon. Ja selvyyden vuoksi: ON = kytkin yläasennossa, OFF = kytkin ala-asennossa. ROM valinnan H/L tarkoittaa kummassa paikassa jumpperi sijaitsee (ROMH / ROML).

GAME (1)EXROM (2)A15 (3)A14 (4)A13 (5)ROM
OFFONONONONLC64 Diaggnostics 586220++
ONOFFONONOFFHDeadTest
OFFONOFFONONLC64 doctor
OFFONOFFOFFOFFL1541 Diag
OFFONOFFOFFONLBlackBox V3
OFFONOFFONOFFLSYS700 Assembler & SYS32777 Monitor
OFFOFFONOFFONLC128 Diag 588121
OFFOFFONOFFOFFLC128 Diag2 789010

Commodore 64:n korjaaminen ja modaaminen

Pitkään harmittelin, kun Amiga 500:n tieltä tuli myytyä C64. Samoin tuli tehtyä A500:lle PC:n myötä. Ostin serkulta samaisen C64:n takaisin vuonna 2019. Samalla ostin hänen vanhan C64:n sekä A500:n. Luokkakaveri sitä vastoin oli myynyt A500:n eteenpäin, joten se ei tule pääsemään takaisin kotiin.

Keskityn tässä kirjoituksessa lapsena käyttämäni C64:n remontointiin ja modaukseen, vaikka käsissäni onkin kolme enemmän ja vähemmän viallista yksilöä. A500:sta kirjoittanen joskus tulevaisuudessa, kunhan sen kaikki salat on aikanaan saatu selvitettyä.

Vanha kone

Kyseisellä yksilöllä on ikää 40 vuotta (valmistettu 1984), joten ei ihme, että se ei enää toimi. Mikäli C64 itsessään vielä toimisikin, viallinen teholähde tulee tekemään siitä lopun. Siksi vanhaa teholähdettä ei tule käyttää ennen, kun jännitteiden oikeellisuus on varmistettu. Eikä sitä silloinkaan kannata käyttää ilman osien uusimista ja ylijännite estopiirin lisäämistä, sillä hajotessaan teholähde antaa ylijännitteen, ja kohta käsillä vasta iso remontti onkin.

Pitkään kestänyt korjausurakka

Vianetsintää varten hankin C64 diagnostiikka laitteiston, koska aloittelevana C64 korjaajana täysin mykän laitteen kuntoon saaminen on ihan eriluokan työ kuin pääasiassa teholähteisiin liittyvien vikojen korjaaminen.

C64 Full test diag harness v1.3

Edes diagnostiikan dead test ei toiminut aluksi. Totaali toimimattomuuden syynä oli Kernal ROM:in (käyttöjärjestelmän) vika, jonka sain paikannettua sormituntumalla, eli piiri oli poikkeuksellisen kuuma. Kernalin poistamisen jälkeen diagnostiikka lähti toimimaan. Diagnostiikka toimii hyvin vähäisellä piirimäärällä, esimerkiksi CIA-piirit ja SID:in voi huoletta poistaa. Turhat piirit kannattaakin poistaa, mikäli näyttö pysyy pimeänä.

Diagnostiikka kertoo osat, joissa todennäköisesti on vikaa. Tässä vikaa on oikeanpuoleisessa CIA-piirissä, joka vaikuttaa peliohjain porttien toimintaan.

Toisessa koneessa VIC-II (näytönohjain) toimi osin, kuvan ollessa mustavalkoinen ja todella kohinainen. Mikäli VIC-II piiri on täysin rikki, ei muiden piirien poistaminen auta. Tällöin on turvauduttava piirien ristiin kokeiluun. Tällöin on varmistuttava, että piirit käyttävät samaa referenssijännitettä (löytyy 12V ja 5V mallit).

Monta rikkinäistä osaa

Mitä kaikkea vanhassa koneessa oli lopulta rikki?

  • Kernal ROM-piiri (käyttöjärjestelmä)
  • toinen CIA -piireistä (Complex Interface Adapter, eli I/O-portti ohjain)
  • PLA-piiri (Programmable Logic Array, eli osoitekooderi piirien valintaan)
  • (toisessa koneessa rikki olivat PLA, VIC-II (näytönohjain) ja Basic ROM (sisältää basic komennot))

Remontti itsessään ei varsinaisesti kestänyt kovin pitkään, vaikka kaikkinensa aikaa ehtikin vierähtää viitisen vuotta. Suurin murheenkryyni oli PLA, joka uusista piiristä huolimatta näytti testeissä vikaa, vaikka muutoin kone tuntui toimivan ongelmitta. Ongelman syy löytyi lopulta testilaitteistosta itsestään, josta tein erillisen bloggauksen.

Varaosien hankkiminen

Vanhaan koneeseen varaosien löytäminen voi olla hankalaa, sillä monen komponentin (perus porttipiirejä, vastuksia, diodeita, kondensaattoreita lukuun ottamatta) valmistus on lopetettu aikapäiviä sitten. Käytännössä vaihtoehtona on ostaa toimivaksi testattuja alkuperäisiä osia kovaan hintaan, joiden jäljellä olevasta eliniästä ei ole mitään takeita.

Mikäli koneen alkuperäisenä pitäminen ei ole tärkeää, tai koneen modaaminen/parantelu kiinnostaa, löytyy nykyaikaisia vaihtoehtoja. Hinnaltaan nämä ovat samaa luokkaa kuin alkuperäiset vanhat osat, joitain poikkeuksia lukuun ottamatta.

Esimerkiksi alkuperäiset CIA-piirit maksavat noin 40€/kpl, nykyaikainen FPGA:lla toteutettu J-CIA korvike maksaa niin ikään 40€.

Edulliset parannukset

Kondensaattori remontti on yksi helpoimmista ja edullisimmasta tehdä. Nämä kannattaa vaihtaa, sillä vaikka toimintahäiriöitä ei olisikaan, on 40v vanhan laitteen konkkien parasta ennen päiväys ollut 20-30 vuotta sitten.

Mikään komponentti ei ole ikuinen, joten risoja osia etsiessä ja vaihtaessa, kannattaa suosiolla asentaa IC kannat (DIP) osien vaihtamisen helpottamiseksi. Tämä on pieni kustannus, ja helpottaa todella paljon osien kokeilua. Asentelin kannat molemmille CIA piireille, Char ROM, Basic ROM ja Kernal ROM, sekä VIC-II, PLA ja SID -piireille. Koska muistipiireihin tai CPU:hun ei tarvinnut koskea vikoja etsiessä, ei näihin myöskään tullut kantoja asennettua. Piirejä ei kannata yrittää lähteä irrottamaan ilman kunnollista tinaimuria.

DIP-kannat piirien alle asennettuna

Komponenttien iän maksimoimiseksi on hyvä huolehtia niiden riittävästä jäähtymisestä. Ostin IC-piirien pinnalle liimattavat jäähdytysrivat. Liimasin ne lopulta vain CPU:n ja SID-piirin päälle, sillä muut piirit, joiden päälle jäähdyttimet olisivat tulleet, menivät vaihtoon viallisuutensa vuoksi. Osat päivittyivät samalla nykyaikaisiin korvikkeisiin, jotka eivät lisäjäähdytystä kaipaa.

CPU ja SID varustettuna jäähdytyslevyillä

Monet heittävät pahvisen häiriösuojan pois, sillä se estää ilmavirtaa ja täten osien jäähtymistä. Näin tein minäkin, molempien laitteiden kanssa.

Ilman pahvista häiriösuojaa

Nykyaikaisissa laitteissa on ESD suojat staattisen sähkön varalle, toisin on C64:n kanssa. Staattinen sähkö lienee yksi merkittävimmistä syistä CIA-piirien hajoamiseen. Suojien lisääminen on onneksi helppoa, eikä maksa kuin muutaman euron / ohjainportti.

ESD suojat peliporteissa

Viallisten osien korvaaminen

PLA lienee yksi yleisimmistä syistä C64:n toimimattomuuteen. PLA piirejä löytyy, jos jonkinlaista. Itselläni on rePLA/SuperPLA V4 sekä PLA20V8, molemmat ovat toimivia ja maksavat noin 20-30€/kpl.

PLA20V8

I/O-porttiohjain, eli CIA on myös varsin usein syyllinen peliporttien, näppäimistön, tai levyaseman toimimattomuuteen. J-CIA on suomalaisvalmisteinen, ja maksaa 40€/kpl. Voit korvata vain viallisen piirin, eli J-CIA toimii vanhan CIA:n rinnalla. Korvasin molemmat piirit kerralla, vaikka vain toinen piireistä oli viallinen.

J-CIA

Kernal ROM, eli käyttöjärjestelmä. Vaikka piiri ei olisi rikki, voi sen tilalle vaihtaa esim. JiffyDOS:in. Se on paranneltu / tuunattu versio alkuperäisestä käyttöjärjestelmästä, joka nopeuttaa levyoperaatioita eli lyhentää latausaikoja. Ostin alunperin JiffyDos:in ja adapterilevyn (yht. 15€), mutta vaihdoin sen myöhemmin NeatROM:iin CS-adaptereineen. Hintaa paketilla 16€ + JiffyDOS lisenssi, mikäli sitä ei ennestään omista. Tämä setti korvaa samalla BasicROM:in, sekä CharROM:in. NeatROM mahdollistaa kytkimettömän käyttöjärjestelmän vaihdon, mutta koska olin tehnyt JiffyDOS:ia varten reijän pienelle kytkimelle, liitin kytkimen osaksi NeatROM:ia.

NeatROM ja CS-adapterit

Parantelua

RF-modulaattori on aikansa elänyttä tekniikkaa, jota voi käyttää vielä sitä tukevan analogisen TV:n kanssa, kuvanlaatu on kuitenkin mitä on. RF-modulaattori itsessään tuottaa häiriöitä levylle, joka heikentää kuvanlaatua. Modulaattorin poistamalla, ja korvaamalla sen hieman nykyaikaisemmalla S-video lähdöllä, saa kuvanlaatua parannettua merkittävästi. Tämä on harrasteprojekti, joten piirilevy täytyy teetättää ja osat hankkia itse. Tilasin osat viiteen korttiin, hinnaksi tuli noin 25€/kortti kaikkine osineen. Toiseen koneeseen tämän päivityksen olen tehnyt, joten toistaiseksi näitä löytyy neljä ylimääristä. Mikäli satuit kiinnostumaan, niin voit olla yhteydessä minuun.

RF-modulaattori on korvattu S-Video lähdöllä

Ultimaattisin päivitys kaikista, ja myös kallein, on HDMI liitännän lisääminen. VIC-II Kawari Large on FPGA pohjainen VIC-II piirin korvike, jolla on hintaa noin 130€. Tämän lisäksi tarvitset micro HDMI – HDMI -adapterin. Käytin tässä SmallRIG:in adapterikaapelia, jolla hintaa 15€. Mikäli haluat päästä hieman halvemmalla, eikä sinulla ole tarvetta HDMI:lle, voit vaihtoehtoisesti hankkia VIC-II Kawari Minin, jolla on hintaa noin 100€.

FPGA lukee suoraan muistista kuvadatan ja puskee sen HDMI:n kautta ulos pikselitarkasti. Kuvan skaalausta se ei tee, vaan tämä tapahtuu näytön päässä. Mikäli näytössä ei ole mahdollista valita 4:3 kuvamoodia, venyy kuva sivusuunnassa ruudun kuvasuhdetta vastaavaksi (esim. 16:9). Tietokonenäytöstäni löytyy vain Full ja 1:1 moodit, joista jälkimmäinen säilyttää oikeain kuvasuhteen, mutta ei sisällä skaalausta, jolloin itse kuva on pieni postimerkki ruudun keskellä.

VIC-II Kawari Large
SmallRIG Micro HDMI – HDMI adapteri

Lopputulos

Vanhojen kuorien alla pyörii osin nykyaikaisia komponentteja käyttävä kone. Hintaa näille kotelon sisäisille korjauksille ja päivityksille tuli reilu 300€. Päälle tulee vielä uusi teholähde, sekä SD-kortillinen ’lerppu’ asema, jolloin puhutaan jo 400€:stä. Tästä puuttuu vielä itse koneen hankintahinta. Hankin lisäksi kaksi TAC-2-ohjainta, niin aletaan olla aika lähellä PlayStation 5:n hinnoissa.

Vanhan korjaamisessa käyttökuntoon näin kalliilla ei juurikaan ole järkeä, puhumattakaan ajasta, jota tähän kaikkeen säätämiseen tuli käytettyä. Harva tällaisesta paketista edes 300€:tä maksaisi, en ainakaan itse maksaisi, ellen tarkalleen tietäisi mitä mikin osa maksaa ja ellei minulla samalla olisi juuri tällaiselle koneelle tarvetta. Mutta kun osa kerrallaan rakentelee mielenkiinnosta tekniikkaa ja modaamista kohtaan, niin kustannukset kasvavat kuin salaa – tosin kustannukset eivät missään vaiheessa tulleet yllätyksenä, vaan hankin osia sitä mukaan, kun jotakin mielenkiintoista ja budjettiin sopivaa osaa löytyi.

Toisaalta korjasin ja modasin laitteen itselleni, en myyntiin. Täten kustannuksilla tai jälleenmyyntiarvolla ei ole merkitystä. Tämä oli ennemminkin oppimismatka ja kokemus, sekä lapsuusaikaa lämmöllä muistelleen.