Siirry pääsisältöön

HP1000 - Paperinauha-aseman emulointia

Oktaaliluku 102077, toisin sanoen "end of tape". HP:n päällä SiliconLabsin 80C51 mikrokontrolleri, joka toimittaa paperinauha-aseman virkaa.


Viikonloppuna tehtyä uusi projekti, paperinauha-aseman emulaattori, kun ei oikeaa asemaa tullut koneen mukana. Toisaalta, eipä sellaisella enää ole muuta käyttöä kuin nostalginen fiilistely, helpommalla pääsee kun laittaa nyky-PC:n matkimaan nauha-asemaa.

Emulaattorin kytkentä IO-korttiin.


HP:n takana on IO-kortit, joihin nauha-asema ja muut tallennuslaitteet ovat tulleet kiinni, 16-bit sisään ja toiset 16-bit ulos + parit kättelysignaalit (device command / device flag). Normaalin IO-kortin signaali on ollut CTuL (-2V...4.5V), mutta onneksi yksi "MicroBus"-kortti oli koneen mukana, jossa on TTL-tason signaali. Muuten olisi pitänyt alkaa rakentamaan signaalitason muunninta.

Koneessa ei ole mitään käyttöjärjestelmää ROM-piireillä, vaan käyttis ladataan joltain laitteelta. Vanhemmissa tietokoneissa latausohjelma (binary loader, boot loader) on pitänyt näpyttää jokaisessa käynnistyksessä paneelin kytkimistä muistiin, siis jos se ei ole säilynyt ferriittimuistissa.

HP puolestaan veivasi boot-ROMit suoraan emolle, jotta elämä olisi helpompaa. Tosin ratkaisu nykyajan mittapuun mukaan on silti vähän monimutkainen, homma kun tapahtuu seuraavasti: ensin S-rekisteriin tallennetaan yhdellä 16-bitin sanalla boot-ROMin numero, laitteen IO-osoite ja mahdolliset parametrit. Tämän jälkeen painetaan IBL-painiketta, jonka jälkeen CPU lataa mikrokoodin avustama boot loaderin todella erikoisella metodilla 4-bitin paloissa muistin ylimpään 64:ään sanaan. 

Lopuksi painetaan RUN-painiketta ja käynnistetään esimerkiksi nauha-asema ja käyttis tai haluttu ohjelma siirtyy muistiin. Loaderi ilmoitaa sitten näytön valoilla mikä meni vikaan jos meni. 


Emulaattorin rakentaminen

Emulaattorin idea on seuraava: HP:n ja PC:n väliin tuli mikrokontrolleri joka on yhdistetty HP:n IO-korttiin ja PC:n sarjaporttiin. PC lähettää terminaaliohjelmalla tiedostot binäärimuodossa ja mikrokontrolleri tuuppaa dataa 8-bittillä IO-kortista sisään renkuttaen samalla flag-bittiä, aina kun data on luettavissa.

Miljoonalaatikosta osui käteen SiliconLabsin mikrokontrollerin kehitysalusta, jossa oli riittävästi IO:ta. Paperinauha-asema ei tarvitse kuin yhteen suuntaan 8-bittiä + kättelyt, mutta kytkin kaikki karvat tulevaisuuden suunnitelmia varten. 

Nauha-aseman kytkis ja toiminnankuvaus löytyi bitsaverisista, kuten myös ROMien konekieliset listaukset, joten hommaan pääsi sisälle parissa tunnissa. Nauhaformaatin arvailu otti aikansa, se kun koostuu frameista (data pituudesta) ja checksumeista. Idea suurinpiirtein näin: ensin tulee framen pituus yhdellä tavulla (max 255 sanaa), nollatavu, absoluuttinen osoite johon frame tuupataa ja framen lopussa kaikkien datasanojen yhteenlaskuttu summa. Nauha loppuu kun 11 nollaa on tullut framen ulkopuolella.

01 - Paper tape... ei ihan ollut...


Otin laiskana ohjelmointityökaluksi MikroElektronikan Basic-kääntäjän, jolla syntyi SiLabsin ohjelma. Teoriassa kaikki piti olla kuin pitikin, mutta HP:lta tulee jokaisen latausyrityksen jälkeen virheilmoitus (siis näytön valoina), kuten "address error".

Vaihtelin vähän kaikkea ja kokeilin ylempää 8-bittiäkin random arvoilla, kunnes sain "device error" valot palamaan tauluun. Hälytyskellot alkoivat soimaan, koska kyseistä virhettä ei pitäisi tulla paperinauha-asemalla, ainakaan ROMin listauksen mukaan. Lisää pientä muistin sisällön tutkimista paneelien kytkimillä ja totesin ettei muistin sisältö vastaa HP:n huolto manuaalissa olevaa disassemblya.

Ehdin jo miettiä että tässä koneessa on jokin päivitetty ROM-versio, mutta sitten välähti, ovatko ROMit oikeilla paikoilla? 

Kone auki ja yksi muistikorteista pois, boot-ROMit näkyviin ja kas, kaksi vaihtanut paikkaansa.

00...


En tiedä onko kyseessä huolimattoman huoltomiehen virhe vai joku käytönnön pila menneiltä vuosilta, ROMit kun voi vaihtaa parissa minuutissa...

Mutta loaderin osoitetta vaihtamalla emulaattori lähti toimimaan niinkuin sen pitkin. Seuraavaksi pitää hankkia jostain TTY-kortti teletypea varten ja kokeilla HP:n OS:ää (RTE), miltä 70-luvun käyttöjärjestelmä tuntuu 2010-luvulla.

Legendaarinen Teletype ASR-33, jolla mm. Bill Gates aloitti ohjelmoinnin (siis tälläinen yhdistettynä keskustietokoneeseen). Saa HP:n kaveriksi, kunhan TTY-kortti löytyy...










Kommentit

Tämän blogin suosituimmat tekstit

Uusi löytö talliin - IBM 1800

IBM 1800. On se upea.

Joskus se päivä paistaa risukasaankin, tällä kertaa aivan uskomattoman kokoisen ja upean IBMn muodossa. Olin kerännyt vuosien aikana kokoelman 80-luvun tietokoneita, en itseäni varten vaan lähinnä siksi, että joku muu tulisi tarvitsemaan niitä kokoelmiinsa tulevaisuudessa. Oma kiinnostukseni kun on ollut mineissä ja mainframeissa, jenkkejä myöten olen yrittänyt jotain jättiläistä saada tallin nurkkaan.

Reilu vuosi sitten aloin hukkaamaan kasarikokoelmaa ja kyselin kaikilta koneiden noukkijoilta tietääkö kukaan mitään tosi vanhaa tietokonetta jossain päin Suomea. Yksi Atari 800:sta kiinnostunut kaveri vinkkasi, että Outokummussa on vanha, rekan kokoinen tietokone toimettomana.

Koska fiksaationi mainframe-tietokoneisiin on melko huolestuttavalla tasolla (ainakin tyttöystävän mielestä) oli pakko kaivaa kaverilta kaikki tieto koneesta. Yhteystiedot tulivat mistä kysyä lisää ja pari kuvaa, joista sitten lähti jakkara alta. Tunnistin heti mistä on kyse, IBM 1800, ikälu…

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. 

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ä, v…

IBM 1800 - Se toimii sittenkin

Pahoitteluni lukijoilleni alkuun blogin luvattoman pitkästä hiljaiselosta. Lupasin reilu kuukausi sitten kommenttiosiossa juttua viikonlopuksi (...tosin en sanonut mille viikonlopulle ;), mutta yksinkertaisesti aika on ollut sen verran kortilla, ettei näihin harrastuksiin ole ehtinyt paneutumaan. No nyt sitä juttua kuitenkin tulee kahden kuukauden ajalta, kahdessa osassa!


Ensimmäinen ohjelma Pessimisti ei pety, ei edes tälläkään kertaa; vastoin kaikkia odotuksia ja/tai todennnäköisyyksiä, Heili ajoi jo ensimmäiset testiohjelmat parisen kuukautta sitten. Ei kylläkään kovin kummoisia, sillä interface PC:n ja Heilin välillä on vielä kesken. Ohjelmat pitää vieläkin naputella taulun kytkimien kautta binäärinä ja ymmärrettävistä syistä, Y-sukupolven edustajan pää ei yksinkertaisesti kestä (vaikka kytkimien ketkuttelu onkin kivaa aikansa).

1130/1800:n yhden rekisterin arkkitehtuuri (accumulator-based architecture) on vähänkään moderneihin koneisiin tottuneelle hiukan omituinen. Ohjelmoijall…

Kuulumisia pitkän tauon jälkeen

Nyt alkaa olemaan jo aika päivittää blogiin jotain, sillä edellisestä kerrasta on jo yli vuosi ja kommenttiosuuksissa on tullut parikin kertaa luvattua uutta materiaalia milloin mihinkin mennessä. Ikävä kyllä vuosi on ollut niin kiireinen ja syy se tuttu, oma yritys ja ne kymmenet siihen liittyvät projektit.

Ajattelin ensin viimeistellä ja julkaista yli vuosi sitten aloittamani IBM:n kovalevynjutun, mutta yksinkertaisesti se ei ole vieläkään valmis ja jutun koko on turvonnut raamatullisiin mittasuhteisiin. Kovalevyihin liittyvä historia, mekaniikka, elektroniikka, formaatti, rajapinnat, softa ja muu on monimutkainen ja vieläpä äärettömän sekava kokonaisuus IBM:n tapauksessa.

Mutta tuon valmistumista odotellessa voidaan ottaa sillisalaattimainen yhteenveto mitä kaikkea vuoden aikana on tapahtunut lahtelaisella muinaistietokonerintamalla. Aloitetaan Suomen tietokonehistoriaa ravistelevalla jutulla.


Esko Koho ja Suomen ensimmäinen kotitietokone

Mikä oli Suomen ensimmäinen kotitietokone?…