Programování v jazyce BASIC je životním stylem – již šedesát let

7. 5. 2024
Doba čtení: 33 minut

Sdílet

 Autor: Depositphotos
BASIC na začátku května oslavil 60 let od svého vzniku. Jednalo se o programovací jazyk, který zformoval minimálně jednu generaci programátorů. I dnes je možné si BASIC vyzkoušet v jeho (téměř) klasické interaktivní podobě.

Obsah

1. Programování v BASICu je životním stylem

2. BASIC či BASICy?

3. Klasický BASIC s interaktivním prostředím

4. Interpretry BASICu po osmibitové mikropočítače

5. BASIC pro mikropočítače vybavené mikroprocesorem MOS 6502

6. BASIC pro mikropočítače vybavené mikroprocesorem Zilog Z80

7. Vyzkoušení interpretrů pro osmibitové mikropočítače

8. GW-BASIC

9. Odzkoušení GW-BASICu

10. Klasický BASIC ve webovém prohlížeči

11. QuiteBasic

12. BASIC na stránkách 8bitworkshop

13. BBC BASIC

14. BBC BASIC online

15. EndBASIC

16. Lokální běh interpretru EndBASIC

17. Kombinace grafické a textové konzole

18. Předchozí články o programovacích jazycích BASIC

19. Předchozí články o kulatých výročích v oblasti programovacích jazyků

20. Odkazy na Internetu

1. Programování v BASICu je životním stylem

Programovací jazyk BASIC neboli celým jménem Beginners'All-purpose Symbolic Instruction Code na začátku května oslavil 60 let od svého vzniku. Jednalo se o programovací jazyk, který – bez většího přehánění – zformoval minimálně jednu generaci programátorů. Historií vzniku a vývoje tohoto kdysi oblíbeného ale současně i nenáviděného jazyka jsme se již na Rootu zabývali v několika článcích, které jsou vypsány (pochopitelně i s příslušnými odkazy) osmnácté kapitole.

Obrázek 1: Manuál k původnímu BASICu (všimněte si roku výtisku).

V dnešním článku si řekneme, jakým způsobem je možné si BASIC, resp. přesněji řečeno jeho „klasickou“ variantu vyzkoušet s využitím současných technologií. Pro některé programátory totiž není BASIC pouze dalším programovacím jazykem, ale životním stylem :-).

Obrázek 2: Autory původního BASICu jsou John Kemeny a Thomas Kurtz.

Mladší programátoři si díky tomu mohou vyzkoušet, jakým způsobem se programovalo před desítkami let: bez online nápovědy, bez možnosti konzultovat na Stack Overflow, bez integrovaných vývojových prostředí a kopilotů, s manuály vysvětlujícími význam numerických kódů chyb, s minimalistickým editorem, mnohdy s naprostým minimem operační paměti a navíc na počítačích s mikroprocesory, které z dnešního pohledu vlastně „stojí“ (protože co dnes v tomto ohledu znamená frekvence 1MHz?). A použití moderních (či „moderních“) prostředků naznačí, zda se informatika ubírá spíše směrem vpřed nebo jestli spíše testujeme všechny slepé cesty, abychom později mohli s klasikem opakovat „Tudy ne, přátelé …!“.

Obrázek 3: Modul s interpretrem programovacího jazyka BASIC určený pro československé osmibitové mikropočítače IQ-151.

2. BASIC či BASICy?

Syntaxe původního programovacího jazyka BASIC byla částečně založena na FORTRANU II a ALGOLU 60. Není se ostatně čemu divit – oba autoři jazyka BASIC totiž předpokládali, že někteří studenti po zvládnutí BASICu postupně přejdou na FORTRAN, který byl ve druhé polovině šedesátých let minulého století stále považován za lingua francu programátorů. Původní BASIC byl z tohoto důvodu orientován především na programování matematicky zaměřených úloh – podporoval „přirozený“ zápis aritmetických výrazů včetně korektního vyhodnocování priorit operátorů a dokonce i práci s maticemi (některé pozdější interprety tohoto jazyka práci s maticemi nepodporovaly – což bude ostatně i případ většiny dále popisovaných variant BASICu). Ovšem po vydání původního BASICu začala vznikat nepřehledná směs různých odvozených jazyků z nichž některé se původnímu BASICu podobaly už jen názvem.

Obrázek 4: BASIC určený pro osmibitové mikropočítače Apple-II.

Již v úvodních kapitolách je tedy nutné zdůraznit, že programovací jazyk BASIC se v tomto poměrně důležitém ohledu odlišuje od většiny mainstreamových jazyků. Pokud například v nějakém textu vidíme zmínku o C, Javě, Pythonu atd., víme, že jde o názvy jazyků, které se sice postupně vyvíjí, ale (většinou) zůstávají zpětně kompatibilní a jedná se většinou o jedinou řadu postupně se rozšiřujících a vylepšujících se variant toho samého jazyka.

Obrázek 5: Nechvalně známý Microsoft BASIC pro počítače Commodore C64.

V případě BASICu tomu tak ovšem v žádném případě není, protože BASICem se na jednu stranu označují jednoduchoučké interpretry o velikosti 1kB s čísly řádků a pěti-šesti příkazy, na stranu druhou pak rozsáhlé projekty s vlastním IDE atd., které interpretují či překládají jazyk, který se vlastně původnímu BASICu vůbec nepodobá.

Obrázek 6: Úvodní obrazovka Simons' BASICu pro Commodore C64, který byl v mnoha ohledech lepší, než Microsoft BASIC (viz další kapitoly).

3. Klasický BASIC s interaktivním prostředím

V dnešním článku se ovšem zaměříme především na „klasický“ BASIC v podobě, v jakém ho známe z osmibitových domácích mikropočítačů, popř.z původního IBM PC (což byl hybrid mezi osmibitovým a šestnáctibitovým mikropočítačem). Bude se tedy jednat o projekty, které nabízí programovací jazyk s čísly řádků (někdy jsou již ovšem nepovinné), s příkazy skoků GOTO a GOSUB, bez možnosti definice vlastních datových typů, s automatickou inicializací proměnných a ideálně i s projekty, které v případě chyby jen lakonicky oznámí číslo (kód) chyby a popř. ještě laskavě dodají číslo řádku. Tím pádem ze seznamu vyřadíme i QBasic a s ním související projekt QB64 (ten je mimochodem dostupný online na adrese https://codedamn.com/online-compiler/qbasic) či FreeBasic (což je překladač). A taktéž vynecháme Small Basic, o němž ostatně na Rootu taktéž vyšly články [1] [2].

Obrázek 7: Atari BASIC je typickým představitelem klasického BASICu pro osmibitové domácí mikropočítače.

Zmiňme se ještě o hardwarových nárocích klasických BASICů určených pro osmibitové mikropočítače. Jednodušší verze BASICu si vystačily již se čtyřmi kilobajty paměti ROM, v níž byl uložen jak interpret, tak i poměrně jednoduchý textový editor umožňující interaktivní práci s interpretrem, a s pouhým jedním kilobajtem operační paměti, jejíž část byla navíc použita jako obrazová paměť. Mezi osmibitovými domácími počítači byly nejrozšířenější verze jazyka BASIC uložené v paměti ROM o kapacitě 8 až 16 kB.

Obrázek 8: Osmibitový mikropočítač Apple II Plus s dvojicí disketových jednotek Disk II, který obsahoval interpret programovacího jazyka Applesoft BASIC.

Díky použití takto velké kapacity ROM mohly tyto interpretry obsahovat větší množství příkazů (například pro práci s grafikou či zvuky), podporovaly výpočty s čísly uloženými ve formátu plovoucí řádové čárky atd. Jedním z důvodů poměrně malých nároků na kapacitu operační paměti bylo to, že interpretry BASICu každý programový řádek zadaný uživatelem ihned zpracovaly – klíčová slova se převedla na takzvané tokeny (většinou jednobajtové), jména proměnných na jednobajtové indexy do tabulky proměnných atd.

Obrázek 9: Jeden z prvních zveřejněných algoritmů zapsaných v programovacím jazyce BASIC. Jedná se o ukázkový program uvedený v manuálu původního BASICu, který byl vydán již v roce 1964 (viz též první obrázek s úvodním listem tohoto manuálu). Povšimněte si jedné zajímavosti – autoři v celém manuálu používají pro znak O (velké písmeno ó) znak 0, a pro číslici 0 naopak znak O, což je poněkud zvláštní a vymyká se to konvencím zavedeným u jiných systémů i programovacích jazyků.

4. Interpretry BASICu po osmibitové mikropočítače

Interpretrů BASICu pro osmibitové mikropočítače existuje několik desítek (a možná i stovek). Jedná se jak o interpretry, které byly dodávány společně s počítačem a byly tedy uloženy v ROM, ale taktéž o interpretry (či překladače) BASICu dodávané jako jakýkoli jiný SW, tedy na kazetách či disketách.

Obrázek 10: BASIC na slavném mikropočítači ZX-81.

5. BASIC pro mikropočítače vybavené mikroprocesorem MOS 6502

Za zmínku stojí zejména Integer BASIC, který byl vytvořen v roce 1976 samotným Stevem „Wozem“ Wozniakem pro jím navržené počítače Apple 1 a Apple II. Wozniak, který před vytvořením mikropočítače Apple 1 navrhl pro firmu Atari herní automat Breakout (předchůdce Arkanoidu), se při konstrukci počítače Apple II zaměřil na to, aby měl tento počítač všechny vlastnosti nutné k tomu, aby na něm mohla být hra Breakout bez vážnějších problémů (re)implementována. Právě z tohoto důvodu byl v Apple II zaveden druhý grafický režim low-res nabízející uživatelům sice menší rozlišení, zato však větší počet současně zobrazitelných barev (už jen podpora vícebarevného grafického režimu na domácím mikropočítači byla malá revoluce). Dále byl Apple II vybaven jednoduchým zvukovým generátorem, možností připojení ovladače paddle (ten interně obsahuje pouze potenciometr; počítač zjišťuje úhel jeho natočení podle času nabíjení kondenzátoru připojeného sériově k tomuto potenciometru, což je velmi jednoduché řešení plně vyhovující Wozově filozofii).

Obrázek 11: Výpočet Mandelbrotovy množiny v Atari BASICu, doba trvání výpočtu tohoto obrázku přesáhla osm hodin.

Integer BASIC dokázal zpracovávat pouze celočíselné šestnáctibitové hodnoty v rozsahu –32768 až 32767. To sice Wozovi nevadilo při tvorbě jeho hry Breakout a i další utility si s tímto číselným datovým typem vystačily (například i poměrně kvalitní šachy), ovšem například pro účetní či matematicky zaměřené aplikace se mohlo jednat o poměrně závažný nedostatek. Z tohoto důvodu chtěla firma Apple rozšířit původní Integer BASIC o možnost práce s čísly uloženými v systému plovoucí řádové čárky. Ovšem v době, kdy měl být Integer BASIC přepsán, byl Woz zaneprázdněn vývojem mechaniky i řadiče disketové jednotky Disk II a nikdo jiný ve firmě Apple neměl tolik znalostí, aby se úprav Integer BASICu mohl zhostit (nesmíme zapomenout na to, že v letech 1976–1977 by každá chyba v interpretru znamenala nutnost výměn čipů ROM u zákazníků, nikoli pouhé vystavení patche na Internetu, jak se podobná situace řeší dnes). Z tohoto důvodu firma Apple nakonec zakoupila licenci na interpret programovacího jazyka BASIC od jisté firmy Micro-Soft. Ten se stal de facto standardem a byl součástí ROM pro většinu počítačů řady Apple II.

Obrázek 12: Program zapsaný v Applesoft BASICu spuštěný na počítači Apple II.

Osmibitové mikropočítače Atari byly dodávány s 24 kB paměti ROM, přičemž 16 kB obsadil samotný operační systém počítače (včetně ovladačů základních periferních zařízení) a zbylých 8 kB bylo vyhrazeno pro interpret programovacího jazyka BASIC. Jednalo se o jazyk obsahující příkazy, které alespoň částečně dokázaly využít grafické a zvukové schopnosti počítačů Atari, což je důležité jak z praktického, tak i obchodního hlediska.

Obrázek 13: Programovací jazyk Atari BASIC obsahoval příkazy, pomocí nichž bylo možné nastavovat různé grafické režimy, vykreslovat body (pixely) či úsečky, popř. měnit barvovou paletu. Na tomto obrázku je zobrazen grafický režim číslo 15, v němž se zobrazuje čtyřbarevná bitmapa o rozlišení 160×160 pixelů, pod níž jsou umístěny čtyři textové řádky, které může interpret jazyka BASIC využít stejným způsobem, jako standardní textový režim (číslo 0).

Rychlost interpretru programovacího jazyka Atari BASIC záhy přestala mnoha programátorům a samozřejmě i uživatelům dostačovat. Kromě poměrně neúspěšného Microsoft BASICu se záhy rozšířil překladač BASICu do strojového kódu (který byl ovšem v praxi použitelný především pro překlad již odladěných programů, nikoli pro samotný vývoj) a především Turbo BASIC, jehož autorem je známý Frank Ostrowski (tento programátor později vytvořil GFA BASIC pro osobní počítače Atari ST). Turbo BASIC téměř splňoval všechny sny BASICových programátorů – byl rychlejší než původní Atari BASIC, byl s Atari BASICem plně kompatibilní, díky programovému „odklápění“ ROM nabízel vývojářům více volné operační paměti (což působilo téměř magicky) a navíc Turbo BASIC obsahoval poměrně velké množství nových příkazů, ať již určených pro strukturované programování (nové typy programových smyček), tak i příkazy zjednodušující programátorovu každodenní činnost.

pc7104

Obrázek 14: Poměrně jednoduchý trik, pomocí něhož bylo možné na úvodní obrazovce interpretru jazyka BASIC zobrazit více než osm spritů. Všechny operace se sprity musely být v Commodore BASICu prováděny přímým zápisem do paměti příkazem POKE, teprve interpretr Simons's BASIC obsahoval specializované příkazy pro práci s grafickým čipem VIC-II..

Třetím a pravděpodobně i nejznámějším zástupcem osmibitových domácích počítačů s mikroprocesorem MOS 6502 jsou počítače Commodore C64. BASIC dodávaný spolu s C64 je téměř klasickým zástupcem Microsoft BASICu – obsahuje základní příkazy pro řízení běhu programu, podporu pro práci s celými čísly (16bitový integer) i čísly reálnými, práci s řetězci, formátovaný výstup atd. U jmen proměnných se rozlišovaly první dva znaky a případný postfixový znak určující typ proměnné – $ pro řetězcové proměnné a % pro proměnné celočíselné. Ovšem některé příkazy citelně chyběly – především se jednalo o příkazy, pomocí nichž by bylo možné provádět vykreslování, pracovat se sprity, generovat zvuky atd. Všechny zmíněné operace bylo nutné provádět pomocí přímého přístupu do paměti (resp. do řídicích registrů čipů VIC-II a SID mapovaných do operační paměti) s využitím příkazů POKE a PEEK, což samozřejmě bylo méně přehledné, než použití specializovaných příkazů.

Pro počítače Commodore C64 vzniklo několik dalších dialektů tohoto programovacího jazyka. Jedním z těchto dialektů byl Graphics BASIC, jehož autory byli Ron Gilbert a Tom McFarlane. Tento jazyk, který byl nabízen na kazetách a disketách, obsahoval cca 100 nových příkazů umožňujících vykreslování základních grafických tvarů, tvorbu spritů, přístup k možnostem zvukového čipu SID atd. Ovšem mnohem populárnější byl Simons' BASIC vyvinutý šestnáctiletým (!) programátorem Davidem Simonsem v roce 1983 (právě z důvodu, že je název tohoto interpretru odvozený od Davidova příjmení, píše se „Simons' BASIC“ nikoli „Simon's BASIC“). Tento dialekt BASICu byl nabízen, na rozdíl od výše zmíněného Graphics BASICu, na cartridgi, i když v našich zemích se rozšířila spíše jeho kazetová a disketová verze.

Obrázek 15: Příručka k interpretru Simons' BASIC.

6. BASIC pro mikropočítače vybavené mikroprocesorem Zilog Z80

Druhým mikroprocesorem, který byl s oblibou používán v osmibitových domácích osmibitových mikropočítačích, je známý Zilog Z80. Těmito mikroprocesory byla vybavena celá řada mikropočítačů, počínaje minimalisticky pojatým ZX80 a ZX81 a konče Amstrad CPC. Zmiňme se tedy o jazyku BASIC pro mikropočítače Sinclair Research a taktéž o BASICu právě pro Amstrad CPC.

Obrázek 16: Laser BASIC (ZX Spectrum) nabízí dosti neobvyklé uživatelské prostředí.

Počítač ZX80 byl i přes své velmi skrovné technologické parametry (začínalo se s 1 kB RAM) vybaven takřka plnohodnotným interpretrem BASICu, ovšem omezeným na práci s celými čísly. Ten byl naprogramován Johnem Grantem ze společnosti firmy Nine Tiles. Původní Grantův interpret BASICu, který vznikl již v průběhu června a července roku 1979, měl sice délku okolo pěti kilobajtů, ovšem po cca jednom měsíci věnovaném optimalizacím a ladění se podařilo splnit zadání a vytvořit interpret programovacího jazyka BASIC uloženého v pouhých 4 kB ROM (spolu s editorem a dalšími strojovými rutinami), který pro svoji činnost vyžadoval jen 1 kB paměti RAM. Zajímavé bylo využití operační paměti, protože do již zmíněného jednoho kilobajtu bylo nutné ukládat jak tokenizovaný BASICový program, tak i obrazovou paměť, zásobník pro vyhodnocování výrazů, proměnné operačního systému aj.

Myšlenka uložení obrazových dat je poměrně jednoduchá – vzhledem k tomu, že výpis zdrojového kódu BASICového programu většinou nezabere celý textový řádek (32 znaků), jsou jednotlivé řádky uloženy v operační paměti za sebou jako řetězce o různé délce (samotný BASICový program je dokonce ještě mnohem kratší, neboť v paměti jsou uloženy pouze tokeny jednotlivých příkazů). Spolu s rostoucí velikostí tokenizovaného programu se zmenšuje počet zobrazených řádků. Tento způsob práce s pamětí byl v následující řadě počítačů Sinclair (počínaje slavným ZX Spectrem) opuštěn, protože u větších kapacit operačních pamětí postrádal smysl.

Obrázek 17: Laser BASIC nabízí dosti neobvyklé uživatelské prostředí.

Po ZX80 velmi rychle následoval známý počítač ZX81 a následně slavné ZX Spectrum. Všechny typy počítačů ZX Spectrum se v několika ohledech lišily od původních modelů ZX80 a ZX81, i když základ, tj. osmibitový mikroprocesor Zilog Z80, byl použitý ve všech počítačích firmy Sinclair (zde se jeho frekvence zvýšila na 3,5 MHz). Především došlo k rozšíření kapacity paměti ROM na 16 kB, takže bylo možné použít vylepšenou verzi Sinclair Basicu, která (kromě dalších vylepšení) obsahovala nové příkazy i funkce. Navíc díky vylepšené verzi čipu ULA odpadla potřeba příkazů SLOW a FAST (řízení generování video signálu).

Obrázek 18: Načítání Laser BASICu.

Zatímco interpret BASICu implementovaný na počítači ZX80 umožňoval práci pouze s celými čísly (více funkcionality se prostě do pouhých 4kB ROM nevešlo), bylo možné ve všech dalších verzích Sinclair BASICu používat i čísla uložená ve formátu plovoucí řádové čárky, sdružovat více hodnot do polí atd. Samozřejmě bylo možné pracovat i s řetězci, ovšem u proměnných uchovávajících řetězce se rozlišoval pouze jeden znak v jejich názvu, takže počet současně zpracovávaných řetězcových proměnných byl roven počtu znaků v abecedě (za jména těchto proměnných se přidávat znak $, ostatně jako snad ve všech dialektech „klasického“ BASICu).

Sinclair BASIC je v některých ohledech poměrně specifickým jazykem, který se odlišuje od dalších interpretrů a jejich editorů. Již v původní verzi Sinclair BASICu naprogramované Johnem Grantem byl použit způsob zápisu programu, který byl později použit i v dalších interpretrech BASICu využívaných na počítačích firmy Sinclair Research. Jednotlivé BASICové příkazy a funkce se totiž nevypisovaly znak po znaku (jak je to běžné dnes nebo jak to bylo běžné na dalších osmibitových počítačích), ale vkládaly se do editovaného programu vždy po celých slovech či symbolech. K tomuto účelu měla každá ze čtyřiceti kláves na klávesnici počítačů Sinclair vždy několik funkcí – většinou tři až pět. V závislosti na právě aktivním režimu kurzoru bylo možné do programu vložit celý vybraný příkaz nebo funkci, což bylo po relativně krátkém zaučení poměrně rychlé a navíc se tím zamezilo vzniku mnoha syntaktických chyb – které navíc interpret nemusel kontrolovat.

Obrázek 19: Přebal jedné z mnoha knih o Sinclair BASICu.

Tento způsob editace programů měl ještě jednu přednost, protože uživatelé měli přímo na klávesnici vypsány všechny příkazy dostupné v dané verzi Sinclair BASICu, takže odpadlo zdlouhavé listování v příručkách a navíc prozatím „tajemná“ slova napsaná na klávesnici lákala uživatele, aby si příslušné příkazy vyzkoušeli a naučili se je (poznamenejme jen, že jednotlivé příkazy byly interně ukládány jako osmibitové tokeny s hodnotami ležícími mezi 165 až 255).

Obrázek 20: Vývojové prostředí Beta BASICu. V horní části obrazovky se nachází program vypsaný menším fontem, zatímco příkaz v editačním řádku používá font standardní (velikost 8×8 pixelů).

Pro domácí osmibitové mikropočítače Amstrad CPC byl vyvinut poměrně vyspělý Locomotive Basic, který byl částečně odvozen od Mallard BASICu (pro ZX Spectrum+3 s CP/M, počítače Acorn doplněné o čip Z80 atd.). Locomotive Basic obsahoval příkazy, které dokázaly využívat multimediální možnosti mikropočítačů Amstrad CPC, zejména jeho grafické režimy (příkazy pro kreslení) a zvukový čip AY-3–8912 (příkazy pro ovládání všech zvukových kanálů). Tato varianta BASICu navíc obsahovala i příkazy pro práci se soubory uloženými na magnetofonové pásce (logicky jen část příkazů zde dávala smysl) i na disketě, takže bylo možné interpreter Locomotive Basicu využít i jako jednoduchý ale zato programovatelný shell.

Obrázek 21: Úvodní obrazovka Locomotive BASICu.

7. Vyzkoušení interpretrů pro osmibitové mikropočítače

Jakým způsobem je možné se vrátit v čase a vyzkoušet si dobové BASICy nebo jejich alternativy? Samozřejmě je možné získat původní hardware, který je mnohdy stále bez problémů použitelný a nabízený ve funkčním stavu. V původních osmibitových mikropočítačích jsou paměti ROM s originálními interpretry výše zmíněných BASICů (to se týká Atari, Commodore, Spectra i CPC). Druhý způsob spočívá v instalaci emulátorů těchto mikropočítačů, což ovšem vyžaduje získání obrazů původních ROM. To teoreticky naráží na problémy s licencemi, nicméně tento způsob je masivně používán.

Ovšem pro některé mikropočítače, například pro ZX Spectrum, existuje ještě jedna „čistější“alternativa, a to použití ROM s reimplementací OS i BASICu. V případě ZX Spectra se jedná o OpenSE BASIC, který se snaží o plnou zpětnou kompatibilitu s originálním BASICem, ovšem přidává další příkazy, opravuje některé chyby, podporuje zkratky příkazů apod. (viz například https://archive.org/details/zx-roms-fuse-roms). Využití najde například ve známém emulátoru ZX Spectra Fuse.

Obrázek 22: Úvodní obrazovka emulátoru ZX Spectra ve chvíli, kdy se použije OpenSE BASIC.

Poznámka: kombinace Fuse + OpenSE BASICu může být poměrně dobrým počátečním systémem pro někoho, kdo se zajímá a tuto oblast historie informatiky.

8. GW-BASIC

Poměrně velké množství interpretrů BASICu má „na svědomí“ společnost Microsoft (dříve psaná MicroSoft). Seznam BASICů, za nimiž stála, je skutečně rozsáhlý a nalezneme v něm tyto projekty:

# Název jazyka Rok vzniku Poznámka
1 Altair BASIC 1975 verze 4k a 8k
2 Applesoft BASIC 1977 pro řadu Apple II
3 Commodore BASIC 1977 pro slavný Commodore C64
4 Level I BASIC 1977 pro počítače TRS-80
5 Level II BASIC 1978 pro počítače TRS-80
6 Color BASIC 1980
7 MBASIC 1980 pro počítače s CP/M, vyžaduje 28kB RAM
8 IBM BASIC (IBM Personal Computer BASIC) 1981 taktéž Cassette BASIC
9 Atari Microsoft BASIC 1982 pro osmibitová Atari
10 Microsoft Basic-86 1982  
11 MSX BASIC 1983 platforma MSX
12 Extended Color BASIC 1983?  
13 Disk Extended Color BASIC 1984  
14 BASIC 1.0 (pro Thomson computers) 1986  
15 GW-BASIC 1983 – 1988 dodáván společně s DOSem
16 QBasic 1991 dodáván společně s DOSem od verze 5.0
17 QuickBASIC 1985 – 1990 překladač

Obrázek 23: Fotografie obrazovky počítače IBM PC se spuštěným interpretrem BASICu, v němž je napsán velmi jednoduchý program.

Zatímco IBM Cassette BASIC byl používán pouze na originálních počítačích IBM PC a nikoli na mnohých klonech (díky kterým se platforma IBM PC tak rozšířila), další dialekt programovacího jazyka BASIC byl dostupný všem uživatelům, protože měl formu běžné (spustitelné) aplikace určené pro operační systém MS-DOS. Jedná se o GW-BASIC vytvořený opět firmou Microsoft. Vývoj tohoto programovacího jazyka a taktéž standardizaci jeho příkazů napříč několika operačními systémy a platformami vedl Greg Whitten, který do firmy Microsoft nastoupil již v roce 1979 a měl tak velmi nízké číslo zaměstnance (sám uvádí, že pokud si dobře pamatuje, měl číslo 16).

Obrázek 24: Úvodní obrazovka původního GW-BASICu po jeho spuštění v emulátoru PC (zde se konkrétně jedná o DOSBOX).

Název tohoto programovacího jazyka zvolil sám Bill Gates, přičemž písmena „GW“ oficiálně znamenaly zkratku dvousloví „Gee-Whiz“, pravděpodobně se však původně jednalo o iniciály Grega Whittena. GW-BASIC se stal mezi uživateli počítačů IBM PC (především v dobách PC XT) velmi populární, i když se jednalo o dialekt, který se nijak zvlášť neodlišoval od dialektů BASICu dostupných na osmibitových mikropočítačích – dokonce bylo možné používat pouze jeden segment paměti, tj. 64 kB, i když samotný MS-DOS dokázal obsloužit 640 kB, resp. 1 MB pokud započítáme i oblast BIOSu, grafické paměti, popř. BIOSu síťové karty.

Obrázek 25: Až na první dva řádky je prostředí i chování PC-BASICu (emulátoru původního GW-BASICu) prakticky shodné s GW-BASICem.

GW-BASIC, který je možné považovat za vrcholnou formu „klasického“ BASICu s čísly řádků, nestrukturovanými příkazy, pouze globálními proměnnými a neexistencí uživatelských datových typů, se na platformě IBM PC stal velmi populární. Je to ostatně logické, protože byl dostupný všem uživatelům, tedy i neprogramátorům (a obecně lidem, kterým nestálo za to investovat čas do koupě překladače profesionálního jazyka, popř. lidem, kterým počítač nepatřil a přesto si chtěli vyzkoušet něco naprogramovat). Z tohoto důvodu bylo pro GW-BASIC vytvořeno obrovské množství programů na amatérské bázi a doposud existují fanoušci buď přímo GW-BASICu nebo jeho moderní reinkarnace PC-BASICu, o němž se zmíníme v navazující kapitole.

Obrázek 26: BSOD s chybou při běhu PC-BASICu.

Poznámka: GW-BASIC pochopitelně umožňovat nízkoúrovňový přístup k hardware. Například takto je možné vyplnit obrazovku IBM PC šumem. Obrazová paměť v režimu 9 začíná na segmentu 0×A000:
1 REM *****************************
2 REM Vyplneni obrazovky nahodnym
3 REM vzorem v rezimu SCREEN 9
4 REM
5 REM Uprava pro GW-BASIC
6 REM
7 REM *****************************
8 REM
9 REM
10 SCREEN 9
20 DEF SEG = &hA000
30 FINAL=640*350/8
40 FOR I=0 TO FINAL
50   POKE I,255*RND(1)
60 NEXT I
999 END

9. Odzkoušení GW-BASICu

Jak si tedy můžeme GW-BASIC odzkoušet dnes? Na stránce gw-basic.com se nachází emulátor PC a operačního systému DOS s GW-BASICem, který běží přímo v prostředí webového prohlížeče a tudíž nevyžaduje žádnou instalaci ani shánění binárního souboru s GW-BASICem. Postačuje si pouze emulátor spustit a ocitnete se v prostředí původního GW-BASICu, které je opět velmi minimalistické, i když ne tak minimalistické, jako většina BASICů pro osmibitové domácí mikropočítače. Klasický GW-BASIC je ovšem možné provozovat lokálně, například v DOSBoxu. Jeho kód byl totiž zveřejněný pod licencí MIT, takže ho lze přeložit a používat (samotný kód je v assembleru, což pochopitelně překlad komplikuje, navíc nejsou k dispozici původní skripty určené pro překlad, ale pouze zdrojové kódy). Alternativně je ovšem možné využít projekt nazvaný PC-BASIC, což je reimplementace GW-BASICu s využitím Pythonu a dalších podpůrných knihoven. S tímto (pro milovníky historie IT zajímavým) projektem jsme se již seznámili v článku PC-BASIC: reinkarnace populárního i zatracovaného GW-BASICu.

Poznámka: nároky na HW PC-BASICu jsou oproti původnímu GW-BASICu větší o několik řádů!

Obrázek 27: Spuštění PC-Basicu v Linuxovém terminálu.

Některé ukázkové příklady určené pro běh v GW-BASICu naleznete na adrese https://github.com/tisnik/8bit-fame/tree/master/GW-BASIC.

10. Klasický BASIC ve webovém prohlížeči

Některé emulátory starších osmibitových mikropočítačů i s BASICem jsou dostupné online a spustitelné ve webovém prohlížeči, takže je možné si programování v BASICu vyzkoušet i tímto způsobem. Například lze najít relativně velké množství online emulátorů ZX81; jeden z nich je dostupný na stránce http://www.zx81stuff.org.uk/zx81/jty­one.html. Podobně si můžete vyzkoušet emulátor ZX Spectra (různých modelů) na stránce https://zx.researcher.su/en/. Poněkud problematické je nalezení emulátoru osmibitových Atari s povoleným BASICem (a nikoli určené pro spuštění her, například https://zerstoerung.de/jsa8e/). A o GW-BASICu pro IBM PC se zmíníme v navazujících kapitolách.

11. QuiteBasic

Prostředí Quite BASICu, které je dostupné na adrese http://www.quitebasic.com/, se snaží o reinkarnaci klasického BASICu, ovšem ve webovém ekosystému. Tato varianta BASICu umožňuje vykreslení grafiky na kreslicí plátno (canvas), přičemž rozlišení tohoto plátna (a nepřímo tak velikost „pixelů“) je možné měnit z menu. Je tak možné si například vyzkoušet některé vykreslovací algoritmy na plátnu s malým rozlišením (a zvětšenými pixely) a finální program může využívat větší rozlišení. Nevýhodou QuiteBasicu je poměrně pomalý běh programů – což sice na jednu stranu připomíná „staré dobré časy“, ale taktéž to vede k pomalému běhu některých složitějších algoritmů s vnořenými programovými smyčkami atd. Program se zapisuje do k tomu určeného textového okna, takže se zde nepoužívá interaktivní (a většinou značně omezený) editor známý z klasických BASICů.

Obrázek 28: Prostředí Quite BASICu.

12. BASIC na stránkách 8bitworkshop

Podobně jako QuiteBASIC je koncipován i editor a interpret BASICu dostupný na stránce https://8bitworkshop.com. Oproti klasickým BASICům zde má programátor k dispozici textový editor se zvýrazněním syntaxe a programy se spouští v samostatné ploše webové stránky (nejedná se tedy o interaktivní editor známý z osmibitových mikropočítačů). Nutno však dodat, že BASIC je na této stránce spíše druhořadým projektem, protože primárně zde nalezneme editor a překladač programů zapisovaných v assembleru pro různé typy počítačů a herních konzolí.

Obrázek 29: Editor BASICu a interpret BASICu na stránce https://8bitworkshop.com.

Obrázek 30: Hra (simulace) Hamurabi pocházející původně již v roku 1968.

13. BBC BASIC

Velmi důležitým dialektem BASICu, který byl velmi úspěšný především v západních zemích (ovšem nikoli v ČSSR, kde panovala, podobně jako v dalších státech RVHP, poněkud specifická situace), je BBC BASIC, jehož původním autorkou je Sophie Wilsonová a mezi další autory, kteří například provedli portaci tohoto programovacího jazyka na jiné platformy, patří i známý Richard Russell, který stále o tomto jazyku udržuje stránky dostupné na adrese http://www.bbcbasic.co.uk/index.html (z této stránky si můžete stáhnout i variantu BBC BASICu doplněnou o podporu knihovny SDL 2 a dostupnou i na Linux. K dispozici je ovšem i čistě terminálová varianta určená opět pro Linux a mnohé další varianty (Windows apod.).

Obrázek 31: Dobový plakát s počítačem Acorn BBC Micro.

Tento dialekt programovacího jazyka BASIC má poměrně zajímavou a taktéž dlouhou historii. Za jeho vznikem a vývojem stála, jak již ostatně název tohoto programovacího jazyka napovídá, britská BBC, která na počátku osmdesátých let minulého století chtěla vytvořit počítač (samozřejmě s nezbytným programovým vybavením), který by byl vhodný pro výuku a který by bylo možné masově rozšířit jak mezi školy, tak i na právě vznikající trh s domácími osmibitovými mikropočítači. Ovšem vzápětí se ukázalo, že samotná BBC nemá prostředky na to, aby sama v rozumném čase navrhla a následně masově vyráběla počítač, jenž byl mohl svými parametry i cenou konkurovat domácím osmibitovým počítačům vyráběným specializovanými firmami, které právě začaly poměrně překotným způsobem vznikat (popř. se jednalo o divize již zavedených technologických firem). Z tohoto důvodu BBC vypsala tendr, z něhož vyšla vítězně firma Acorn Computers z Cambridge. Historie BBC BASICu začala… a nejenom jeho, začala se současně psát i prehistorie mikroprocesorů ARM.

Obrázek 32: Strukturované konstrukce REPEAT a FOR v BBC BASICu.

Společnost Acorn Computers již v době, kdy tendr vypsaný BBC probíhal, konstruovala svoje počítače nazvané Atom vybavené sice poměrně rychlým, zato však omezeným a nekompatibilním dialektem BASICu, který se ukázal být nepříliš vhodným pro počítač určený mj. i pro výuku (jednou z pozitivních vlastností interpretru tohoto BASICu byla možnost zápisu assembleru spolu s BASICovými programy, která se později objevila i v BBC BASICu). Z tohoto důvodu BBC zpočátku uvažovala o tom, že nakoupí licence na dialekt BASICu nabízený firmou Microsoft, ovšem tento programovací jazyk, přesněji řečeno jeho varianta určená pro osmibitové mikroprocesory, postrádal některé vlastnosti, které byly vyžadovány k tomu, aby bylo možné tento dialekt použít pro potřeby výuky – týkalo se to například nedostupnosti již zmíněných programových konstrukcí umožňujících strukturované programování, taktéž nemožnosti použití dlouhých názvů proměnných (nikoli pouze jedno- či dvouznakových) atd.

Obrázek 32: Úvodní obrazovka BBC BASICu ve verzi pro ZX Spectrum. Tato verze vznikla později než původní dialekt pro počítače Acorn BBC Micro, mj. i z toho důvodu, že nejdříve musel být tento dialekt BASICu portován na mikroprocesory Intel 8080 a Zilog Z80 (a samozřejmě také proto, že ZX Spectrum začalo být prodáváno později než Acorn BBC Micro).

Z těchto důvodů bylo nakonec od myšlenky licencování Microsoft BASICu odstoupeno a pro nově vznikající platformu nazvanou příhodně Acorn BBC Micro byl vytvořen nový programovací jazyk s názvem BBC BASIC, který byl mj. navržen takovým způsobem, aby nebyl závislý na konkrétní počítačové platformě. Původní verze programovacího jazyka BBC BASIC z roku 1981 byla určena pro počítače vybavené slavnými osmibitovými mikroprocesory MOS 6502, ovšem v pozdějších letech došlo k jeho rozšíření i na další mikroprocesory a počítačové platformy, viz též údaje na stránce http://mdfs.net/Software/BBCBasic/.

14. BBC BASIC online

BBC BASIC je dostupný online (bez nutnosti instalace) na adrese https://bbcmic.ro/. Můžete si vyzkoušet jednoduché příklady, které jsem připravil na adrese https://github.com/tisnik/8bit-fame/tree/master/BBC%20Basic.

Obrázek 33: Online varianta BBC BASICu.

15. EndBASIC

Poměrně zajímavým novým interpretrem pro klasicky pojatý BASIC je EndBASIC. Tento interpret, jenž lze přeložit a provozovat v moderních operačních systémech, je možné spouštět v textové konzoli (bez podpory grafických příkazů), v grafické konzoli (kombinace textu a grafiky) nebo přímo ve webovém prohlížeči. V současnosti je zvykem zdůraznit, že aplikace vyvinuté v Rustu jsou vyvinuté v Rustu, takže vězte, že EndBASIC je skutečně vyvinut v tomto jazyce a lze ho přímo volat z rustovských programů.

EndBASIC se do značné míry snaží napodobit původní BASICy, ovšem navíc přináší i některé vylepšení, například nápovědu k jednotlivým prvkům jazyka (ovšem vyvolávanou příkazy, nikoli přes ovládací prvky GUI). Dále nabízí některé strukturované příkazy do značné míry odvozené z již zmíněného GW-BASICu, má základní příkazy pro práci s grafikou a dovoluje namísto čísel řádků (ty jsou však stále podporovány) použít pojmenovaná návěští. To není vše, protože lze přistupovat k programům a datům jak přes lokální souborový systém, tak i k objektům uloženým vzdáleně (to by mohlo být zajímavé ve výuce).

Online varianta EndBASICu, která nevyžaduje žádnou instalaci, je dostupná na adrese https://repl.endbasic.dev/. Tato varianta podporuje i grafické příkazy.

Obrázek 34: Online varianta EndBASICu.

16. Lokální běh interpretru EndBASIC

Ovšem EndBASIC si můžete stáhnout i pro váš operační systém ze stránky https://www.endbasic.dev/ a spouštět ho lokálně. Aby vše pracovalo korektně, tedy i grafické příkazy, je nutné mít nainstalovánu knihovnu SDL2; bez ní sice bude EndBASIC funkční, ale bez grafického výstupu. Mimochodem, instalace pro 64bitový Linux obsahuje slinkovaný EndBASIC o velikosti 11MB (porovnejme s BASICem pro ZX80 se 4kB; pokrok se evidentně nezastavil):

$ ls -lh
 
total 11M
-rwxr-xr-x. 1 ptisnovs ptisnovs  11M Dec 27  2022 endbasic
-rw-r--r--. 1 ptisnovs ptisnovs  12K Dec 27  2022 LICENSE
-rw-r--r--. 1 ptisnovs ptisnovs  24K Dec 27  2022 NEWS.md
-rw-r--r--. 1 ptisnovs ptisnovs   42 Dec 27  2022 NOTICE
-rw-r--r--. 1 ptisnovs ptisnovs 5.9K Dec 27  2022 README.md

Při startu interpretru EndBASICu je možné specifikovat cestu k lokálnímu adresáři, ve kterém jsou umístěny zdrojové kódy s programy psanými v BASICu:

$ ./endbasic --local-drive file://.
 
    EndBASIC 0.10.0
    Copyright 2020-2022 Julio Merino
 
    Type HELP for interactive usage information.
 
Ready

Obrázek 35: Lokálně spuštěná grafická konzole EndBASICu.

Příkazem dir si můžete vypsat obsah adresáře, v němž se mj. nachází i zdrojový kód test.bas:

dir
 
    Directory of LOCAL:/
 
    Modified              Size    Name
    2022-12-27 15:18     11358    LICENSE
    2022-12-27 15:18     24552    NEWS.md
    2022-12-27 15:18        42    NOTICE
    2022-12-27 15:18      5955    README.md
    2022-12-27 15:20    11332288    endbasic
    2024-05-03 14:42        30    test.bas
 
    6 file(s), 11374225 bytes
 
Ready

Tento zdrojový kód si můžete načíst a následně spustit:

load "test.bas"
Ready

Spuštění načteného programu:

run

Obrázek 36: Kombinace textu a grafiky v grafické konzoli.

17. Kombinace grafické a textové konzole

V EndBASICu je možné, podobně jako u některých dobových osmibitových mikropočítačů, na ploše obrazovky zkombinovat text (zdrojový kód atd.) s grafikou. Ukažme si to na velmi jednoduchém příkladu, který vykreslí několik barevných úseček:

for i=0 to 80
    color i
    gfx_line i * 5, 0, 0, 400-i*5
    gfx_line 640 - i * 5, 0, 639, 400-i*5
next

Výsledek by měl vypadat přibližně následovně:

Obrázek 37: Kombinace textu a grafiky v grafické konzoli.

V dalším příkladu je realizováno vykreslení vzorku (nejedná se však o fraktál) na obrazovku. Stále jsme omezeni pouze na patnáct základních barev:

for y = 0 to 400
    for x = 0 to 400
        c = int(x*x/20+y*y/20)
        c = c MOD 16
        color c
        gfx_pixel x, y
    next
next

Povšimněte si, že do vzorku se po ukončení programu „vepsala“ zpráva „Ready“ a na dalším řádku se zobrazil kurzor:

Obrázek 38: Kombinace textu a grafiky v grafické konzoli.

ict ve školství 24

Poznámka: podrobnější informace o tomto dialektu BASICu si uvedeme v samostatném článku.

18. Předchozí články o programovacích jazycích BASIC

S různými variantami BASICu (resp. o různých jazycích, které o sobě tvrdí, že jsou BASICem) jsme se již na stránkách Roota několikrát setkali, a to konkrétně v následujících článcích:

  1. Programovací jazyk BASIC na osmibitových mikropočítačích
    https://www.root.cz/clanky/pro­gramovaci-jazyk-basic-na-osmibitovych-mikropocitacich/
  2. Programovací jazyk BASIC na osmibitových mikropočítačích (2)
    https://www.root.cz/clanky/pro­gramovaci-jazyk-basic-na-osmibitovych-mikropocitacich-2/
  3. Programovací jazyk BASIC na osmibitových mikropočítačích (3)
    https://www.root.cz/clanky/pro­gramovaci-jazyk-basic-na-osmibitovych-mikropocitacich-3/#k09
  4. Programovací jazyk BASIC na osmibitových mikropočítačích (dokončení)
    https://www.root.cz/clanky/pro­gramovaci-jazyk-basic-na-osmibitovych-mikropocitacich-dokonceni/
  5. Programovací jazyk BASIC na herní konzoli Atari 2600
    https://www.root.cz/clanky/pro­gramovaci-jazyk-basic-na-herni-konzoli-atari-2600/
  6. Vývojové nástroje používané v dobách osmibitových mikropočítačů
    https://www.root.cz/clanky/vyvojove-nastroje-pouzivane-v-dobach-osmibitovych-mikropocitacu/
  7. BaCon: transpřekladač BASICu do jazyka C
    https://www.root.cz/clanky/bacon-transprekladac-z-jazyka-basic-do-jazyka-c/
  8. Basic-256: další moderní reinkarnace BASICu určená pro výuku programování
    https://www.root.cz/clanky/basic-256-dalsi-moderni-reinkarnace-basicu-urcena-pro-vyuku-programovani/
  9. Základy práce s grafickou plochou v jazyku Basic-256
    https://www.root.cz/clanky/zaklady-prace-s-grafickou-plochou-v-jazyku-basic-256/
  10. PC-BASIC – reinkarnace populárního i zatracovaného GW-BASICu
    https://www.root.cz/clanky/pc-basic-reinkarnace-popularniho-i-zatracovaneho-gw-basicu/
  11. Small Basic: moderní reinkarnace BASICu určená pro výuku programování
    https://www.root.cz/clanky/small-basic-moderni-reinkarnace-basicu-urcena-pro-vyuku-programovani/
  12. Vestavěné objekty Small Basicu: práce s grafikou, časovačem, reakce na události
    https://www.root.cz/clanky/vestavene-objekty-small-basicu-prace-s-grafikou-casovacem-reakce-na-udalosti/
  13. Tvorba her pro Atari 2600 v Batari BASICu: úkol pro hardcode programátory
    https://www.root.cz/clanky/tvorba-her-pro-atari-2600-v-batari-basicu-ukol-pro-hardcode-programatory/
  14. Tvorba her pro Atari 2600 v Batari BASICu: ovládání čipu TIA
    https://www.root.cz/clanky/tvorba-her-pro-atari-2600-v-batari-basicu-ovladani-cipu-tia/
  15. Tvorba her pro Atari 2600 v Batari BASICu: standardní kernel a zvuky
    https://www.root.cz/clanky/tvorba-her-pro-atari-2600-v-batari-basicu-standardni-kernel-a-zvuky/

19. Předchozí články o kulatých výročích v oblasti programovacích jazyků

V této kapitole jsou uvedeny odkazy na již vyšlé články, v nichž jsme si připomněli narozeniny některých důležitých (a ve dvou případech i přelomových) programovacích jazyků:

  1. The future's bright… the future's Cobol
    https://www.root.cz/clanky/the-future-s-bright-the-future-s-cobol/
  2. BBC BASIC i QBasic oslavují svá kulatá výročí
    https://www.root.cz/clanky/bbc-basic-i-qbasic-oslavuji-sva-kulata-vyroci/
  3. Sedmdesátiny assemblerů: lidsky čitelný strojový kód
    https://www.root.cz/clanky/sed­mdesatiny-assembleru-lidsky-citelny-strojovy-kod/
  4. Šedesátiny převratného programovacího jazyka ALGOL-60
    https://www.root.cz/clanky/sedesatiny-prevratneho-programovaciho-jazyka-algol-60/
  5. Další kulaté výročí v IT: dvacet let existence Pythonu 2
    https://www.root.cz/clanky/dalsi-kulate-vyroci-v-it-dvacet-let-existence-pythonu-2/
  6. Třicet let od vydání revolučního Turbo Pascalu 5.5
    https://www.root.cz/clanky/tricet-let-od-vydani-revolucniho-turbo-pascalu-5–5/
  7. Oslava 55 let od vzniku první implementace programovacího jazyka APL
    https://www.root.cz/clanky/oslava-55-let-od-vzniku-prvni-implementace-programovaciho-jazyka-apl/

20. Odkazy na Internetu

  1. BASIC oslavil 60 let (zprávička)
    https://www.root.cz/zpravicky/basic-oslavil-60-let/
  2. Online IDE s interpretrem BASICu
    https://8bitworkshop.com/v3.11.0/
  3. gotBASIC.com
    https://gotbasic.com/atari.html
  4. Informace o GW-Basicu
    https://gw-basic.com/
  5. Stránka s živým EndBASICem
    https://repl.endbasic.dev/
  6. EndBASIC: BASIC interpreter + DOS environment, reimagined
    https://www.endbasic.dev/
  7. GWBASIC User's Manual
    http://www.antonis.de/qbe­books/gwbasman/index2.html
  8. GFA-BASIC
    http://sites.google.com/si­te/gfabasic16/
  9. E-mail od tvůrce GW-Basicu
    http://www.classiccmp.org/pi­permail/cctech/2005-April/042999.html
  10. General Electric GE-400
    http://www.feb-patrimoine.com/PROJET/ge400/ge-400.htm
  11. GE-400 Time-sharing information systems:
    http://www.computerhistory­.org/collections/accession/102646147
  12. A brief history of the development of BASIC (pravděpodobně již nefunkční odkaz)
    http://www.phys.uu.nl/~ber­gmann/history.html
  13. History of BASIC (PDF)
    http://www.q7basic.org/His­tory%20of%20BASIC.pdf
  14. Dartmouth College Computation Center. 1964.-The original Dartmouth BASIC manual
    http://www.bitsavers.org/pdf/dar­tmouth/BASIC_Oct64.pdf
  15. The Original BASIC
    http://www.truebasic.com/
  16. BASIC – Beginners All-purpose Symbolic Instruction Code
    http://hopl.murdoch.edu.au­/showlanguage.prx?exp=176
  17. The History of the Mainframe Computer
    http://www.vikingwaters.com/htmlpa­ges/MFHistory.htm
  18. Dartmouth Time Sharing System
    http://en.wikipedia.org/wi­ki/Dartmouth_Time_Sharing_Sys­tem
  19. General Electric (Wikipedia)
    http://en.wikipedia.org/wi­ki/General_Electric
  20. GE 225 vs. IBM 1401
    http://ed-thelen.org/GE225-IBM1401.html
  21. A GE-225 is found
    http://ed-thelen.org/comp-hist/GE225.html
  22. G.E. 200 Series Computers
    http://www.smecc.org/g_e__200_se­ries_computers.htm
  23. DTSS – Dartmouth Time Sharing System
    http://dtss.dartmouth.edu/index.php
  24. John G. Kemeny: BASIC and DTSS: Everyone a Programmer
    http://dtss.dartmouth.edu/e­veryoneaprogrammer.php
  25. GE-200 series (Wikipedia)
    http://en.wikipedia.org/wiki/GE-200_series
  26. GE-400 series (Wikipedia)
    http://en.wikipedia.org/wiki/GE-400_series
  27. GE-600 series (Wikipedia)
    http://en.wikipedia.org/wiki/GE-600_series
  28. ZX Basic Manual
    http://www.worldofspectrum­.org/ZXBasicManual/
  29. ZX81 BASIC Programming
    http://www.worldofspectrum­.org/ZX81BasicProgramming/
  30. Sinclair BASIC History
    http://scratchpad.wikia.com/wi­ki/Sinclair_BASIC_History
  31. Sinclair BASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Sinclair_BASIC
  32. Sinclair BASIC (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/Sinclair_BASIC
  33. Beta BASIC (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/Beta_BASIC
  34. Beta BASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Beta_BASIC
  35. BETA BASIC NEWSLETTER No 8
    http://spectrum128.ru/hel­p/BetaBasicNewsletter8.pdf
  36. R. T. RUSSELL: The home of BBC BASIC
    http://www.rtrussell.co.uk/
  37. R. T. RUSSELL: A History of BBC BASIC
    http://www.cix.co.uk/~rrus­sell/bbcbasic/history.html
  38. SuperBASIC (Wikipedia EN)
    http://en.wikipedia.org/wi­ki/SuperBASIC
  39. SuperBASIC (Wikipedia CZ)
    http://en.wikipedia.org/wi­ki/SuperBASIC
  40. Laser Basic/Laser Compiler
    http://www.sincuser.f9.co­.uk/049/laser.htm
  41. Laser BASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Laser_BASIC
  42. BBC BASIC
    http://www.bbcbasic.co.uk/bbcba­sic.html
  43. BBC BASIC
    http://mdfs.net/Software/BBCBasic/
  44. BBC BASIC (Z80) for the ZX Spectrum
    http://mdfs.net/Software/BBCBa­sic/Spectrum/
  45. BBC BASIC (Wikipedia CZ)
    http://en.wikipedia.org/wi­ki/BBC_BASIC
  46. BeebWiki – 8-bit Acorn Computer Wiky
    http://beebwiki.jonripley­.com/Main_Page
  47. Porovnání osmibitů
    http://porovnani8bitu.spa­ces.live.com/
  48. Rosetta Code – Main Page
    http://rosettacode.org/wiki/Main_Page
  49. Rosetta Code – Category Basic
    http://rosettacode.org/wi­ki/Category:BASIC
  50. QBasicJedi
    http://www.freewebs.com/qbasicjedi/
  51. QBasic/QuickBasic Downloads
    http://www.freewebs.com/qba­sicjedi/qbdownloads.html
  52. QuickBASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/QuickBASIC
  53. QBasic.com
    http://www.qbasic.com/
  54. QBasic (Wikipedia)
    http://cs.wikipedia.org/wiki/QBasic
  55. Dialling with QBASIC
    http://www.mysundial.ca/tsp/qba­sic.html
  56. BASIC (Wikipedia EN)
    http://en.wikipedia.org/wiki/BASIC
  57. BASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wiki/BASIC
  58. Turbo BASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Turbo_BASIC
  59. More BASIC Computer Games
    http://www.atariarchives.or­g/morebasicgames/
  60. How to build an interpreter in Java, Part 1: The BASICs
    http://www.javaworld.com/jw-05–1997/jw-05-indepth.html
  61. Apple I
    http://applemuseum.bott.or­g/sections/computers/a1.html
  62. The Apple 1 history
    http://apple2history.org/his­tory/ah02.html
  63. The Apple 2 history
    http://apple2history.org/his­tory/ah03.html
  64. INTEGER BASIC Reference
    http://www.landsnail.com/a2ref2.htm
  65. APPLESOFT Reference
    http://www.landsnail.com/a2ref.htm
  66. Apple II Programming
    http://home.swbell.net/ru­bywand/csa2pfaq.html
  67. Applesoft Lite: Applesoft BASIC for the Replica-1
    http://cowgod.org/replica1/applesoft/
  68. Simons' BASIC
    http://en.wikipedia.org/wi­ki/Simons'_BASIC
  69. Simon's Basic
    http://www.lemon64.com/?ma­inurl=http%3A//www.lemon64­.com/museum/list.php%3Fli­neoffset%3D54%26genre%3Dma­nualmisc
  70. BASIC
    http://www.c64-wiki.com/index.php/BASIC
  71. C64 Wiki: Simons Basic
    http://www.c64-wiki.de/index.php/Simons_Basic
  72. Simons' Basic (evaluation)
    http://www.atarimagazines­.com/creative/v9n11/60_Si­mons_Basic.php
  73. Bill Gates' Personal Easter Eggs in 8 Bit BASIChttp://www.pagetable.com/?p=43
  74. Kladivo na programy (je tam třeba popsán způsob nahrávání a ochran programů protí kopírování a crackování)
    http://www.grandjihlava.cz/tmp/kla­divo.pdf
  75. Didaktik Gama návod k obsluze
    http://www.grandjihlava.cz/tmp/na­vod.pdf
  76. Můj přítel Didaktik Gama
    http://www.grandjihlava.cz/tmp/pri­teldidaktik.pdf
  77. Tip & trip pro Didaktik
    http://www.grandjihlava.cz/tmp/tip­trikdidaktik.pdf
  78. Muzeum československých mikropočítačů
    http://cs-pocitace.ic.cz/
  79. Popis modulů a aplikací pro IQ-151
    http://cs.felk.cvut.cz/~bily/iq151/
  80. IQ 151
    http://osmi.tarbik.com/cssr/iq151­.html
  81. „Domácí počítače“ nedávné minulosti
    http://www.fi.muni.cz/usr/jku­cera/pv109/xkrejcir.htm
  82. ZPA: IQ-151
    http://www.homecomputer.de/pa­ges/easteurope_cz.html#iq151
  83. Zrození IQ-151
    http://www.iq151.net/index.htm
  84. Stručná historie počítače IQ150/IQ151
    http://www.iq151.net/history.htm
  85. Old Computers – IQ 151
    http://www.old-computers.com/MUSEUM/compu­ter.asp?st=1&c=1045
  86. Wikipedia EN: IQ 151
    http://en.wikipedia.org/wiki/IQ151
  87. Wikipedia CZ: IQ 151
    http://cs.wikipedia.org/wiki/IQ151
  88. JtyOne Online ZX81 Emulator
    http://www.zx81stuff.org.uk/zx81/jty­one.html
  89. OpenSE BASIC
    https://zxdesign.itch.io/opense

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.