Obsah
1. Polovodičový sálový počítač UNIVAC III
2. Technologie počítače UNIVAC III
3. Formát dat zpracovávaných počítačem UNIVAC III
4. Indexové registry – zdánlivá maličkost s velkým dopadem na strukturu programů
5. Instrukční sada a formát instrukčního slova UNIVACu III
7. Neslavný konec první série počítačů UNIVAC
8. Řídí to tady CHIEF nebo BOSS?
1. Polovodičový sálový počítač UNIVAC III
V předchozích třech částech seriálu o historii vývoje výpočetní techniky jsme se seznámili se sálovými počítači, které byly zkonstruovány na základě návrhů provedených J. P. Eckertem a Johnem Mauchlym. Jednalo se především o počítač BINAC neboli BINary Automatic Computer z roku 1949, v němž byla vůbec poprvé použita operační paměť vytvořená z akustických zpožďovacích linek. Stejná technologie byla využita i v elektronkovém počítači UNIVAC, jehož název se po vzniku dalších modelů začal psát s pořadovým číslem, tj. přejmenoval se na UNIVAC I. Tento poměrně úspěšný počítač byl v roce 1952 nahrazen rychlejším strojem UNIVAC II, v němž však byla operační paměť vytvořena z feritových jader a nikoli z rozměrných a na vnější vlivy choulostivějších akustických zpožďovacích linek. Oba zmíněné typy počítačů se používaly především při zpracovávání různých statistických dat; využívaly je například pojišťovny, státní úřady (především nesilová ministerstva) a některé větší korporace, mezi jinými i General Electric, Du Pont, Westinghouse či U. S. Steel.
Obrázek 1: Horní část řídicího panelu počítače UNIVAC III.
Autor fotografie: Jim a Shirley Stephensovi
Nicméně s blížícím se přelomem padesátých a šedesátých let minulého století začalo být zřejmé, že pro výrobu dalších modelů UNIVACů je nutné přejít na technologii polovodičových součástek, jinak by tyto počítače přestaly být konkurenceschopné. Již začátkem roku 1960 totiž firma IBM představila svůj počítač IBM 7090 postavený na bázi tranzistorů a i díky použití této nové technologie byla IBM v prodeji popř. pronájmu svých mainframů úspěšnější, než její konkurenti. Ve firmě Sperry Rand začal vývoj dalšího UNIVACu s pořadovým číslem III sice již v roce 1958, ovšem první skutečně použitelné stroje začaly být zákazníkům nabízeny až v první polovině roku 1962, tedy o více než dva roky později, než model IBM 7090. To se ukázalo být jednou z největších chyb, které se firma Sperry Rand dopustila, protože dvouroční zpoždění znamenalo, že se mnoho jejích zákazníků přiklonilo k výrobkům firmy IBM, popř. k výrobkům některého z dalších „trpaslíků“, s nimiž se seznámíme v některé z dalších částí tohoto seriálu.
Obrázek 2: Spodní část řídicího panelu počítače UNIVAC III.
Autor fotografie: Jim a Shirley Stephensovi
2. Technologie počítače UNIVAC III
J. P. Eckert byl při vývoje počítače UNIVAC III stále významnou osobností, ovšem v jedné poměrně zásadní oblasti se mu nepodařilo prosadit svůj názor. Eckert totiž původně chtěl, aby firma Sperry Rand vyráběla pouze jediný typ zcela univerzálního počítače, který by bylo možné použít jak pro vědeckotechnické výpočty, tak i v oblasti zpracování dat a obchodních aplikací. Šlo o poměrně novátorskou myšlenku (dnes ovšem zcela běžnou), která však nebyla představenstvem společnosti Sperry Rand pochopena – namísto jednoho universálního počítače se vývoj rozdělil – ostatně podobně jako ve firmě IBM – na tři typy specializovaných počítačů. Jednalo se o UNIVAC III specializovaný na obchodní úlohy (neměl například podporu pro operace s čísly v plovoucí řádové čárce), dále o počítač 1107 specializovaný na vědeckotechnické výpočty a konečně o počítač 490, který byl používán pro transakční systémy běžící v reálném čase – jednalo se o bankovní aplikace a rezervace letenek.
Obrázek 3: Logické obvody počítače UNIVAC III byly umístěny na vyměnitelných plošných spojích, což byl oproti oběma předchozím modelům poměrně velký pokrok.
Autor fotografie: Jim a Shirley Stephensovi
Architektura počítače UNIVAC III byla částečně odvozena od stroje LARC navrženého divizí firmy Sperry Rand sídlící ve Filadelfii. Výsledkem návrhu byl stroj s aritmeticko logickou jednotkou sestavenou z tranzistorů schopnou provést součet dvou čísel (každé se šesti číslicemi) za pouhých osm mikrosekund, vynásobení těchto čísel za 48 až 724 mikrosekund a vydělení dvou šesticiferných čísel za 68 až 144 mikrosekund. Na rozdíl od předchozích modelů mohla být čísla uložena v binárním kódu ve slovech o šířce 25 bitů, což je mnohem méně než u 72bitových slov u UNIVACu I a UNIVACu II. Namísto paměti vytvořené ze zpožďovacích akustických linek byla použita feritová paměť umístěná v „kostkách“ o rozměrech 7×7×7 palců, přičemž každá kostka obsahovala 4096 25bitových slov doplněných o paritní a náhradní bity (doba přístupu ke slovu byla čtyři mikrosekundy). Celková kapacita paměti mohla být v rozsahu 8192 až 32768 slov, což odpovídá dvěma až osmi „kostkám“. Tato paměť byla doplněna bubnovou pamětí o kapacitě 4 až 24 milionů slov. Celý počítač vážil 14 tun, měl příkon „pouhých “75 kW a při připojení do sítě se 115 V (USA) byly doporučovány na každé fázi jističe 260 A.
Obrázek 4: V těchto „kostkách“ byla umístěna operační paměť sestavená z feritových jader. Každá kostka o rozměrech cca 7×7×7 palců měla kapacitu 4096 slov (každé slovo 25 bitů + 2 paritní bity + 2 náhradní bity).
Autor fotografie: Jim a Shirley Stephensovi
3. Formát dat zpracovávaných počítačem UNIVAC III
Aritmeticko-logická jednotka počítače UNIVAC III dokázala zpracovávat data ve třech vzájemně rozdílných formátech. První z těchto formátů – decimal – využíval 25bitové slovo takovým způsobem, že do nejvyššího bitu ukládal znaménko čísla a zbylých 24 bitů bylo rozděleno na šest čtyřbitových bloků, přičemž každý blok mohl obsahovat jednu desítkovou číslici kódovanou s využitím kódu excess-3. Pokud se pracovalo pouze s jedním slovem, byl rozsah reprezentovatelných hodnot roven –106 až 106. Ve skutečnosti však některé instrukce mohly pracovat až se čtyřmi slovy současně, čímž se rozsah zpracovávaných čísel zvýšil na –1024 až 1024. Záleželo pouze na programátorech, ve kterém místě si zvolili pozici řádové tečky – pro bankovní operace či účetnictví se například mohla tečka umisťovat mezi třetí a druhou číslicí (pozice je počítána od nejnižšího řádu). Převodní tabulka mezi desítkovou číslicí a čtyřsložkovým binárním vektorem je zobrazena pod tímto odstavcem:
Číslice | Sekvence bitů |
---|---|
0 | 0011 |
1 | 0100 |
2 | 0101 |
3 | 0110 |
4 | 0111 |
5 | 1000 |
6 | 1001 |
7 | 1010 |
8 | 1011 |
9 | 1100 |
Druhý formát dat podporovaných aritmeticko-logickou jednotkou UNIVACu III byl velmi jednoduchý a současně i blízký dnešním programátorům – jednalo se o binární číslo se znaménkem reprezentované v jedničkovém doplňku. Nejvyšší bit 25bitového slova byl opět rezervovaný pro uložení znaménka čísla, spodních 24 bitů pak pro uložení hodnoty čísla v přímém dvojkovém (binárním) kódu. Vzhledem k tomu, že bylo možné opět pracovat až se čtyřmi slovy současně, byl rozsah hodnot roven ±296-1. Tento formát sice dokázal lépe využít všechny bity slova (±296 zhruba odpovídá ±8×1028, což je zajisté větší rozsah než ±1024), ovšem pokud některá aplikace často prováděla převody mezi desítkovou reprezentací čísel a reprezentací dvojkovou (jednalo se o výstupní sestavy nebo bankovní transakce), mohly operace pro převody mezi číselnými soustavami negativně ovlivnit rychlost celého (dávkového) procesu, takže programátoři mnohdy raději použili sice méně efektivní, ale jednodušší a rychlejší formát dekadický.
Obrázek 5: Počitadlo celkového času, po který byl počítač UNIVAC III (či lépe řečeno jeho napájecí jednotka) v provozu (aneb hardwarová alternativa k uptime).
Třetí podporovaný formát dat se používal při práci s řetězci. Tento formát dokázal do 25bitového slova uložit čtveřici znaků, protože každý znak byl reprezentován šesticí bitů (6×4=24). Význam nejvyššího bitu si mohl zvolit programátor na základě potřeby aplikace. I při použití tohoto formátu bylo možné současně pracovat až se čtyřmi slovy, tj. se šestnácti znaky, takže není divu, že se v aplikacích pro UNIVAC III často používaly maximálně šestnáctiznakové řetězce.
Obrázek 6: Uchladit statisíce diskrétních součástek vyžadovalo výkonnou klimatizaci.
4. Indexové registry – zdánlivá maličkost s velkým dopadem na strukturu programů
Procesorová jednotka sálového počítače UNIVAC III obsahovala kromě čtveřice akumulátorů (tj. běžných pracovních registrů využitelných pro aritmetické a logické operace) i patnáct takzvaných indexových registrů. Indexové registry nebyly na přelomu padesátých a šedesátých let minulého století žádnou žhavou novinkou, protože se poprvé objevily již v roce 1948 v britském počítači Manchester Mark 1. Tento počítač obsahoval tři skupiny registrů – akumulátor označovaný písmenem A (Accumulator), indexový registr označovaný písmenem B (B-line register) a konečně čítač instrukcí označovaný písmenem C (program Counter). Největší význam indexových registrů spočívá v tom, že se jejich použitím odstraňuje (nebo alespoň zmenšuje) nutnost psaní automodifikujícího se kódu, který se například u UNIVACu I musel tvořit při práci s poli, protože instrukce tohoto počítače mohly obsahovat pouze pevně zadanou adresu. Tato adresa se mohla změnit pouze a právě modifikací (přepisem) instrukčního kódu.
Obrázek 7: Sada pracovních registrů počítače Manchester Mark I, kde se poprvé objevuje i indexový registr.
Naproti tomu počítače, přesněji řečeno jejich procesorové jednotky nebo mikroprocesory, které obsahovaly indexové registry, většinou nabízely programátorům instrukce, v nichž byla součástí instrukčního kódu pevně zadaná adresa (báze), k níž se přičetl obsah indexového registru. Popř. si můžeme význam pevně zadané adresy a indexového registru otočit – adresa představovala offset přičtený k bázové adrese uložené v indexovém registru. Teprve výsledná adresa (vypočtená ve sčítačce) byla použita pro adresování operandů v operační paměti. Název index register vychází z toho, že tyto registry mohly obsahovat přímo index prvku v poli a pevně zadaná adresa byla adresou na první prvek v poli. Použití indexových registrů se stalo standardem u většiny počítačů druhé generace, ať již se jednalo o UNIVAC III, tak i o některé počítače řady IBM 700 (včetně slavného stroje IBM 704 s jedním akumulátorem, čítačem adres a třemi indexovými registry) i řady IBM 7000. Prvním mikroprocesorem s plnohodnotným indexovým registrem byl čip Motorola 6800 a dvojice osmibitových indexových registrů X a Y tvořila nedílnou součást instrukční sady slavného čipu MOS 6502, který byl známý různými adresními režimy vycházejícími z kombinace hodnoty indexového registru a osmibitové či šestnáctibitové báze.
Obrázek 8: Část instrukční sady počítače UNIVAC III, kde můžeme najít i čtveřici instrukcí pracujících přímo s indexovými registry. Povšimněte si, že mnemotechnické názvy instrukcí se již na začátku šedesátých let minulého století podobaly současnému způsobu zápisu instrukcí procesorů.
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.
5. Instrukční sada a formát instrukčního slova UNIVACu III
Počítač UNIVAC III používal instrukční sadu, která byla zcela odlišná od instrukční sady UNIVACu I a UNIVACu II. Nekompatibility byly způsobeny jak mnohem větší kapacitou operační paměti, tak i novým formátem dat, odlišnou šířkou slova (25 bitů) a taktéž použitím v předchozí kapitole zmíněných indexových registrů. Každá instrukce byla uložena v jednom 25bitovém instrukčním slovu, které bylo rozděleno do pěti skupin bitů (pro jednoduchost vynecháme dvojici paritních bitů na začátku):
Bit(y) | Význam |
---|---|
24 | příznak nepřímého adresování |
23–20 | číslo indexového registru |
19–14 | kód instrukce |
13–10 | výběr dvojice akumulátorů pro provedení operace (2 bity zdroj, 2 bity cíl) |
9–0 | adresa (desetibitový offset) |
Obrázek 9: Další část tabulky s instrukcemi počítače UNIVAC III – instrukce bitových posunů, instrukce porovnání a podmíněné skoky.
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.
Tyto skupiny jsou v 25bitovém slovu uspořádány následovně:
+--------+--------------------+-------+-------+--------+---------+ | Parity | Indirect Address | IR | Oper | AR/IR' | m | | | or Field Select Op | | Code | | Address | +--------+--------------------+-------+-------+--------+---------+ | 26 25 | 24 | 23 20 | 19 14 | 13 10 | 9 0 | +--------+--------------------+-------+-------+--------+---------+
Obrázek 10: Formát dat rozpoznávaných a zpracovatelných počítačem UNIVAC III.
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.
Tento formát instrukcí, který byl mimochodem navržený právě J. P. Eckertem, vznikl v podstatě jako náhradní řešení. Eckert totiž původně chtěl, aby se v instrukčním kódu opět objevila celá adresa operandu, podobně jako u předchozích dvou UNIVACů. Ovšem vzhledem k tomu, že čtyři bity bylo nutné ponechat pro výběr akumulátorů, šest bitů pro operační kód a jeden bit pro volbu nepřímého adresování, bylo z 25 bitů instrukčního slova obsazeno 1+4+6=11 bitů, což znamená, že na adresu bylo možné využít pouze 25–11=14 bitů. To je ovšem málo, protože v předchozích kapitolách jsme si řekli, že v UNIVACu III mohla mít operační paměť kapacitu až 32768 slov, což znamená nutnost rezervace minimálně 15 bitů pro adresu. Eckert tedy namísto uložení celé adresy zvolil (a to velmi šťastně, jak se později ukázalo!) kompromis: v instrukčním slově bylo uloženo pouze deset bitů adresy, která se přičetla k obsahu vybraného indexového registru. Toto řešení bylo v praxi mnohem flexibilnější, protože indexové registry bylo možné měnit mnohem snáz než adresu v instrukčním slovu.
Obrázek 11: Aritmetické instrukce počítače UNIVAC III. Povšimněte si toho, že se v instrukční sadě nachází i operace násobení (multiply – M) a dělení (divide – D)
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.
6. Cena až na prvním místě?
Firma Sperry Rand vyrobila několik desítek kusů počítače UNIVAC III (oficiálně bylo zákazníkům dodáno 96 strojů). Vzhledem k poměrně vysoké ceně tohoto stroje bylo možné si pouze pronajímat jeho výpočetní výkon. V následující tabulce jsou pro zajímavost vypsány ceny jak za nákup počítače i s příslušným vybavením (včetně páskových jednotek Uniservo II a Uniservo III), tak i ceny za měsíční pronájem. Povšimněte si zejména poměrně vysoké ceny feritových pamětí. Pokud paměť o kapacitě 8192 slov (8192×29=237568 bitů) byla prodávána za cenu 67500 dolarů, znamená to, že jeden bit stál přibližně: 67500/237568=28 centů. Není tedy divu, že se tehdejší programátoři snažili ušetřit doslova každý bit, takže jejich obviňování z toho, že se kvůli jejich „nemístnému šetření“ musel řešit problém Y2K (skutečně – mnoho programů v COBOLu vznikalo již v roce 1960), je minimálně nemístné:
Základní jednotky | Cena ($) | Měsíční pronájem ($) |
---|---|---|
Computer – 8 K Memory | 390 000 | 8 000 |
High Speed Reader | 35 000 | 750 |
Punch Unit | 40 000 | 850 |
High Speed Printer | 79 000 | 1 650 |
Uniservo III Synchronizer | 145 000 | 2 900 |
Uniservo III Power Supply | 17 500 | 350 |
Uniservo III | 24 000 | 500 |
Doplňkové moduly | Cena | Měsíční pronájem |
Card Punching Printer | 197 500 | 4 300 |
Uniservo 11 | 20 000 | 450 |
Uniservo II Synchronizer | 92 500 | 1 925 |
Uniservo II Power Supply | 17 500 | 350 |
Memory-Add. 8 K – | 67 500 | 1 400 |
Add. 24 K | 193 500 | 4 030 |
Second Uniservo III | 145 000 | 2 900 |
Obrázek 12: Pásková jednotka připojitelná k UNIVACu III.
7. Neslavný konec první série počítačů UNIVAC
Tabulka s cenami jednotlivých komponent sálového počítače UNIVAC III nebyla v předchozí kapitole uvedena náhodou, protože právě relativně vysoká cena UNIVACu III byla jednou z příčin toho, že již žádný UNIVAC IV nevznikl. Jak jsme si již řekli v úvodních kapitolách tohoto článku, byla prvním problémem tohoto stroje více než dvouletá prodleva, s níž byl uveden na trh. Ovšem mnohem větší nepříjemností bylo to, že další v té době existující velké počítačové společnosti, jakými byla například General Electric a RCA, začaly nabízet sálové počítače, které byly svým výkonem a vlastnostmi zhruba na úrovni UNIVACu III, ovšem současně byly o 30% levnější, takže je zřejmé, podle jakých kritérií se zákazníci kupující stroje za statisíce dolarů, nakonec rozhodovali.
Obrázek 13: Detail vedení magnetické pásky přes čtecí a zápisové hlavy páskové jednotky Uniservo III.
Poslední ranou celé řadě UNIVAC bylo uvedení řady mainframů IBM System/360. Například velmi levný sálový počítač IBM System/360 Model 30 našel své uplatnění i v těch oblastech, kde by se UNIVAC III nemohl kvůli pořizovacím nákladům použít (slova „velmi levný“ je samozřejmě nutné chápat v kontextu doby, ne v porovnání s dneškem :-). Z těchto důvodů nakonec firma Sperry Rand i kvůli nízkému počtu prodaných kusů UNIVACu III již žádný další model této řady nevyrobila a namísto toho se soustředila na jiné typy strojů, například na řadu 9000.
Obrázek 14: Zrekonstruovaný řídicí panel počítače IBM System/360 Model 30. Na dlaždici před panelem (zhruba pod čtveřicí bílých tlačítek) je pro porovnání velikostí umístěný současný mikrořadič PIC :-)
Obrázek 15: Částečně zrekonstruovaný ovládací panel počítače IBM System/360 Model 91.
8. Řídí to tady CHIEF nebo BOSS?
Aplikace pro sálový počítač UNIVAC III byly vytvářeny buď v assembleru, nebo v některém vyšším programovacím jazyce, především v předchůdcích COBOLu (to ostatně odpovídá tomu, že se jednalo o počítače určené především pro provozování obchodních aplikací). Ovšem na rozdíl od elektronkových počítačů předchozí generace, které většinou v daný okamžik mohly zpracovávat pouze jeden program, byly počítače UNIVAC III vybaveny operačním systémem nazvaným Controlled Handling of Internal Executive Functions neboli CHIEF. První verze tohoto systému umožňovala, aby se ve chvíli běhu jednoho programu již mohla připravovat data z dalších programů, druhá verze již skutečně podporovala běh až sedmi programů současně, což samozřejmě vedlo k efektivnějšímu využití řadiče, aritmeticko-logické jednotky i operační paměti. Ovládání operačního systému CHIEF nebylo zcela jednoduché a vyžadovalo zvláštní přípravy ještě před vlastním spuštěním úloh.
Obrázek 16: První zveřejněná publikace o programovacím jazyku COBOL.
Nejprve bylo zapotřebí všechny přeložené programy překopírovat na takzvanou Master Instruction Tape, která na svém začátku obsahovala samotný systém CHIEF. Každý program začínal blokem o velikosti 100 slov, v nichž byly zapsány požadavky programu na vybavení – počet páskových jednotek, využití operační paměti atd. Z Master Instruction Tape se nejdříve do paměti načetl operační systém, který automaticky zpracoval zmíněné 100slovní bloky, alokoval pro každý program požadované prostředky a nakonec program (či programy) načetl do operační paměti a spustil je. Na závěr je dobré zmínit ještě jednu zajímavost: marketingové oddělení firmy Sperry Rand se obávalo, že systém CHIEF nebude dokončen včas, aby mohl být dodán zákazníkům. Z tohoto důvodu uzavřelo kontrakt s firmou CSC (Computer Science Corporation) na vývoj jednoduššího systému nazvaného Basic Operational Scheduling System neboli BOSS. Nakonec se ukázalo, že nabídka dvou vzájemně odlišných systémů CHIEF a BOSS jen zhoršila situaci UNIVACu III na trhu, protože zákazníci používající BOSS získali dojem, že jim byl nabídnut nedokonalý systém a cítili se být trošku ošizeni.
Obrázek 17: Jedna z novějších publikací o programovacím jazyku COBOL.
9. Odkazy na Internetu
- UNIVAC I Computer System
http://univac1.0catch.com/ - UNIVAC I Computer System
http://univac1.0catch.com/yellowpage.htm - UNIVAC (Wikipedia)
http://en.wikipedia.org/wiki/Univac - UNIVAC I (Wikipedia)
http://en.wikipedia.org/wiki/UNIVAC_I - UNIVAC II – Universal Automatic Computer Model II
http://ed-thelen.org/comp-hist/BRL61-u4.html - UNIVAC II (Wikipedia)
http://en.wikipedia.org/wiki/UNIVAC_II - UNIVAC III (Wikipedia)
http://en.wikipedia.org/wiki/UNIVAC_III - UNIVAC 1101 (Wikipedia)
http://en.wikipedia.org/wiki/UNIVAC_1101 - UNISYS History Newsletter
https://wiki.cc.gatech.edu/folklore/index.php/Main_Page - UNIVAC Solid State (Wikipedia)
http://en.wikipedia.org/wiki/UNIVAC_Solid_State - Bi-quinary coded decimal (Wikipedia)
http://en.wikipedia.org/wiki/Bi-quinary_coded_decimal - UNIVAC III Data Processing System
http://ed-thelen.org/comp-hist/BRL61-u4.html#UNIVAC-III - The UNIVAC III Computer
https://wiki.cc.gatech.edu/folklore/index.php/The_UNIVAC_III_Computer - UNIVAC III Photos
http://jwstephens.com/univac3/page01.htm - A History of Unisys Computers (kniha)
http://www.lulu.com/product/hardcover/a-history-of-unisys-computers/4627477 - UNIVAC III Instructions Reference Card
http://www.bitsavers.org/pdf/univac/univac3/UT-2455_UNIVACIII_RefCd61.pdf - Index register (Wikipedia)
http://en.wikipedia.org/wiki/Index_register - FLOW-MATIC, COBOL's Roots, Birth of COBOL…
http://www.inf.fu-berlin.de/lehre/SS01/hc/pl/cobol.htm - FLOW-MATIC
http://en.wikipedia.org/wiki/FLOW-MATIC - FLOW-MATIC Manual
http://archive.computerhistory.org/resources/text/Remington_Rand/Univac.Flowmatic.1957.102646140.pdf - Grace Murray Hopper
http://cs-www.cs.yale.edu/homes/tap/Files/hopper-story.html - Grace Hopper
http://en.wikipedia.org/wiki/Grace_Hopper - Biographies of Women Mathematicians: Grace Murray Hopper
http://www.agnesscott.edu/lriddle/women/hopper.htm - A-0 System
http://en.wikipedia.org/wiki/A-0_programming_language - Rosetta Code – Category:COBOL
http://rosettacode.org/wiki/Category:COBOL - COmmon Business Oriented Language
http://foldoc.org/COBOL - COBOL Compilers
http://www-01.ibm.com/software/awdtools/cobol/ - Cobol: Not Dead Yet
http://www.computerworld.com/s/article/266156/Cobol_Not_Dead_Yet?intsrc=kc_rfavs - The future's bright … the future's Cobol
http://features.techworld.com/applications/3056/the-futures-bright–the-futures-cobol/ - COBOL Example Programs
http://www.csis.ul.ie/COBOL/examples/default.htm - Introduction to COBOL
http://www.csis.ul.ie/COBOL/Course/COBOLIntro.htm - COBOL programming – tutorials, lectures, exercises, examples
http://www.csis.ul.ie/COBOL/ - Wikipedia: COBOL
http://en.wikipedia.org/wiki/COBOL - Humor on Computers, Systems and Programming
http://www-crypto.htw-saarland.de/weber/misc/programming.html - OpenCOBOL
http://en.wikipedia.org/wiki/OpenCOBOL - OpenCOBOL.org
http://opencobol.org/ - OpenCOBOL FAQ
http://opencobol.add1tocobol.com/ - TinyCOBOL
http://tiny-cobol.sourceforge.net/ - TinyCOBOL FAQ
http://tiny-cobol.sourceforge.net/docs/faq/ - JTC1/SC22/WG4 – COBOL
http://ra.dkuug.dk/jtc1/sc22/wg4/ - COBOL on COGS
http://www.coboloncogs.org/INDEX.HTM - Cobol Coders: Going, Going, Gone?
http://www.computerworld.com/s/article/266228/Cobol_Coders_Going_Going_Gone_ - BUNCH
http://en.wikipedia.org/wiki/BUNCH - The Colossus That Works
http://www.time.com/time/magazine/article/0,9171,949693–5,00.html - Mainframe computer
http://en.wikipedia.org/wiki/Mainframe_computer - United States Census Bureau
http://en.wikipedia.org/wiki/United_States_Census_Bureau - Slideshow – More Core Memories
http://spectrum.ieee.org/computing/hardware/slideshow-more-core-memories - UNIVAC I Mercury Delay Line Memory
http://ed-thelen.org/comp-hist/vs-univac-mercury-memory.html - Digital Number System Part-III
http://www.asic-world.com/digital/numbering3.html - Excess-3 – Definition
http://www.wordiq.com/definition/Excess-3 - Excess-3
http://en.wikipedia.org/wiki/Excess-3 - Method of complements
http://en.wikipedia.org/wiki/Method_of_complements - Univac documentation
http://www.bitsavers.org/pdf/univac/univac1/ - UNISERVO
http://en.wikipedia.org/wiki/UNISERVO - John Mauchly
http://en.wikipedia.org/wiki/John_Mauchly - J. Presper Eckert
http://en.wikipedia.org/wiki/J._Presper_Eckert - BINAC
http://en.wikipedia.org/wiki/BINAC - Delay line memory
http://en.wikipedia.org/wiki/Delay_line_memory - Paměť se zpožďovací linkou
http://cs.wikipedia.org/wiki/Paměť_se_zpožďovací_linkou - Description of the BINAC
http://www.palosverdes.com/lasthurrah/binac-description.html - UNIVersal Automatic Computer
http://www.thocp.net/hardware/univac.htm - IBM 36-bit computers
http://www.36bit.org/ibm/ - Symbolics 36-bit computers
http://www.36bit.org/symbolics/ - IBM System 360/370 Compiler and Historical Documentation
http://www.edelweb.fr/Simula/ - Who Was Who in IBM's Programming Research? Early FORTRAN Days
http://www.trailing-edge.com/~bobbemer/PRORES.HTM - Control Data Corporation (CDC) 6600: 1966–1977
http://www.cisl.ucar.edu/computers/gallery/cdc/6600.jsp - Control Data Corporation (CDC) 7600: 1971–1983
http://www.cisl.ucar.edu/computers/gallery/cdc/7600.jsp - Cray History
http://www.cray.com/About/History.aspx?404;http://www.cray.com:80/about_cray/history.html - Cray Historical Timeline
http://www.cray.com/Assets/PDF/about/CrayTimeline.pdf - Company: Cray Research, Inc. (Computer History)
http://www.computerhistory.org/brochures/companies.php?alpha=a-c&company=com-42b9d5d68b216 - PDP-1 Web Pages
http://www.pdp-1.org/ - PDP-1 Restoration Process
http://pdp-1.computerhistory.org/pdp-1/ - Programmed Data Processor
http://en.wikipedia.org/wiki/Programmed_Data_Processor - Digital Equipment Corporation
http://en.wikipedia.org/wiki/Digital_Equipment_Corporation - PDP-1
http://en.wikipedia.org/wiki/PDP-1 - Ancient Computing Machinery
http://www.ee.ryerson.ca/~elf/ancient-comp/index.html - Spacewar – The first computer video game. Really!
http://www3.sympatico.ca/maury/games/space/spacewar.html - Programmed Data Processor-1 Handbook
http://www.dbit.com/~greeng3/pdp1/pdp1.html