keskiviikko 9. joulukuuta 2015

IBM 1800 - Ensimmäiset savut


Voin vihdoin ilmoittaa kaikille blogin lukijoille, että Heili on on saanut sähköä sisuksiinsa ja on melkoisen hyvissä sielun ja ruumiin voimissa, ainakin olosuhteet huomioon ottaen. Tietenkään tämä ei tapahtunut ihan päivässä, vasemmalla kädellä huitaisten tai ilman ongelmia ja armotonta skopettamista.


Alkuun virtalähteet

1800:ssa on 18 virtalähdettä, joiden kaikkien tarpeellisuus ei ole selvinnyt blogin kirjoittajallekaan. Samaa jännitettä on useampaa ja koot ovat hurjia: isoimmat 6V/18A ja massaa yli kymmenen kilon. 

Muutama virtalähde koneen takaa.

Virtalähteissä on yksi erikoinen piirre, niiden pitää ola vähintään 25% kuormalla, jotta regulointi toimii oikein. Tämä ongelma on ratkaistu koneen sisällä nipulla tehovastuksia, jotka syövät neljänneksen virtalähteiden tehosta lämmöksi, riippumatta tekeekö tietokone yhtään mitään. 

Testasin ensin jokaisen virtalähteen yksitellen pöydällä suoraan sukotulpasta, apuna skooppi ja nippu autonpolttimoita keinotekoiseksi kuormaksi. 17 virtalähdettä selviytyi hyvin testistä, vain yksi kyykkäsi kuorman alla.

Nykyään konkat eivät kestä TV:ssä edes paria vuotta, näissä näköjään kestäneet sellaisen 40 vuotta.

En alkanut enempää arvailemaan mikä siinä voisi olla vikana, koska lineaariset virtalähteet zener-vertailulla eivät ole sitä minun vahvinta alaa, joten tilasin suoraan uuden MeanWellin hakkurin tilalle. Näitä vanhoja ehtii korjailla sitten myöhemmin.


Sitten käynnistyssekvenssi

Kasaamista ei yhtään helpottanut se fakta, ettei IBM ole merkinnyt mitään voimajohdotusta millään tavalla. Eikä sekään ainakaan haastetta vähentänyt, että osa niistä surkeista johtomerkeistä joita purettessa johtoihin teipattiin, oli irronnut ja kadonnut, mahdollisesti välille Lahti-Outokumpu. Mutta luovuttaminen ei ole ollut koskaan vaihtoehto, mittasin sinnikkäästi jokaisen johdon ja päättelin melko sekaisista kuvista mikä menee minnekin. 

Heili herää kahdessa vaiheessa, ensimmäinen käynnistää logiikkapuolen virtalähteet, seuraava muistin virtalähteet. Sammuttaessa sekvenssi menee toisinpäin, ettei muisti pääse korruptoitumaan. Mikäli jokin ei mene käynnistyskytkennän älyn mukaan oikein, esim. joku jännite puuttuu, se heittää koko keksinnön sähköt alas.

Osa käynnistyssekvenssikytkentää.

Käytännössä tämä "äly", hyvin vähäinen sellainen, on rakennettu perinteiseen amerikkalaiseen tyyliin, hirveällä määrällä vastuksia, releen kelojen yli vedettyjen kondensaattoreita, tyristoreita, ties mitä...

Alkuun ruuvasin jokaisen logiikkalohkon (tai "älyoven") matajännitesyötöt puupalikkaan kiinni siihen järjestykseen missä niiden oletin kuuluvan olla. Virrat päälle, putoaa alas. Muutama arvailu, vika löytyy hätäseis-kytkimestä. Hyppyjohto yli (älä tee tätä kotona ;) ja uudelleenyritys: sama lopputulos, mutta pysyy päällä noin sekunnin pidempään. Syy löytyy yli-innokkaasta alijännitesuojasta, joka paiskaa kaiken alas, koska olettaa verkon kadonneen.

Alijännitesuojan lähtöpiuhan maahan (koska se liipaisee +3V pulssilla tyristorin, joka puolestaan aloittaa sammutussekvenssin) ja taas uudelleenyritys: sähköt pysyvät päällä ja READY-valo syttyy. Taulussa paloi valoja muutenkin kuin joulukuusessa - siis kaikki mitkä olivat ehjiä - joka johtui itse tietokoneen logiikkasähköjen puuttumisesta.

Valoja tunnelin päässä.

Mittailin sitten matalajännitteet, jotka olivat kahta johtoa lukuun ottamatta oikein arvattu. Ikävä kyllä samassa tuli huomattua yhden 3V-virtalähteen antavan melkoista rippeliä, joten sekin korvautui uudella hakkurilla.

Viimeiset piuhat kiinni...


...ja lopuksi virtanappulasta

Tämä taitaa olla niitä harvoja tietokoneita, joissa voi kokea voiman tunnetta painaessaan virtanappulaa. 40A kontaktori vetää ensimmäisen vaiheen päälle, 1.5 sekuntia perään toinen samanlainen seuraavan vaiheen. Pauke, eksoottinen (omenaisen käämin) tuoksu, flektien ja vaihtovirran humina herättää pienessä ihmisessä kunnioitusta moista sähköaivohirviötä kohtaan.

Voimapuolen kamoja.

Pienen renkuttelun jälkeen huomasin että Heilillä on ainakin jotain järkeä olevan vielä jäljellä, I-rekisteriin pystyi siirtämään vipukytkimillä lukuja. Tosin START-nappula ei tehnyt mitään kovin älykästä ja T-kello oli jumissa T7:ssä. RUN-valo syttyi, mutta T-kello ei mennyt eteenpäin, oli kone sitten Run, Single Instruction, Single Storage Cycle tai Single Step -moodissa (kyllä, tällä koneella voi mennä kellojakso kerrallaan eteenpäin!).


Tahditussignaalit oskillaattorista T-kelloon.

T-kellolla on kahdeksan askelta (tarkalleen yhdeksän, siitä alla lisää), T0...T7, jotka synkkaavat tietokoneen loogiset osat. Ilman T-kello ei ole synkkaakaan, elämää, mitään. Kyseinen kello saa voimansa A- ja B-vaiheilta, jotka puolestaan syntyvät 4MHz oskillaattorista (asiasta enemmän kiinnostuneet voivat käydä katsomassa arkkitehtuuria osan 1 ja osan 2).

Jos mennään vähän syvemmälle kellon toimintaan, kello siirtyy seuraavaan askeleeseen A-vaiheesta luodun Clock Advance -signaalin avulla. Siispä skooppi kauniiseen käteen ja katselemaan käyriä.



Hetken aikaa epäilin huonoa A- ja/tai B-vaihetta, mutta kaikki signaalit ovat tässä laitteessa ihan jotain muuta kuin 90-asteen kulmia.

Metsästin ongelman lopulta Clock Advance -signaalin juurille, jokin kolmesta signaalin ehdollistavasta lähdöstä veti sitä koko ajan maahan, joten mitään pulssia ei lähtenyt. Pään hakkaamista seinään ja lopulta keksin irroittaa kortin, jonka NOT-portin läpi tulee tuon kellonesto kahdennetulta T1:ltä. Ja katsos, sehän toimii!

Clock Advance -signaalin puuttuminen aiheuttaa T-kellon jumiutumisen.

Kahdennettu T1-kello johtuu Heilin tapauksessa laajennetusta muistista, mikä ilmeisesti tarvii enemmän aikaa, se kun sijaitsee neljän metrin päässä keskusyksiköstä. Todellisuudessa kellon askelia on siis yhdeksän ja yksi niistä ei tee mitään, ainakaan teoriassa. Eli tämä korjausmetodi ei paljon lohduttaisi, piti keksiä se alkuperäinen syy.

OR DOT tarkoittaa yhdistettyjä johtoja. Ongelman synty oli juurikin tuossa pisteessä, se pysyi maahan vedettynä ja sen veti maahan NOT-portti. Portin tulo kellui, koska kortti jolla T1 DLY  (T1 Delay -kiikku) sijaitsee, oli väärällä paikalla.

Syy löytyikin järkeilemällä. Yksi kortti jossa T1 Delay FF -kiikku sijaitsee, oli väärällä paikalla. Itse sitä en ole siirtänyt (otinkin sen monta kertaa irti ja laitoin sen aina samalle paikalle...), joten epäilykseni kymmenistä uteliasta ihmisistä, jotka ovat ronkkineet tätä vuosien varrella, pitänee varmaan paikkaansa. Pistoa ei tarvi sen sydämessään kokea, joka siirsi B-A1D2 -kortin paikkaan D3, sillä olisin minäkin tätä ronkkinut, mikäli työpaikallani olisi jotain näin hienoa ollut nurkassa pölyttymässä ;)


Eikä tässä vielä kaikki (ongelmat)

Kun T-kello toimi, sain jo muistiin tallennettua tietoa paneelin namiskojen ja nappuloiden avulla. Nyt vain tuli uusi ongelma, kone sytytteli pariteettivirhevaloa randomeista muistipaikoista. Alkuun muistijännitteiden mittailua ilman tulosta...ehti nousta pieni pelko viallisesta muistilohkosta ja diodinvaihto-/muistijännitesäätö-limbosta, mutta seurattuani hetken milloin virhevalo syttyi, tajusin että valo syttyi aina kun pariton määrä bittejä oli B-rekisterissä.

Etsi tästä sitten pinni "B-A1F2 J10"...

Skoopilla sitten mittailemaan pariteettitarkistuspiiristöä, josta löytyi ongelman juuri: B-rekisterin sisältö ei koskaan saavu piiristöön perille, joten tulos on aina "parillinen". B-rekisterin päästä bitit löytyivät ja paloihan valotkin taulussa, eli melko varma syypää löytyisi löysällä olevasta lattakaapelista. Sieltä sekin vika löytyi ja liittimen kiinni tökkäämällä pariteettivirheet katosivat.




Loppuun vielä muutama sana

Aikani loppui tältä päivältä, enkä enempää ehtinyt leikkiä koneella, vaikka kuinka olisi tehnyt mieli; välilevynpullistuma teki sen verran ison loven lompakkoon viimekuussa, ettei näille leluille jää sitäkään vähää aikaa, mikäli kinkun haluaa pöytään ennen tammikuuta.

Yksi ehdoton varuste olisi virtaprobe skooppiin, niin ei tarvisi nyppiä kortteja tai johdotuksia irti tiettyjä vikoja hakiessa, tosin hinnat lähtevät 3000 eurosta mikä on paljon rahaa... Ja vaikka rakas Owon on uskollisesti palvellut, on selvää että minun tarvitsee hankkia 4-kanavainen oskilloskooppi funktiogeneraattorilla ja logiikka-analysaattorilla. Näin monimutkaisen laitteen vianhakuun pari kanavaa ja melkoisen kökkö datanloggaus vaatii aika kestäviä hermoja. Kommenteissa saa ehdottaa merkkejä ja malleja, itselläni on pyörinyt mielessä Rigolin MSO1074Z-S. Jos sellainen jollain on, kertokoon onko hintansa väärti vempele!

Mutta ainakin nyt kone lukee käskyn muistista ja suorittaa sen, jonka voi havaita käskyn I1, I2, jne. käskysekvensseistä. Se on jo jotain koneelta, joka valmistettiin 1971, sammutettiin 1986, purettiin ja koottiin 2015. Ja vielä ihmisen toimesta, joka ei koskaan ole nähnyt moista vempainta. Joko olen helvetin onnekas idiootti tai 40 vuotta myöhässä IBM:n huoltomiehen avoimesta työpaikasta ;)


Ps. Shampanja-pulloa turha vielä korkata, tästä se entisöinti vasta alkaa. Olen 99% varma ettei kone toimi vieläkään täydellisesti (joku käsky ei toimi, keskeytykset sekoilevat, jne), mutta eipä sillä väliä. Tämän harrastuksen pointtihan on korjata näitä, eikä päästä liian helpolla!



PÄIVITYS: Vastoin kaikkia odotuksia, Heili ajaa kuin ajaakin ohjelmia! Lisää aiheesta luvassa seuraavassa postauksessa! 
Laske yksi lisää akkuun, hyppää takaisin. Karkeasti noin 200 000 käskyä sekunnissa, mikä on vuonna 1965 julkaistulle tietokoneelle kelpo saavutus.