Už to slyšíme: "Zase další težká mysterka jen pro ajtáky."
Tak tentokrát NE! Naucme se pracovat s pocítacem vzniklém v dobách
ajtáckého praveku, s pocítacem velmi jednoduchým. Tuto úlohu pri
troše úsilí muže zvládnout každý kacer s výjimkou naprostých
technických analfabetu a i tem poradíme. I když je Vám programování
vzdálené nebo dokonce odporné, nenechte se odradit a ctete dál,
možná zmeníte názor a naucíte se neco, co bylo pro Vás doposud
zahajeno rouškou tajemství.
Neco málo o pocítaci LGP-30
Pocítac LGP-30 byl pocítac první generace, výroba zapocala v
roce 1956, cena byla necelých 50000 dolaru. Celkem bylo vyrobeno
asi 500 kusu tohoto zajímavého stroje. Jeden z této petistovky byl
prvním pocítacem v Brne, pracoval prostorách VUT na úvodních
souradnicích.
Pocítac LGP-30 obsahoval 113 elektronek a 1450 polovodicových
diod. Byl velý asi jako psací stul. Pocítac byl navržen s co možná
nejmenšími nároky na Hardware. Jakousi centrální cástí pocítace byl
rotující magnetický buben o prumeru asi 16 centimetru. Buben
sloužil jako operacní pamet, obsahoval také všechny tri registry,
jimiž pocítac disponoval: stradac, cítac instrukcí a registr
instrukcí. Sloužil i jako generátor hodinových impulsu.
Jako vstupní a výstupní zarízení se používal psací stroj
spražený s pocítacem. Soucástí psacího stroje byl derovac a snímac
šestistopé derné pásky.
Pamet pocítace byla organizována do 64 stop po 64 slovech. Každé
slovo melo 31 bitu. (Nekdy se tvrdí, že bitu bylo 32, ale v
posledním bitu byla vždy nula.) Kapacita pameti tedy byla 4096 slov
neboli 16K bytu, tehdy se však pojem byte nepoužíval, nejmenší
adresovatelnou jednotkou bylo slovo. To je kapacita dnes
nepredstavitelná. Trochu vetší digitální fotka by zaplnila pamet
všech vyrobených pocítacu LGP-30. Tehdy ješte pocítace delaly cest
svému jménu, používali se k usnadnení pocítání a k nicemu jinému.
Dnes je pocítání skoro to poslední, co bežní lidé od pocítacu
chtejí. Náš pocítac dokázal vykonat 400 scítání za sekundu, dokázal
dokonce násobit a delit. To ani pozdeji nekteré známé stroje
neumeli.
Pocítac LGP-30 byl pocítac jednoadresový a diponoval pouhými
šestnáci instrukcemi. Všechny instrukce byly uloženy v jednom
slove. Strojový kód pocítace byl jednoduchý na naucení. Zvláštností
z dnešního pohledu byla existence instrukcí pro modifikaci
programu, což byla jediná možnost, jak zpracovat soubor nejakých
údaju, napríklad secíst radu císel. Dnes se samomodifikace programu
nepovažuje za dobrý programátorský styl. Modifikovat program je v
LGP-30 nutné i za úcelem volání podprogramu.
Jak na souradnice finálovky?
Zahloubejte se do pripojeného programu a zjistete co delá, pak
již dokážete snadno urcit finální souradnice. Nehledejte v tom
žádný fígl, program je nutné pochopit. Pokud si snad budete chtít
napsat svuj simulátor, vezte že Vám bude úplne k nicemu, sice se
dopocítáte nejakého výsledku, ale nebudete tušit, co tento výsledek
znamená. Možná Vás však bude zajímat, že program vykoná 900
instrukcí, než se pocítac zastaví.
Plne dostacující pro zadání by byl zelený text (adresa a její
hexadecimální odkaz). Nejsme však nelidové, tak ke každé instrukci
dáváme její "symbolickou" reprezentaci v podobe šedého textu v
závorkou. Procvicování v prevodu z šestnáctkové do desítkové
soustavy opravdu není smyslem této kešky. Konstanty si urcite rádi
prevedete, až zjistíte v jakém merítku program pracuje. Pro
jednoduchost jsou veškerá císla a veškeré výpocty provádeny v
merítku stejném.
Nejsme prátelé guglení, takže pár odkazu:
A urcite najdete i lepší materiály, tak se o ne podelte v lozích.
2800: 00013700 (B 5500)
2801: 0003217J (R 3331)
2802: 000F2118 (U 3306)
2803: 000K1J88 (C 2834)
2804: 0001370J (B 5503)
2805: 0003217J (R 3331)
2806: 000F2118 (U 3306)
2807: 00073708 (M 5502)
2808: 00051J84 (D 2833)
2809: 00051J7J (D 2831)
2810: 00071J78 (M 2830)
2811: 00051J80 (D 2832)
2812: 00071J74 (M 2829)
2813: 000Q3700 (A 5500)
2814: 000K3W00 (C 6300)
2815: 0001370J (B 5503)
2816: 0003217J (R 3331)
2817: 000F2100 (U 3300)
2818: 00071J74 (M 2829)
2819: 00051J88 (D 2834)
2820: 00073708 (M 5502)
2821: 00051J84 (D 2833)
2822: 00051J7J (D 2831)
2823: 00071J78 (M 2830)
2824: 00051J80 (D 2832)
2825: 00071J74 (M 2829)
2826: 000Q3704 (A 5501)
2827: 000K3W04 (C 6301)
2828: 00000000 (Z 0000)
2829: 00800000
2830: 01921WG4
2831: 1Q000000
2832: 5F000000
2833: 00QK0Q56
2834: 00000000
........
3300: 000J21F8 (H 3342)
3301: 000J21FJ (H 3343)
3302: 000J21G4 (H 3345)
3303: 000121F0 (B 3340)
3304: 000J21G0 (H 3344)
3305: 000F2130 (U 3312)
3306: 000J21F8 (H 3342)
3307: 000121F0 (B 3340)
3308: 000J21FJ (H 3343)
3309: 000J21G4 (H 3345)
3310: 000K21G0 (C 3344)
3311: 000K21G0 (C 3344)
3312: 0003219J (R 3339)
3313: 000F2180 (U 3332)
3314: 0003219J (R 3339)
3315: 000F2180 (U 3332)
3316: 000121G4 (B 3345)
3317: 000W21FJ (S 3343)
3318: 000J21G4 (H 3345)
3319: 0003219J (R 3339)
3320: 000F2180 (U 3332)
3321: 0003219J (R 3339)
3322: 000F2180 (U 3332)
3323: 000121G4 (B 3345)
3324: 000Q21FJ (A 3343)
3325: 000J21G4 (H 3345)
3326: 000121FJ (B 3343)
3327: 000W21F4 (S 3341)
3328: 000G2178 (T 3330)
3329: 000F2130 (U 3312)
3330: 000121G4 (B 3345)
3331: 000F0000 (U 0000)
3332: 000121G0 (B 3344)
3333: 000Q21F0 (A 3340)
3334: 000J21G0 (H 3344)
3335: 000121FJ (B 3343)
3336: 000721F8 (M 3342)
3337: 000521G0 (D 3344)
3338: 000J21FJ (H 3343)
3339: 000F0000 (U 0000)
3340: 00800000
3341: 00000002
3342: 00000000
3343: 00000000
3344: 00000000
3345: 00000000
........
5500: 006KQ822
5501: 002515Q4
5502: 00F0Q218
5503: 031K527Q
........
6300: 00000000
6301: 00000000
........
Verifikátor by snad ani nemel být potreba, pokud program
rozluštíte, tak jste si jisti, že máte finální souradnice správne a
dokud tápete, tak to nejspíš ty správné nebudou.

A ted k vlastní pixle
Finálovka je zcela obycejná mestská tiktakovka na zcela nezajímavém
míste. Takže, pokud Vám seznámení se s architekturou starého
pocítace a luštení programu neudelá radost, nechte kešku být, o nic
neprijdete. Nepovažovali jsme totiž za správné zaplácnout zajímavé
místo v Brne težkou mysterkou. Budte opatrní, místo je zamudlované,
lze však odlovit nepozorovane. Keš je z dálky videt, nejdríve
hledejte ocima a pak ji jedním hmatem odlovte.
Logování
Veríme, že neodbudete svuj log hlášením "Vylušteno a odloveno v
pohode". Když už venuje nemalý cas luštení, budeme rádi, pokud
splníte následující:
- Pochopte, jak program funguje a o co v nem jde. Nemusíte úlohu
nutne vyrešit bez pomoci. Klidne se nechte nakopnout, nebo dokonce
nechte problém vyrešit nekoho jiného, ale nakonec se s rešením
musíte seznámit a pochopit ho, až pak se vydejte ke skrýši.
- Do logu napište zkušenosti všech clenu Vašeho týmu se strojove
orientovanými jazyky.
- V logu vysvetlete neco z problematiky pocítacu. Ovšem neco, co
pomuže kacerum po Vás úlohu snadneji vyrešit. Mužete uvést odkazy
na zdroje informací, mužete také uvést príklady. V tom prípade
nepoužívejte stejná císla, s jakými se pocítá v úloze. Ale
popisujte pouze problematiku pocítacu, ne matematiku. Tento bod
odlišuje tuto kešku od ostatních. Zatímco obvykle zakazujeme
spojlovat, aby to další lovci nemeli lehcí, zde se naopak budeme
snažit ustandnit rešení i tem, kterí se pocítaci neživí.
A na záver ješte vyhlašujeme soutež o FTF-NONIT, které získá první
neprogramátor, který mysterku samostatne vyreší. Za
neprogramátora se muže považovat jen ten, kdo nikdy v živote
nenapsal žádný program. Malé školní prográmky v hodinách
informatiky se nepocítají.

