BBC PODSTAWOWE - BBC BASIC

BBC PODSTAWOWE
Listing mikromontażu BBC.jpg
Po raz pierwszy pojawiły się 1981 ; 40 lat temu ( 1981 )
Wersja stabilna
5.90b
OS
Technologia BBC Micro MOS 6502
RISC OS
ZX Spectrum
CP/M
DOS
Microsoft Windows
TI-83 Plus i TI-84 Plus
Licencja Apache 2.0 (RISC OS)
Zastrzeżony (Windows)
Strona internetowa www .riscosopen .org (RISC OS)
www .bbcbasic .org (Windows)
Wpływem
PODSTAWOWE , Atom PODSTAWOWE , BCPL

BBC BASIC to wersja języka programowania BASIC wydana w 1981 roku jako natywny język programowania dla domowego/osobistego komputera BBC Micro , zapewniająca ustandaryzowany język dla brytyjskiego projektu BBC dotyczącego umiejętności obsługi komputera . Została napisana głównie przez Sophie Wilson .

BBC BASIC, oparty na starszym Atom BASIC dla Acorn Atom , rozszerzył współczesne mikrokomputerowe BASIC o nazwane DEF PROC/ DEF FNprocedury i funkcje, REPEAT UNTILpętle i IF THEN ELSEstruktury inspirowane COMAL . Interpreter obejmowało również oświadczenia do sterowania wyjścia dźwięku BBC Micro cztery-kanału i jego niskiej / wysokiej rozdzielczości ośmiu tryb wyświetlania grafiki.

Ze względu na szereg optymalizacji, BBC BASIC uruchamiał programy znacznie szybciej niż Microsoft BASIC działający na podobnych maszynach. Optymalizacje obejmowały używanie wielu połączonych list do wyszukiwania zmiennych zamiast pojedynczej długiej listy, wstępne definiowanie lokalizacji zmiennych całkowitych i posiadanie oddzielnych procedur matematycznych na liczbach całkowitych. Szybkość została dodatkowo poprawiona na maszynie BBC dzięki zastosowaniu szybkiej pamięci RAM , co pozwoliło procesorowi MOS Technology 6502 i sterownikowi wyświetlacza Motorola 6845 współdzielić pamięć bez zatrzymywania dostępu. W wyniku tych cech konstrukcyjnych, BBC BASIC prowadził David Ahl „s Creative Computing Benchmark w 21 sekund, pokonując nawet komputerów osobistych IBM i znacznie wyprzedza większość innych platform 8-bitowych. Jedynymi komercyjnymi 8-bitowymi komputerami BASIC, które były tak szybkie jak BBC Micro, były szwedzkie ABC 80 i ABC 800 . Ulepszony BASIC 4 w BBC Master wykonuje ten sam test w około siedem sekund.

Jedną z unikalnych cech BBC BASIC był wbudowany assembler , pozwalający użytkownikom pisać programy w języku asemblerowym dla 6502, a później Zilog Z80 , NS32016 i ARM . Asembler został w pełni zintegrowany z interpreterem BASIC i współdzielił z nim zmienne, które mogły być zawarte między znakami [ i ], zapisywane przez *SAVE i *LOAD i wywoływane przez komendy CALL lub USR. Umożliwiło to programistom pisanie nie tylko kodu w języku asemblerowym, ale także kodu BASIC w celu emisji języka asemblerowego, co umożliwiło użycie technik generowania kodu, a nawet pisanie prostych kompilatorów w BASICu.

Historia

W 1978 roku Hermann Hauser i Chris Curry założyli firmę Acorn Computers . Większość kodu została opracowana na Uniwersytecie w Cambridge przez Sophie Wilson i jej współpracowników.

Platformy i wersje

BBC Mikro

BASIC monit na BBC Micro po włączeniu lub twardym resecie

Pełna lista wersji dostępna jest tutaj:

BASIC I, oryginalna wersja, została wydana na wczesnych BBC Micros .

BASIC II użyto na Acorn Electron i BBC Micros wysyłają po 1982 roku, w tym model B. dodał OPENUPi OSCLIsłowa kluczowe, wraz z przesunięciem montaż i poprawki błędów.

BASIC III został wyprodukowany zarówno w wersji brytyjskiej, jak i wersji na rynek amerykański, w związku z nieudaną próbą wejścia firmy Acorn na rynek komputerów międzyatlantyckich. Poza kilkoma poprawkami błędów, jedyną zmianą w stosunku do BASIC II było to, że COLOURpolecenie mogło być również pisane COLOR: niezależnie od tego, co zostało wprowadzone, wersja brytyjska zawsze wyświetlała go jako COLOUR, a wersja amerykańska jako COLOR. Głównym miejscem, w którym można znaleźć BASIC III jest wersja HI-BASIC dla zewnętrznego drugiego procesora.

BASIC IV, znany również jako CMOS BASIC, dostępny na maszynach BBC Master , został zmieniony tak, aby używał nowych instrukcji dostępnych w procesorze 65SC12, zmniejszając rozmiar kodu, a tym samym umożliwiając włączenie LIST IF, EXT#jako instrukcji, EDIT, TIME$, ON PROC, | w VDUinstrukcjach i szybszym zmiennoprzecinkowym. Poprawki błędów zostały ponownie uwzględnione.

BASIC IV (1986) był kolejnym ulepszeniem BASIC IV i został dołączony do maszyny Master Compact. Wersja BASIC na Compact zawierała przekodowane procedury matematyczne, które zapewniały wzrost prędkości o 30% w stosunku do wersji zawartej w pozostałej części serii Master.

HI-BASIC: był dostępny w dwóch wersjach, pierwsza oparta na BASIC III, a druga na BASIC IV. Oba zostały zbudowane tak, aby działały z wyższego adresu (&B800) na drugim procesorze, zamiast zwykłego adresu &8000 na BBC B. Pozwoliło to na dostęp do większej ilości miejsca na program na zewnętrznych lub wewnętrznych procesorach 6502 Second Processors. Wprowadzono wersję obsługującą drugi procesor Zilog Z80.

Inna wersja BBC BASIC, nazwana BAS128, była dostarczana na taśmie i płycie z BBC Master i Master Compact; ładował się do głównej pamięci RAM i używał 64 KB bocznej pamięci RAM dla programów użytkownika. Zapewniało to obsługę znacznie większych programów kosztem bycia znacznie wolniejszym niż normalna wersja oparta na pamięci ROM.

Interpreter może obsługiwać zarówno język asemblerowy BASIC, jak i asembler 6502, które mogą być zawarte między znakami [ i ]. Przyczyniło się to do popularności systemu wśród inżynierów przemysłowych i badawczych.

Dalsze szczegóły/Określanie wersji BASIC

Ponieważ BBC MOS i RISC OS były zwykle dostarczane w pamięci ROM, można założyć, że określone wydanie systemu operacyjnego zawierało określoną wersję BASICa. W związku z tym nie ma prostego sposobu ustalenia, która wersja BASICa faktycznie działa, poza zapytaniem o tożsamość systemu operacyjnego i przyjęciem w ten sposób założenia.

Zauważ, że wszystkie Electrony, a później mikrokomputery BBC, mają BASIC2: wcześniejsze mikrokomputery BBC mają BASIC1. Jeśli nie jesteś pewien, która wersja BASICa jest w twoim komputerze, wpisanie REPORT po uruchomieniu BASICa (po BREAK lub *BASIC) spowoduje wydrukowanie komunikatu o prawach autorskich. Jeśli datą jest 1981, zainstalowany jest BASIC1; jeśli jest 1982, masz BASIC2. Maszyny amerykańskie lub te z drugim procesorem mogą mieć US BASIC lub HIBASIC: procedury ROM nie będą w tym samym miejscu dla tych ROMów.
— PODSTAWOWY PODRĘCZNIK UŻYTKOWNIKA ROM
Obajt &00(0)

Zidentyfikuj wersję systemu operacyjnego (zobacz OSBYTE i 81, aby uzyskać więcej informacji na temat identyfikacji systemu operacyjnego)

Parametry wejściowe:
X=0 Wykonaj BRK z komunikatem podającym wersję OS
X<>0 RTS z wersją OS zwróconą w X

Przy wyjściu:
X=0, OS 1.00 lub Electron OS 1.00
X=1, OS 1.20 lub American OS


Osbyte &81(129)
Parametry wejściowe:
X=0
Y=&FF

Przy wyjściu:
X=0 BBC OS 0.1
X=1 Electron OS 1.00
X=&FF BBC OS 1.00 lub OS 1.20
X=&FE US BBC OS 1.20


Polecenie INKEY(-256)
Przykłady, aby uniknąć polecenia *SHADOW zaburzającego standardowy model B Electron lub BBC podczas wykonywania go na B+ lub Master/Compact, można użyć
IF INKEY(-256)>1 THEN *SHADOW1 Zwracane

wartości :
0 = BBC B ze starym systemem operacyjnym 0.10 (przestarzałe!)
-1 = BBC B ze starym systemem operacyjnym 1.00+ (w tym 1.20)
1 = Electron
251 = BBC B+ 64/128
253 = Master 128
245 = Compact
160 = Archimedes Arthur OS ( przestarzałe)
161 = RISC OS 2,00
162 = RISC OS 2,01

itp.
— Zaawansowany podręcznik użytkownika Acorn Electron

Zobacz także BeebWiki wpis INKEY.

W rodzinie BBC możliwe jest uruchomienie zarówno standardowego BASIC, jak i ulepszonego HIBASIC na 6502 Second Processor. Można określić, czy program działa na drugim procesorze, sprawdzając początkową wartość PAGE, będzie to &800, jeśli używa się drugiego procesora. Aby odróżnić BASIC od HIBASIC, należy zbadać początkową wartość HIMEM. Będzie to &8000 dla BASIC na drugim procesorze i &B800 dla HIBASIC na drugim procesorze.

Podobna sytuacja występuje w systemie operacyjnym RISC, gdzie może być normalny BASIC lub BASIC64 (który oferuje matematykę o wyższej precyzji). Normalny BASIC identyfikuje się jako „BASIC V”, a BASIC64 identyfikuje się jako „BASIC VI”, dlatego następujące (używane przed wystąpieniem jakiegokolwiek błędu) odróżniają się od siebie:

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

Są lepsze sposoby na zrobienie tego, zobacz BeebWiki . W prawie wszystkich przypadkach nie powinno być konieczne testowanie pod kątem BASICa lub platformy, na której działa Twój program, po prostu wykonaj wywołanie i przeczytaj wszystkie zwrócone dane i zajmij się nimi.

Żołądź Archimedesa (RISC OS)

Wraz z przejściem na 32-bitowy procesor ARM i usunięciem limitu 16 KB na rozmiar kodu BASIC dodano wiele nowych funkcji. BASIC V w wersji 1.04 miał długość 61 KB. Obecne wersje RISC OS nadal zawierają interpreter BBC BASIC V. Kod źródłowy BBC BASIC V w wersji RISC OS 5 został wydany na licencji Apache 2.0 przez RISC OS Open . W 2011 TBA Software wypuściło testowe wersje zaktualizowanego BASIC-a, który zawiera wsparcie dla VFP/NEON z asemblera .

Wśród nowych obsługiwanych poleceń i funkcji były:

  • WHILE-ENDWHILE
  • IF-THEN-ELSE-ENDIF
  • CASE-OF-WHEN-OTHERWISE-ENDCASE,
  • RETURN parametry w procedurach,
  • tablice lokalne,
  • biblioteki procedur ( LIBRARY, INSTALLi OVERLAY),
  • LOCAL DATAi LOCAL ERRORobsługi,
  • krewny RESTORE,
  • operacje tablicowe ,
  • nowi operatorzy,
  • STEP TRACE,
  • Komendy dla nowego systemu dźwiękowego, myszy, grafiki.

Polecenia graficzne były całkowicie kompatybilne wstecz, dźwięk mniej; na przykład ENVELOPEsłowo kluczowe począwszy od BASIC V jest poleceniem, które pobiera czternaście parametrów numerycznych i skutecznie nic nie robi — tak jak w starszych wersjach, wywołuje OS_Word 8, ale to nic nie robi w systemie RISC OS. Asembler in-line 6502 został zastąpiony asemblerem ARM . Acorn powiedział, że BASIC V jest „z pewnością najszybciej interpretowanym BASIC-em na świecie” i „prawdopodobnie najpotężniejszym BASIC-em, jaki można znaleźć na dowolnym komputerze”.

BASIC VI to wersja BASIC V, która obsługuje liczby rzeczywiste w 8-bajtowym formacie IEEE 754 , w przeciwieństwie do standardowego 5-bajtowego formatu wprowadzonego w BASIC I.

BBC BASIC V i VI były standardowo dostarczane z modelami Acorn Archimedes i RiscPC . Wersja BBC BASIC V była również dostępna do uruchomienia na drugim procesorze ARM dla BBC Micro.

Kompilator dla BBC BASIC V został wyprodukowany przez Paula Fellowsa, lidera zespołu rozwoju Arthur OS, nazwany Archimedes BASIC Compiler i początkowo opublikowany przez DABS Press. ABC było w stanie zaimplementować prawie cały język, z oczywistym wyjątkiem funkcji EVAL, która nieuchronnie wymagała interpretacji programowej w czasie wykonywania. Jako dowód jego kompletności, był w stanie obsługiwać składnię asemblera in-line. Kompilator został napisany w BBC BASIC V. Kompilator (działający pod interpreterem na wczesnych etapach rozwoju) był w stanie skompilować się sam, a dystrybuowane wersje były samokompilującym się kodem obiektowym. Wiele aplikacji początkowo napisanych do działania pod interpreterem skorzystało ze zwiększenia wydajności, które to dało, stawiając BBC BASIC V na równi z innymi językami w celu poważnego rozwoju aplikacji.

Inne platformy

BBC BASIC został również przeniesiony na wiele innych platform.

Wersja NS32016 BBC BASIC została dostarczona z koprocesorem Acorn 32016 i Acorn ABC.

Oprócz wersji BBC BASIC dostarczanej z procesorem BBC Micro Zilog Z80 Second, istnieje również wersja BBC BASIC oparta na Z80 dla systemów opartych na CP/M . Do niedawna nie istniała żadna wersja dla Sinclair ZX Spectrum ; jednak dzięki wysiłkom J.G. Harstona (odpowiedzialnego również za wersję PDP-11 ), BBC BASIC for the Spectrum został wydany w styczniu 2002 roku, z wieloma ulepszeniami wprowadzonymi w kolejnych wydaniach.

Wersja BBC BASIC w wersji Zilog Z80 była również używana na komputerze stacjonarnym Tiki 100 , przenośnym Cambridge Z88 oraz Amstrad NC100 Notepad i Amstrad NC200 Notebook. Ta wersja została zaimplementowana w kalkulatorach graficznych serii TI-83 Plus i TI-84 Plus .

Dla systemów opartych na PC , BBC BASIC został również zaimplementowany dla DOS jako BBCBASIC (86) , który miał na celu maksymalną kompatybilność z BBC Micro, oraz BBasic , który skoncentrował się na języku BASIC, z własnymi rozszerzeniami opartymi na BASIC II.

Wersja BBC BASIC zintegrowana z graficznym interfejsem użytkownika Microsoft Windows , BBC BASIC for Windows, stworzona przez Richarda Russella , twórcę wersji Z80 i x86, została wydana w 2001 roku. Chociaż obsługuje prawie całkowicie oryginalną specyfikację BBC BASIC (BASIC IV), wersja Windows obsługuje większość składni BASIC V/VI, a także niektóre zaawansowane funkcje własne. Funkcje unikalne dla BBC BASIC for Windows obejmują obsługę interpretera dla typów rekordów/struktur oraz możliwość wywoływania procedur Windows API lub tych z zewnętrznej biblioteki DLL . Ostatnie wersje zawierały zaawansowane funkcje porównywalne z językami takimi jak C , a zewnętrzna biblioteka dodała ostatnio obsługę obiektów. Wersja BBC BASIC oparta na SDL jest dostępna w systemach Windows, Linux i wielu urządzeniach mobilnych obsługujących bibliotekę SDL.

Dostępny jest również klon GPL BBC BASIC o nazwie Brandy , napisany w portable C .

Emulator BBC Micro dla Commodore Amiga został wyprodukowany przez Ariadne Software dla CBM (UK). Choć bardzo szybki, nie emulował 6502 z pełną prędkością, więc kod asemblera działałby wolniej niż prawdziwy BBC, podczas gdy programy w języku BASIC działały znacznie szybciej. Ze względu na sposób, w jaki zoptymalizowany BASIC i emulacja 6502 współdziałały ze sobą, prawie żadne komercyjne gry nie działały (ale ogólnie działał dobrze zachowujący się kod i oprogramowanie edukacyjne); dodatkowo użył nieco mniej precyzyjnego formatu liczb zmiennoprzecinkowych. Przez pewien czas był on dołączany do specjalnego pakietu akademickiego Amigi 500 , w nadziei, że szkoły zastąpią starzejące się BBC B na Amiga 500.

Wydawnictwo BBC Micro Computer Concepts wyprodukowało wersję BBC Basic dla Atari ST, nazwaną Fast ST BASIC , jako kasetę ROM.

Wersja BBC BASIC V (Z80) została również stworzona przez Benjamina Ryvesa dla rodziny kalkulatorów TI-83/84+ Texas Instruments.

Commodore 64 wersja Shado został wyprodukowany przez mały dom oprogramowania Aztec Software w 1980 roku.

Uwagi

Zobacz też

Bibliografia

Zewnętrzne linki