Posts filed under 'retro'

Ranskan räpeltäjät

Pitipä vielä kokeilla muutamaa peliä Thomson TO8:lla, kun löytyi kohtuullisen hyvä valikoima levytiedostoja netistä. Tiedostot olivat sopivasti sap-muodossa, jota saa konvertoitua enimmäkseen ongelmitta HxC:n käyttämäksi hfe:ksi. Yritin valita pelejä paremmasta päästä sekä muilta koneilta tuttuja nimikkeitä vertailun vuoksi. Testipenkkiin päätyivät mm. Arkanoid, Iznogoud (kotoisammin Ahmed Ahne), vanha nepasuosikkini Krakout sekä Wizball.

Tällä otoksella ei paljon kehuja irtoa: pelit ovat hitaita sekä välkkyviä, eikä niissä ole juuri mitään ääniä musiikista puhumattakaan. Käännöksiä on selvästi tehty halvalla ja hutaisemalla, mikä ei kuitenkaan koko surkeutta yksinään selitä. Toinen syy on yksinkertaisesti se, että laite soveltuu huonosti peleille ja demoille. Videopiiri sopii kyllä tekstin ja kauniiden sävyjen näyttämiseen, mutta merkkigrafiikan ja spritejen puuttuminen kuormittaa kohtuuttomasti yhden megahertsin prosarinreppanaa. Kurjuuden kruunaa se, että Tompassa ei ole äänipiiriä ollenkaan, vaan CPU:n pitää syöttää jatkuvasti D/A-muuntimeen sämpleä, jotta soitto soisi. Niinpä esim. taustamusan tekeminen olisi melkein mahdottoman rajamailla, kun pelilogiikka ja spritejen piirto pitäisi palastella musiikkirutiinin mukaan. Parissa näkemässäni demossa äänet on, mutta niissä näytettävä kamis onkin hyvin jaksollista ja ennustettavaa päinvastoin kuin peleissä.

Sopivassa mielentilassa tällaiset haasteet voisivat johtaa Just Do It! -henkeen ja skenehenkiseen rajoitteiden kiertämiseen, mutta kun hyllystä löytyy hauskempiakin vehkeitä, joiden ympärillä on hyvää vipinää, niin Ranskan rempula jäänee tästä eteenpäin lähinnä kokoelman koristeeksi.

Add comment January 6th, 2013

Le Thomson et le HxC

Another victory for HxC, even if a narrow one this time. I managed to connect the floppy emulator to my Thomson TO8 and even load some files. The plug is a bit problematic big 14-pin DIN, but luckily the same connector was used on Atari ST for external floppy. Thus, I bought an ST cable off eBay and butchered it for a good cause. The original instructions can be found here, but in case the forum disappears I’ll mirror them here together with the ST cable colors. On the left the Thomson pin numbers and on the right the flat cable:

  • 1 (green) – 16
  • 2 (yellow) – 24
  • 3 (blue) – 2
  • 4 (orange) – 32
  • 5 (purple) – 26
  • 6 (red) – 22
  • 7 (cyan) – 30
  • 8 (brown) – 18
  • 9 (black and white) – 28
  • 10 (black) – 20
  • 11 (brown and white) – 8
  • 12 (pink) – 12
  • 13 (white) – 34
  • 14 (gray) – 10

In addition the odd pins of the flat cable should be grounded. Like the original author, I used the ground of the audio output, since in my setup the audio is transferred through the SCART cable anyway.

Some images work, some not. I’m so green with Thomson that I can’t really pinpoint whether it’s a question of the HxC, a bad cable or the image conversion. The normal tool seems to convert .sap and .fd images, but not all of them are created equal. For example, one .fd I found seemed to be double sided. Need to dig deeper into it at some point.

1 comment January 6th, 2013

Le Thomson

Nyt on peruskoulun ranska kovalla koetuksella, kun yritän sompailla Thomson TO8:n kanssa. Siinä missä Enkkulassa väännettiin tietokoneita hiki hatussa jäi ranskalainen tuotanto huomattavasti vähäisemmäksi, kenties johtuen Minitel-päätteiden suosiosta. Telkkareistaan tuttu Thomson teki kuitenkin useita eri kasibittisiä 80-luvun alkupuoliskolla. Itselleni Ranskan eBayltä tarttunut malli on TO8 (Tele Ordinateur), joka edustaa loppupään kehittyneitä koneita; muistia on peräti 256 kiloa. Muita, jokseenkin samanlaisia yritelmiä olivat MO5, MO6, TO7 ja TO9. Thomsonit jäivät ilmeisesti paikalliseksi ilmiöksi, vaikka MO5E:tä yritettiin myydä ainakin Saksassa. Viimeinen Thomson, TO16, oli ajan hengen mukaisesti jo PC-klooni.

Tompat ovat melko normaaleja kasibittisiä, sillä osat on poimittu isojen valmistajien peruspiireistä. Hiukan luonnetta antaa edes prosari, joka on Motorolan symppis 6809 1 MHz taajuudella. TO8:n videopiiri on suunnilleen sama kuin Amstrad CPC:ssä: koneesta irtoaa perustarkkuudet 160x200x16, 320x200x4, 640x200x2 sekä TO7:n kanssa yhteensopiva, suunnilleen MSX:n screen 2:ta vastaava 320x200x8 rajoitetulla väritarkkuudella. Värit voi valita peräti 12-bittisestä paletista. Spritejä ei ole, joten CPU:lla pitää kovasti kiirettä peligrafiikan piirtämisessä. Muistia on messevät 256 kilotavua, josta osan voi käyttää virtuaalisena levyasemana – kunhan vaan ensin selvittää, miten. Ääniominaisuudet ovat hieman mysteeri nekin. Koneessa pitäisi oleman 6-bittinen DAC ja neljä kanavaa, mikä ei kerro vielä juuri mitään. Näppäimistö on aidosti ranskalainen eli AZERTY, joten typoja tulee joka käänteessä.

Toistaiseksi en ole saanut vielä koneelle siirrettyä mitään ohjelmia, mikä olisikin luonteva seuraava projekti. Kyljessä on perinteisesti kasettiportti, mutta sen kanssa askartelu voi olla hieman tuskallista ja hidasta. TO8D-mallissa oli sisäinen levari, mutta tässä omassani on pelkkä ohjain. Liitin on mallia “oma”, mutta onneksi ST:n ulkoisessa levarissa on käytetty samaa isoa dinniä, joten sopiva piuha oli vielä hankittavissa. Netin perusteella HxC olisi mahdollista saada kytkettyä, joten täytyy ruveta kolvaamaan johtoa kasaan. En edes tiedä, missä muodossa ohjelmat on tuolle levitetty, joten selviteltävää riittää.

edit: Johoo, eihän tuossa mitään äänipiiriä ole, vaan 6-bittinen DAC, jota pitää sitten itse rämpyttää CPU-luupilla. Eli käytännössä hyvin inhottavaa tehdä efektejä tai vaikka pelejä, joissa olisi musiikkia taustalla. Tästä tuli piiitkä miinus.

Add comment December 30th, 2012

Atari 800 Extra Large

Hain tänään postista kaksikin Atariin liittyvää pakettia: 800XL:n sekä Ultimate 1MB:n. Tilasin taannoin jo vanhemman muistinlaajennuksen, mutta sen kanssa jalka toppasi siihen, että 65XE:ssäni oli väärä emolevyn versio. Kasibittiatareita oli kokoelmassani jäljellä vain hienossa kunnossa oleva 130XE, sillä myin 65XE:n eteenpäin hyvään perheeseen. Ultimaten ilmestymisen myötä piti kuitenkin hankkia vielä toinen raato, johon kokeilla uutta laajennusta. eBaystä tärppäsikin sekä hiukan risa 65XE että toimiva 800XL. Näistä jälkimmäinen on se kätevämpi laajennettava, sillä prosari, ROM ja MMU ovat kaikki kannalla, siinä missä XE:issä ne ovat kiinteästi emolevyllä. Ja onhan tuollainen beige-ruskea kone kauniimman näköinenkin 🙂

Ultimaten asennus oli lopulta aika suoraviivainen: mummu ja käyttisrommi irti ja kaapeli tilalle. Pahin osuus oli neljän johdon kolvaaminen suoraan prosessorin jalkoihin. Vaikka tyrin pariin otteeseen, niin en ilmeisesti fataalisti, sillä kone toimii ja lisämuistia vaativat ohjelmat lähtevät päälle (800XL:ssä ei ole kuin 64k vakiona). Help+resetillä pääsee käsiksi asetuksiin, joista löytyy monenlaista käyttisversiota ja muistiasetusta valmiina. En tunne Atarien sielunelämää paljonkaan, mutta SIO2SD:llä saa ohjelmat ladattua helposti ummikkokin, kunhan muistaa painaa buutissa optionia, joka vapauttaa muistia.

Add comment December 28th, 2012

Nuo kotitietokonesodat

Välipalana haukattu Michael S. Tomczykin Commodore-muistelmateos The Home Computer Wars. Kirja on niinkin kaukaa kuin vuodelta 1984, jolloin Commodore oli kukkulan kuningas kuusnelosen ja VIC-20:n siivittämänä. Tomczyk oli itse todistamassa Commodoren nousua erilaisissa markkinointi- ja tuotesuunnittelutehtävissä paikan päällä 80-luvun taitteessa. Laitteiden osalta selkeästi eniten huomiota saa VIC-20, ensimmäinen miljoona kappaletta myynyt kotitietokone. Muuten kirja on suurelta osin hengästyttävän pitkä luettelo Commodoren johtajista ja insinööreistä, joita tuli ja meni jatkuvasti sisäisten konfliktien vuoksi. Jack Tramielia pidettin kovapintaisena ja suorasanaisena johtajana, eikä tämäkään kirja imagoa juuri pehmennä, vaikka välillä hieman vilautetaankin bisnesjyrän inhimillisempää puolta.

Kirja on pdf:nä täällä.

1 comment December 22nd, 2012

Plussan näppis yllättää

Spectrum Plussassa ja 128k:ssa on molemmissa samanlainen näppäimistö, joka kuitenkin poikkeaa 48k:sta, sillä nappeja on huomattavasti enemmän. Alkuperäisessä kuminappikoneessa on 40 näppäintä, siinä missä uudemmassa polvessa niitä on pikaisen laskelman perusteella 58. Plussaan voi kuitenkin laittaa aivan normaalin 48k:n piirilevyn sisälle ja näppäinkalvot toimivat ihan hyvin ristiin riippumatta eri nappimäärästä (tietenkin itse kotelon pitää olla oikea). Molemmissa on samat viiden ja kahdeksan johtimen liuskatkin, joten mistä ihmeestä nuo 18 ylimääräistä nappia saadaan?

Ratkaisu on varsin omintakeinen: lisätyt 18 nappia eivät tuota mitään uusia signaaleja, vaan ne painavat useamman näppäimen yhdistelmiä. Tyypillisessä tapauksessa linjat on kytketty sekä shiftiin/symbol shiftiin että johonkin toiseen näppäimeen. Näppiskalvosta tulee näin ollen huomattavasti aiempaa mutkikkaampi, mutta toisaalta emolevylle ja rommiin ym. ei tarvitse tehdä mitään muutoksia. Nokkelalta vaikuttavasta tempusta seuraa kuitenkin käytännön tasolla sellainen ongelma, että joskus harvoin näppäin tuottaa väärän yhdistelmän, jos sitä onnistuu painamaan juuri kesken matriisin luvun. Yleensähän painetaan ensin shiftiä ja sitten toista näppäintä, mutta tässä huonolla säkällä shiftiä ei ehditä huomata.

Yritin tehdä visualisointia Plussan näppäimistöstä, mutta johtimien sekasotku on sellainen, että homma vaatii huomattavasti lisää pohdiskelua. Tässä edes kuva:

Add comment December 7th, 2012

ZX Spectrum Keyboard Visualized

Ok, I got interested in the keyboard membrane issue: which wires are actually the columns and which are the rows? If a row or column of keys doesn’t work, which wire is to blame? To help the debugging process I made a quick visualization (hey, don’t be too harsh on the aesthetics, I only teach at a design school) showing the traces and the corresponding keys.

Membrane visualization

Some curious things popped up immediately. First of all, the columns are symmetric: the leftmost column continues to the right end and so on. Another interesting finding was that the rows are not in a very logical order if you consider the wires going to the motherboard. The first three are nicely mapped but then there’s a sudden jump to the first row of the right side. The maximum amount of combinations possible with 5 by 8 traces is 40, which is exactly the number of keys on the keyboard.

edit: The Service Manual matrix image explains the workings nicely from another perspective.

Add comment November 27th, 2012

Insane in the Keyboard Membrane

Etenkin Sinclairin laitteissa näppäimistö oli toteutettu kalvoratkaisulla eli membranella: näppäimistön alla on kaksi muovikalvoa, joissa menee ristiin johtavia vaaka- ja pystyrivejä. Kun nappia painetaan, niin puolikkaat painuvat yhteen, syntyy kytkentä ja kone pystyy lukemaan painalluksen. Emolevyltä menee kaksi liuskaa kalvolle: toisessa on sarakkeet ja toisessa rivit. Ratkaisu on halpa ja toimiessaan ok, mutta ajan myötä alkuperäiset kalvot murenevat ja kosketuspinnat hapettuvat, jolloin koko näppis tai esim. puolet rivistä lakkaa toimimasta. Kohtaamiani ongelmia ja niiden mahdollisia ratkaisuja kootusti:

  • Koko näppis on mykkänä
    • Jompi kumpi emolevylle menevä liuska on poikki läheltä liitintä. Liuskaa voi lyhentää murtuman yläpuolelta niin pitkään, kuin se vielä liittimeen yltää
    • Liuska on hapettunut liittimen päästä. Suikaletta pitää katkaista tai puhdistaa joko kevyesti hiomalla tai sopivalla aineella.
    • Liuska on poikki näppäimistön päästä. Halutessaan voi ruveta juottelemaan tms. murtumakohtia yhteen, mutta luultavasti kannattaa hankkia kokonaan uusi kalvo.
    • Liuska ei ota kunnolla kiinni liittimeen. Kosketuspintoja voi putsata ja tunkea ei-johtavalle puolelle esim. ohutta pahvia parantamaan kontaktia.
    • Kalvon puolikkaat eivät puristu yhteen. Jotta näppis toimisi, pitää puolikkaiden ottaa yhteen näppäimistön jälkeen. Putsausta, ruuvien kiristämistä (Plus/128k) tai kaapelien sivusuunnassa siirtämistä voi kokeilla.
  • Rivejä tai sarakkeita on mykkänä
    • Samat temput kuin yllä, mutta ainoastaan yksittäinen johdin on rikki, jolloin sen saattaa vielä kohtuudella saada korjattua, vaikka murtuma olisi näppäimistön päässäkin.
  • Pohjassa jumittava nappi
    • Taustalevyn ruuvit ovat liian kireällä. Liian tiukalla olevat ruuvit puristavat kalvot yhteen.
    • Mutkalla oleva taustalevy. Lasikuituversiot tuntuvat pysyvän suorina, mutta muovinen taustalevy saattaa vääntyä ajan myötä kuprulle ja ruveta painamaan jotain nappia pohjaan omatoimisesti. Metallisten taustalevyjen päällä on toisinaan pahvi, joka kupruilee vielä helpommin. Muovia voi yrittää vääntää suoraksi ja pahvin saa heittää menemään, sillä se ei ole toiminnan kannalta oleellinen.
  • Toimimaton nappi
    • Taustalevystä puuttuvat ruuvit voivat aiheuttaa sen, että kalvot eivät puristu yhteen riittävän tiukasti painettaessa. Etenkin +2:n näppäimistön pitää olla alapuolelta tuettu, eli myös koteloruuvit pitää olla paikallaan.

Tarpeeksi hapertunutta kalvoa ei saa kohtuullisella vaivalla korjattua, mutta onneksi uusia saa edelleen netistä, vaikkapa eBaystä. Kuminappispekun kalvo maksaa noin kympin+postit ja Plussan/128k:n kympin enemmän. Kannattaa olla tarkkana, sillä kalvot eivät käy ristiin eri mallien välillä. Amstradin aikana eli +2:sta eteenpäin käytettiin edelleen samaa ratkaisua, mutta materiaalit ovat olleet ilmeisesti paremmat, sillä hajoilu on hyvin harvinaista.

Membrane

Kuvassa uusi Spectrum 16k/48k:n näppäinkalvo. Emolevylle menee kaksi liuskaa, joista toisessa on johtimet sarakkeille ja toisessa riveille. Näppäimet sijaitsevat matriisin risteyskohdissa ja painavat puoliskot yhteen.

5 comments November 24th, 2012

HxC+Amiga

Jo Amstrad CPC:n ja Oricin kanssa kyntensä näyttänyt HxC-levyasemaemulaattori sai tänään taas lisäkäyttöä. Tällä kertaa otin auki Amiga 500:n, nyppäsin levarin irti ja vedin pihalle lattakaapelin sekä virtapiuhan. Ensinnä pientä arpomista kaapelin saamiseksi oikein päin, jumpperointi kohdalleen – manuaalissa jumpperointi on esitetty koteloimattomalle HxC:lle, joka on erilainen – ja johan lähti! Kokeilin noin kolmeakymmentä demoa ja niistä toimimatta jäi lopulta muutama. Parissa produssa näkyi lisäksi jotain korruptiota grafiikassa, joten ihan pomminvarma tuo viritelmä ei ole. Osa ongelmista voisi korjaantua paremmilla asetuksilla, osa voi liittyä lisämuistiin ja osa pieleen menneeseen levytiedoston konvertointiin. Veikkaisin pelien toimivan oikein hyvinkin, sillä niissä ei ole käytetty yhtä ahkerasti kotitekoisia bugisia loadereita. Jo näinkin purkista on paljon iloa, sillä demojen kirjoittelu yksitellen korpuille on tuskastuttavaa hommaa. Harrastuneemmat ovat asentaneet HxC:n suoraan Amigan sisälle, mutta itselläni käyttö on sen verran vähäistä, että johdot saavat repsottaa kaikessa rauhassa. Samaa kortinlukijaa tarvitaan myös muiden laitteiden kanssa.

Toinen mahdollisuus olisi kytkeä HxC ulkoisen levarin liitäntään, jolloin se toimisi yhtaikaa sisäisen aseman kanssa ja mahdollistaisi tiedostojen sekä imagejen kopioimisen korpuille. Sellaiselle ei ollut tällä erää tarvetta, minkä lisäksi kyseinen liitin on hankalasti mallia D23, joten jostain pitäisi lisäksi rakentaa tai ostaa sopiva kaapeli. Trackloaderitkaan eivät toisesta asemasta välitä, joten demot jäisivät ajamatta. Seuraava kokeilu voisi olla tehdä sama viritys ST:lle.

Add comment November 20th, 2012

Speku ja näyttömuistin olemus

Otetaan tästä nyt lopultakin selvä, eli millainen on Spectrumin näyttömuistin rakenne? Tätä sivua tavaamalla ja emulaattorilla kokeilemalla asia alkoi valjeta – eikä kovin lupaavalta näytä pelejä tai demoja ajatellen. Ei sinänsä mikään yllätys Herra Sinklairrin tekeleiden kohdalla 🙂

Spekussa on tunnetusti vain yksi yksi tarkkuus, 256×192 pikseliä, joka koostuu kuuden kilotavun (6144 tavua) bittikartasta osoitteessa 4000h (16384) ja sen perässä sijaitsevista attribuuteista osoitteessa 5800h (22528). Attribuutit ovat se selkeämpi osuus: jokaista 8×8 pikselin laatikkoa kohti on lineaarisesti tavu, joka määrää merkkipaikan etu- ja taustavärin. Vaikkei Spekussa aitoa merkkimoodia olekaan, niin attribuuttimuistin 768 tavua muodostavat merkkitarkkuudella 32×24-ruudukon. Käytössä on kasibittikoneille tyypillinen kolmebittinen RGB, mistä saadaan kahdeksan väriä. Lisäksi on käytössä välkytys- ja kirkkausbitit, joten yksi attribuuttimuistin tavu vkttteee sisältää seuraavat tiedot:

  • v – etu- ja taustavärin keskenään vaihtelu so. välkytys
  • k – kirkkaus eli merkin värit valitaan kirkkaamasta paletista (pl. musta, joka säilyy ennallaan, joten sävyjä on kaikkiaan 15)
  • ttt – taustaväri (nolla bittikartassa)
  • eee – etualan väri (ykkönen bittikartassa)

Bittikartta onkin sitten mutkikkaampi tapaus. Yhdessä tavussa on kahdeksan pikseliä, ylin bitti vasemmalla ja alin oikealla. Täysi osoite bittikarttaan vaatii viisi bittiä x-koordinaatille ja kahdeksan y-koordinaatille, sekä tietysti bittikartan perusosoitteen. Looginen ratkaisu olisi ollut muodostaa osoite tyyliin yyyyy yyyxxxxx, mutta ilmeisesti merkkien piirtämisen nopeuttamiseksi järjestys on toisenlainen. Kokonainen osoite on muotoa 010kkyyy mmmxxxxx seuraavasti:

  • 010 – bittikartan osoite eli 4000h
  • kk – kaistale, ruutu jakautuu kolmeen 2048 tavun kaistaleeseen
  • yyy – y-koordinaatti merkin sisällä
  • mmm – pystysuuntainen merkkipaikka kaistaleen sisällä
  • xxxxx – tavun x-koordinaatti

Lineaarisen y-koordinaatin voi siis ajatella koostuvan biteistä kkmmmyyy, mikä valitettavasti tarkoittaa sitä, että muistiosoitetta muodostaessa bittejä pitää shiftata suuntaan ja toiseen verrattain mutkikkaasti. Nopeutusta voisi saada laskemalla siirrokset valmiiksi taulukkoon, mutta ei taulukon lukeminenkaan mitään nopeaa ole. Spritejen kanssa ongelma on verrattain pieni, kun vaakasuuntaan voi piirtää lineaarisesti, mutta esim. viivanpiirrosta tulee väistämättä hankalaa, jollei koko ruutua piirrä lineaariseen puskuriin, jonka hurauttaa sitten rivi kerrallaan näyttömuistiin.

Nettiä penkoessa on tullut vastaan muutama muukin oleellinen seikka. Muistialue 4000h–7fffh on hidasta muistia, eli sitä käsittelevät yhtaikaa sekä Z80 että ULA, ja konfliktin sattuessa prosessori jää odottelemaan. Bordereissa ei muistia käsitellä, joten siellä Z80 toimii täydellä nopeudella. Useimmissa kasibittikoneissa on vastaava ongelma, jota on ratkottu enemmän ja vähemmän onnistuneesti – esimerkiksi MSX:ssä pitää ruudunpiirron aikana näyttömuistia käsittelevää koodia keinotekoisesti hidastaa, ettei videopiiri roskaa kuvaa. Reunuksen värin voi Spectrumissa säätää suoraan portista feh alimmilla kolmella bitillä. Samassa portissa ovat myös kaiutinta ja kasettiulostuloa kontrolloivat bitit.

Uudemmissa Spekuissa ja klooneissa on vielä omia hienouksiaan. 128k:sta alkaen käyttöön ilmestyi toinen ruutupuskuri, joka sijaitsee pankissa 7. Tuplapuskurointi onnistuu vaihtamalla ULA:n näyttämään jompaa kumpaa ruuduista. Tarkemmin biteistä täällä. Näin äkkiseltään näyttää kyllä aika inhottavalta, että toisen puskurin käyttö varastaa 32 kiloa muistiavaruudesta, sillä ensimmäinen puskuri on kiinteässä paikassa ja ainoastaan muistin lopussa olevan viimeisen pankin voi vaihtaa. Neukkukoneissa on vielä omia laajennuksiaan, kuten väri per pikseli -grafiikkamoodi sekä “kirkas musta” väri, jolla saa käyttöön täydet 16 sävyä. Esim. Pentagonissa ei ole hidasta muistia, joten kone on hieman nopeampi, mikä näkyy toisinaan hidasteluna, kun russiademoja ajaa länsikoneilla.

Oman lisänsä soppaan tuovat vielä eri Spectrumien ruudunpiirron ajastukset. Ajoittamalla koodi tarkkaan yksiin ruudunpiirron kanssa on tehty kaikenlaisia nokkelia efektejä kuten vaikkapa värien lisäämistä välkyttämällä tai väritarkkuuden kohentamista merkkiä tarkemmaksi. Noin nyrkkisääntönä näyttää olevan niin, että kaikki vanhan koulun laitteet ja +2 ovat ajastuksiltaan samanlaisia, kun taas +2A/+3 ja neukkukloonit erilaisia. Kloonitkaan eivät ole keskenään samanlaisia (esim. Scorpion vs. Pentagon), joten lienee haastavaa tehdä ajastuksiin perustuvia demoja tai pelejä, jotka toimisivat kunnolla joka koneessa.

edit: Olikin pikku bugi attribuuttimuistin kohdalla, oikeat bitit ovat vkttteee.

Add comment November 18th, 2012

Next Posts Previous Posts


Kommenttien virta

Aiheet