Papírový počítač CGS

Pohled na CGS s vloženým programem „PŘISTÁNÍ NA MĚSÍCI" a proužky papíru v registrech R0-R9

Papírový počítač „CGS“ byl didaktickou pomůckou v podobě vystřihovánky papírového počítače, 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)
  • NIM - hra se zápalkami
  • Hádání neznámého čísla
  • Chyťte zajíce
  • Gregoriánský kalendář
  • Chyťte zajíce II
  • Přistání na Měsíci
  • Grand prix formule 1
  • Výpočet výše vkladu
  • Pravidelné spoření
  • Ohmův zákon
  • Rovnice
  • Výkon el. proudu
  • Kámen, papír, nůžky
  • Skládání odporů
  • Není nosník nebezpečně namáhán?
  • Ocelový drát
  • Natahování, stlačování a ohřívání ocelové tyče
  • Jak stlačí závaží pružinu?
  • Výpočet PI
  • Převod desetinného čísla na zlomek
  • Sinus, tangens, arkustangens a cosinus úhlu
  • Největší společný dělitel a nejmenší společný násobek
  • Umělá oběžnice

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.

Reference

Externí odkazy

Zdroj