Jak Steve Wozniak napsal BASIC pro první Apple

K 50. výročí programovacího jazyku Basic sepsal Steve Wozniak pár vzpomínek na svá první setkání s tímto jazykem a také na to, jak vytvořil svoji vlastní verzi Basicu pro Apple I a Apple II.

Steve Wozniak: Ještě před tím, než jsem poznal Basic, seznámil jsem se díky svému nejoblíbenějšímu učiteli ze střední školy panu McCollumbovi s Fortranem. Tenhle učitel totiž každý rok zařídil svým studentům možnost navštívit nějakou místní firmu, abychom se tam naučili něco nového z programování. Já jsem se tak díky jedné společnosti ze Sunny Vale seznámil s Fortranem.

Ten stejný rok jsem se také poprvé potkal na střední škole s Basicem. Ve škole jsme neměli počítač a tak jsme měli jenom na pár dní zapůjčený terminál s modemem. Nás pár studentů dobrých v matematice dostalo instrukce, jak na tomhle terminálu v Basicu napsat jednoduchý program a mně došlo, jak je snadné se tenhle jazyk naučit.

Později, když jsem byl na vysoké škole, získal jsem odborné znalosti pokročilých programovacích jazyků jako je Fortran, PL-1 a Algol. A samozřejmě jsem taky hodně psal v nízkoúrovňových jazycích.

Foto: Wikipedia

V té době jsme měli v Homebrew Computer Clubu několik knih, kterým jsem říkal bible. První z nich byla Lib/Dream Machine od Teda Nelsona, ve které byla popsána budoucnost hyperlinků. Druhou mojí oblíbenou knihou bylo 101 Games in Basic. Byl jsem velkým fandou počítačových her a bylo mi jasné, že až budu mít jednou svůj vlastní počítač, naprogramuju si všechny hry popsané v téhle knížce, abych si je mohl zahrát. Byl jsem totiž toho názoru, že právě hry odstartují revoluci počítačů v domácnostech a že klíčem k počítačovým hrám je právě Basic.

Ačkoliv Bill Gates byl mimo oblast nadšenců do počítačů naprosto neznámý, my všichni v Homebrew klubu jsme věděli, že vytvořil Basic pro mikroprocesor od Intelu. Začalo mi tak být jasné, že můj vysněný počítač musí obsahovat jazyk vyšší úrovně a že to musí být Basic.

Můj zásadní problém bylo, že jsem Basic neuměl, protože jsem s ním pracoval jenom těch pár dní na střední škole. Po nocích v HP jsem si tak začal číst manuál k Basicu.

Asi bych měl taky podotknout, že jsem nikdy neabsolvoval žádný kurz o psaní kompilátorů a překladačů. Naštěstí mi ale můj kamarád Alan Baum poslal kopii svého textu na tohle téma z MITu, takže vlastně můžu říkat, že jsem se tohle naučil na MITu.

Procesor MOS 6502Rozhodl jsem se napsat Basic pro svůj mikroprocesor 6502. Věděl jsem něco málo o syntaktických diagramech a tak jsem si jeden vytvořil pro Basic. Jenomže jsem nevěděl, jak moc je HP Basic odlišný od toho Basicu, o kterém se psalo v knize 101 Games in Basic (knihu si můžete ve formátu PDF stáhnout zde) a se kterým také pracoval Bill Gates. Tak nějak jsem si myslel, že jsou všechny Basicy stejné, jenomže ten HP Basic se začal dost lišit, když došlo na řetězce znaků.

Chtěl jsem se ve světě počítačových nadšenců stát hvězdou stejně jako Bill Gates a tak, abych ušetřil několik týdnů, odstranil jsem ze svého syntaktického diagramu desetinou čárku. Díky tomu jsem měl šanci stát se prvním, kdo vytvořil Basic pro 6502.

Jak už jsem zmínil, až na nějaké ty maličkosti jsem vůbec nic nevěděl o kompilátorech, ale naopak jsem znal zásobníky a konvertování výrazů do RPN za použití zásobníků. Když jsem proto přemýšlel nad Basicem, vytvořil jsem si svojí vlastní techniku, která nebyla nikde popsaná v knihách. Vytvořil jsem něco, co jsem nazýval zásobníky podstatných jmen a sloves (operandy a operátoři). Netušil jsem, jestli jsem vlastně na správné cestě, ale důležité pro mě bylo, že to fungovalo a to bylo přesně to, co jsem potřeboval.

Ačkoliv jsem se svým Basicem neproslavil tak stejně jako Bill Gates, ukázal jsem svoji práci v Homebrew Computer Clubu, kde jsem se stal významným a to mi stačilo.

1348954053_steve-jobs-and-wozniak-1977_1024x796_91966

Zajímalo mě, jestli jednou bude možné naprogramovat v Basicu pohybující se předměty a sledovat, jak se hýbou stejně jako reálné animace.

Pro Atari jsem navrhl hardwarovou hru Break Out a říkal jsem si, jestli je možné, tuhle jednoduchou hru naprogramovat i v Basicu. Do diagramu syntaxe jsem proto přidal příkazy pro vykreslování barev a kreslení vodorovných a svislých čar.

Jakmile jem měl tento mechanismus zpracován (tedy přepsané do pamětí EPROM pro rozšíření BASICu), tak jsem si hned sedl a napsal jsem nějaké jednoduché smyčky pro různobarevné cihly. Určitě jsem vyzkoušel aspoň 30 různých barevných kombinací během pár minut. K tomu jsem ještě přidal pálky, balón a skóre a taky jsem mohl změnit parametry rychlosti a úhlu balónu.

Hned jsem zavolal Steva Jobse, aby se šel podívat ke mně domů na to, co jsem vytvořil. Ukázal jsem mu, jak snadno se dají měnit takové věci, jako je barva cihel a že za půl hodiny jsem toho udělal tolik, jako bych s hardwarovým Atari nezvládl ani za deset let.

To, co mě přivedlo k vytvoření svého Basicu je dobře vidět na mých poznámkách, které jsem si vedl v průběhu téhle práce a které mají nadpis Game Basic.

A ještě jednu vzpomínku mám… Na střední škole, nebo to možná bylo už v prvním ročníku vysoké, jsem řekl tátovi, že bych si jednou chtěl pořídit 4 kB Data General Nova. Řekl mně, že za to dám stejnou částku, jako za zálohu na pěkně drahý dům a já jsem se zamyslel a odpověděl jsem mu, že já teda budu raději bydlet v bytě.

A proč jsem chtěl právě 4 kB? Je to totiž minimum pro to, aby na takovém počítači mohl běžet jazyk vyšší úrovně.

Už pět let před Apple I, jsem si sám sestavil návrh počítače z přepínačů a kontrolek, jenomže u tohohle počítače nebyla možnost použít 4 kB paměť a tak jsem se musel spokojit s pouhými 256 bity.

V roce 1975 v době Homebrew Computer Clubu tři firmy představily 4 kB DRAM, což bylo poprvé, kdy byly 4 kB běžně dostupné. Kdybych se tehdy nezajímal o Basic, asi bych si zase sestavil počítač pouze z přepínačů a kontrolek a žádný Apple I a Apple II by neexistoval.

Tento text je překladem článku How Steve Wozniak Wrote BASIC for the Original Apple From Scratch z webu Gizmodo.com. Pro tento článek neplatí licence CC BY-NC-ND 3.0 CZ, pod kterou publikuje SuperApple.cz, ale zůstává zachována licence původního článku.

3 komentáře: „Jak Steve Wozniak napsal BASIC pro první Apple

  • avatar
    06. 05. 2014 (10:59)
    Trvalý odkaz

    Au, propleskněte prosím toho, kdo to překládal „V tu stejnou dobu také vyšel nový Eproms pro Basic“ vs „Once I had these mechanisms installed (burning new EPROMS for the BASIC additions)“. Proč je tohle kratší než originál? Nedává to pak moc smysl.

  • avatar
    11. 05. 2014 (18:00)
    Trvalý odkaz

    Ještě návrh: operandy a operátoři -> operandy a operátory

Komentáře nejsou povoleny.