Programování Eureky

BASIC

Nejjednodušším způsobem, jak Eureku přinutit dělat něco, co si uživatel přeje, je prostřednictvím zabudovaného překladače jazyka BASIC. Díky jeho pohotovosti si každý uživatel zatoužil alespoň jednou krátký program napsat.

BASIC Eureky je, dle všech indicií, založen na interpreteru MBASIC, který firma Microsoft vyvinula pro 8 bitové počítače s operačním systémem CP/M. Bohužel se jedná o jeho minimální podobu omezující se jen na práci s konzolou, tj. nelze nativně přistupovat k disketové jednotce či sériovému portu. Některé funkce, jako např. přesný čas hodin, lze využít prostřednictvím vstupně-výstupních portů či prací se specifickými adresami paměti, pozbývají ovšem tyto techniky jednoduchosti BASICu jako takového. Plnohodnotný MBASIC bylo možné využít jako externí program zaveditelný z diskety, což mělo svá omezení, počínaje nutností mít disketu s MBASICem a žádaným programem po ruce.

BASIC Eureky je na druhou stranu doplněn o specifické příkazy, které souvisí s možnostmi hlasového výstupu Eureky. Především je možno příkazem MODE přepínat mezi tzv. řádkovým a obrazovkovým režimem, kdy v obrazovkovém režimu je text vypisován na virtuální obrazovku bez hlasové odezvy. Příkazy CLICK, PITCH a SOUND dovolují generovat zvuky a ovlivňovat rychlost jejich přehrávání včetně mluvení. Jedná se o zkratky řídících sekvencí řečového syntezátoru, např. příkaz SOUND I;500;1 způsobí volání příslušné systémové služby s řetězcem “!%t1000/500*1”, je-li v proměnné I právě hodnota 1000. Výsledkem by měl být krátký tón o frekvenci 1000 Hz tak, jako kdyby v textu byl zapsán zmíněnou sekvencí.

Zajímavostí je, že další funkce Eureky, Kalkulátor, je vlastně v jádru převlečený Překladač BASICu s deaktivovanými příkazy pro běh a řízení programu, kdy lze využívat jen zabudované vyhodnocování výrazů a funkcí.

Vyšší programovací jazyky

K Eurece bylo možno dokoupit kompilátor jazyka Turbo Pascal. Byl distribuován na disketě spolu s dalšími knihovnami užitečnými pro běhové prostředí Eureky. Součástí diskety byl též technický manuál popisující její hardwarové a softwarové detaily. V jádru se jedná o Turbo Pascal od firmy Borland pro systém CP/M v jeho druhé verzi, avšak je osekán na samotný kompilátor, kterému se předložil soubor se zdrojovým kódem napsaným v textovém procesoru a on z něj vytvořil při absenci chyb spustitelný .COM program.

Druhou, avšak méně častou možností, bylo pořízení kompilátoru jazyka C. Jeho nevýhoda byla ovšem v tom, že pro svůj běh vyžadoval více paměti než má standardní Eureka, a tak musely být nainstalovány do Eureky moduly RAM s vyšší kapacitou. Konkrétně se jedná o Hi-Tech C, což je kompilátor dialektu ANSI C pro operační systém CP/M s podporou instrukčních sad procesorů Z80 a Z180, resp. HD 64180, což optimálně vyhovuje běhovému prostředí Eureky. Lze kombinovat jak zdrojové kódy v C, tak i zápis symbolických instrukcí. Podobně jako v případě Turbo Pascalu, je zde k dispozici jen kompiler s linkerem vytvářející ze zdrojových kódů spustitelné .COM programy. Přesněji řečeno zdrojové kódy jsou nejprve přeloženy do modulů v objektovém formátu a z těchto modulů se sestavuje .COM soubor spustitelný na daném procesoru.

Zajímavostí je, že funkce Databáze, která není součástí zabudované aplikační nadstavby Eureky, je napsána právě v Jazyce C, zatímco zabudované funkce byly napsány v jazyku symbolických instrukcí. Je tomu pravděpodobně proto, aby bylo možno integrovat do databáze knihovny pokročilých algoritmů, např. B-stromy pro indexaci dat.

Nízko-úrovňové programování

Programy je samozřejmě možno psát přímo ve strojovém kódu. Ač tento způsob programování není ani běžný, ani pohodlný, řada uživatelů Eureky si zápis instrukcí pomocí jejich operačních kódů a operandů vyzkoušelo. Výhodou tohoto řešení je paměťová úspora a velký výkon takto napsaných programů.

Pokud bylo potřeba, jako v případě aplikační nadstavby Eureky, požadavky na výkon a paměť splnit, byly programy nejdříve napsány ve formátu symbolických instrukcí a poté přeloženy assemblerem a sestaveny do spustitelného kódu. Při vývoji softwaru pro Eureku bylo možno použít např. Macro Assembler, jehož ukázky se nachází v technickém manuálu Eureky. Vývojáři Robotronu konkrétně při vývoji postupovali následujícím způsobem:

  1. Napsali programy v kódu symbolických instrukcí a přeložili je Macro assemblerem od společnosti SLR Systems do strojového kódu pro mikroprocesor HD 64180.
  2. Kód kompatibilní s mikroprocesorem Z80 a nemodifikovaným operačním systémem CP/M 2.2 testovali na PC  pomocí nástroje Z80MU, který emuloval zmíněné 8 bitové prostředí.
  3. Kód závislý na specifických instrukcích mikroprocesoru HD 64180 testovali na PC vybaveným tímto procesorem ve formě koprocesoru.
  4. Kód pracující se specifickými komponentami Eureky testovali na Eurece, jejíž konzola byla zrcadlena skrze sériový port na PC.

Navigace