V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!

Beta BASIC

Z Multimediaexpo.cz

Beta Basic patří mezi nadstavby Sinclair BASICu. Tato nadstavba je robustní a přidává mnoho nových příkazů a funkcí. Umožňuje práci s okny. Zavádí procedury. Přidává nové příkazy pro tvorbu grafiky. Rozšiřuje možnosti některých původních příkazů o nové možnosti stávajících příkazů a funkcí.

Pozdější verze Beta Basicu přidala i nový editační mód, kdy se příkazy nezadávání stiskem klávesy, ale musí se vypsat po jednotlivých písmenech. Taktéž zavádí klávesové zkratky, zadatelné v režimu „*“ (po stisku kláves Symbol Shift a Space).

Nevýhodou je poměrně velká velikost nadstavby, Beta Basic 3.0 zaujme asi 18 KB.

Pro počítače ZX Spectrum 128K+/+2 vznikla verze Beta Basic 4.0. I v této verzi zůstal editor podobný 48 BASICu, nicméně přibyly některé příkazy pro obsluhu rozšířené paměti, ve které mohla být uložena pole proměnných, a zvukového čipu. Beta Basic 4.0 umožňoval naprogramovat hudbu tak, aby hrála pod přerušením IM2, čili současně s vykonávaným programem. Navíc umožňoval přepínání tisku mezi tiskárnou připojenou na sériový konektor a tiskárnou ZX Printer. Slíbena byla i verze Beta Basicu pro počítače ZX Spectrum +2A/+3, ale realizována nebyla.

Autorem Beta BASICu je Andy Wright, který je také autorem později vytvořeného interpretu jazyka BASIC počítače SAM Coupé.

Obsah

Vznik a vývoj

Vývoj Beta Basicu započal v roce 1983, v tomto roce také šla do prodeje verze 1.0 s 32stránkovým manuálem. Autor byl zpočátku inspirován vymoženostmi basicu počítače Tandy TRS80, který používal v zaměstnání. Jako první rozšíření napsal (tehdy ještě v hexeditoru napsaném v BASICu) příkaz ELSE, poté DO, LOOP, UNTIL. Dále doplňoval cokoliv, co jej právě zaujalo. Např. příkaz SORT napsal poté, co zjistil, jak zdlouhavé je bubblesortové třídění v jednom programu na TRS. Později přišla doporučení od uživatelů, s nimiž měl čilou korespondenci, vyřizoval poštu i 3 hodiny denně a od roku 1985 vydával časopis Beta BASIC Newsletter pro 600 předplatitelů.

Další verze, která byla představena veřejnosti, byla v roce 1984 verze 1.8. Obdobně následující rok, objevila se dvakrát větší verze 3.0 s 90stránkovým manuálem. Verze 4.0 z roku 1987 se už do paměti běžného ZX Spectra nevešla a běžela už jen na ZX Spectru 128K. Postupně tak vznikl poměrně samostaný jazyk, který by mohl běžet i odděleně od původní ROM počítače. Autor však pravděpodobně nikdy vážně nepomýšlel na samostatnou verzi Beta BASICu ve vlastní ROM, spíše čas od času uvažoval o převedení jazyka na PC.

Za oficiální verze jsou vydávána i čísla 1.9 a 3.1, ale zde se jedná o autorem neschválené označení, které učinili někteří dealeři. Autor pro svoji potřebu versoval interně, např. ve verzi 1.8 postupně přibylo 73 drobných modifikací a ve verzi 3.0 asi 40.

K tomu, aby podporoval běžné počítačové sestavy, byl autor nucen disassemblovat a nastudovat mnoho ovladačů tiskáren a diskových řadičů připojovaných k ZX Spectru. Svůj nejoblíbenější diskový operační systém, G+DOS pro řadič Plus D, nakonec podstatně vylepšil a urychlil a prodával jako nový systém BetaDOS.

Své zkušenosti a současně i dosud nerealizované záměry se ZX BASICem mohl A. Wright uplatnit až v roce 1988 při práci na dialektu jazyka BASIC pro počítač SAM Coupé. K této práci jej firmě Miles Gordon Technology navrhlo několik aktivních uživatelů Beta BASICu (sdružených zejména okolo časopisu FORMAT). Nový BASIC psal ve strojovém kódu v Pyradev assembleru na počítači Amstrad CPC (obsah 3 disket kompiloval cca 15 minut) a převáděl jej sériovým kabelem na ZX Spectrum, na němž v jeho 24KB RAM "emuloval" obrazovku SAMa (reálného SAMa dostal až po roce). Litoval, že nový počítač nebude mít 64KB ROM, jen 32KB - jeho pozdější rozšíření SAM Basicu a SAMDOSu nazvaná Master BASIC a Master DOS mají skutečně každá cca 16KB.

Práce na systému SAMa jen nepatrně prodloužila "osmibitové" aktivity autora. Prodej Beta BASICu 4.0 byl pro něj zklámáním, začal vnímat, jak se trh pro ZX Spectrum zmenšuje. Chvíli uvažoval o speciální verzi pro ZX Spectrum +3, ale už "nebylo kde inzerovat" a ani jej už vlastně nebavilo studovat další cizí ROM a upravovat funkčnost počítače způsobem, na který jeho tvůrci ani nikdy nepomýšleli...

A. Wright uvádí, že nebyl příliš zaujat ostatními dialekty jazyka BASIC pro ZX Spectrum. Nikdy nepoužil Laser BASIC ani Mallard BASIC (pro ZX Spectrum +3). Pracovně znal autora Mega BASICu, kterému jednou nechtěně poradil, jak tento program (přes RST 08) urychlit.

Přidaná klíčová slova

Editace

  • EDIT
  • KEYWORDS
  • LIST FORMAT
  • CSIZE
  • JOIN
  • SPLIT

Procedury a parametry

  • DEF PROC
  • END PROC
  • PROC (od verze 3.0 nepovinné)
  • LOCAL
  • DEFAULT
  • REF
  • READ LINE
  • LIST PROC
  • ITEM()

Cykly, větvení

  • DO
  • LOOP
  • EXIT IF
  • WHILE
  • UNTIL
  • IF - THEN - ELSE
  • ON

Grafické příkazy

  • ALTER
  • CONTROL CODES
  • CSIZE
  • DRAW TO
  • FILL
  • GET - umožňuje získat část obrazu, a uložit ho do proměnné, a později znovu využít k zobrazení,
  • OVER 2 - nově vykreslenou grafiku přidává pomocí funkce OR (původní OVER 1 používá XOR),
  • PLOT - kromě původního použití umí vypsat text na libovolnou pozici na obrazovce,
  • POKE
  • ROLL
  • SCROLL
  • WINDOW
  • XOS/YOS/XRG/YRG - proměnné nastavující velikost a počátek virtuální obrazovky, nastavují se pomocí standardního příkazu LET,
  • SINE()
  • COSE()
  • FILLED()
  • MEMORY$()
  • SCRN$() - podobné funkci SCREEN$(), ale navíc zná i znaky UDG (uživetelem definované znaky ve znakové sadě Sinclair BASICu),

Modifikace programů

  • ALTER
  • AUTO
  • DEF KEY
  • DELETE
  • LIST … TO …
  • LIST REF
  • REF
  • RENUM
  • LIST DATA/VAL/VAL$
  • LIST DEF KEY
  • LIST PROC
  • MEM()

Ostatní

  • CLOCK - práce s hodinami a alarmy
  • TIME() - aktuální čas
  • DPOKE - zápis dvoubytového čísla do paměti
  • DPEEK() - čtení dvoubytového čísla z paměti
  • KEYIN - vloží řetězec jako nový řádek do programu nebo vykoná
  • TRACE - sledování běhu programu

Externí odkazy

  • World of Spectrum - archiv verzí programu a časopisu Beta BASIC Newsleter (anglicky)