Virtuális számológép-múzeum
Menü
C/CE
Számológépek
Logarlécek
Egyéb
Gyártók
Keresés
Switch to English
Vissza az albumba
Labora Mannheim
SI-computer
1978
RFT
MR 4110
1983-90

EMG HUNOR 301

Rövid története
1973-74-ben, a frissen piacra került EMG-666 programozható számológép sikereit látva, felvetődött a gondolat, hogy egy kisebb teljesítményű, egyszerűbben kezelhető, olcsóbb programozható számológépet fejlesszenek ki. Az akkoriban nagyobb számban behozott Compucorp típusokkal szerzett tapasztalatok alapján indult meg a tervezés. A kezdeti elképzelések némileg módosultak, a Rockwell áramkörök helyett itt az Intel cég 4040-es mikroprocesszorát és annak kiegészítő elemeit használták fel a Hunor 301-es típus elkészítéséhez. A fejlesztés közben szerzett tapasztalatok alapján a későbbiekben több mikroprocesszor-alapú készülék gyártása indulhatott meg.

A gyártás 1977-ben indult, de már ekkor látható volt, hogy a különböző okok miatt korlátozottan használható típusból sürgősen el kell készíteni a továbbfejlesztett változatot, ami többek között az igencsak hiányzó háttértárat, a kisméretű kazettás magnót is tartalmazhatta volna. Az amúgy igen hasznos gép eladhatóságát a Klixon-rendszerű, nem a megbízható működéséről híres billentyűzete, a beépített hőnyomtató minősége csak tovább rontotta. A minisztériumi irányelveknek megfelelően az EMG profiltisztítási tevékenységével összefüggésben, 1979-ben a számológépgyártást - az EMG-666-os kivételével - teljes mértékben megszüntették, így a tervezett Hunor 301M típus sem készülhetett el.

Mint ahogy a képeken is jól látható, a gép belsejében tátongó üres tér a későbbi módosított változat igényeinek megfelelően, a magnó mechanikáját tartalmazta volna, ugyanígy helyet hagytak az opcionálisan beépíthető további ROM és RAM áramkörök számára is.

Gyártó:Elektronikus Mérőkészülékek Gyára (Magyarország)
Gyártási év:1977
Méret:31×48×11 cm
Tömeg üzemkészen:n.a.
Jelleg:programozható tudományos asztali
Kapacitás:10/10+2 számjegy (bevitel, kijelzés és nyomtatás)
12+2 számjegy (belső pontosság)
Működési mód:algebrai
CPU:Intel i4040
Regiszterek:2 általános (művelet-tárolással)
1 konstans (művelet-tárolással)
9 zárójel (művelet-tárolással)
50 memória (aritmetikával)
Jellemzők:+/-előjelváltás (negatív számok közvetlen beírása) RVregisztercsere (X-Y) Fixfixpontos számkijelzés: a felsorolt számoknak megfelelő számú tizedesjegyek kijelzése (0-9) Scitudományos (exponenciális) számkijelzés Sqrnégyzetgyökvonás x2négyzetreemelés pipi (3,1415..) értéke behívható 1/xreciprokszámítás trigtrigonometrikus függvények (sin, cos, tg és ezek inverzei: arc sin, arc cos, arc tg) logexponenciális és logaritmusfüggvények (10-es és e-alapú) yxhatványozás P-Rkoordináta-átszámítások derékszögű és poláris koordinátarendszerek között
Kijelző:15 digites VFD (15×NEC LD8035F)
Tápellátás:hálózati (220V)
Programozási mód:összevont billentyűkód-tárolású
Programkapacitás:512 lépés
Teszteredmények:trigonometriai:az arcsin(arccos(arctg(tg(cos(sin(60°)))))) eredménye, referenciaérték: 60. 60.0000010297
exponenciális:a 0.999160000 eredménye, referenciaérték (első 14 jegye): 3.0068804206375×10-70 3.00688042238E-70

A Hunor 301

A Hunor 301 belülről 1.

A Hunor 301 nyomtatott áramköre
Részletes leírás

A gép használata

A Hunor 301 kétféle üzemmódban használható: futtatási (RUN) és programírási (LOAD) üzemmódban, melyek között a jobb oldali tolókapcsolóval tudunk váltani. RUN üzemmódban négyféle kijelzési mód közül választhatunk, melyek a kijelzőn mindenkor az X, az Y, ill. a K regiszter tartalmát jelenítik meg. RUN/PC állásban a kijelzőn a programszámláló aktuális állása és az ott elhelyezkedő utasításkód kerül megjelenítésre. Kézi számolásokhoz az üzemmódkapcsolót állítsuk RUN/X állásba.

A gép alapvetően algebrai logika szerint működik, de a szokottól eltérően kezeli mind a műveleti, mind pedig a konstansregisztereket. A négy alapművelet, a hatványozás és a koordináta-konverzió mindkét regisztert felhasználja, és a szokott módon működnek, pl. 2 + 3 × 5 = eredménye 25. A konstansregiszter az = hatására töltődik fel, mégpedig minden esetben az X regiszter tartalmával, azaz a második operandussal. Az ismételt műveletvégzés a szokott módon végezhető (az = ismételt lenyomásával), de újabb számokkal történő műveletvégzéskor a műveleti billentyűt is működtetni kell, különben a műveletet a konstans helyett az előző művelet eredményével végzi a gép. Például: 2 × 3 = eredménye 6, a konstansregiszterbe pedig 3 kerül. = lenyomására az eredmény 18 lesz, ismételt lenyomásra 54 stb. Ha az első szorzás után csak egy 5-ös számot írunk be és lenyomjuk az = billentyűt, az eredmény 30 lesz (6×5). Furcsasága a gépnek, hogy ennél a példánál maradva, mind az Y, mind a K regiszter tartalma 5 lesz. A helyes működéshez az 5-ös számjegy beírása után a × gombját és az = billentyűt is használnunk kell, a konstansregiszterrel való szorzáshoz, az eredmény ugyanis csak ekkor lesz 15 (3×5).

A hatványozás ettől eltérően használandó, ugyanis az X és az Y regiszterben tárolt számokkal az YX billentyű lenyomásakor a hatványozást végre is hajtja. Így a 24 (egyik lehetséges) billentyűzése a következő: 2 X↔Y 4 YX. Ebből következik az is, hogy konstanssal való hatványozás a géppel nem végezhető.

A kijelzés fixpontos, vagy exponenciális lehet. Bekapcsoláskor a gép 0 tizedesjegyre csonkolja az eredményeket. A fix tizedesek számát a 2nd SDP és a megfelelő számbillentyű megnyomásával tudjuk beállítani, az exponenciális kijelzésre a 2nd SDP +/- billentyűzéssel térhetünk át, ilyenkor a kijelzés mindig 10+2 jeggyel történik.

A CLX gomb az X regiszter törli, a többit változatlanul hagyja, így tulajdonképpen a CE funkciót látja el. A C gomb a műveleti regisztereket (X, Y) törli, a konstansregisztert azonban nem, az a fentebb ismertetett módon továbbra is felhasználható.

A gép által biztosított 50 memóriaregisztert igen sokféleképpen felhasználhatjuk számításainkhoz. A memóriaregiszterbe tárolás (ST), a memóriaregiszterből való előhívás (RC), valamint a memóriaregiszter értékével való csere (EX) alapból az X regiszter tartalmát használja fel, de az X↔Y billentyű használatával lehetőségünk van mindezeket az X helyett az Y regiszterrel elvégezni, ugyanígy az = segítségével a K konstansregisztert használhatjuk fel.
Mind a négy alapműveletet, az INC, 2nd DEC, 1/x és x2 utasítást közvetlenül elvégezhetjük egy adott memóriaregiszter tartalmával, úgy, hogy az eredmény a szokott módon a memóriaregiszterben (ST használatakor), az X regiszterben (RC használatakor), vagy mind az X, mind pedig a memóriaregiszterben (EX használatakor) képződhet. Itt is használhatjuk az X↔Y, ill. az = billentyűt, ekkor az X regiszter helyett mindenütt az Y, ill. a K regiszter tartalmát használja fel, illetve az eredmény is ott képződik (RC, EX esetén).
Indirekt címzésre is van lehetőség, az INDIR gomb lenyomásával. Ilyenkor nem az adott memóriaregiszterrel történik a műveletvégzés, hanem az adott memóriaregiszterben tárolt számú memóriaregiszterrel. Ez legfeljebb 15-ös mélységben egymásba is ágyazható.

Példák:
6 ST 05, az 5-ös számú memóriaregiszterbe tárolja el a 6 értéket.
4 ST + 47, a 47-es számú memóriaregiszterhez hozzáad 4-et és tárolja az 5-ös memóriaregiszterben, X változatlanul hagyása mellett.
3 × 6 EX X↔Y 47, a 47-es számú memóriaregiszter tartalmát az Y regiszterbe írja, az Y regiszter korábbi értékét (itt a 3-at) pedig a 47-es memóriaregiszterbe írja.
EX = INC INDIR 05, az 5-ös számú memóriaregiszterben tárolt számú memóriaregiszter (itt éppen a 6-os) tartalmához egyet hozzáad, majd az eredményt visszaírja a 6-os memóriaregiszterbe, és a K regiszterbe is.
RC = INDIR INDIR 02, a 2-es számú memóriaregiszterben tárolt számú memóriaregiszterben tárolt számú memóriaregiszter tartalmát előhozza a K konstansregiszterbe.

A 00 címen lévő memóriaregiszternek speciális szerepe van: a benne tárolt számmal jelölt memóriaregiszterbe tárolhatjuk az X regiszter értékét a SEND billentyű lenyomásával úgy, hogy a tárolás után a 00-ás memóriaregiszter tartalmát a gép eggyel megnöveli. Ez egy adott címtől kezdődően lehetővé teszi érték-sorozatok egyszerű tárolását. a 2nd CALL utasítás viszont a 00-ás memóriaregiszterben tárolt értéknek megfelelő memóriaregiszter tartamát írja be X-be, és ugyanígy hozzáad egyet a 00-ás memóriaregiszter tartalmához.

Például, ha a 2-es hatványsort szeretnénk tárolni a 20-as memóriaregisztertől kezdődően:
20 ST 00
2 = SEND × = SEND = SEND = SEND ...

Programozás

A program bebillentyűzése az üzemmódkapcsoló LOAD/PC állásában történik. A kijelzés az éppen soron következő programrekesz címét (a PC, azaz a programszámláló értékét), illetve az ezen a címen lévő utasítás kódját mutatja. Bekapcsolás után az összes címen 000 érték található, ez egyben a 0 számbillentyű kódja is. Ezért van szükség minden esetben a program végén egy 2nd END utasítást elhelyezni, különben az utolsó értelmes utasítás végrehajtása után folyamatosan 0-s számjegyek bevitelét hajtaná végre a gép. Számítási eredmények megjelenítéséhez elengedhetetlen a program megállítása, amelyet a START utasítással érhetünk el. Ugyanezen gomb megnyomására folytatódik a program végrehajtása. Lehetőség van a programba rövid ideig tartó szünetet tenni a 2nd Cszumma billentyűkkel, ezen idő alatt a kiválasztott regiszter tartalma látható a kijelzőn.

Programozási üzemmódban a FEED és a STEP kivételével minden billentyűfunkció programozható. Utóbbival RUN üzemmódban lépésenként hajthatjuk végre a programot, LOAD üzemmódban pedig egyesével lépkedhetünk előre a programtárban, mindig a soron következő utasítást kijelezve. A program hibakeresésénél igen hasznos funkció az, hogy megválaszthatjuk a kijelzésre kerülő regisztert: a szokványos X kijelzőregiszter mellett az Y műveleti, valamint a K konstansregiszter is kijeleztethető, RUN/PC állásban pedig a kijelzés ugyanolyan, mint LOAD/PC állásban, azaz a mindenkor végrehajtás előtt álló utasítás címét és kódját mutatja.

A 2nd H.ADD lenyomásra az aktuális programtár-címre egy START utasítás kerül beszúrásra úgy, hogy a további utasítások egy bájttal automatikusan eltolódnak.

A programban visszafelé lépkedésre nincs lehetőség, egy adott címen lévő utasítás csak a RUN üzemmódok valamelyikébe való visszakapcsolással, a JUMP lenyomásával, a cím bebillentyűzésével, majd LOAD üzemmódba való visszakapcsolással jeleztethető ki.

A C billentyű nemcsak a két műveleti regisztert (X, Y), de a programszámláló (PC) értékét is nullázza, így ez az utasítás a program elejére való ugrásra is felhasználható. Ha programba írjuk, a PC értékét nem változtatja meg.

A gép háromféle címzési módot tud kezelni a vezérlésátadó utasításoknál. A legegyszerűbb a közvetlen címzés, amikor a vezérlés a megadott háromjegyű címre adódik át. Ehhez egyszerűen be kell billentyűznünk a megfelelő címet az ugrási utasítás után. Címkézett címzés esetén egy korábban LABEL és egy tetszőleges billentyű lenyomásával megadott helyre történik a vezérlés átadása, ehhez az ugrási utasítás után az IDENT és a címke azonosító billentyűjének lenyomása szükséges. Az indirekt címzésnél az INDIR billentyűt használhatjuk, az utána megadott számú memóriaregiszterben tárolt címre történik a vezérlés átadása.

Feltétlen ugrásra a JUMP billentyű szolgál.

Feltételes elágazásokhoz nyolcféle utasítás használható, melyek az X regiszter és a 0, illetve X↔Y billentyűvel együtt használva az X és az Y regiszter viszonyát vizsgálják. Ha a feltétel teljesül (igaz), az utasítás részeként megadott címre adódik át a vezérlés, egyébként pedig a végrehajtás az elágazási utasítás után folytatódik. Így pl. a 2nd IF< X↔Y 050 hatására a gép akkor ugrik a 050-es címre, ha az X regiszter tartalma kisebb, mint az Y regiszter tartalma.

Alprogramok (szubrutinok) készítésére is van mód, ezek 15-ös mélységig egymásba is ágyazhatók. Az alprogramra történő ugrás a 2nd SUBR utasítással és az utána billentyűzött címmel történik, az alprogramból való visszatérést az alprogram végén elhelyezett 2nd BBS utasítás idézi elő.

A feltételes elágazások és az alprogramok meghívása kombinálható, azaz pl. az IF= 2nd SUBR IDENT + hatására a "+" gombbal megcímkézett alprogram végrehajtása következik, ha az X értéke 0.

A programok futtatása a RUN üzemmódok valamelyikében történhet, a START gomb lenyomására. A futás az END utasítás eléréséig tart. Lehetőség van egy megadott címig való futtatásra is, ehhez a 2nd H.ADD billentyűket kell lenyomni, majd bebillentyűzni a kívánt címet. Az ezután megnyomott első START billentyű a programot a megadott címig futtatja, majd megáll. Pl. a 2nd H.ADD IDENT 2 a 2-es címkéjű utasításig hajtja végre a programot.

A program, illetve a számítások futtatása alatt a kijelzőn egy "P" jelzés látható. Mivel kikapcsoláskor a gép a teljes tártartalmat elfelejti, a használt programot mindig be kell billentyűzni. Hosszabb programok esetén emiatt igen hasznos a 2nd C∑ funkció, mely egy ellenőrzőösszeget képez, és ezt az X regiszterbe írja. Ha a korábbi bebillentyűzésnél kapott érték és az aktuális különbözik, valahol téves billentyűzés történt.

A gép alapkiépítésben 512 bájt programtárral rendelkezik, ez 512 utasítást tud tárolni. Az eredeti elképzelés szerint további RAM chipek beültetésével a programtárat 1024 bájtra lehetett volna bővíteni, és a bővített programtárban a BANK funkcióval programtár-területet lehetett volna adattárolásra alkalmas memóriaregiszterré alakítani.

A nyomtató

A beépített hőnyomtató 11 hétszegmenses formájú számjegyet és további 4 14-szegmenses karaktert képes kiírni. A kijelzőben látható érték kinyomtatható a PRINT billentyűvel. Soremelést a LINE billentyűvel kérhetünk. A 2nd LIST funkcióval a programtár tartalmát tudjuk kinyomtatni, az aktuális PC állástól az END utasításig bezárólag. A négy alfanumerikus karakterpozícióra külön utasítással tudunk nyomtatni: a 2nd TEXT után lenyomott négy billentyűnek megfelelő karakterek kerülnek kiírásra. Ugyanebben az üzemmódban lehetőség van speciális nyomtatási parancsok kiadására is, úgymint az X regiszter (2nd 0), az Y regiszter (2nd 1), a K regiszter (2nd 2), illetve a PC és az adott PC címen lévő utasításkód (2nd 3) az üzemmódkapcsoló állásától függetlenül történő kinyomtatására. A TEXT üzemmódból a 2nd 6 billentyűzéssel térhetünk vissza a normál üzemmódba.

BillentyűUtasításkódUtasításkód 2nd utánUtasításkód címkeként LABEL utánUtasításkód címkeként LABEL és 2nd után
0..9000..009064..073128..137192..201
.010074138202
+/-011075139203
EXP012076140204
CLX013077141205
C014-142-
(016080144208
)017081145209
÷018082146210
×019083147211
-020084148212
+021085149213
=022086150214
EX023087151215
RC024088152216
ST025089153217
X↔Y026090154218
INC027091 (DEC)155219
1/X028092 (π)156220
x2029093 (FRAC)157221
√x030094 (INT)158222
ln x031095 (lg x)159223
sin032096 (a sin)160224
cos033097 (a cos)161225
tg034098 (a tg)162226
DEG035099 (RAD)163227
RECT036100 (POL)164228
R→D037101 (D→R)165229
ex038102 (10x)166230
yx039103 (|x|)167231
SEND040104 (CALL)168232
IDENT041105 (END)169233
IFN=042106 (IF>)170234
IF=043107 (IF<)171235
JUMP044108 (SUBR)172236
BANK046110 (SDP)174238
INDIR047111 (BBS)175239
START (STOP)048112 (C∑) (DISP)176240
PRINT049113 (TEXT)177241
LINE050114 (LIST)178242

Mintaprogram

A számológép beépített statisztikai funkciókkal nem rendelkezik, így az átlagszámításhoz programot kell írni.

LABEL 1
2nd SDP 4
START
ST INC 00
ST + 01
x2 ST + 02
2nd SDP 0
RC 00
START
RC X↔Y 00
IF= X↔Y IDENT 1
2nd SDP 4
RC 00 RC ÷ 01
START
RC 02 - ( RC 01 X2 ÷ RC 00 ) ÷ RC 2nd DEC 00 = √x
2nd END

A program kontrollösszege (2nd C∑): 1504

Kódlista:
Kijelzés (PC és utasításkód)Billentyűk
L 0000 129LABEL 1
0000 129LABEL 1
0001 1102nd SDP
0002 0044
0003 048START
0004 025ST
0005 027INC
0006 0000
0007 0000
0008 025ST
0009 021+
0010 0000
0011 0011
0012 029x2
0013 025ST
0014 021+
0015 0000
0016 0022
0017 1102nd SDP
0018 0000
0019 024RC
0020 0000
0021 0000
0022 048START
0023 024RC
0024 026X↔Y
0025 0000
0026 0000
0027 043IF=
0028 026X↔Y
0029 041IDENT
0030 0011
0031 1102nd SDP
0032 0044
0033 024RC
0034 0000
0035 0000
0036 024RC
0037 018÷
0038 0000
0039 0011
0040 048START
0041 024RC
0042 0000
0043 0022
0044 020-
0045 016(
0046 024RC
0047 0000
0048 0011
0049 029X2
0050 018÷
0051 024RC
0052 0000
0053 0000
0054 017)
0055 018÷
0056 024RC
0057 0912nd DEC
0058 0000
0059 0000
0060 022=
0061 030√x
0062 1052nd END

A program használata:

RUN módba visszakapcsolás után C, majd START
Első adat beírása és START
Kijelzi a beírt adatpárok számát, egész számként.
Ha további adatot adunk meg, nyomjuk meg a START gombot. Ha a kijelzés négy tizedesjegyet mutat, írjuk be a következő adatot, majd START.
Ha befejeztük az adatok beadását, nyomjunk CLX-et és START-ot.
Ilyenkor először az átlag jelenik meg, majd a START lenyomására a korrigált szórás értékét mutatja a kijelző.

Új adatpárokkal való számításhoz először a 0 ST 00 ST 01 ST 02 C billentyűkkel állítsuk alaphelyzetbe a regisztereket.

Hasonlók a gyűjteményben
HP
HP-65
1974-77
Casio
fx-202P
1977-78
EMG
666/B
1980
Design & HTML: Modulit Bt.
(C) www.arithmomuseum.com 2004-2017.