Beta BASIC
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ávají 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 KiB.
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 Basic u pro počítače ZX Spectrum +2A/+3, ale realizována nebyla. V této nerealizované verzi mělo být možné pracovat se sekvenčními soubory a soubory s náhodným přístupem na disketové mechanice ZX Spectra +3.[1]
Autorem Beta BASICu je Andy Wright, který je také autorem později vytvořeného interpretu jazyka BASIC počítače SAM Coupé.
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ě samostatný 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 zklamá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živatelem 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
Beta BASIC 4.0
Beta BASIC 4.0 zabírá v paměti počítače 25 KiB, ale proměnné a části programů až do velikosti 64 KiB mohou být uloženy v RAMdisku, takže při vhodné organizaci programu je možné v Beta BASICu 4.0 psát programy až do velikosti 90 KiB.[2] Množina příkazů je rozšířena o dalších 30 příkazů proti Beta BASICu 3.0. Příkaz BEEP v Beta BASICu 4.0 umožňuje generovat tříkanálovou hudbu která hraje i při běhu programu. K dispozici je matematická operace MOD a bitová operace AND.
Sigma BASIC
Sigma BASIC je česká úprava Beta BASICu od Sinsoftu.[3] Existuje ve verzích 1.0, 2.0, 4/85-II a 5/85, poslední verze umožňuje zrychlené ukládání a nahrávání souborů pomocí příkazů LOAD #"jmeno" a SAVE #"jmeno" a české znaky UDG.
Reference
- Massive Beta Basic 4. Crash. March 1988, čís. 50, s. 60–61. Dostupné online. ((anglicky))
- If you knows of a Beta Basic, go to it. Crash. August 1987, čís. 43, s. 66–67. Dostupné online. ((anglicky))
- Sigma BASIC zachráněn na oldcomp.cz
Literatura
- Battle of the Basics. Crash. February 1986, čís. 25, s. 100–102. Dostupné online. Dostupné také na: . - porovnání Beta BASICu, Laser BASICu a Mega BASICu
- GILBERT, John. A better Basic. Sinclair User. January 1985, čís. 34, s. 50. Dostupné online. ((anglicky))
- Beta Basic 3.0. MicroHobby. Febrero/marzo 1986, roč. III, čís. 67, s. 24. Dostupné online. ((španělsky))
- РУДОВСКИЙ, Д. Basic для чайников - часть 5.. ZX Format. Декабрь 1996, čís. 05. Dostupné online. ((rusky))
- РУДОВСКИЙ, Д. Beta Basic: продолжение разговора о бейсике (часть 2). ZX Format. Июль 1997, čís. 06. Dostupné online. ((rusky))
Související články
- Sinclair BASIC
- Super BASIC
- SAM BASIC
- BASIC
Externí odkazy
- Beta BASIC na World of Spectrum - archiv verzí programu a časopisu Beta BASIC Newsleter (anglicky)