A MESZ I az első Magyarországon üzemelő programozható, digitális számítógép volt – azaz rövidebben ez volt az ország első számítógépe. Igaz, abban az időben ez a magyar szó még nem is létezett, így a MESZ I név is a „Műszaki Egyetem első elektromos számológépe” rövidítése volt. Ezen az oldalon a számítógépet mutatjuk be röviden.
A MESZ I és az M-3
Illik némi magyarázatot fűzni ahhoz, hogy „a MESZ I az ország első számítógépe volt”. A kijelentés így minden bizonnyal helytálló, ugyanakkor mindenképp ide kívánkozik, hogy a hazánkban működő első elektronikus számítógép az M-3 volt, mely pár hónappal a MESZ I elkészülte után kezdett üzemszerűen működni.
A MESZ I fő építőeleme ugyanis a telefonközpontokban használt jelfogó volt, az ilyen gépeket pedig elektromechanikus, avagy „nulladik generációs” gépeknek is nevezi az utókor. Az M-3 elektroncsövekből épült, szovjet tervek alapján és részben szovjet alkatrészekből, de nagyon jelentős hozzáadott magyar szellemi és fizikai munkával, így teljes joggal nevezhetjük azt is tetemes részben magyarnak. Elektroncsöves felépítése miatt az M-3 már elektronikus, „első generációs” számítógép volt. A gyakorlatban ez azt jelenti, hogy az M-3 működése nagyságrendileg gyorsabb volt és sokkal több memóriával is rendelkezett, mint a MESZ I. Ugyanakkor – szintén a felépítésükből fakadóan – az elektroncsöves számítógépek lényegesen gyakrabban hibásodtak meg, mint az elektromechanikusak.
Az összehasonlításnak ugyanakkor nincs sok értelme, hiszen a két gép eltérő céllal, eltérő körülmények között, eltérő költségvetésből készült. Továbblépve, minden bizonnyal az „elsőség” sem igazán fontos szempont, mindkét alkotásra egyaránt nagyon büszkék lehetünk.
Története
A MESZ I számítógép tervezője és jelentős részben építője és üzemeltetője Kozma László professzor, a Budapesti Műszaki Egyetemen Vezetékes Híradástechnika Tanszékének vezetője, a Villamosmérnöki Kar későbbi dékánja. Kozma a számítógépet 1955 körül kezdte tervezni, 1957-58-ban építették meg és 1958 novemberében már dokumentáltam működött. Körülbelül 1966-ig használták, majd 1967 elejére átkerült mostani helyére az akkori nevén Műszaki Emlékeket Nyilvántartó Csoporthoz, ez ma a Magyar Műszaki és Közlekedési Múzeum Műszaki Tanulmánytára.
A gép a BME St épületében működött, melynek főbejárata mellett a számítógépnek és alkotójának emlékét ma tábla, illetve dombormű őrzi.
Felhasználása
A MESZ I oktatási célokra készült. Kozma célja az volt, hogy a gép segítségével be tudja mutatni a hallgatóknak a digitális technika működését, amelyet akkoriban már a telefonközpontok vezérlésében elterjedten használtak.
Készült rá harmadfokú egyenletet megoldó program, öröknaptár, NB-I-es meccseket fordulóit sorsoló program, sőt még egy nagyon egyszerű orosz-magyar fordítóprogram is. Bár nem ez volt a fő felhasználási területe, kutatási-fejlesztési feladatokban is használták, például a BHG-s Horváth Gyula készített rá egy programot, amellyel a Kubába telepítendő magyar telefonközpontok méretezését végezte.
Felépítése
A számítógép alapvetően távbeszélő-központ alkatrészekből épült, hiszen az volt elérhető és Kozma ahhoz értett igazán. A fő építőeleme a jelfogó, pontosabban a BHG-ban gyártott R típusú lapos jelfogó volt. Ez azért is szerencsés választás volt, mert a gép elsősorban didaktikai célra készült, és a jelfogók működése szabad szemmel is látszik. Így a programot megállítva, illetve lépésenként futtatva végigkövethető volt a gép belső működése a program végrehajtása során.
Jelfogós szekrények
A MESZ I négy jelfogós szekrényt tartalmaz, melyek mindegyikében 27 oszlopban és 24 sorban összesen 648 jelfogó van. A teljes gép tehát közel 2600 jelfogóból áll.
Az első szekrény a memória, mely 12 darab 33 bites gépi szót képes tárolni. Ez – mai szóval – nem egész 50 bájt, egy kisebb ruhásszekrénnyi helyen! A második és harmadik szekrényt lehet a mai értelemben vett processzornak tekinteni. A negyedik szekrény utólag, 1960-ban készült és újabb 12 gépi szóval megduplázta a MESZ I tárolókapacitását.
Vezérlőasztal
Egy korabeli iskolapadból készült. Frajka Béla elmondása szerint az akkori egyetemi adminisztrációtól ezt a teljesen hétköznapi padot is meglehetősen nehéz volt elkérni… A padra a következők vannak szerelve, balról jobbra:
- A tápegység mérőműszerei
- Programlap-leolvasó. Egyedi gyártás, Kozmáék készítették. Egyszerre egy lapot lehetett beletenni. A formája miatt mi csak „gofrisütő”-nek becézzük.
- Adatbeviteli egység. Egy telefonközponti alkatrészből (távhíváshoz számbeadó) készített billentyűzet és néhány vezérlő kapcsoló, nyomógomb. Ezekkel lehetett a program futása során a bemeneti paramétereket megadni, illetve a program indítására is minden bizonnyal ez a rész szolgált.
- Hibakereső, lépésenként futtató modul. „Kulcsoknak” nevezett kapcsolókból álló doboz, mely segítségével a programot meg lehetett állítani, lépésenként futtatni. Hosszú kábellel csatlakozik az asztalhoz, így el lehetett vinni a szekrények elé és onnan irányítani az egész gépet és ily módom lépésről lépésre nyomon lehetett követni a relék állapotát.
- Lámpasor az asztal hátsó éle mentén. Minden lámpa egy programlépésnek felel meg, így lehetett nyomon követni, hol tart a program végrehajtása. Egy programlapra 45 utasítás fért, ennek megfelelően 45 lámpát találunk a vezérlőasztalban.
- Nyomtató. Egy – már akkor is igen régi – elektromos írógépet alakítottak át nyomtatóvá úgy, hogy a számbillentyűk és néhány fontosabb egyéb billentyű alá mágnest szereltek, melynek meghúzásával az írógép a számítógép által vezérelt nyomtatóként működött. Ez volt a gép egyetlen kimeneti egysége, szó sem volt még a mai értelemben vett monitororról.
Tápegység
A hálózati feszültségből állította elő a gép működéséhez szükséges 60 V egyenfeszültséget.
A gép működése
Jelenleg a gép működéséről még keveset tudunk. Itt azokat az ismereteket foglaljuk össze amik jelenleg biztosnak mondhatóak.
A gép ún. egycímes felépítésű.
Egy programutasítás 12 bites, ebből 5 bit az utasításkód és 7 bit az érintett memóriacím. Ez azt jelenti, hogy A MESZ I-nek összesen 32 különböző utasítása volt, valamint maximum 128 memóriarekeszt tudott megcímezni.
E 128 elegendő is volt, hiszen a gép írható/olvasható memóriája (RAM) eredetileg mindössze 12 szóból állt, később ezt bővítették 24 szóra. Emellett a gép memóriája tartalmazott egy csak olvasható részt (ROM), amelybe különböző konstansokat építettek („huzaloztak”) be. Ilyen konstansok voltak a π, az e (azaz az Euler-féle szám), továbbá néhány gyakori hatványérték.
A memóriában egy szó 33 bites volt és elsősorban numerikus értékek tárolására szolgált. A számokat kettedes törtes, lebegőpontos alakban tárolták: 27 biten tárolták a mantisszát, és 6 biten a karakterisztikát (exponenst). A 27 bites mantissza körülbelül 8 decimális számjegynek felel meg.
Az adatbevitel és az eredmények megjelenítése 8 értékes jegyet tartalmazó decimális tizedes tört formában történt, az átváltást a gép automatikusan elvégezte.
Az utasításokat programlapra kellett lyukasztani. A futtatás is innen történt: a vezérlő egyesével leolvasta és végrehajtotta az utasításokat, azaz nem másolta a futás előtt előzetesen a memóriába – a gép tehát nem volt Neumann-architektúrájú. Egy programlapra 45 utasítás fért. Valójában egy lapon 30∙24 lyuknak volt hely, amelyet a gép 60 darab 12 bites adatként dolgozott fel. A 60-ból 45 volt utasítás, a maradék pedig számkonstans lehetett. Ha a 45 utasítás kevésnek bizonyult, akkor annak végrehajtása után egy újabb programlap behelyezésével a program beolvasása és végrehajtása folytatható volt.
A gép műveletvégző egysége alapvetően egy bináris összeadóra épül, azonban a kiegészítő áramkörökkel a bináris szorzás és osztás is elvégezhető volt: a MESZ I binárisan, maximum 27 lépésben tudott két számot összeszorozni. Ugyanígy a műveletvégző egység elemi relációk (kisebb, nagyobb, egyenlő) meghatározására is képes volt. Jelenleg dolgozunk annak a megértésén, hogy pontosan hogyan történt a műveletvégző egységben a lebegőpontos számok összeadása a helyiértékeknek megfelelően. Még nem tudjuk, hogy a logaritmusszámítás és a négyzetgyökvonás milyen mértékig volt hardverrel támogatott és mennyire kellett azt a programban megírni. A fennmaradt leírásokban mindenesetre szerepel, hogy ezeket a műveleteket gyakran használták.
A gép utasításkészletéről szinte semmit nem tudunk, de az biztos, hogy adatmozgató és elágazó utasítások is voltak, utóbbi lehetővé tette ciklusok megvalósítását is.
A gép legfontosabb adatai
- Szóhossz: 33 bit (27 bit mantissza + 6 bit karakterisztika)
- Memória
- írható és olvasható adattároló (RAM): 2 ∙ 12 szó (mai szóhasználattal 792 bit, avagy 99 bájt)
- csak olvasható adattároló („huzalozott ROM”): néhány (jelenleg ismeretlen számú és tartalmú) konstans érték
- programtároló (csak olvasható): 45 utasítás külső kártyán (egy utasítás hossza 12 bit) és 15 ∙ 12 = 180 további adatbit kártyánként
- Utasításkészlet: 32 utasítás, melyek között minden bizonnyal szerepeltek az alábbiak:
- összeadás
- kivonás
- szorzás (feltehetően osztás is)
- relációk (kisebb, nagyobb, egyenlő)
- adatmozgatás
- feltételes utasítás (elágazás)
- Műveleti sebesség: jelenleg nincs rá pontos adatunk
- Órajel-frekvencia: feltehetően nem alkalmaztak órajelet (aszinkron felépítés)