Papírový počítač CGS
Papírový počítač „CGS“ byl didaktickou pomůckou v podobě papírové vystřihovánky, poprvé zveřejněné v roce 1980 v časopisu ABC ročník 25, číslo 7. Napomáhal mládeži seznámit se s principy práce osobních počítačů a jejich programování. Nejednalo se ve skutečnosti o počítač, ale jeho jednoduchý simulátor metodou papír–tužka. Jeho autory jsou podle přiloženého textu u vystřihovánky Miroslav Háša, Jiří Rada a Martin Pilný; autorem výtvarného návrhu je Jaroslav Velc. Označení „CGS“ zvolili jako akronym ze slov „Computer Game System“. V dalším textu bude papírový počítač označován jako „počítač“ nebo „CGS“.
Historie počítače
- Poprvé byl vydán počítač v časopise ABC v roce 1980, v ročníku 25 v čísle 7.
- O dva roky později vyšel v upraveném designu v časopisu VTM.
- Třetí a poslední verze vyšla v magazínu MF „Logika v kostce“, designově shodná s verzí VTM.
Sestavení CGS a princip práce
Počítač fungoval na základě ruční interpretace kódu zjednodušeného programovacího jazyka. Byl ve formě papírové vystřihovánky, kdy si vlastní počítač i jeho programy musel čtenář podlepit, vystřihnout a vyříznout do něj otvory pro proužky papíru. Samotný kód programů byl rovněž vytištěn na papírových kartách. Co řádek to instrukce nebo výraz.
Tyto karty se pak protahovaly výřezem v levé částí počítače. V pravé části byly výřezy pro deset paměťových registrů – proměnných. Posledním výřezem byl registr „i“ pro jejich nepřímou indexaci.
Vlastní „běh“ programu spočíval v protahování karty s programem počítačem shora dolů. Pokud došlo k větvení programu, mohla se karta vracet zpět nebo přesunout vpřed na dané návěští (label). Vlastní zprávy programu (např. „Vyhrál počítač“) se rovněž zobrazovaly z karty ve výřezu. Ten tedy nahrazoval jak „řádkový interpreter“ tak i „displej“. Obsahy paměťových proměnných (registrů) se zapisovaly na proužky papíru, zasouvané do výřezů vedle míst označených jako R0 až R9. Pokud měla být do registru uložena nová hodnota, proužek se posunul do strany (popřípadě vygumoval a přepsal).
Možnosti programovacího jazyka
Jazyk samotný byl na pomezí velmi zjednodušené verze jazyka BASIC, kombinované s prvky typickými pro tehdy rozšířené programovatelné kalkulátory (registry, tvar zápis příkazů LBL
, GTO
). Například pro zvýšení hodnoty proměnné A o jedničku by typický zápis v BASICu vypadal takto: LET A = A + 1
, zatímco v jazyku CGS takto: R0 + 1 → R0
.
Jazyk podporoval vstup a výstup hodnot, jednoduché funkce (např. INT
) a operátory (+ - * :
) ve výrazech, jejich ukládání do registrů (→
) nebo vyhodnocování pro nepodmíněné a podmíněné skoky (IF
, LBL
) na návěští. Množina operátorů a funkcí nebyla striktně daná, šlo použít jakýkoli běžný bez syntaktické kontroly. Složitějším prvkem programování byla nepřímá adresace indexních registrů pomocí speciálního registru „i“.
Uvedené prvky umožnily zájemcům pochopit a ověřit si základní principy programování – ukládání a reprezentace dat v proměnných, vyhodnocování výrazů, podmíněné a nepodmíněné skoky. I s pomocí těchto jednoduchých prvků bylo možné začít sestavovat funkční programy, od prostých výpočtů typ Pythagorova věta až po jednoduchou simulaci přistání kosmického modulu na měsíci.
Ukázka kódu
TEST NA SUDÉ ČÍSLO // jméno programu Zadej číslo → R0 // prompt a vložení hodnoty do registru R0 (R0 : 2) - INT(R0 : 2) → R1 // uložení výrazu do registru R1 IF R1 > 0; GTO A // podmíněný skok testem na registr R1 Číslo R0 je sudé. // tisk výsledku (část ELSE) GTO B // nepodmíněný skok nahrazující IF-ELSE A Číslo R0 je liché. // návěští a tisk výsledku (část IF) B Konec programu // návěští a tisk
Oficiálně zveřejněné programy
ABC 7/25 | ABC 13/25 | ABC19/25 | Logika v kostce (1982) |
---|---|---|---|
|
|
|
|
CGS a Cardiac
Papírový počítač CGS nebyl ojedinělý. Již v roce 1968 se v USA objevil papírový počítač Cardiac[1] (CARDboard Illustrative Aid to Computation). Ten sloužil jako pomůcka při výuce programování pro středoškolské studenty. Technický princip v podstatě shodný s CGS (papírová maketa, výřez pro kód a registry). Jazyk a interpretace Cardiacu byl však poplatný době jeho vzniku; byl složitější a těžkopádnější než u CGS, podobný spíše tehdy dostupným minipočítačům.
Přínosy počítače
V době vzniku CGS ještě nebyly plnohodnotné osobní počítače nijak rozšířené. První skutečně „osobní“ osmibitové počítače za dostupnou cenu (např. Sinclair ZX80) byly v roce 1980 teprve vyráběny nebo na své uvedení na trh čekaly. Jistou náhradou mohly být v té době (omezeně) přístupné programovatelné kalkulátory firem Texas Instruments nebo Hewlett Packard.
Situace v tehdejším socialistickém Československu byla ještě o to komplikovanější, že značná část elektroniky a výpočetní techniky byla pro domácnosti v podstatě nedostupná, jak obchodně, tak i finančně. Oficiální dovoz ze zahraničí neexistoval nebo byl výrazně omezen. Vlastní tuzemský vývoj a prodej „domácích počítačů“ ještě neexistoval. První československé osmibitové mikropočítače byly PMI-80 (1982), PMD-85 (1982), Ondra (1985) a IQ 151 (1985). Pouze Ondra však byl určen pro volný prodej.
O to větší dopad mělo zveřejnění CGS v jednom z nejrozšířenějších časopisů pro mládež. Tisíce tehdejších školáků tak měli první příležitost seznámit se s principy programování a práce počítačů. I po více než 30 letech od jeho vydání je možné se na českých diskusních fórech setkat se s tvrzením autorů, že CGS byl jejich „první počítač“ a vděčí mu za svou budoucí kariéru v IT.
Kontroverze
Originalita návrhu CGS je vzhledem k nápadné podobnosti ke Cardiacu sporná. Není jisté, zda autoři věděli nebo nevěděli o tehdy již 12 let starém konceptu papírového počítače Cardiac. Není možné však ani předpokládat, že by zdroj pocházející z USA byl přesně citován v mládežnickém časopisu v obdobní normalizace v tehdejší ČSSR.