Sinclair BASIC - Sinclair BASIC

Sinclair BASIC
Paradygmat Tryb rozkazujący
Zaprojektowany przez John Grant, Steve Vickers
Deweloper Sieć dziewięciu płytek,
Sinclair Research
Po raz pierwszy pojawiły się 1979 ; 42 lata temu ( 1979 )
Platforma ZX80 , ZX81 , ZX Spectrum
Licencja Prawnie zastrzeżony

Sinclair BASIC to dialekt języka programowania BASIC stosowanego w 8-bitowych komputerach domowych z Sinclair Badań i Timex Sinclair . Interpreter Sinclair BASIC został stworzony przez Nine Tiles Networks Ltd.

Historia

Sinclair BASIC został pierwotnie opracowany w 1979 roku dla ZX80 przez Nine Tiles. Programistami byli John Grant, właściciel Nine Tiles, oraz Steve Vickers .

Początkowo była to niekompletna implementacja minimalnego standardu BASIC Amerykańskiego Narodowego Instytutu Standardów (ANSI) z 1978 roku, zawierającego tylko arytmetykę liczb całkowitych, nazwanego 4K BASIC (ze względu na rozmiar pamięci ROM) dla ZX80. Ewoluował przez zmiennoprzecinkowy 8K BASIC dla ZX81 i TS1000 (który był również dostępny jako aktualizacja dla ZX80) i stał się prawie kompletną wersją w 16 KB ROM ZX Spectrum . Jest obecny we wszystkich kompatybilnych z ZX Spectrum.

Od 2015 roku istnieją interpretery dla nowoczesnych systemów operacyjnych i starszych systemów, które umożliwiają łatwe korzystanie z Sinclair Basic.

Składnia

Nowi programiści BASIC mogą zacząć od prostego programu, być może używając instrukcji PRINT języka do wyświetlenia komunikatu na ekranie; dobrze znane i często powielane przykładem jest Kernighan i Ritchie „s Program świat Halo :

  10 PRINT "Hello, World!"

Słowa kluczowe

W 16K/48K ZX Spectrum w Sinclair BASIC występuje 88 słów kluczowych, oznaczających polecenia (w tym 50), funkcje i operatory logiczne (31) oraz inne słowa kluczowe (16, w tym 9, które są również poleceniami lub funkcjami):

Słowo kluczowe Parametry Wprowadzono za pomocą Rodzaj streszczenie
ABS number EXTENDED MODE następnie G Funkcjonować Zwraca wartość bezwzględną znumber
ACS number EXTENDED MODEnastępnie SYMBOL SHIFT+W Funkcjonować Zwraca cosinus znumber
AND SYMBOL SHIFT+Y Operator logiczny Zwraca prawdę, jeśli oba warunki po obu stronach ANDsłowa kluczowego są prawdziwe, w przeciwnym razie zwraca fałsz
ASN number EXTENDED MODEnastępnie SYMBOL SHIFT+Q Funkcjonować Zwraca sinus znumber
AT line, column; SYMBOL SHIFT+I Inny Używane w PRINTinstrukcji do drukowania w określonym wierszu i kolumnie; na przykład PRINT AT 5,10;"*"wstawia gwiazdkę w kolumnie 10 wiersza 5.
ATN number EXTENDED MODEnastępnie SYMBOL SHIFT+E Funkcjonować Zwraca arcus tangens znumber
ATTR (line, column) EXTENDED MODEnastępnie SYMBOL SHIFT+L Funkcjonować Zwraca bajt zawierający informacje o kolorach komórki tekstowej na ekranie, odpowiadające podanemu linei column;zauważ, że w przeciwieństwie do większości słów kluczowych Sinclair BASIC wymagane są nawiasy; pierwsze trzy bity wskazują kolor atramentu (pierwszego planu), czwarty, piąty i szósty bit kolor papieru (tła), siódmy bit, czy kolory są jasne, czy nie, a osiem, czy migają
BEEP duration, pitch EXTENDED MODEnastępnie SYMBOL SHIFT+Z Komenda Wytwarza dźwięk z głośnika komputera; durationjest w sekundach, wysokość tonu w półtonach powyżej (wartość dodatnia) lub poniżej (wartość ujemna) środkowe C
BIN number EXTENDED MODE następnie B Inny Wskazuje, że numberjest w notacji binarnej
BORDER number B Komenda Ustawia zewnętrzną krawędź ekranu na kolor określony przez number
BRIGHT number EXTENDED MODEnastępnie SYMBOL SHIFT+B Polecenie/inne Sprawia, że ​​wszystkie kolejne kolory są jaśniejsze, jeśli numberwynosi 1, lub jego normalny odcień, jeśli 0
CAT number EXTENDED MODEnastępnie SYMBOL SHIFT+9 Komenda Wyświetla zawartość ZX Microdrive określoną przeznumber
CHR$ number EXTENDED MODE następnie W Funkcjonować Zwraca znak odpowiadający ułamkowi dziesiętnemu numberw zestawie znaków komputera
CIRCLE x, y, r EXTENDED MODEnastępnie SYMBOL SHIFT+H Komenda Rysuje okrąg, którego środek ma współrzędne ( x, y) i promieńr
CLEAR address X Komenda Czyści ekran, wszystkie zmienne i GO SUBstos i opcjonalnie ustawia maksymalny adres RAM, który ma być używany przez BASIC
CLOSE # number EXTENDED MODEnastępnie SYMBOL SHIFT+5 Komenda Zamyka określony numer strumienia w celu uzyskania dostępu
CLS V Komenda Usuwa cały tekst i grafikę z ekranu
CODE string EXTENDED MODE następnie I Funkcja/inne Zwraca liczbę odpowiadającą pierwszemu znakowi w zestawie znakówstring komputera ; służy również do zapisywania dowolnych fragmentów pamięci na taśmie, dysku itp. i wczytywania ich z powrotem — zobacz , i po szczegóły LOADSAVEVERIFY
CONTINUE C Komenda Restartuje program po to zostało przerwane z powodu błędu lub użytkownika naciskając CAPS SHIFT+ SPACElub BREAKklucze
COPY Z Komenda Wysyła aktualnie wyświetlany ekran do drukarki
COS number EXTENDED MODE następnie W Funkcjonować Zwraca cosinus znumber
DATA comma-separated values EXTENDED MODE następnie D Polecenie/inne Udostępnia liczby i/lub łańcuchy do użycia z READpoleceniem i umożliwia zapisanie zawartości tablicy na taśmie w przypadku użycia z SAVEpoleceniem (jakoSAVE filename DATA array name()
DEF FN name(variable) = operation EXTENDED MODE następnie 1 Komenda Definiuje funkcję niestandardową, która może być używana z FNpoleceniem;definicje funkcji muszą mieć postać f(x)=operations, na przykład f(x)=x*2nazwa funkcji nie może składać się z więcej niż jednej litery plus symbolu $, jeśli funkcja zwraca ciąg
DIM variable(dimensions) D Komenda Deklaruje tablicę z określonym dimensions, która może być wielowymiarowa (na przykład DIM a(10,10); jeśli jest używana z ciągami, ostatni wymiar wskazuje długość każdego z ciągów (a zatem DIM a$(2,5)jest tablicą dwóch ciągów, każdy o długości pięciu znaków, a DIM b$(5)to jeden ciąg pięciu znaków)
DRAW x, y [, r] W Komenda Rysuje linię w bieżącym INKkolorze do współrzędnych ( x, y) ze współrzędnych używanych przez poprzednie polecenie PLOTlub DRAW; jeśli rjest podana opcja , wskazuje promień segmentu okręgu do narysowania, w radianach
ERASE drive;"filename" EXTENDED MODEnastępnie SYMBOL SHIFT+7 Komenda Usuwa określony plik z ZX Microdrive
EXP number EXTENDED MODE następnie X Funkcjonować Zwraca e do potęginumber
FLASH number EXTENDED MODEnastępnie SYMBOL SHIFT+V Polecenie/inne Sprawia, że ​​cały następujący tekst zmienia kolory pierwszego planu ( INK) i tła ( PAPER)
FN function(value) EXTENDED MODEnastępnie SYMBOL SHIFT+2 Funkcjonować Wywołuje functionzdefiniowane wcześniej w programie za pomocąDEF FN
FORMAT drive;"name" EXTENDED MODEnastępnie SYMBOL SHIFT+0 Komenda Formatuje kasetę we wskazanym napędzie Microdrive i przypisuje jej identyfikatorname
FOR variable = start TO end F Komenda Rozpoczyna FOR- NEXTpętlę; nazwa zmiennej może mieć tylko jeden znak
GO SUB number H Komenda Sprawia, że ​​program przeskakuje do wiersza BASIC określonego przez number; gdy program napotka polecenie RETURN, skoczy z powrotem do instrukcji poGO SUB
GO TO number G Komenda Sprawia, że ​​program przeskakuje do linii BASIC określonej przez number
IF condition THEN U Komenda Oblicza condition, a jeśli prawda, wykonuje instrukcję następującą po słowie kluczowym, THENktóre musi wystąpić po warunku, na przykładIF a=1 THEN LET b=2
IN address EXTENDED MODEnastępnie SYMBOL SHIFT+I Funkcjonować Zwraca bajt odczytany ze sprzętowego portu wejścia/wyjścia odpowiadającegoaddress
INK number EXTENDED MODEnastępnie SYMBOL SHIFT+X Polecenie/inne Ustawia kolor pierwszego planu dla tekstu i grafiki
INKEY$ EXTENDED MODEnastępnie SYMBOL SHIFT+Z Funkcjonować Zwraca ciąg reprezentujący klawisz naciśnięty na klawiaturze w momencie wywołania funkcji lub pusty ciąg, jeśli żaden nie jest, ale nie czeka na naciśnięcie klawisza
INPUT [prompt,] variable I Komenda Wstrzymuje wykonywanie programu, dopóki użytkownik nie wpisze czegoś na klawiaturze i naciśnie Enterklawisz, a następnie zapisze wprowadzoną wartość w określonym variable; jeśli opcja promptjest dostarczona, zostanie to pokazane na ekranie
INT number EXTENDED MODE następnie R Funkcjonować Zwraca wartość całkowitąnumber , zaokrąglając w dół do najbliższej liczby całkowitej (czyli INT -1.1zwraca −2, a nie −1)
INVERSE number EXTENDED MODEnastępnie SYMBOL SHIFT+M Polecenie/inne Odwraca kolory w całym następnym tekście, jeśli numberwynosi 1, tak aby używał bieżącego koloru atramentu jako tła i bieżącego koloru papieru dla tekstu lub przywraca normalne, jeśli numberwynosi 0
LEN string EXTENDED MODE następnie K Funkcjonować Zwraca liczbę znaków (bajtów) w string
LET variable=value L Komenda Przypisuje valuedo nazwanej zmiennej
LINE EXTENDED MODEnastępnie SYMBOL SHIFT+3 Inny
  • W przypadku użycia w INPUTinstrukcji przed zmienną łańcuchową, nie będzie umieszczać cudzysłowów ("") wokół monitu, na przykładINPUT "Name: "; LINE n$
  • W przypadku użycia w SAVEoświadczeniu, aby po ponownym załadowaniu programu BASIC był uruchamiany automatycznie od wskazanego numeru wiersza
LIST [number] K Komenda Wyświetla na ekranie bieżący program w języku BASIC; jeśli numberpodano opcję opcjonalną , pomija wszystkie wiersze o niższym numerze
LLIST [number] EXTENDED MODEnastępnie SYMBOL SHIFT+V Komenda Ponieważ LISTz wyjątkiem tego, że lista jest wyprowadzana na drukarkę
LN number EXTENDED MODEnastępnie SYMBOL SHIFT+Z Funkcjonować Zwraca logarytm naturalny znumber
LOAD "[filename]" [CODE [address[, length]]| DATA variable()] J Komenda Ładuje program lub dane do pamięci RAM z taśmy, ZX Microdrive , dysku itp., usuwając wszelkie istniejące programy i zmienne BASIC; jeśli podano pusty ciąg ( ""), to ładuje pierwszy znaleziony program, w przeciwnym razie przeszuka taśmę w poszukiwaniu programu wymienionego w ciągu; jeśli CODEpodano opcję opcjonalną , załaduje program do pamięci pod adresem, który miał w momencie zapisywania, lub pod określonym address( lengthma to na celu zabezpieczenie, aby spróbować załadować właściwy program w przypadku, gdy na taśmie jest ich wiele właściwa nazwa, ale o różnych długościach); jeśli DATA variable()podano opcję opcjonalną , załaduje dane z taśmy do tablicy o nazwievariable()
LPRINT text EXTENDED MODEnastępnie SYMBOL SHIFT+C Komenda Ponieważ PRINTz wyjątkiem danych wyjściowych jest wysyłanych do drukarki
MERGE "[filename]" EXTENDED MODEnastępnie SYMBOL SHIFT+T Komenda Jako LOAD, z wyjątkiem tego, że nie usuwa bieżącego programu i zmiennych; jeśli numer linii istnieje w obu, numer nowo załadowanego programu nadpisuje istniejący
MOVE stream1 TO stream2 EXTENDED MODEnastępnie SYMBOL SHIFT+6 Komenda Przenosi dane z jednego strumienia (klawiatury, ekranu, pliku, drukarki, sieci itp.) do innego
NEW A Komenda Usuwa aktualny program BASIC i wszystkie zmienne
NEXT variable N Komenda Zamyka FOR- NEXTpętlę; zmienna musi być zgodna ze zmienną odpowiedniego FORpolecenia — „puste” NEXTs odnoszące się do bezpośrednio poprzedzającego FORw programie nie są dozwolone
NOT condition SYMBOL SHIFT+S Operator logiczny Zwraca prawdę, jeśli conditionjest fałszywe, w przeciwnym razie zwraca fałsz
OPEN # stream EXTENDED MODEnastępnie SYMBOL SHIFT+4 Komenda Otwiera strumień do czytania i/lub pisania do
OR SYMBOL SHIFT+Y Operator logiczny Zwraca prawdę, jeśli którykolwiek z warunków po obu stronach ORsłowa kluczowego jest prawdziwy, w przeciwnym razie zwraca fałsz
OUT address, value EXTENDED MODEnastępnie SYMBOL SHIFT+O Komenda Wysyła value( bajt ) do sprzętu [mapowany w pamięci port we/wy|wejście/wyjście] odpowiadającyaddress
OVER number EXTENDED MODEnastępnie SYMBOL SHIFT+N Polecenie/inne Spowoduje nadrukowanie za pomocą operacji XOR następującego tekstu, który jest już na ekranie, jeśli numberwynosi 1, zamiast go wymazywać, lub kasować, jeśli numberwynosi 0
PAPER number EXTENDED MODEnastępnie SYMBOL SHIFT+C Polecenie/inne Ustawia kolor tła dla tekstu i grafiki
PAUSE delay M Komenda Wstrzymuje wykonywanie programu na określone opóźnienie, co sekundę w Europie lub Ameryce Północnej (a zatem zatrzymuje się na jedną sekundę w Europie) PAUSE 50
PEEK address EXTENDED MODE następnie O Funkcjonować Zwraca bajt reprezentujący zawartość komórki pamięci wskazywanej przez address
PI EXTENDED MODE następnie M Funkcjonować Zwraca wartość pi
PLOT x, y Q Komenda Rysuje piksel w bieżącym INKkolorze na ekranie o współrzędnych ( x, y)
POINT (x,y) EXTENDED MODEnastępnie SYMBOL SHIFT+8 Funkcjonować Zwraca 1, jeśli piksel wskazywany na współrzędne graficzne ( x, y) jest aktualnie w kolorze tuszu (pierwszego planu), w przeciwnym razie zwraca 0
POKE address, value O Komenda Ustawia zawartość addressw pamięci RAM navalue
PRINT [AT x,y;] text P Komenda Drukuje text(który musi być ciągiem lub liczbą) na ekranie; jeśli użyte z AT, wypisze określone współrzędne tekstowe, w przeciwnym razie w pierwszej kolumnie wiersza po tej użytej przez ostatnią PRINTinstrukcję
RANDOMIZE [number] T Komenda Inicjuje generator liczb losowych ; jeśli jest używany bez number(lub z 0), robi to na podstawie wewnętrznego zegara komputera, w przeciwnym razie używa numberdostarczonego, który musi być w zakresie [1,65535]
READ variable EXTENDED MODE następnie A Komenda Pobiera wartość z DATAinstrukcji i przechowuje ją w named variable: pierwszy raz READjest używany, otrzymuje pierwszą wartość po first DATA, za drugim razem otrzymuje następną i tak dalej
REM tekst E Komenda Rozpoczyna komentarz w kodzie źródłowym, co oznacza, że ​​wszystko po REMinstrukcji jest ignorowane, aż do końca linii — zauważ, że obejmuje to wszystko po dwukropku, który normalnie rozpoczyna nowy segment: 10 REM Nothing to see here : PRINT "Unprintable"nie wygeneruje żadnych danych wyjściowych, na przykład
RESTORE [number] EXTENDED MODE następnie S Komenda Resetuje gdzie READkomendy szukają wartości w DATAinstrukcjach: jeśli użyte bez numeru, next READużyje pierwszego DATAw programie, z numerem użyje pierwszego DATAw lub po linii, której numer jest wskazany
RETURN Y Komenda Zwraca wykonanie do pierwszej instrukcji następującej po ostatnim GO SUBwykonanym poleceniu
RND EXTENDED MODE następnie T Funkcjonować Zwraca liczbę pseudolosową z ośmioma cyframi znaczącymi w zakresie [0,1)
RUN [number] R Komenda Uruchamia bieżący program w języku BASIC, od pierwszego wiersza, jeśli nie numberpodano nie, w przeciwnym razie od wiersza o tym numerze (lub pierwszego następnego, jeśli nie istnieje)
SAVE "filename" [DATA variable() | LINE number] S Komenda Zapisuje bieżący program w języku BASIC na taśmie lub innym urządzeniu pamięci masowej z filenameokreślonym; jeśli LINEużyto opcji, po której następuje numer linii, program uruchomi się automatycznie pod wskazanym numerem linii po LOADponownym wprowadzeniu; z opcjonalnym DATApolecenie zapisuje zawartość tablicy nazwanej przez zmienną zamiast bieżącego programu w języku BASIC
SCREEN$ [(line, column)] EXTENDED MODEnastępnie SYMBOL SHIFT+ Funkcja/inne Jako funkcja identyfikuje znak w określonym wierszu i kolumnie na ekranie. Używany po nazwie pliku w poleceniu LOADlub SAVEwskazuje, że zawartość pamięci wyświetlacza powinna zostać załadowana lub zapisana; to zasadniczo sprawia, że ​​jest to skrót, CODE 16384,6912ale nie działa, VERIFYponieważ zawartość pamięci wyświetlacza będzie się różnić w czasie, gdy polecenie odczyta zapisane dane;
SGN number EXTENDED MODE następnie F Funkcjonować Zwraca 1 jeśli numberjest dodatnia, 0 jeśli jest 0 i −1 jeśli jest ujemna
SIN number EXTENDED MODE następnie Q Funkcjonować Zwraca sinus znumber
STEP number SYMBOL SHIFT+D Inny Wskazuje interwał używany przez FORinstrukcję, na przykład FOR n=2 TO 6 STEP 2pominie n=3i n=5w pętli
STOP SYMBOL SHIFT+A Komenda Kończy wykonywanie bieżącego programu, wychodząc do edytora BASIC; można również podać, gdy komputer czeka na dane wejściowe za pomocą INPUTpolecenia; po zatrzymaniu programu można go wznowić za pomocąCONTINUE
SQR number EXTENDED MODE następnie H Funkcjonować Zwraca pierwiastek kwadratowy znumber
STR$ number EXTENDED MODE następnie Y Funkcjonować Zwraca znak z zestawu znaków komputera odpowiadającynumber
TAB column EXTENDED MODE następnie P Inny W PRINToświadczeniu upewnia się, że tekst do wyprowadzenia zaczyna się od określonej kolumny, w razie potrzeby zawijając do następnego wiersza, ale nigdy więcej niż jeden wiersz
TAN number EXTENDED MODE następnie E Funkcjonować Zwraca tangens znumber
THEN statement SYMBOL SHIFT+G Inny Podąża za warunkiem w IFwyrażeniu, aby wskazać, co powinno się stać, gdy warunek zostanie oceniony jako prawdziwy
TO SYMBOL SHIFT+F Inny Wskazuje zakres od liczby po lewej stronie TOdo liczby po prawej stronie włącznie; w przypadku użycia z FORobydwoma liczbami należy podać, natomiast jeśli jest używany do krojenia ciągów, albo można pominąć, aby wskazać początek lub koniec ciągu
USR string or address EXTENDED MODE następnie L Funkcjonować W przypadku wywołania z jednoznakowym ciągiem zwraca adres pamięci, pod którym zdefiniowany jest glif dla znaku graficznego zdefiniowanego przez użytkownika, odpowiadającego temu znakowi. Jeśli zostanie wywołana z adresem, rozpoczyna wykonywanie kodu maszynowego pod tym adresem (co czyni ją jedną z niewielu funkcji Sinclair BASIC, które mają efekt uboczny ) i zwraca zawartość pary rejestrów BC Z80 .
VAL string EXTENDED MODE następnie J Funkcjonować Oblicza stringjako liczbę i zwraca wynik; może wykonywać obliczenia: VAL "1+2"zwraca na przykład 3, a także oblicza zmienne, a nawet inne VALinstrukcje: LET a=1: VAL "a+VAL ""2"""zwraca również 3
VAL$ string EXTENDED MODEnastępnie SYMBOL SHIFT+J Funkcjonować Podobny do, VALale ocenia ciąg jako ciąg
VERIFY "[filename]" EXTENDED MODEnastępnie SYMBOL SHIFT+R Komenda Wczytuje program z taśmy lub innej pamięci, podobnie jak LOAD, ale zamiast ładować go do pamięci, porównuje go z programem, który jest aktualnie w pamięci; ma to na celu upewnienie się, że program został SAVEpoprawnie d
Widmo ZX
Widmo ZX+

Wpis słowa kluczowego

W modelach 48K i starszych słowa kluczowe są wprowadzane za pomocą unikalnego systemu wprowadzania słów kluczowych firmy Sinclair, jak pokazano w tabeli. Najpopularniejsze polecenia wymagają tylko jednego naciśnięcia klawisza; na przykład naciśnięcie tylko Pna początku wiersza na Spectrum daje pełne polecenie PRINT. Rzadsze polecenia wymagają bardziej złożonych sekwencji klawiszy: BEEP(na przykład) wciska się klawisz CAPS SHIFTplus, SYMBOL SHIFTaby uzyskać dostęp do trybu rozszerzonego (późniejsze modele zawierają EXTENDED MODEklawisz), SYMBOL SHIFTprzytrzymując wciśnięty i naciskając Z. Słowa kluczowe są oznaczone kolorami na oryginalnej klawiaturze Spectrum, aby wskazać, który tryb jest wymagany:

  • Biały : tylko klucz
  • Czerwony na samym kluczu: SYMBOL SHIFTplus klucz
  • Zielony nad klawiszem: EXTENDED MODEpo którym następuje klawisz
  • Czerwony pod klawiszem: EXTENDED MODEnastępnie SYMBOL SHIFTplus klawisz the

ZX81 BASIC 8K używane krótsze formy GOTO, GOSUB, CONTi RAND, podczas gdy Spectrum stosowane dłuższe formy GO TO, GO SUB, CONTINUEi RANDOMIZE. ZX80 4K BASIC również używał tych dłuższych form, ale różnił się pisownią RANDOMISE. ZX81 8K BASIC był jedyną używaną wersją FAST, SCROLL, SLOWi UNPLOT. ZX80 4K BASIC miał wyłączną funkcję TL$(); był odpowiednikiem operatora ciągu (2 TO )w późniejszych wersjach.

Unikalne punkty kodowe są przypisane w zestawie ZX80 znaków , zestaw znaków ZX81 i zestawu znaków ZX Spectrum dla każdego słowa kluczowego lub operatora wieloznakowych, czyli <=, >=, <>, ""(tokenized tylko na ZX81), **(zastąpiony na Spectrum). Są one rozwijane przez odwołanie się do tabeli tokenów w pamięci ROM. W ten sposób słowo kluczowe wykorzystuje tylko jeden bajt pamięci, co oznacza znaczną oszczędność w porównaniu z tradycyjnym przechowywaniem litera po literze. Oznaczało to również, że interpreter języka BASIC mógł szybko określić dowolne polecenie lub funkcję, oceniając jeden bajt, a słowa kluczowe nie muszą być słowami zastrzeżonymi, jak w innych dialektach BASIC lub innych językach programowania, np. można zdefiniować zmienną nazwaną PRINTi wyprowadzoną jego wartość z PRINT PRINT. Jest to również związane z wymaganiem składni, aby każdy wiersz zaczynał się od słowa kluczowego polecenia, a naciśnięcie jednego klawisza dla tego polecenia na początku wiersza zmienia edytor z trybu poleceń na tryb literowy. Zatem przypisanie zmiennych wymaga LET(tj. nie tylko ). Ta praktyka różni się również od innych dialektów BASIC. Co więcej, oznaczało to, że w przeciwieństwie do innych dialektów BASIC, tłumacz nie potrzebował nawiasów, aby zidentyfikować funkcje; wystarczyło, nie było potrzebne (chociaż to drugie było dozwolone). 4K BASIC ROM ZX80 miał krótką listę wyjątków to: funkcje , , , , , , i nie mają znaki jednobajtowe, ale zostały wpisane w literę po literze i wymaga nawiasów. Zostały one wymienione jako FUNKCJE INTEGRALNE na etykiecie powyżej i po prawej stronie klawiatury. LET a=1a=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()

Modele 128K Spectrum, ZX Spectrum 128, +2, +3, +2A i +2B, również zapisywały słowa kluczowe wewnętrznie w jednobajtowych punktach kodowych, ale używały konwencjonalnego systemu wprowadzania litera po literze BASIC. Wprowadzili także dwa nowe polecenia:

  • PLAY, który obsługiwał układ muzyczny General Instrument AY-3-8910 modeli 128k
  • SPECTRUM, który przełączył 128k Spectrum na tryb zgodności 48k Spectrum

Oryginalny hiszpański ZX Spectrum 128 zawierał cztery dodatkowe polecenia w języku hiszpańskim, z których jedno było nieudokumentowane. Można je przetłumaczyć jako:

  • EDIT (aby edytować numer linii lub wywołać pełnoekranowy edytor ciągów)
  • RENUM (do przenumerowania linii programu)
  • DELETE (aby usunąć wiersze programu)
  • WIDTH (aby ustawić szerokość kolumny urządzenia RS232, ale nieudokumentowane, ponieważ kod został złamany)

W przeciwieństwie do funkcji LEFT$(), MID$()i RIGHT$()używanych we wszechobecnych dialektach Microsoft BASIC dla komputerów domowych, części ciągów w Sinclair BASIC są dostępne według zakresu numerycznego. Na przykład a$(5 TO 10)daje podciąg rozpoczynający się od piątego i kończący się na dziesiątym znaku zmiennej a$. W ten sposób można zastąpić polecenia LEFT$()i RIGHT$()po prostu odpowiednio pomijając odpowiednio lewą lub prawą pozycję w tablicy; na przykład a$( TO 5)jest równoważne LEFT$(a$,5). Co więcej, a$(5)sam wystarczy wymienić MID$(a$,5,1).

Nazwy zmiennych

Zmienne zawierające wartości liczbowe mogą mieć dowolną długość, natomiast nazwy zmiennych łańcuchowych i tablicowych muszą składać się tylko z jednego znaku alfabetycznego. Zatem , , , i wszystkie są dobre, a , a nie są. LET a=5LET Apples=5LET a$="Hello"DIM a(10)DIM a$(10)LET Apples$="Fruit"DIM Apples(10)DIM Apples$(10)

Długie nazwy zmiennych dozwolone dla zmiennych numerycznych mogą zawierać znaki alfanumeryczne po pierwszym znaku, więc jest to dozwolone, ale nie . Długie nazwy zmiennych mogą również zawierać spacje, które są ignorowane, więc jest to samo, coLET a0=5LET 0a=5LET number of apples = 5LET numberofapples = 5

Wersje oficjalne

  • 4K BASIC to oryginalny ZX80 BASIC z arytmetykami wyłącznie na liczbach całkowitych, autorstwa Johna Granta z Nine Tiles dla ZX80, nazwany tak, ponieważ mieści się w 4  KiB pamięci tylko do odczytu (ROM).
  • 8K BASIC to ZX81 BASIC (dostępny również jako uaktualnienie dla ZX80), zaktualizowany o arytmetykę zmiennoprzecinkową przez Steve'a Vickersa , nazwanego tak z powodu rezydowania w 8 KiB ROM.
  • 48 BASIC to PODSTAWA oryginalnej pamięci RAM 16/48 kB ZX Spectrum (i klonów), z kolorami i innymi urządzeniami peryferyjnymi dodanymi przez Steve'a Vickersa i Johna Granta. Rezyduje w 16 KiB ROM i zaczął być nazywany 48 BASIC wraz z wprowadzeniem ZX Spectrum 128, kiedy to 16 kB Spectrum nie było już sprzedawane, a większość istniejących w użyciu została zaktualizowana do 48 kB
  • 128 BASIC to BASIC dla ZX Spectrum 128. Oferuje dodatkowe polecenia i wykorzystuje wprowadzanie litera po literze.
  • +3 BASIC to BASIC z obsługą dysków dla ZX Spectrum +3.
  • T/S 2000 BASIC był używany na kompatybilnym ze Spectrum urządzeniu Timex Sinclair 2068 (TS2068) i zawiera następujące sześć słów kluczowych oraz zwykłe Sinclair BASIC:
    • DELETEusuwa zakresy linii programu BASIC. CAPS SHIFT+ 0z Kkursorem tworzy polecenie DELETE.
    • FREEto funkcja, która podaje ilość wolnej pamięci RAM. PRINT FREEpokaże, ile pamięci RAM jest wolnej.
    • ON ERRto funkcja obsługi błędów używana najczęściej jako ON ERR GO TOlub ON ERR CONT.
    • RESETmoże służyć do resetowania zachowania ON ERR. Miał też na celu resetowanie urządzeń peryferyjnych.
    • SOUND kontroluje układ dźwiękowy AY-3-8192.
    • STICK to funkcja, która podaje pozycję wewnętrznego joysticka (Timex Sinclair 2090).
  • BASIC64 firmy Timex of Portugal to rozszerzenie oprogramowania umożliwiające lepsze programowanie w trybie podstawowym z trybem graficznym 512×192 dostępnym tylko w komputerach z serii Timex 2000 . To rozszerzenie dodaje polecenia i wykonuje pełną remapę pamięci, aby uniknąć nadpisania przez system rozszerzonego obszaru pamięci ekranu. Istnieją dwie wersje ze względu na różne mapy pamięci - wersja dla TC2048 i wersja dla TS/ TC2068 .

Inne wersje, rozszerzenia, pochodne i następcy

Tłumacze dla rodziny ZX Spectrum

Istnieje kilka interpreterów ZX Spectrum.

Kompilatory dla rodziny ZX Spectrum

Istnieje kilka kompilatorów ZX Spectrum.

  • Kompilator HiSoft COLT (znany również jako kompilator HiSoft COLT Integer)
  • HiSoft BASIC (znany również jako HiSoft BASIC Compiler), kompilator obsługujący liczby całkowite i zmiennoprzecinkowe
  • Kompilator laserowy
  • Softek 'IS' Integer Compiler (następca Softek Integer Compiler)
  • Pełny kompilator Softek „FP”
  • Kompilator ZIP

Pochodne i następcy innych komputerów

  • SuperBASIC , znacznie bardziej zaawansowany dialekt BASIC wprowadzony wraz zkomputerem osobistym Sinclair QL , z pewnymi podobieństwami do wcześniejszych wersji Sinclair BASIC
  • SAM Basic , BASIC w SAM Coupé , powszechnie uważany za klon ZX Spectrum
  • ROMU6 autorstwa Cesara i Juana Hernandeza - MSX
  • Spectrum 48 od Whitby Computers - Commodore 64
  • Sparky eSinclair BASIC autorstwa Richarda Kelsha, system operacyjny luźno oparty na ZX Spectrum BASIC - Zilog eZ80
  • Sinbas autorstwa Pavela Napravnika - DOS
  • Basic (i CheckBasic) autorstwa Philipa Kendalla - Unix
  • BINSIC autorstwa Adriana McMenamina, reimplementacja w Groovy ściśle wzorowana na ZX81 BASIC - Java
  • BASin autorstwa Paula Dunna, kompletne zintegrowane środowisko programistyczne (IDE) Sinclair BASIC oparte na emulatorze ZX Spectrum - Windows
  • SpecBAS (aka SpecOS) Paula Dunna, zintegrowane środowisko programistyczne (IDE) zapewniające rozszerzony nadzbiór Sinclair BASIC - Windows , Linux , Pandora i Raspberry Pi
  • ZX-Basicus autorstwa Juana-Antonio Fernández-Madrigal, syntezator, analizator, optymalizator, interpreter i debugger Sinclair BASIC 48K dla komputerów PC, do bezpłatnego pobrania dla systemów Linux i Windows .

Zobacz też

Uwagi

Bibliografia

Bibliografia

  • Ardley, Neil (1984). Instrukcja obsługi Sinclair ZX Spectrum+ . Dorling Kindersley we współpracy z Sinclair Research. Numer ISBN 0-86318-080-9.
  • Vickers, Steven (1982). Sinclair ZX Spectrum Programowanie BASIC . Badania Sinclaira.
  • Vickers, Steven (1983). Sinclair ZX Spectrum BASIC Programming (2 wyd.). Badania Sinclaira.
  • Komunikacja z Cambridge (1983). Instrukcja obsługi mikronapędu Sinclair ZX Spectrum i interfejsu 1 . Badania Sinclaira.

Linki zewnętrzne