#529 Az űrhajózás és a számítózás olyan elválaszthatatlanok, mint a magyar ember és a panaszkodás. Ezt tuti a NASA-nál is így gondolták, mert amikor Kennedy híres 1962-es beszédével rácsibészeltette az egész amerikai nemzetet a holdutazásra, az első megrendelés tárgya, amire szerződést kötöttek az a navigációs komputer + software volt - minden más előtt, beleértve a rakétákat is. Egyébként az Apollo program volt az első, amihez nem korábban tömegpusztításra szánt rakétákat használtak, hanem kifejezetten erre a célra fejlesztett verdával csapattak. (A Mercury és a Gemini során ballisztikus interkontinentális csapásmérőket tuningoltak fel - tervezés recycling.)
Az Apollo számítógépe (AGC) volt a világon az első integrált áramköröket használó komputer. Akkor indult az ilyen chipek sztorija és abban az évtizedben az USA hirtelen nagy fogyasztó lett, de ennek 60%-át csak az Apollo program tette ki. (Na innen sikerült eljutni oda, hogy ma jelentős és mérhető része a közös számítási kapacitásnak dolgozik azon, hogy az instán rajoskodással idegesíthessük ismerőseinket.)
Na de elég az hozzá, hogy az AGC teljesítménye egy mai laptophoz vagy okostelefonhoz kb. úgy aránylik, mint Fásy Zsülietté az ACDC-hez, azzal a különbséggel, hogy mind a korát, mind az eredményeit tekintve az AGC fasza kis cucc volt. Az alap tárkapacitása 72 kilobyte, ami csak nagyon kevés - vagy sok, de nagyon komoly fantáziát igénylő - pucér nős képre elég, és ennyiből kellett kihozni egy Föld-Hold retúr Waze-t. A processzor sebessége kb. 2 MHz volt, aminek a duplája már majdnem elég lenne a Prince of Persia futtatására egy XT-n.
A programok megírásával az MIT Draper laboratóriumának csapatát bízták meg, akik teljesen szabad kezet kaptak. Hogy ez mennyire súlyos dolog, akkor lesz tiszta, ha végiggondoljuk, hogy most először terveztek emberéleteket bízni software-ekre. Azokat meg pontos útmutatások és standardok nélkül dolgozó egyetemi csapatra. A programokat kézzel írták papírra, ami kb. olyan, mint sötétben tervrajzolni hidat. A megírt kódokat aztán gépbe betáplálás és futtatás után tudták meg, hogy végül is mit írtak (lámpa felkapcsolás a híd rajzolásnál).
Masszív mennyiségű kódsor volt a vége, szumma 145.000 sor, és ez már a nettó végeredmény, a javítgatások és a módosítások miatt kb. 5x ennyit írhattak ténylegesen. És közben meg lófasz ez a mennyiség, ha onnan nézzük, hogy ennyiből kellett ezt a komoly melót megugrani, miközben ma az Android oprendszer cirka 12 millió sorból áll - hogy kedvünkre osztogathassunk meg szar macskás videókat vagy olvasgathassunk rajta ilyen posztokat - , és egy drágább autóban meg simán megvan a 100 millió is.
a már híressé vált fotó Margaret Hamiltonról (director of the Software Engineering Division of the MIT) és az AGC software papír változatáról
Amúgy a software engineer kifejezést a fentebbi képen szereplő hölgy kezdte el használni, egyrészt megkülönböztetve magukat a hardware mérnököktől, másrészt jelezve, hogy ez a meló is mérnöki munka. Olyan jól sikerült terjesztenie, hogy nem sokkal később ez már egy hivatalos szakma lett (ezúton is pusziljuk érte).
A software tárolására használt módszer - ferritgyűrűs rézvezetékes memória (core rope memory), ami valójában egy kézműves ROM (read-only-memory) - egy elég menő mechanikai-elektronikai megvalósítása az adattárolásnak. Szó szerint kézműves, a kész software-t elküldték egy gyárba, ahol azt hölgyek kézzel beleszőtték a rögzített memóriába. A programokat alkotó 1-eseket és 0-kat kellett egyesével felvinni: ha a rézvezeték átbújt a ferritgyűrűn, akkor az egy 1-est jelent, ha pedig kikerülte azt, akkor 0-t, de ennek ellenére sem lett az adatátviteli sebesség mértékegysége kilobyte/rőf. Hosszú, unalmas és szar meló volt (mint mostanában legfőbb ügyésznek lenni), elrontás esetén pedig vissza kellett fejteni az egész blokkot a hibáig és aztán újrafűzni.
ferritgyűrűs szőtt rézvezetékes memória - teszt darab
Amúgy akkoriban még nem volt túl csajozós software fejlesztéssel foglalkozni (bezzeg most! :) ), pláne semmi értelme nem volt ezzel menőzni. A software szó maga is annyira új volt még, hogy csak egy szűk közösség - örök napközis mérnökök - használták, így amikor az egyik MIT-s arc a felesége kérdésére, hogy mit fog ő csinálni a holdprogramban azt válaszolta, hogy a software-t, akkor a felesége azt mondta neki, hogy oké, de ezzel inkább ne dicsekedjen senkinek.
korabeli geek rajoskodás pinball-nek elnevezni a keyboard és display funkciókat ellátó modult - AGC forráskód részlet
Az űrhajósok - meg az egész csapat - elég sokat rizikóztak akkoriban, ez a számítósokkal is így volt: Holdra landolás közben próbáltak ki először űrben egy totál új programot ami egyrészt mind közül a legbonyolultabb volt és nélküle lehetetlen lett volna a holdraszállás, másrészt az indulás előtti utolsó pillanatban fejezte be egy srác, Don Eyles. Ilyen paraméterek mellett metróra nem ülnénk fel.
Szóval elég magas volt a para faktor, benne volt, hogy valami elbaszódik. És úgy nézett ki, el is baszódott, és még azt sem tudták, hogy mi. A holdkompon ugyanis nem Moha bá' szól ha már túlmentél a lehajtón, sajnos csak számkódokkal jelzi a közlendőit, így azt is, ha baj van. Másodpercekre a landolástól, ráadásul épp kifogyóban az üzemanyagból (hazafelé már nem a leszállóhajtómű kellett, de lefelé meg még nagyon az) el is kezdett hisztizni 1201-es, illetve 1202-es hibakódokat villogtatva. Az irányítóteremben kikúrt gyorsan kellett dönteni, hogy vagy megszakítják a küldetést (és akkor dollármilliók + a renomé mennek a picsába, ami kb. olyan fájdalmas lehet, mint megtudni, hogy az excsajod a szakítás után két hónappal már mástól terhes), vagy mi legyen, de fingjuk se volt, hogy mi lehet a baj. Hátulról megszólalt egy fiatal komputeres - Jack Dumagép Garman -, hogy semmi gond, ez csak azt jelzi, hogy túlterhelt a számító, de a baromi okos tervezésnek köszönhetően ez nem kékhalált okozott, hanem csak a kevésbé fontos funkciók (chat az instán) hátrébb sorolását. Egyedül nála volt meg az összes hibakód szépen kézzel kijegyzetelve, de még nagyobb mák, hogy ő ezekre fejből is emlékezett és azonnal tudott reagálni. Így azán jól le is szálltak, Jack pedig ezért kitüntetést kapott (az erre rábólintó guidance officer szintén), valamint az Apollo 11 megmentője címet, ami érthető, hiszen ha akkor nem kiabál be jelentkezés nélkül, most egy későbbi dátumra kéne írni ezt a posztot. Meg az USA-nak se volt mindegy.
a kész számító, amit végül belefért az előre behazudgált méretbe, pedig nagyon messziről indultak
A teljes AGC software egyébként elérhető bárki számára, és megszállott űrhajós-számítósok mai napig üzemeltetik szimulátor formájában. Meg valódiban is. Riszpekt ezúton is az Apollo számítós csapatának.