Munatologia

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 6. elokuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 19 muokkausta .

Eggologia tutkii laskimien  dokumentoimattomia ominaisuuksia .

Alkuperä

Nimi esiintyi ensimmäisen kerran Neuvostoliitossa ja on luonteeltaan koominen. Oletettavasti tulee virheilmoituksesta "EGGOG" ( englanniksi  Error  - error), jonka antoivat toisen sukupolven ohjelmoitavat neuvostotuotannon laskimet ( Elektronika B3-34 , MK-54 , MK-56 , MK-61 , MK-52 , MS 1104) seitsemän segmentin näytöillä . Termi ilmestyi ensimmäisen kerran " Tekhnika — Molodozhi " -lehdessä M. Pukhovin artikkelisarjan jälkeen, joka oli omistettu " Electronics B3-34 " -sarjan mikrolaskimien ohjelmointiin [1] , sekä yhdeksän tarinan sarjan fantastisesta matkasta Kuu Maahan yleisnimellä "Kon -Tiki": tie Maahan" [2] . Tässä syklissä kuvattiin peliohjelmien lisäksi erilaisia ​​dokumentoimattomia mikrolaskimien ominaisuuksia ja videoviestejä, joista monet saatiin manipuloimalla näppäimiä virheilmoituksen "YERGOG" ( ) ilmestymisen jälkeen.

Lehden lukijat vastasivat suurella innolla tarinaan mikrolaskimien löydetyistä dokumentoimattomista mahdollisuuksista, alkoivat etsiä uusia, ja "Kon-Tiki ..." -syklin lopussa ilmestyi pieni osio "Munakogologian uutiset". Siinä julkaistujen dokumentoimattomien tekniikoiden avulla kirjoitettiin monia uusia peliohjelmia, joista suurinta osaa ei yksinkertaisesti voitu luoda vakiotyökaluilla B3-34 -perhelaskinten rajallisten resurssien vuoksi .

Munalogian ohjeet

Aluksi kiinnostuksen kohteena oli mahdollisuus muodostaa näytölle aakkosnumeerisia yhdistelmiä, jotka sisälsivät paitsi numerot 0-9, myös laskimen näyttämiä heksadesimaalimerkkejä kuten - , L , C , G , E ja välilyönti. Ne voidaan saada käsittelemällä ei-retentiivistä viestiä YGGOG, jonka mikrolaskin antaa yrittäessään suorittaa virheellistä toimintoa (jakaa nollalla jne.). Tällaisia ​​"numeroita" voidaan tallentaa muistirekistereihin ja käyttää viesteinä peliohjelmissa. Technique for Youth -lehti kuvaili tekniikkaa monenlaisten "videoviestien" saamiseksi Lunolet-1-ohjelman kirjaimesta "G" [1] aina sarjakuvaan avaruusaluksen lennosta, joka perustuu tarinaan "The Tie Maahan” [3] .

Tulevaisuudessa yksi munalogologian osa-alueista oli laajentaa käsiteltyjen numeroiden valikoimaa (numerot, joiden järjestys on 100-199, näkyvät näytöllä myös YYGOG -muodossa, katso "Epästandardinumerot" ) ja tutkia mikrolaskimen reaktiota yrittää suorittaa toimintoja vakioalueen ulkopuolella olevilla numeroilla.

Toinen munalogian haara tutki ohjelmointitilan dokumentoimattomia ominaisuuksia; harrastajat löysivät tapoja syöttää dokumentoimattomia komentoja, jotka sisältävät esimerkiksi "tyhjän" merkin (F), tutkivat ohjelmien osoiteavaruuden epätyypillisen käytön mahdollisuuksia (katso Pää- ja sivuhaarat ), PSC-tila .

Kun insinööri F. Lazarev analysoi Neuvostoliiton mikrolaskimien laitteistoarkkitehtuuria vuonna 2011 ja luki ROM:n sisällön [4] , monet PMC:n epätavallisista ominaisuuksista saivat loogisen selityksen. Kävi selväksi, että "Darkness" on PMC-laiteohjelmiston silmukka, ja pääprosessori K745IK1302 generoi viestin "YGGOG" aikakatkaisulla, kun mikään orjaprosessoreista ei pystynyt käsittelemään syötettyä komentoa [5] . PMC-laiteohjelmiston lukeminen mahdollisti emulaattorin luomisen, joka toistaa tarkasti kaikki mikrolaskinten dokumentoimattomat ominaisuudet [6] .

"Epästandardit" numerot

Eggogologia väittää, että laskimen käsittelemän lukualueen järjestys ( eksponentti ) on rajoitettu modulo 1000 ja jakaa tämän alueen niin kutsuttuihin kerroksiin tai " tasoihin " [7] . Kukin taso on sata välillä 0–999. Eli nollataso on lukuja, joiden potenssikanta on 0–99, ensimmäinen taso on lukuja, joiden eksponentti on 100–199 jne. Tasoja on kymmenen. yhteensä ja miinus ensimmäinen taso vastaa yhdeksännestä (eli mikrolaskimen esityksen eksponentti -80 vastaa 920:a), miinus toinen - kahdeksas (esimerkiksi eksponentti -180 on ekvivalentti 820) jne.

Dokumentaatio rajoitti lukujen maksimiarvon, joille matemaattisia operaatioita voidaan suorittaa, arvoon ±9,9999999 × 10 ±99 (eli nolla ja miinus ensimmäiset tasot). Itse asiassa, jos syötät mikrolaskimeen luvun 1 × 10 50 (johon riittää näppäinpainallusten sarja 1 VP 50 ) ja neliöit sen (paina Fx² ), niin näyttöön tulee viesti " YGGOG ". Tämä dokumentaatio osoittaa virheilmoituksen, koska numero 1 × 10 100 on "standardin" alueen ulkopuolella. Osoittautuu, että tämä ei ole virheilmoitus, vaan tapa ilmoittaa ensimmäisen tason numerot, ja tällä numerolla voit suorittaa tavanomaisia ​​​​toimintoja: lisätä, kertoa, jakaa, laskea funktioarvoja, tallentaa sen muistirekisteriin , soita sille rekisteristä. Samalla tavalla voit työskennellä toisen tason numeroiden kanssa (esimerkiksi 1 × 10 200 , helpoin tapa saada tällainen luku on neliöidä luku 1 × 10 100 ). Tällaisten lukujen todellisten arvojen selvittämiseksi ne oli jaettava luvulla 1 × 10 99 tai muilla vastaavilla luvuilla niiden vähentämiseksi nollatasosta (absoluuttisella moduulilla enintään 9,9999999 × 10 99 ).

Toisin sanoen annettiin tapa laajentaa vakiotoimintojen käsittelemien numeroiden valikoimaa arvoon ±9,9999999 × 10 299 . Joillain temppuilla (erityisesti kirjoitettujen ohjelmien avulla) oli myös mahdollista saada lukuja ±9,9999999 × 10 799 asti ja analysoida niiden arvo (eli selvittää mantissa ja eksponentti). Tällaisten "laskelmien" avulla todistettiin, että yhdeksäs taso edustaa lukuja, joilla on negatiivinen asteen kanta-arvo (esimerkiksi 1 × 10 920 oli luvun 1 × 10 -80 vastaava esitys ). Kahdeksannen tason numeroita (luvut ±1 × 10800 - ±9,9999999 × 10899 ja myös ±1 × 10900 - ±9,9999999 × 10900 ) ei voida tallentaa niiden vastaanottamisen jälkeen, koska ne muutettiin välittömästi tavalliseksi nollaksi huolimatta. siitä, miltä puolelta "nousta" heille (seitsemänneltä tai yhdeksänneltä tasolta).

Numeeristen tasojen luokitus

Numeerinen taso Numeroiden nimi Numeroalue Lyhyt kuvaus tämän alueen numerosta
Tyhjä Tavalliset luvut, joissa ei ole negatiivinen järjestys ±1 - ±9,9999999 × 1099 Voit tehdä normaaleja laskelmia
Ensimmäinen "MUNA" ±1 × 10 100 - ±9,9999999 × 10 199 Voit suorittaa normaaleja laskutoimituksia, mutta ne näkyvät näytössä muodossa
Toinen "3GGOGi" ±1 × 10200 - ±9,9999999 × 10299 Voit suorittaa normaaleja laskutoimituksia, mutta ne näkyvät näytössä muodossa . Suorita ehdoton hyppy osoitteeseen, joka vastaa eksponentin kahta ensimmäistä numeroa (20 - 29)
Kolmas "Läättämättömät hirviöt" ±1 × 10300 - ±9,9999999 × 10399 Pystyy mielivaltaisesti siirtämään laskimen ohjelman suoritustilaan tai saamaan sen jäätymään
Neljäs "OS Ihmissudet" ±1 × 10400 - ±9,9999999 × 10499 Ne kopioivat tasojen rakenteen vääristyneessä muodossa ja niitä käytetään muiden lukujen analysointiin. Vääristää C-rekisterin sisältöä
Viides "Tumma" ±1 × 10500 - ±9,9999999 × 10599 Kun yrität tulostaa näytölle, laskin pysähtyy. Merkkivalo sammuu, suorituskyky palautuu sammuttamisen ja päällekytkennän jälkeen (MC 1104:ssä oli erityinen painike tämän vaikutuksen vaimentamiseksi)
Kuudes "S-YGGOG-ihmissudet" ±1 × 10600 - ±9,9999999 × 10699 Vääristää C-rekisterin sisältöä
Seitsemäs "Pitkät hirviöt" ±1 × 10700 - ±9,9999999 × 10799 Ne kopioivat tasojen rakenteen vääristyneessä muodossa, niitä käytetään muiden lukujen analysointiin
Kahdeksas (miinus toinen) "nollat" ±1 × 10800 - ±9,9999999 × 10900 tai ±1 × 10 -200 - ±9,9999999 × 10 -100 ( valmistusmenetelmästä riippuen) Muuntaa heti normaaliin nollaan
Yhdeksäs (miinus yksi) Tavalliset luvut negatiivisella järjestyksellä ±1 × 10 -99 - ±9,9999999 × 10 -1 Voit tehdä normaaleja laskelmia

Yksityiskohtainen kuvaus

"3GGOGi"

Tämän viestin alle on piilotettu numeroita ±1 × 10200 - ±9,9999999 × 10299 . Voit suorittaa niille normaaleja aritmeettisia operaatioita. Kun 3GGOG tulee näyttöön, desimaalipilkku säilyttää asemansa edellisestä numerosta ja ohjelman osoitelaskuri asetetaan osoitteeseen, joka on yhtä suuri kuin kaksi ensimmäistä numeroa järjestyksestä 3GGOG.

Mikä tahansa 3GGOG voidaan "dekoodata" komennoilla: FABT, dot (sen järjestys näkyy näytön oikealla puolella), FAVT (entisen 3GGOG:n mantissa näkyy vasemmalla ja järjestys --L tai --3 oikealla).

Soitettaessa 3GGOG:iin muistirekisteristä 0-9 ja sitten painettaessa VP tai desimaalipilkkua, laskin käyttäytyy jokseenkin samalla tavalla, ikään kuin näytölle ilmestyisi "supernumero" rekisterinumerolla alkavalla järjestyksessä. Jos esimerkiksi 3YGOG kutsutaan rekisteristä 1, tulee viesti YYGOG; rekisteristä 2 - jälleen 3GGOG; rekisteristä 3 - "spoiled" komento "3" ilmestyy ohjelmointitilaan; rekisteristä 4 - Pimeys; rekisteristä 7 - "Pitkä hirviö".

"OS Werewolves"

±1 × 10400 - ±9,9999999 × 10499 .

Kun "OS-ihmissusi" vedetään rekisteristä, se laittaa "häntänsä" rekisteriin C. "Häntä" on myös superluku, jonka eksponentin kaksi ensimmäistä numeroa ovat "OS-ihmissuden" järjestyksessä kaksi viimeistä numeroa. ". Jos "häntä" on myös "OS-ihmissusi" (tämä tapahtuu numeroille, joiden järjestys on 440-449), niin se myös laittaa "häntänsä" rekisteriin C. On kolmannen asteen ihmissusia - numeroita, joiden järjestys on 444.

Esimerkki:

V/O FPRG Fx 2 Fx 2  × Fx 2 X→PS Sx S/P FAVT V/O 1 VP 22 V↑ 1 VP 50 S/P
P→XS näytöllä 0
P→XS näytöllä 0
P→XS näytöllä 0
P → XS näytöllä viimeinen "häntä", jossa on kolme kirjainta E.

"S-YGGOG-ihmissudet"

±1 × 10600 - ±9,9999999 × 10699 .

Jos "C-YGGOG-ihmissusi" vedetään pois rekisteristä, se tulee C-rekisterin sisällön piiriin ja siirtyy Y-rekisteriin. Suorittaessaan sille aritmeettista operaatiota - G.YGOG.

"S-YGGOG-ihmissuden" ominaisuuksiin perustuen ns. " ASO-analyysi ":

  1. Rekisteriin 0 laitamme "C-YGGOG-ihmissusi" (se on mahdollista toisessa rekisterissä)
  2. A-rekisteriin (vain!) Sijoitamme YEGGOG.
  3. P→XA P→X0 PX - rekisterin C sisältö - mantissa ja 3-numeroinen teho
  4. /−/ — P0:n sisältö

Varotoimet työskennellessäsi "C-ERGOG-ihmissusien" kanssa:

  1. "Pimeys" tulee:
    • jos paina "ACO-analyysin" jälkeen VP, FABT
    • jos heti YEGGOGin muodostumisen jälkeen vedä "S-YGGOG-ihmissusi"
    • jos vedät "S-YGGOG-ihmissusi" ja "PSCh-mode"
    • jos "C-YGGOG-ihmissusi" vetää itsensä ulos C-rekisteristä
"Long Monsters"

Toinen nimi on "K-numerot".

±1 × 10700 - ±9,9999999 × 10799 .

Kun Pitkä hirviö ilmestyy, ilmaisimessa näkyy seuraava numero:

1.2345678⋅10 735 = [50.12345678 3] Missä indikaattorin ensimmäinen 5 on eksponentin kolmas numero ja indikaattorin viimeinen 3 on eksponentin toinen numero. Ja itse "Pitkä hirviö" kirjoitetaan ohjelman 73. osoitteeseen, joka vastaa numerojärjestyksen kahta ensimmäistä numeroa.

Dokumentoimattomat komennot

Joukkueet "nuolilla" B3-34 :ssä

Laskimessa B3-34 (ja sen kanssa yhteensopivassa MK-54 , MK-56 ) kaikissa rekisterikomennoissa voit käyttää rekisterin numeronäppäimen (kirjain) sijaan näppäintä ↑ eli dokumentoimattomia komentoja IP↑ , P↑ , KIP↑ , KP↑ ovat saatavilla , Kx≠0↑ , Kx≥0↑ , Kx<0↑ , Kx=0↑ , KBP↑ , KPP↑ . Kun nämä komennot syötetään ohjelmointitilassa, generoidaan koodit, jotka päättyvät E. Kun tällaisia ​​komentoja suoritetaan, päästään itse asiassa rekisteriin 0; komennot suoraa pääsyä varten rekisteriin ovat täysin samanlaisia ​​IP0 ja P0 , mutta muilla komennoilla, jotka tarjoavat epäsuoran pääsyn rekisteriin 0, on tärkeä ero vastaaviin komentoihin KIP0 , KP0 ja muihin: ne eivät vähennä rekisterin 0 arvoa. kun siihen pääsee käsiksi. Tämä mahdollistaa epäsuoran pääsyn rekisteriin 0 kahdella tavalla: rekisterin arvon pienentämisellä ja ilman.

"Nuolikomentojen" käyttö yksinkertaistaa rekisterin läpikulkua silmukassa, jolloin rekisterin 0 arvoa voidaan käyttää sekä silmukkalaskurina että rekisteriindeksinä samanaikaisesti. Esimerkiksi yksinkertaisin ohjelma arvojen lisäämiseksi rekistereihin 1-N (olettaen, että tiedot kirjoitetaan rekistereihin ja N syötetään rekisteriin X ennen ohjelman suorittamista) näyttää tältä:

  • P0 0 KIP ↑ + FL0 02 S / P (tiedot rekistereissä 1 - N) - 7 komentoa.

Vaihtoehto ilman "nuolikomentoja":

  • P0 0 IP0 PE F⟳ KIPE + FL0 02 S / P  - 10 joukkuetta;
  • P0 2 + P1 0 KIP1 + FL0 05 S / P (tiedot rekistereissä 2 - N + 1) - 10 komentoa ja kaksi lisärekisteriä (hieman nopeampi).

Ohjeet epäsuorille hyppyille "nuolilla" antavat mahdollisuuden tallentaa hypyn osoitteen rekisteriin 0 ja hypätä siihen muuttamatta sisältöä. Koska epäsuora hyppykäsky kestää yhden ohjelmavaiheen ja tavallinen hyppykäsky kaksi, osoitteen kirjoittaminen rekisteriin voittaa yhden ohjelmavaiheen jokaista hyppyä kohti kyseiseen osoitteeseen.

MK-61- ja MK-52- laskimissa " ↑ " -näppäin vastaa uutta muistirekisteriä E ja operaatiokoodit rekisterillä E vastaavat B3-34 "nuolikomentoja", joten "nuolikomennot" eivät ole käytettävissä nämä laskimet [8] (katso taulukko). Avainmerkinnät P , IP ja ↑ B3-34:ssä vastaavat Х→П , П→Х ja Е malleissa MK-61 ja MK-52.

Komentokoodit Joukkueet B3-34 Joukkueet MK-61, MK-52
7E Kx≠0↑ Kx≠0E
8E KBP↑ KBPE
9E Kx≥0↑ Kx≥0E
-E Tarkistuspiste↑ CATP
LE KP↑ KX→PE
CE Kh<0↑ Kx<0E
GE KIP↑ CP→HE
EE Kx = 0↑ Kx = 0E

"Nuolikomentojen" puuttuminen malleissa MK-61/MK-52 vaikeuttaa näitä komentoja käyttävien B3-34-ohjelmien mukauttamista. Epäsuorien hyppykomentojen kohdalla ongelma ratkeaa yksinkertaisesti: haluttu osoite kirjoitetaan E-rekisteriin, jota ei käytetä B3-34:n ohjelmissa, ja "nuoli"-komennot muutetaan E-rekisteriä osoittaviksi komentoiksi. KIP↑/KP↑-komennot, tilanne on paljon monimutkaisempi : Jokaisen poistaminen lisää ohjelman kokoa vähintään 3 askelta, mikä saattaa aiheuttaa ohjelmamuistin loppumisen. Uusissa malleissa MK-152/MK-161 on saatavilla uudet kaksivaiheiset epäsuorat rekisterikomennot RKIP00/RKP00, jotka toimivat samalla tavalla kuin KIP↑/KP↑ B3-34:ssä; jokainen tällainen käsky lisää ohjelmaa vain yhdellä askeleella, ja uusien laskimien paljon suurempi ohjelmamuisti tekee tästä lisäyksestä lähes merkityksettömän.

Väärät toiminnot K-näppäimellä

Laskimessa B3-34 useimmat K-näppäimellä tehdyt dokumentoimattomat toiminnot aiheuttavat viestin YYGOG. Nämä ovat komennot K3-K9, K+, K−, K×, K÷, , K↑, K/−/, KVP, KSx ja K desimaalipilkku. Komennot K1 ja K2 vastaavat KNOP-toimintoa.

Malleissa MK-61 ja MK-52 vain komennot К−, К×, К÷ johtavat YYGOG-viestiin. Komennot K1 ja K2 vastaavat myös KNOP-toimintoa. Jäljellä olevien komentojen koodit dokumentoidaan ja niitä käytetään muuntamaan aika- ja kulmamitat, määrittämään luvun moduuli ja etumerkki, luvun kokonaisluku- ja murto-osat, kahdesta luvusta suurempi, loogiset operaatiot ja satunnaisluvun luominen.

Virheellinen toiminta malleissa MK-61 ja MK-52 on myös minuuttien (sekuntien) muuntaminen asteina ja jos minuuttien tai sekuntien arvo on suurempi tai yhtä suuri kuin 60.

K-näppäimellä tehtyjen virheellisten toimintojen avulla saatu viesti YYGOG ei ole ensimmäisen "tason" "superluku" eikä sitä voi tallentaa muistirekisteriin, vaan sitä voidaan käyttää heksadesimaalilukujen näyttämiseen osoittimessa, esimerkiksi:

1 K− (YYGOG näkyy) VP VP ↑ (kirjain E näytetään).

Tuloksena oleva kirjain E voidaan tallentaa muistirekistereihin ja hakea sieltä, ja käyttämällä rekistereitä 0-3 voidaan muuntaa myös muiden heksadesimaalilukujen merkeiksi:

P0 KIP0 IP0 -PAINIKE (G) KIP0 IP0 -PAINIKE (S) KIP0 IP0 -PAINIKE (L) KIP0 IP0 -PAINIKE (-) KIP0 IP0 -PAINIKE (9) jne.

Vastaavia tekniikoita käytettiin videoviestien muodostamiseen esimerkiksi peliohjelmissa.

Numerolla F alkavan videoviestin vastaanottaminen (näkyy tyhjänä tilana) voi häiritä laskimen normaalia toimintaa (ohjelman ja datan vääristyminen, spontaani siirtyminen laskentatilaan jne.). Tämä voidaan välttää "poistamalla" se välittömästi komennolla ↑ , joka annetaan vähintään neljä kertaa [8] (muiden lähteiden mukaan seitsemän kertaa [9] ), yrittämättä suorittaa muita toimintoja.

Komentokoodien keinotekoinen syöttö

Mikrolaskimen ohjelmamuistin yksi askel voi sisältää kaksi heksadesimaalilukua, eli teoriassa voi olla 256 eri komentokoodia. Näistä 214 on dokumentoitu MK-61/52-käyttöoppaassa. On olemassa keinotekoinen tekniikka, jonka avulla voit syöttää 12 42:sta dokumentoimattomasta koodista. Tätä varten syötetään yksi siirtymäkomennoista, esimerkiksi BP (koodi 51) ja sen jälkeen kaksi heksadesimaalilukua, jotka laskin havaitsee siirtymäosoitteeksi. Sen jälkeen siirtymäkomento korvataan "dummy" KNOP-komennolla, ja laskin ei havaitse seuraavan vaiheen ohjelman suorittamisen aikana siirtymäosoitteeksi, vaan komennona [10] . Jotkin näistä koodeista voidaan syöttää myös edellisessä alakohdassa kuvatuilla dokumentoimattomilla K-näppäinoperaatioilla.

Komentokoodit Komentotoiminnot Syötä K-näppäimellä
27 Tuo esiin viestin YYGOG K−
28 Tuo esiin viestin YYGOG
29 Tuo esiin viestin YYGOG
2L Tuo esiin viestin YYGOG Ei
2C Tuo esiin viestin YYGOG Ei
2G Tuo esiin viestin YYGOG Ei
2E Tuo esiin viestin YYGOG Ei
Tuo esiin viestin YYGOG Ei
3G Kopioi rekisterin X sisällön X1:een. X-, Y-, Z- ja T-rekisterien sisältö tallennetaan. Ei
3E Siirtää rekisterin X sisällön X1:een, kopioi rekisterin Y sisällön X:ään.

Y-, Z- ja T-rekisterien sisältö tallennetaan.

Ei
55 Ei tee mitään (vastaa KNOP-komentoa) K1
56 Ei tee mitään (vastaa KNOP-komentoa) K2

Koodeja 55 ja 56 käytettiin MK-52:n pienimuotoisten analogien syöttökielissä [11] .

Tämä tekniikka ei sovellu jäljellä olevien 30 dokumentoimattoman komentokoodin syöttämiseen, jotka sisältävät heksadesimaaliluvun F (näkyy osoittimessa tyhjänä merkkinä), koska laskimen näppäimistössä ei ole näppäintä numeron F syöttämiseen (ei pidä sekoittaa etuliitenäppäin F). Joitakin tapoja syöttää tällaisia ​​koodeja käsitellään seuraavassa alaosassa.

Numeron F sisältävien komentokoodien syöttäminen

Laskimessa MK-52 on mahdollista generoida mikä tahansa 256 ohjekoodista mille tahansa ohjelmamuistiosoitteelle. Tätä varten käytetään seuraavaa PROM-ohjelmien kirjoittamisen ominaisuutta. Normaalissa ohjelman kirjoitusprosessissa sinun on ensin tyhjennettävä PROM-muistin vastaava osa. Jos näin ei tehdä, RAM-muistista tulevat käskykoodit lisätään bittikohtaisesti loogisesti niihin koodeihin, jotka olivat aiemmin PROM:ssa [12] . Joten jos BP-komento (koodi 51) on kirjoitettu EPROM-muistiin tiettyyn osoitteeseen ja B↑-komento (koodi 0E) sijaitsee RAM-muistissa vastaavassa osoitteessa, niin loogisen lisäyksen tulos on komento, jolla on koodi 5F (joka johtaa mikrolaskimen jäätymiseen). Numeron F sisältävien koodien komentojen toiminnot on esitetty seuraavassa taulukossa:

Komentokoodit Komentotoiminnot
0F Dokumentoitu FBx-komento
1F, 2F, 3F Älä tee mitään (vastaa KNOP-komentoa)
4F Vastaa komentoa X→P0 (koodi 40)
5F Aiheuttaa laskimen jäätymisen. Merkkivalo sammuu, toimintakyky palautuu virran sammuttamisen ja kytkemisen jälkeen.
6F Vastaa komentoa P→X0 (koodi 60)
7F Vastaa komentoa Kh≠00 (koodi 70)
8F Vastaa komentoa KBP0 (koodi 80)
9F Vastaa komentoa Kh≥00 (koodi 90)
-F Vastaa komentoa KPP0 (koodi -0)
LF Se vastaa komentoa КХ→П0 (koodi L0)
CF Se vastaa komentoa Khx<00 (koodi С0)
GF Se vastaa komentoa KP → X0 (koodi G0)
EF Vastaa komentoa Kx=00 (koodi E0)
F0, F1, ...FF Älä tee mitään (vastaa KNOP-komentoa)

Valitettavasti dokumentoimattomat komennot 7F, 8F, ... EF, jotka tarjoavat epäsuoran pääsyn rekisteriin 0, vähentävät sen sisältöä, samoin kuin niiden dokumentoidut vastineet koodeilla 70, 80, ... E0, eivätkä ne voi korvata " arrow" komennot kohdassa B3 -34 .

B3-34 :ssä ja MK-61 :ssä , joissa ei ole PROM:ää, on myös mahdollista syöttää joitain komentoja koodilla, jotka sisältävät numeron F, mutta vain muutamissa kiinteissä osoitteissa. Yksi tapa on käyttää komentoja B / 0 PPC N manuaalisessa laskentatilassa (F ABT), N  - mitä tahansa rekistereistä (0-9, A-E). Tässä tapauksessa mikrolaskin siirtyy ohjelmointitilaan ja syöttää F N -koodin osoitteeseen 30+ N (kirjainrekistereille A-E, vastaavasti 40-44). Huomaa, että käytettäessä rekistereitä 0-6, tulos riippuu niiden sisällöstä [ ]13 Tätä varten luodaan ensin "superluku" käyttämällä VP-komentoa kahdesti yli 99 tilausten summalla (esimerkiksi VP 10 VP 90), ja sitten YYGOG-signaalin ilmestymisen jälkeen painamalla "VP desimaalipiste 0" -näppäimet. Tämä myös asettaa laskimen ohjelmointitilaan, ja tässä esimerkissä F1-komento kirjoitetaan osoitteeseen 51. Sekä osoitteen että komennon toinen merkki määräytyy ensimmäisen VI-käskyn ensimmäisen eksponentin mukaan (esim. VI 20 VI 80 VI .0 antaa F2-komennon osoitteessa 52 jne.)

Dokumentoimaton desimaalipilkun käyttö ohjelmassa

Ohjelmassa käytetty "desimaalipiste"-komento (koodi 0-) (paitsi dokumentoidussa käytössä - ohjelman mukaisen numeron syöttämiseen merkki kerrallaan) korvaa rekisterissä X olevan arvon sillä, joka oli sen jälkeen. viimeinen komennoista 0, 1 , … 9, V↑, P→X0, P→X1, … P→X9, P→XA, … P→XE [14] .

Dokumentoimattomia tapoja diagnosoida virheitä

Kun EGGOG-signaali esiintyy ohjelman laskennan aikana, on kaksi dokumentoimatonta tapaa määrittää, mikä toimenpide johti pysäyttämiseen [8] :

  1. Painamalla näppäintä ↑ B3-34:ssä (B↑ mallissa MK-61/52). Jos YYGOG on edelleen ilmaisimen päällä, ylivuoto on tapahtunut ja jos numero on virheellinen toiminto, jonka "syyllinen" on tämä numero.
  2. Painamalla VP-näppäintä. Mahdolliset ilmaisimet ja vastaavat virheet:
    • "YGGOG 00" - ylivuoto (ensimmäisen "tason" supernumero)
    • "G.GGOG 00" - jako nollalla, logaritmin laskenta nollasta, tehofunktio 0 0 , virheellinen toiminta K-näppäimellä.
    • "EG.GOG 00" - tg 90 °:n laskenta.
    • "E.GGOG 00" - arsinin tai arkosinin laskenta luvun, joka on suurempi kuin 1.
    • "YERGOG 00" (desimaalipiste samassa paikassa kuin argumentissa) - eksponentiaalisen funktion positiivinen argumentti on suurempi kuin sallittu
    • "−YERGOG 00" (desimaalipilkku samassa paikassa kuin argumentissa) - eksponentiaalisen funktion negatiivinen argumentti on suurempi kuin sallittu arvo, tai negatiivisen luvun neliöjuuren erottaminen.

Toinen menetelmä ei toimi ensimmäisen jälkeen ja päinvastoin. Molempien diagnostiikkatietojen käyttämiseksi sinun on suoritettava ohjelma kahdesti samoilla lähdetiedoilla. Manuaalisessa laskentatilassa tämä myös toimii, mutta ei yleensä ole välttämätöntä, koska on jo selvää, mikä toimenpide johti virheeseen.

Käsky B/0 aliohjelman ulkopuolella

Aliohjelmien päättämiseen tarkoitettu B/0-käsky, kun sitä käytetään pääohjelmassa, hyppää yleensä osoitteeseen 01. Tätä käytetään joskus lyhentämään ohjelmaa korvaamalla kaksi BP 01 -käskyä yhdellä B/0:lla. Tätä ominaisuutta käytetään erityisen usein käytettäessä ohjelman osoiteavaruutta epätyypillisellä tavalla (katso Pää- ja sivuhaarat ). Joskus tämän ominaisuuden käyttö johtaa kuitenkin väärään tulokseen.

Syynä tähän ominaisuuteen on se, että osoitteet, joista alirutiineja kutsutaan, kirjoitetaan viiden rekisterin paluupinoon ja B/0-käsky poistetaan siitä ja paluu tapahtuu yhtä suurempaan osoitteeseen. Jos paluupinoon ei ole kirjoitettu mitään, siihen tallennetaan nollia ja B / 0 -käsky hyppää osoitteeseen 01. Sama tapahtuu, jos paluupinoon ei syötetä enempää kuin neljä osoitetta aliohjelmia kutsuttaessa ja ne kaikki olivat haettu palautettaessa - seuraava haettu osoite on nolla.

Kuitenkin, jos paluupinoon työnnetään viisi osoitetta, kun ensimmäinen niistä pompataan, viimeiseen rekisteriin muodostuu "sabotööriosoite", jonka molemmat numerot ovat samat kuin aiemmin siellä olleen osoitteen viimeinen numero. Kun paluupinosta pompataan muita osoitteita, osoite-sabotööri täyttää kaikki rekisterinsä, ja sitten jos B/0-käskyä käytetään aliohjelman ulkopuolella, hyppy ei etene oikein [8] .

Voit tyhjentää paluupinon ZGGOG:lla ilman mantissaa: Cx B↑ ÷ VP Fx 2 Cx ↔ Cx

Epäsuora pääsy rekisteriin, joka sisältää lukualueen ulkopuolella

Jos jokin rekistereistä 7-E sisältää luvun, jonka modulo on pienempi kuin yksi, siihen epäsuorasti käsiteltäessä muodostuu siirtymäosoite, joka määräytyy mantissan ja järjestyksen [8] viimeisen numeron perusteella (katso taulukko, M N  - N. numero mantissa)

Tilauksen viimeinen numero Hyppyosoite negatiivisille tilauksille Hyppyosoite positiivisille tilauksille
yksi M 7 M 8 M 1 M 2
2 M 7 M 8 M 2 M 3
3 M 7 M 8 M 2 M 3
neljä M 6 M 7 M 4 M 5
5 M 5 M 6 M 5 M 6
6 M 4 M 5 M 6 M 7
7 M 2 M 3 M 7 M 8
kahdeksan M 2 M 3 M 7 M 8
9 M 1 M 2 M 7 M 8
0 0M 1 0M 1

PSC-tila

"Pseudolaskentatila" on tekniikka mielivaltaisten aakkosnumeeristen yhdistelmien generoimiseksi mikrolaskimen näytöllä, ns. "sanat". Se perustuu PMC:n siirtoon erityiseen toimintatilaan, jossa ohjelmamuistiin tallennetut koodit (tai pikemminkin niiden ensimmäiset merkit) luetaan ilmaisimen päälle. Kuvattu muistiinpanossa "News of eggogology" "Techniians - Youth" nro 6 vuodelta 1987 [15] . Tässä artikkelissa S. Bannikov, I. Emelyanov, B. Muradov on nimetty PFC-tilan löytäjiksi. Tilalle annetaan myös vaihtoehtoisia nimiä - "epänormaali", "keräystila".

Ennen PMC:n syöttämistä PSC-tilaan kirjoitetaan muistiin lyhyt ohjelma, jonka komentokoodit alkavat kaikilla mahdollisilla merkeillä (mukavuussyistä käytetään yleensä kaksoismerkkejä muodossa 00 , 11 , ..., EE ) .

Suora siirtyminen PSC-tilaan tapahtuu antamalla komentoja 6 F10 x K-VP. 0 V/O V/O BP V/O . Tämä menettely on pohjimmiltaan tapa saada tyhjä-tyhjä komento. On myös mahdollista siirtyä PSC-tilaan "pitkien hirviöiden" -alueelta.

PSC-tilassa avainarvot muuttuvat. V/O :ta ja S/P :tä käytetään nyt siirtymiseen offline-tilasta ohjelmointitilaan ja päinvastoin. Komennot FPRG ja FABT sekä mikä tahansa "supernumero" palauttaa PMK:n normaaliin toimintaan. SH - näppäimillä voidaan liikkua muistiin tallennettua ohjelmaa pitkin. BP- ja PP - näppäimet siirtävät katselu- ja lukupisteen 10 osoitteeseen syvälle ohjelmaan ja mahdollistavat myös ilmaisimen numeron käytön suoraan komentokoodeilla.

VI - näppäin lukee ilmaisimen ensimmäiseen rekisteriin merkin nykyisestä ohjelmamuistiosoitteesta. "Sanojen" muodostus alkaa muotoa 11111111 olevalla työkappaleella , haluttu merkki luetaan vastaavasta ohjelmamuistisolusta ja sitten komennoilla VP /-/ 1 PA KIPA IPA hylätään viimeinen rekisteri työkappaleesta. , ja ensimmäisen tilalle kirjoitetaan nolla, joka voidaan VP -komennolla korvata seuraavalla merkillä.

Menetelmän avulla voit syöttää aakkosnumeerisia yhdistelmiä ja välilyöntiä (dummy). Välilyönti luetaan mistä tahansa "pimeän alueen" osoitteesta. PMK:n toiminnan erityispiirteiden vuoksi "nuken" ilmestymisen jälkeen tarvitaan kuitenkin lisätoimenpiteitä (pinon tyhjennys, monimutkainen komentosarja työkappaleen lyhentämiseksi, ShG- näppäinten käytön rajoitusten noudattaminen ) .

PSCh-tilaan siirtymiseen voidaan teknisesti käyttää mitä tahansa aakkosnumeerista tyhjää kohtaa, joka sisältää 6 - 8 merkkiä ja alkaa G-, E- tai "tyhjällä" merkillä, muut alkumerkit antavat virheen "VP-piste"-näppäimiä painettaessa. VP-piste- numerokomentojen jälkeen laskin on jo PFC-tilassa K -näppäin aktivoituna  - tämä voidaan tarkistaa painamalla 0 (poistaaksesi K-näppäimen käytöstä), sitten V / O ja C / P - ne toimivat jo uudella tavalla. Mutta PSCh-tilan käyttö on vaikeaa, koska sitä syötettäessä alkuperäinen aakkosnumeerinen tyhjä kirjoitetaan paluupinoon alkaen 3. numerosta, ja joka kerta kun painat V / O tai BP, "return" tapahtuu otettuun osoitteeseen. tästä pinosta (V/O-komento lisää siihen 1). Jos paluu "pimeän alueen" osoitteeseen tapahtui komennolla V / O, laskin poistuu PSC-tilasta. Siksi, kun poistat osoitteen E0 pinosta, sinun on painettava BP-painiketta V / O: n sijaan. Esimerkki:

(E000000.) VP-piste 0 (00 0,0 51) 0 (E000000.) V/O (00 00 0,0 61) V/O (.E.1.) V/O (.E.2.) S/P ( .E.3.) — tapahtui poistuminen PSC-tilasta ohjelmointitilaan.

(Е000000.) VP piste 0 (00 0.0 51) 0 (Е000000.) V / O (00 00 0.0 61) BP (00 00 0.0 E0) V/O ( 00.01) V/O ( 00.01 ) 0 S / 0 P .) - laskin pysyi PSC-tilassa, palautuspino tyhjennettiin.

(E89-LCG.) VP-piste 0 (00 0,0 51) 0 (E89-LCG.) BP (00 00 0,0 60) BP (00 00 0,0 E8) BP (näyttö pimenee) - siirtyy osoitteeseen "9-" led roikkuvalle PMK:lle.

VP-komennon dokumentoimattomat ominaisuudet

VI-komento muuttaa 0:n 1:ksi (tässä tapauksessa vain X-rekisterin arvo muuttuu pinossa, loput pinorekisterit säilyttävät arvonsa). Tätä käytetään tekijälaskentaohjelmassa sen pienentämiseen korvaamalla useita käskyjä (ehdollinen haara, sen osoite, syöttämällä yksi) yhdellä VI-käskyllä ​​[16] .

Lisäksi VP-komento on ainoa komento (sekä MK-54:ssä että MK-61:ssä), joka toimii oikein manuaalisessa ja vaiheittaisessa (!) tilassa, mutta voi toimia väärin automaattitilassa. Tämä vivahde tuo aloittelijat stuporiin (koska komento toimii oikein vaiheittaisessa tilassa, joten virhettä ei ole mahdollista löytää ohjelmasta), ja virhe voidaan korjata vain korvaamalla "numero"-komennot , VP "numero"-komennoilla, F10 X , " x" , mutta tämä vaatii ylimääräisen vaiheen.

WP joukkue . (desimaalipilkku), joka suoritetaan mille tahansa numerolle, paitsi E- tai G-alkuisia yhdistelmiä, tulostaa välittömästi YYGOG:n, ja jos muistissa on tilaa kahdelle komennolle, se on paljon nopeampi kuin muut keinotekoiset YYGOG-tulostusmenetelmät - virheelliset toiminnot ja K− , jotka aiheuttavat noin 3 sekunnin tauon. Tavallinen "pitkä" EGGOG ohittaa yhden komennon, mutta instant (VP .) ei.

Pää- ja sivuhaarat

Neuvostoliiton ohjelmoitavissa laskimissa Elektronika B3-34 , MK-54 , MK-56 , MK-61 , MK-52 (ja vastaavissa) fyysistä RAM-muistia on yhtä paljon kuin PMK-käsikirjassa on mainittu, mutta laitteiston toteutuksen ominaisuuksien vuoksi. , on olemassa virtuaalinen 160-vaiheinen sykli [17] , joka koostuu 3 haarasta: "pää", "lyhyt puoli" ja "pitkä puoli" [18] .

Päähaara  on se, joka on ilmoitettu laskimen ominaisuuksissa "Ohjelman vaiheiden lukumääränä". B3-34-perheessä päähaara ottaa 98 askelta - osoitteet "00" - "97", MK-61 ja MK-52 105 askelta - "00" - "104" (näytetään muodossa "−4" näytöllä). Jos päähaaran lopussa oleva laskin ei ole havainnut C/O-, C/P- tai BP-komentoa, askellaskuri jatkaa kasvuaan ja laskin siirtyy lyhyen sivuhaaran alueelle.

Lyhyt sivuhaara kestää ohjelman 14 askelta - osoitteesta "98" osoitteeseen "L1" ( MK-61 ja MK-52 : 7 askelta osoitteesta "−5" osoitteeseen "L1"). Nämä osoitteet vastaavat todellisia osoitteita "00" - "13" ( MK-61 ja MK-52 : "00" - "06"). Jos laskin ei täytä komentoja V/O, C/P tai BP näissä osoitteissa, askellaskuri jatkaa kasvuaan ja laskin siirtyy pitkän sivuhaaran alueelle.

Pitkä sivuhaara kestää 48 ohjelman vaihetta - osoitteesta "L2" - "F9". Nämä osoitteet vastaavat oikeita osoitteita "00" - "47"). Jos laskin ei täytä komentoja V / O, C / P tai BP näissä osoitteissa, askellaskuri jatkaa kasvuaan ja laskin siirtyy päähaaraan. Pitkässä sivuhaarassa "pimeä vyöhyke" alkaa osoitteesta "C1": päähaaran vastaaviin osoitteisiin kirjoitetut komentokoodit eivät näy indikaattorissa PRG-tilaan vaihdettaessa, mutta ne suoritetaan oikein laskentatilassa.

Graafisesti tämä prosessi näyttää tältä (esimerkiksi MK-52 ):

Tämä dokumentoimaton ominaisuus ei sallinut dokumentoitua pituutta pidempien ohjelmien kirjoittamista, mutta sen avulla vältyttiin ehdottomasta nollaosoitteeseen hyppäämisestä kahdesti (joskus B/O-komento sijoitettiin nollaosoitteeseen).

Virheet laskimissa

Dokumentoimattomien ominaisuuksien lisäksi jotkin laskimet sisälsivät virheitä.

Virheet B3-21:ssä joissakin julkaisuissa

Mikrolaskimen B3-21 ensimmäisissä julkaisuissa tapahtui virhe, kun lisättiin numero, joka sisälsi seitsemän yhdeksää mantissassa ja numero, joka on yli 4 mantissan kahdeksanteen (ei-osoittamiseen) numeroon, suuremmalla numerolla; esimerkiksi lisäämällä 9,9999999 ja 10 on 120.

Myös joissakin B3-21:ssä monimutkaisia ​​operaatioita (esimerkiksi siniä) laskettaessa rengaspinon yhden rekisterin sisältö voi olla vääristynyt.

Jotkut B3-21:t suorittivat virheellisesti PP-aliohjelman kutsukäskyn, jos se sijaitsi jossakin osoitteista 55, 65, 70, 80, 91 tai 92. Sen sijaan, että olisi mennyt aliohjelmaan, he suorittivat käskyn, jonka koodi on sama kuin osoite. aliohjelmasta [19] .

Joidenkin julkaisujen B3-34 virheitä

Joissakin mikrolaskimissa B3-34 eksponentiooperaatio Fx y suoritettiin virheellä, jos edellinen operaatio oli kaksipaikkainen (paitsi eksponentio) ja tuloksena saatiin luku, jonka mantissan kahdeksannessa numerossa on luku 5 tai 7 Tämä virhe voidaan välttää, jos ennen Fx y -operaation suorittamista painat lisäksi näppäimiä F1/x F1/x [20] (joka korvaa kaksoisoperaation tuloksen samalla yksittäisen toimenpiteen tuloksella, jossa tämä virhe tapahtuu ei tapahdu). Muut "toisensa poissulkevat" toiminnot (esim. Fx 2 F√ tai Fe x Fln) ovat vähemmän sopivia tähän tarkoitukseen, koska ne voivat johtaa ylivuotoon.

Laskimien varhaisissa julkaisuissa oli mahdotonta lopettaa aliohjelmaa yksittäisten operaatioiden Fsin, Flg, F√ jne. komennoilla ja myös muuttaa laskentatuloksen etumerkkiä /−/-näppäimellä [21] .

Virheitä MK-61:ssä ja MK-52:ssa

Kmax-operaatio pitää nollaa suurimmana lukuna. Tätä vikaa on käytetty joissakin ohjelmissa [22] .

Joissakin operaatioissa, esimerkiksi määritettäessä negatiivisen luvun murto-osaa, ilmestyy "negatiivinen nolla" (näkyy indikaattorissa muodossa "-0"), joka käyttäytyy kuin negatiivinen luku ehdollisten siirtymien aikana [22] .

Virheet ja irrationaaliset päätökset BRP-3- ja BRP-4-muistilaajennusyksiköissä

Lohkossa BRP-3, ohjelmassa 16, käytettiin virheellistä kaavaa :n asemesta ja ohjelma sen mukaisesti käännettiin väärin. Samassa paikassa kompleksiluvun argumentin määrittämiseen käytetään kaavaa ottamatta huomioon sekä merkkejä että , ja sitä, että reaaliosa voi olla nolla. Tämän seurauksena kohdassa , argumentin määrittelyssä tapahtuu virhe 180°:lla ja kohdassa  , jako nollalla pysähtyy [23] .

Lohkossa BRP-4 "kuun" -peliohjelmassa "Space landing" fyysinen malli on virheellinen, mikä voi johtaa merkityksettömiin tuloksiin. Esimerkiksi avaruusaluksen vapaassa pudotuksessa Kuuhun suurelta korkeudelta kraatterin syvyys voi olla alle 8 mm, vaikka nopeus kosketushetkellä Kuun pintaan ylittää 3000 m/s. Samassa lohkossa mikrolaskin "rikkoo sääntöjä" peliohjelmissa "Life" ja "Magaraja". Useita ohjelmia on laadittu irrationaalisesti ja niitä voidaan vähentää merkittävästi. Esimerkiksi ohjelmaa tietyn tilavuuden sylinterimäisen tölkin hitsien minimipinnan tai minimipituuden löytämiseksi voidaan pienentää 15 askelta käyttämällä yksinkertaisempia kaavoja [24] .

Katso myös

Muistiinpanot

  1. 1 2 Pehmeä lasku! // Tekniikka nuorille: päiväkirja. - 1985. - kesäkuuta. - S. 56 .
  2. Mihail Puhhov. "Kon-Tiki": polku Maahan // "Teknologia - nuoriso", 1985, nro 8-12; 1986, nro 1-4.
  3. Pehmeä lasku! // "Teknologia - nuoriso": aikakauslehti. - 1985 - joulukuu. - S. 48-49 .
  4. Google Code Archive - Pitkäaikainen tallennus Google Code Project Hostingille. . code.google.com . Haettu: 26.10.2022.
  5. MK-61: historia, emulointi, laite . Habr . Haettu: 26.10.2022.
  6. venäläinen laskimen emulaattori . pmk.arbinada.com . Haettu: 26.10.2022.
  7. "Teknologia - nuoriso", 1986, nro 1, s. 54.
  8. 1 2 3 4 5 Koulu aloitteleville ohjelmoijille. Oppitunti kaksikymmentäkuusi. - " Tiede ja elämä ", 1989, nro 11, s. 124-130
  9. "Teknologia - nuoriso". 1986, nro 7.
  10. 1 2 Alfred Klomp. Joitakin kokeiluja MK-61 ELECTRONICIN hakkerointiin. — http://www.alfredklomp.com/technology/mk-61/ Arkistoitu 28. lokakuuta 2008 Wayback Machinessa
  11. Ohjelmoitavat laskimet: laite ja käyttö / Ed. Ja.K. Trokhimenko. - M .: Radio ja viestintä, 1990. - s. 123-124.
  12. Aloittelevan ohjelmoijan koulu. Oppitunti kaksikymmentäkaksi. - "Tiede ja elämä", 1989, nro 1, s. 124-129.
  13. "Teknologia - nuoriso", 1986, nro 5, s. 52.
  14. "Tiede ja elämä", 1989, nro 4, s. 112.
  15. Munalogian uutisia. "Teknologia - nuoriso", 1987, nro 6, s. 54. — http://www.emulator3000.org/Books/TM/1987_06.djvu Arkistoitu 26. toukokuuta 2006 Wayback Machinessa
  16. L. M. Fink. Isä, äiti, minä ja laskin. - M .: Radio ja viestintä, 1988. - s. 71.
  17. PMK:n ohjeissa ei sanota mitään 160-vaiheisesta syklistä.
  18. " Teknologia - nuoriso ", 1986, nro 2, s. 56.
  19. Sergei Frolov. Neuvostoliiton laskimien historia. Osa II. — iNFUSED BYTES Online, http://www.enlight.ru/ib/also/calcs/calcs2.htm Arkistoitu 17. heinäkuuta 2012 Wayback Machinessa
  20. "Tiede ja elämä", 1984, nro 2, s. 66.
  21. V. P. Djakonov. Käsikirja mikrolaskimien laskemiseen. 3. painos, lisää. ja työstetty uudelleen. - M.: Nauka, Ch. toim. Fys.-Math. lit., 1989. - s. 41.
  22. 1 2 "Tiede ja elämä", 1988, nro 11, s. 84-85.
  23. Terveisiä BRP:ltä. - "Tiede ja elämä", 1990, nro 10, s. 115. - http://www.emulator3000.org/Books/SAL/1990_10.djvu Arkistoitu 2. lokakuuta 2011 Wayback Machinessa
  24. Ja toinen osa ... möykkyinen. - "Tiede ja elämä", 1991, nro 6, s. 130-131. — http://www.emulator3000.org/Books/SAL/1991_06.djvu Arkistoitu 2. lokakuuta 2011 Wayback Machinessa

Linkit