BBC BASIC - BBC BASIC

BBC ZÁKLADNÍ
Micro micro assembly listing.jpg
Poprvé se objevil 1981 ; Před 40 lety ( 1981 )
Stabilní uvolnění
5,90b
OS
Technologie BBC Micro MOS 6502
RISC OS
ZX Spectrum
CP/M
DOS
Microsoft Windows
TI-83 Plus & TI-84 Plus
Licence Apache 2.0 (RISC OS)
proprietární (Windows)
webová stránka www .riscosopen .org (RISC OS)
www .bbcbasic .org (Windows)
Ovlivněn
ZÁKLADNÍ , Atom ZÁKLADNÍ , BCPL

BBC BASIC je verze programovacího jazyka BASIC vydaná v roce 1981 jako nativní programovací jazyk pro domácí/osobní počítač BBC Micro , která poskytuje standardizovaný jazyk pro britský projekt počítačové gramotnosti BBC . Napsala to hlavně Sophie Wilsonová .

BBC BASIC, založený na starším Atom BASIC pro Acorn Atom , rozšířil současné mikropočítačové BASIC o pojmenované DEF PROC/ DEF FNprocedury a funkce, REPEAT UNTILsmyčky a IF THEN ELSEstruktury inspirované COMAL . Interpret také příkazy pro ovládání zvukového výstupu čtyřkanálový BBC Micro a její nízkou / s vysokým rozlišením osm grafický režim displeje.

Kvůli řadě optimalizací běžel program BBC BASIC programy mnohem rychleji než Microsoft BASIC běžící na podobných počítačích. Optimalizace zahrnovaly použití více propojených seznamů pro vyhledávání proměnných místo jednoho dlouhého seznamu, předdefinování umístění celočíselných proměnných a samostatné celočíselné matematické rutiny. Rychlost byla na stroji BBC dále vylepšena použitím rychlé RAM , která umožnila procesoru MOS 6502 a ovladači displeje Motorola 6845 sdílet paměť bez pozastavení přístupu. V důsledku těchto konstrukčních prvků, BBC BASIC běžel David Ahl ‚s Creative Computing Benchmark za 21 sekund, besting i IBM Personal Computer a daleko překonala většinu ostatních 8-bitové platformy. Jedinými komerčními 8bitovými počítači BASIC, které byly tak rychlé jako BBC Micro, byly švédské ABC 80 a ABC 800 . Vylepšený BASIC 4 na BBC Master provede stejný benchmark přibližně za sedm sekund.

Jednou z jedinečných funkcí BBC BASIC byl řadový řadič , který uživatelům umožňoval psát programy v jazyce sestavení pro 6502 a později Zilog Z80 , NS32016 a ARM . Assembler byl plně integrován do interpret BASIC a s ním sdílené proměnné, které bylo možné zahrnout mezi znaky [a], ukládat pomocí *SAVE a *LOAD a volat pomocí příkazů CALL nebo USR. To vývojářům umožnilo psát nejen kód jazyka sestavení, ale také kód BASIC vyzařovat jazyk sestavení, což umožňuje používat techniky generování kódu a dokonce psát jednoduché kompilátory v BASIC.

Dějiny

V roce 1978 založili Hermann Hauser a Chris Curry společnost Acorn Computers . Velkou část kódu vyvinula na univerzitě v Cambridgi Sophie Wilson a její kolegové.

Platformy a verze

BBC Micro

ZÁKLADNÍ výzva na BBC Micro po zapnutí nebo tvrdém resetu

Úplný seznam verzí je k dispozici zde:

BASIC I, původní verze, byl dodán na počátku BBC Micros .

BASIC II byl použit na Acorn Electron a BBC Micros dodaných po roce 1982, včetně modelu B. Přidala klíčová slova OPENUPa OSCLI, spolu s odsazenou montáží a opravami chyb.

BASIC III, byl vyroben jak ve britské verzi, tak ve verzi pro americký trh pro Acornův neúspěšný pokus o vstup na trh přes atlantický počítač. Kromě několika oprav chyb byla od verze BASIC II jedinou změnou to, že COLOURpříkaz lze také napsat COLOR: bez ohledu na to, co bylo zadáno, britská verze jej vždy uváděla jako COLOUR, americká verze jako COLOR. Hlavní místo, kde lze nalézt BASIC III, je verze HI-BASIC pro externí druhý procesor.

BASIC IV, také známý jako CMOS BASIC, k dispozici na BBC mistrovských strojů, byl změněn používat nové pokyny jsou k dispozici v 65SC12 procesoru, čímž se snižuje velikost kódu, a proto umožňuje začlenění LIST IF, EXT#jako prohlášení, EDIT, TIME$, ON PROC, | v VDUpříkazech a rychlejší plovoucí desetinnou čárkou. Opravy chyb byly opět zahrnuty.

BASIC IV (1986) byl dalším vylepšením BASIC IV a byl zařazen do stroje Master Compact. Verze BASIC na kompaktu obsahovala přeprogramované matematické rutiny, které údajně poskytnou 30% zvýšení rychlosti oproti verzi obsažené ve zbytku série Master.

HI-BASIC: toto bylo k dispozici ve dvou verzích, první na základě BASIC III a druhá na základě BASIC IV. Oba byly postaveny tak, aby běžely z vyšší adresy (& B800) na druhém procesoru, než z obvyklé adresy & 8000 na BBC B. To umožnilo více programového prostoru být k dispozici buď na externích nebo interních procesorech 6502 Second. Byla představena verze na podporu druhého procesoru Zilog Z80.

Další verze BBC BASIC, nazvaná BAS128, byla dodávána na pásku a disk s BBC Master a Master Compact; nahrál se do hlavní RAM a pro uživatelské programy využíval 64 kB Sideways RAM. To poskytlo podporu pro mnohem větší programy za cenu, že byly mnohem pomalejší než normální verze založená na ROM.

Tlumočník se může vypořádat s jazykem sestavení BASIC i 6502, který lze zahrnout mezi znaky [a]. To přispělo k popularitě systému u průmyslových a výzkumných inženýrů.

Další podrobnosti/Určení ZÁKLADNÍ verze

Protože BBC MOS a RISC OS byly obvykle dodávány na ROM, lze předpokládat, že konkrétní vydání operačního systému obsahovalo konkrétní verzi BASIC. Jako takový neexistuje žádný jednoduchý způsob, jak určit, která verze BASIC je ve skutečnosti spuštěna jinak, než dotazováním identity operačního systému, a tedy vytvořením předpokladu.

Všimněte si, že všechny elektrony a novější mikropočítače BBC mají BASIC2: dřívější mikropočítače BBC mají BASIC1. Pokud si nejste jisti, která verze BASIC je ve vašem počítači, zadáním REPORT po spuštění BASIC (po BREAK nebo *BASIC) se vytiskne zpráva o autorských právech. Pokud je datum 1981, je osazen BASIC1; pokud je rok 1982, máte BASIC2. Americké stroje nebo stroje s druhým procesorem mohou mít US BASIC nebo HIBASIC: rutiny ROM nebudou pro tyto ROMy na stejném místě.
- ZÁKLADNÍ PŘÍRUČKA UŽIVATELE ROM
Osbyte & 00 (0)

Identifikace verze operačního systému (Další informace týkající se identifikace operačního systému najdete v části OSBYTE & 81)

Vstupní parametry:
X = 0 Proveďte BRK pomocí zprávy s verzí OS
X <> 0 RTS s verzí OS vrácenou v X

Při ukončení:
X = 0, OS 1.00 nebo Electron OS 1.00
X = 1, OS 1.20 nebo americký OS


Osbyte & 81 (129)
Vstupní parametry:
X = 0
Y = & FF

Při výstupu:
X = 0 BBC OS 0,1
X = 1 Electron OS 1,00
X = & FF BBC OS 1.00 nebo OS 1.20
X = & FE US BBC OS 1.20


Příkaz INKEY (-256)
Příklady, abyste se vyhnuli narušení příkazu *SHADOW standardním modelem Electron nebo BBC B při jeho provádění na B+ nebo Master/Compact, můžete použít
IF INKEY (-256)> 1 THEN *SHADOW1

Vrácené hodnoty :
0 = BBC B se starým OS 0,10 (zastaralý!)
-1 = BBC B s novým OS 1,00+ (včetně 1,20)
1 = elektron
251 = BBC B+ 64/128
253 = Master 128
245 = kompaktní
160 = Archimedes Arthur OS ( zastaralé)
161 = RISC OS 2.00
162 = RISC OS 2.01

atd.
- Pokročilá uživatelská příručka Acorn Electron

Viz také položka BeebWiki pro INKEY.

Na řadě BBC je možné na druhém procesoru 6502 provozovat jak standardní BASIC, tak vylepšený HIBASIC. Lze určit, zda je program spuštěn na druhém procesoru, prozkoumáním počáteční hodnoty PAGE, při použití druhého procesoru to bude & 800. Abychom rozlišili mezi BASIC a HIBASIC, měli bychom prozkoumat počáteční hodnotu HIMEM. To bude & 8000 pro BASIC běžící na druhém procesoru a & B800 pro HIBASIC na druhém procesoru.

Podobná situace existuje v systému RISC OS, kde může existovat normální BASIC nebo BASIC64 (který nabízí vyšší přesnost matematiky). Normální BASIC se identifikuje jako „BASIC V“ a BASIC64 se identifikuje jako „BASIC VI“, takže následující (používané před výskytem jakékoli chyby) je bude odlišovat jeden od druhého:

IF INSTR(REPORT$,"VI") THEN PRINT "BASIC64" ELSE PRINT "BASIC"

Existují lepší způsoby, jak to udělat, viz BeebWiki . Téměř ve všech případech byste neměli testovat, na jaké BASIC nebo platformě váš program běží, stačí zavolat a přečíst si vrácená data, která jste vrátili, a vypořádat se s tím.

Acorn Archimedes (RISC OS)

S přechodem na 32bitový procesor ARM a odstraněním limitu 16 kB na velikost kódu BASIC bylo přidáno mnoho nových funkcí. BASIC V verze 1.04 měl 61 kB. Aktuální verze RISC OS stále obsahují překladač BBC BASIC V. Zdrojový kód verze RISC OS 5 pro BBC BASIC V byl vydán pod licencí Apache 2.0 od RISC OS Open . V roce 2011 vydal TBA Software testovací verze aktualizovaného BASIC, který zahrnuje podporu pro VFP/NEON od assembleru .

Mezi nové podporované příkazy a funkce patřily:

  • WHILE-ENDWHILE
  • IF-THEN-ELSE-ENDIF
  • CASE-OF-WHEN-OTHERWISE-ENDCASE,
  • RETURN parametry v postupech,
  • místní pole,
  • knihovny procedur ( LIBRARY, INSTALLa OVERLAY),
  • LOCAL DATAa LOCAL ERRORobsluhy,
  • příbuzný RESTORE,
  • pole operace,
  • noví operátoři,
  • STEP TRACE,
  • Příkazy pro nový zvukový systém, myš, grafiku.

Grafické příkazy byly zcela zpětně kompatibilní, zvuk méně; například ENVELOPEklíčové slovo od BASIC V dále je příkaz, který přebírá čtrnáct číselných parametrů a ve skutečnosti nedělá nic - jako ve starších verzích volá OS_Word 8, ale to v RISC OS nedělá nic. Řadový assembler 6502 byl nahrazen assemblerem ARM . BASIC V bylo řečeno, podle Acorn, „určitě nejrychleji interpretovaný BASIC na světě“ a „pravděpodobně nejsilnější BASIC, jaký lze na jakémkoli počítači najít“.

BASIC VI je verze BASIC V, která podporuje skutečná čísla 8bajtového formátu IEEE 754 , na rozdíl od standardního 5bajtového formátu zavedeného v BASIC I.

BBC BASIC V a VI byly standardně dodávány na Acorn Archimedes a RiscPC . Verze BBC BASIC V byla také k dispozici pro spuštění na druhém procesoru ARM pro BBC Micro.

Kompilátor pro BBC BASIC V byl vyroben Paulem Fellowsem, vedoucím týmu vývoje Arthur OS, nazvaným Archimedes BASIC Compiler a původně publikován DABS Press. ABC dokázala implementovat téměř celý jazyk, s evidentní výjimkou funkce EVAL, která nevyhnutelně vyžadovala programovou interpretaci za běhu. Jako důkaz jeho úplnosti byl schopen podporovat syntaxi in-line assembleru. Kompilátor byl napsán v BBC BASIC V. Kompilátor (běžící pod překladačem v raných fázích vývoje) se dokázal zkompilovat sám a distribuované verze byly vlastními kompilovanými objektovými kódy. Mnoho aplikací původně napsaných pro běh pod tlumočníkem těžilo z nárůstu výkonu, který to přineslo, čímž se BBC BASIC V vyrovnal ostatním jazykům pro seriózní vývoj aplikací.

Jiné platformy

BBC BASIC byl také přenesen na mnoho dalších platforem.

Verze NS32016 BBC BASIC byla dodávána s koprocesorem Acorn 32016 a Acorn ABC.

Kromě verze BBC BASIC dodávané s druhým procesorem BBC Micro Zilog Z80 Second existuje pro systémy na bázi CP/M také verze BBC BASIC na bázi Z80 . Až donedávna neexistovala žádná verze pro Sinclair ZX Spectrum ; nicméně, kvůli úsilí J. G. Harstona (také zodpovědný za verzi PDP-11 ), BBC BASIC pro Spectrum byl propuštěn v lednu 2002, s mnoha vylepšeními provedenými v následujících vydáních.

Zilog Z80 verze BBC BASIC byla také použita na stolním počítači Tiki 100 , přenosném Cambridge Z88 a notebookech Amstrad NC100 Notepad a Amstrad NC200 . Tato verze byla implementována na grafických kalkulačkách řady TI-83 Plus a TI-84 Plus .

Pro systémy založené na PC byl BBC BASIC implementován také pro DOS jako BBCBASIC (86) , jehož cílem byla maximální kompatibilita s BBC Micro, a BBasic , který se soustředil na jazyk BASIC, s vlastními vylepšeními založenými na BASIC II.

Verze BBC BASIC integrovaná s grafickým uživatelským rozhraním Microsoft Windows , BBC BASIC pro Windows vytvořená Richardem Russellem , vývojářem verzí Z80 a x86, byla vydána v roce 2001. Tato verze je stále v aktivním vývoji, v současné době se hodně využívá v průmyslu. Verze pro Windows sice podporuje téměř úplně původní specifikaci BBC BASIC (BASIC IV), ale podporuje většinu syntaxe BASIC V/VI a také některé vlastní pokročilé funkce. Mezi funkce jedinečné pro BBC BASIC pro Windows patří podpora překladače pro typy záznamů/struktur a možnost volat rutiny Windows API nebo rutiny v externí knihovně DLL . Nedávné verze zahrnovaly pokročilé funkce srovnatelné s jazyky jako C a externí knihovna nedávno přidala podporu pro objekty. Verze BBC BASIC založená na SDL je k dispozici pro Windows, Linux a řadu mobilních zařízení podporujících knihovnu SDL.

K dispozici je také klon GPL společnosti BBC BASIC s názvem Brandy , napsaný v přenosném jazyce C.

Emulátor BBC Micro pro Commodore Amiga vyrobila společnost Ariadne Software pro CBM (Velká Británie). Přestože byl extrémně rychlý, neemuloval 6502 plnou rychlostí, takže kód sestavy poběží pomaleji než skutečný BBC, zatímco programy BASIC poběží mnohem rychleji. Vzhledem ke způsobu interakce optimalizované emulace BASIC a 6502 nefungovaly téměř žádné komerční hry (ale obecně fungoval dobře vychovaný kód a vzdělávací software); navíc používal o něco méně přesný numerický formát s plovoucí desetinnou čárkou. Nějakou dobu to bylo spojeno se speciálním akademickým balíčkem Amigy 500 v naději, že školy nahradí jejich stárnoucí BBC B s Amigou 500.

Vydavatelství BBC Micro Computer Concepts vyrobilo verzi BBC Basic pro Atari ST s názvem Fast ST BASIC jako ROM kazetu.

Verze BBC BASIC V (Z80) byla také vytvořena pro rodiny kalkulaček TI-83/84+ Texas Instruments Benjaminem Ryvesem.

Commodore 64 verze Shado byla produkována malou softwarovou domu Aztec Software Na začátku roku 1980.

Poznámky

Viz také

Reference

externí odkazy