Dodatek C - część 2


Język BASIC

 

Liczby są przechowywane z dokładnością do 9 lub 10 cyfr. Największą liczbą jest około 1038, a najmniejszą (dodatnią) jest około 4*10-39.

W ZX Spectrum liczba jest przechowywana w zmiennoprzecinkowej postaci dwójkowej z jednym bajtem cechy c (1 ≤ c ≤ 255) i czterema bajtami mantysy m (1/2m < 1). Przedstawia to liczbę m*2c-128.

Ponieważ 1/2m < 1, to najbardziej znaczący bit ułamkowy mantysy jest zawsze równy 1. Dlatego w rzeczywistym zapisie możemy go zastąpić bitem znaku — 0 dla liczb dodatnich i 1 dla ujemnych.

Małe liczby całkowite posiadają specjalny zapis, w którym pierwszy bajt ma wartość 0, drugi jest bajtem znaku (0 lub FFh), a trzeci i czwarty są liczbą całkowitą w notacji U2 z mniej znaczącym bajtem jako pierwszym.

Zmienne liczbowe maja nazwy o dowolnej długości rozpoczynające się od litery i zawierające dalej litery i cyfry. Spacje i kody kolorów są ignorowane, a wszystkie litery zostają zamienione na małe.

Zmienne sterujące pętli FOR-NEXT posiadają nazwy jednoliterowe.

Tablice liczbowe mają nazwy jednoliterowe, które mogą być takie same jak nazwy prostych zmiennych. Mogą one posiadać dowolną liczbę wymiarów o dowolnym rozmiarze. Indeksy rozpoczynają się od 1.

Łańcuchy znakowe mogą posiadać dowolną długość. Nazwa łańcucha składa się z jednej litery, za którą jest znak $.

Tablice łańcuchów mogą posiadać dowolną liczbę wymiarów o dowolnej wielkości. Nazwa jednoliterowa tablicy łańcuchowej ze znakiem $ nie może byc taka sama jak nazwa prostego łańcucha. Wszystkie łańcuchy w danej tablicy posiadają ustaloną długość, która jest określana przez ostatni wymiar w poleceniu DIM. Indeksy rozpoczynają się od 1.

Slicing: podłańcuchy łańcuchów mogą być określane za pomocą specjalnej notacji, którą tutaj nazywamy slicer. Może on być

 

(i) pusty lub

(ii) wyrażeniem liczbowym lub

(iii) opcjonalnym wyrażeniem liczbowym TO opcjonalnym wyrażeniem liczbowym

 

a używany jest do wyrażania podłańcucha przez

 

a) wyrażenie łańcuchowe (slicer)

b) tablica łańcuchów (indeks,...,indeks,slicer)

 

co znaczy to samo co

 

tablica łańcuchów (indeks,...,indeks)(slicer)

 

Dla a) załóżmy, że wyrażenie łańcuchowe ma wartość s$.

Jeśli slicer jest pusty, to wynikiem będzie s$ traktowane jako podłańcuch samego siebie.

Jeśli slicer jest wyrażeniem liczbowym o wartości m, to wynikiem będzie m-ty znak z s$ (podłańcuch o długości 1).

Jeśli slicer posiada postać (iii), to załóżmy, że pierwsze wyrażenie liczbowe ma wartość m (ustaloną wartością jest 1), a drugie n (ustaloną wartością jest długość s$).

Jeśli 1 ≤ mn ≤ długość s$, to wynikiem jest podłańcuch s$ rozpoczynający się od m-tego znaku i kończący się na znaku n-tym. Jeśli 0 ≤ n < m, to wynikiem jest pusty łańcuch. W przeciwnym razie powstaje błąd 3.

Slicing jest wykonywany przed obliczeniem funkcji lub operacji, chyba że zastosowane zostaną nawiasy.

Podłańcuchom można przypisywać dane (zobacz na LET).

Cudzysłów w łańcuchu musi być wpisany dwukrotnie.

 

Funkcje

Argument funkcji nie potrzebuje nawiasów, jeśli jest stałą lub zmienną (również indeksowaną lub wykorzystującą slicing).

 

Funkcja Rodzaj argumentu (x) Wynik
ABS liczba Wartość bezwzględna
ACS liczba arcus cos x  w radianach.

Błąd A, jeśli x nie jest w zakresie od -1 do +1

AND operacja dwuargumentowa,
prawy argument zawsze jest liczbą.
 
Lewy argument jest liczbą:
Lewy argument jest łańcuchem
ASN liczba arcus sin x w radianach.

Błąd A, jeśli x nie jest w zakresie od -1 do +1

ATN liczba Arcus tangens w radianach.
ATTR dwa argumenty x i y,
oba są liczbami;
ujęte w nawiasy
Liczba będąca wartością kodów atrybutu pozycji znakowej leżącej w wierszu x i kolumnie y. Bit 7 (najbardziej znaczący) jest ustawiony na 1 dla mrugania, 0 dla normalnego obrazu, bit 6 odpowiada za jasność. 1 dla podwyższonej i 0 dla normalnej. Bity 5 do 3 są kolorem tła. Bity 2 do 0 są kolorem tuszu.

Błąd B, jeśli nie jest spełnione 0≤x≤23 i 0≤y≤31

BIN ciąg zer i jedynek To naprawdę nie jest funkcja, lecz alternatywny zapis liczb. Za BIN następuje ciąg cyfr 0 i 1, które są dwójkową reprezentacją liczby. BIN zamienia ten zapis na wartość liczby.
CHR$ liczba Znak o kodzie x, zaokrąglonym do najbliższej liczby całkowitej.
CODE łańcuch Kod pierwszego znaku łańcucha (0, jeśli łańcuch jest pusty)
COS liczba (w radianach) cos x
EXP liczba ex
FN   FN wraz z kolejną literą wywołuje funkcję zdefiniowaną przez użytkownika (zobacz na DEF_FN). Argumenty muszą być ujęte w nawiasy; nawet gdy brak argumentów, nawiasy muszą wciąż być obecne.
IN liczba Wynikiem jest wartość odczytana przez procesor z portu x (0≤x≤FFFFh) (ładuje parę rejestrów bc wartością x i wykonuje instrukcję języka asemblera in a(c))
INKEY$ żaden Czyta klawiaturę. Wynikiem jest znak odpowiadający naciśniętemu klawiszowi (w trybie L lub C), jeśli naciśnieto dokładnie jeden klawisz, w przeciwnym razie zwraca pusty łańcuch.
INT liczba Część całkowita (zawsze zaokrąglona w dół).
LEN łańcuch Długość łańcucha (liczba zawartych w nim znaków).
LN liczba lnex  (logarytm naturalny przy podstawie e)

Błąd A, jeśli x≤0

NOT liczba 0 dla x≤0, 1 dla x=0. NOT posiada priorytet 4
OR operacja dwuargumentowa,
oba argumenty są liczbami

OR posiada priorytet 2
PEEK liczba Zawartość bajtu w pamięci o adresie x (zaokrąglonym do najbliższej liczby całkowitej).

Błąd B, jeśli x nie jest w zakresie od 0 do 65535.

PI żaden π = 3.14159265...
POINT Dwa argumenty x i y,
oba są liczbami;
argumenty w nawiasach.
1, jeśli piksel na pozycji (x,y) ma kolor tuszu, 0, jeśli jest w kolorze tła.

Błąd B, jeśli nie jest spełnione 0≤x≤255 i 0≤y≤175

RND żaden Kolejna liczba pseudolosowa z ciągu generowanego przez wyznaczanie potęg 75 modulo 65537, odejmowanie 1 i dzielenie przez 65536.

0≤y<1

SCREEN$ Dwa argumenty x i y,
oba są liczbami;
argumenty w nawiasach.
Znak, który pojawia się albo normalnie, albo w negatywie na ekranie w wierszu x i kolumnie y.

Jeśli znak nie zostanie rozpoznany, to wynikiem jest pusty łańcuch.

Błąd B, jeśli nie jest spełnione 0≤x≤23 i 0≤y≤31

SGN liczba Znak: -1 dla liczb ujemnych, 0 dla zera lub +1 dla liczb dodatnich.
SIN liczba (w radianach) sin x
SQR liczba Pierwiastek kwadratowy z x.

Błąd A, jeśli x<0

STR$ liczba Ciąg znaków, który zostałby wyświetlony, gdyby x było drukowane na ekranie.
TAN liczba (w radianach) tg x
USR liczba Wywołuje procedurę w kodzie maszynowym o adresie x. Wynikiem jest zawartość pary rejestrów bc przy powrocie do systemu BASIC.
USR łańcuch Adres wzoru bitowego grafiki definiowanej przez użytkownika, która odpowiada x.

Błąd A, jeśli x nie jest pojedynczą literą od a do u lub znakiem grafiki użytkownika.

VAL łańcuch Oblicza x (bez obejmujących je nawiasów), jakby było wyrażeniem liczbowym.

Błąd C, jeśli x zawiera błąd składniowy lub daje wartość łańcuchową. Możliwe są inne błędy w zależności od wyrażenia.

VAL$ łańcuch Oblicza x (bez obejmujących je nawiasów) jako wyrażenie łańcuchowe.

Błąd C, jeśli x zawiera błąd składniowy lub daje wartość liczbową. Możliwe są inne błędy w zależności od wyrażenia.

- liczba Negacja arytmetyczna

 

Poniżej znajdują się operacje dwuargumentowe:

 

+         Dodawanie (dla liczb) lub łączenie (dla łańcuchów)
- Odejmowanie
* Mnożenie
/ Dzielenie
Potęgowanie. Błąd B, jeśli lewy argument jest ujemny.
= Równe

Oba argumenty muszą być
tego samego typu. Wynikiem
jest 1, jeśli porównanie jest
prawdziwe lub 0, jeśli nie.

> Większe
< Mniejsze
<= Mniejsze lub równe
>= Większe lub równe
<> Różne

 

Funkcje i operacje posiadają następujące priorytety:

 

Operacja Priorytet
Indeksowanie i slicing 12
Wszystkie funkcje za wyjątkiem NOT i jednoargumentowego minus 11
10
Jednoargumentowy minus (tj. minus używany do zanegowania czegoś) 9
*, / 8
+, - (minus używany do odejmowania jednej liczby od drugiej) 6
=, >, <, <=, >=, <> 5
NOT 4
AND 3
OR 2

 

Polecenia

Na tej liście

 

a    przedstawia jeden znak
v   przedstawia zmienną
x, y, z   przedstawia wyrażenia liczbowe
m, n   przedstawia wyrażenia liczbowe zaokrąglone do najbliższej liczby całkowitej
e   przedstawia wyrażenie
f   przedstawia obliczane wyrażenie łańcuchowe
s   przedstawia ciąg poleceń rozdzielonych dwukropkami.
c   przedstawia ciąg elementów kolorów, każdy zakończony przecinkiem lub średnikiem;
element koloru ma postać poleceń PAPER, INK, FLASH, BRIGHT, INVERSE lub OVER

 

Zauważ, że dowolne wyrażenia są dozwolone wszędzie (za wyjątkiem numeru wiersza na początku).

Wszystkie polecenia za wyjątkiem INPUT, DEF i DATA mogą być użyte albo jako rozkazy, albo w programach (chociaż czasem są bardziej sensowne w jednej roli niż w drugiej). Rozkaz lub wiersz programu może zawierać kilka poleceń rozdzielonych dwukropkami (:). Nie ma ograniczeń co do miejsca występowania w wierszu określonych poleceń — jednakże zobacz na IF i REM.

 

BEEP x, y   Odtwarza nutę poprzez wbudowany głośnik przez x sekund i o wysokości dźwięku równej y półtonów ponad środkowym C (lub poniżej, jeśli y jest ujemne).
BORDER m   Ustawia kolor obrzeża ekranu oraz kolor tła dla dolnej części ekranu.

Błąd K, jeśli m nie leży w zakresie od 0 do 7.

BRIGHT n   Ustawia jasność znaków, które będą następnie drukowane.

n=0 dla normalnej, 1 dla podwyższonej, 8 dla przezroczystej.

Błąd K, jeśli n nie jest równe 0, 1 lub 8.

CAT   Nie działa bez podłączonej stacji Microdrive, itp.
CIRCLE x, y, z   Rysuje okrąg o środku w punkcie (x,y) i promieniu z.
CLEAR Usuwa wszystkie zmienne, zwalniając zajmowaną przez nie pamięć. Wykonuje RESTORE i CLS, resetuje pozycję PLOT do lewego dolnego narożnika ekranu i czyści stos GO SUB.
CLEAR n   Jak CLEAR, lecz umożliwia zmianę zmiennej systemowej RAMTOP na n, po czym umieszcza tam nowy stos GO SUB.
CLOSE #   Nie działa bez podłączonej stacji Microdrive, itp.
CLS Czyści ekran, ustawiając na nim bieżące atrybuty kolorów.
CONTINUE Wykonuje dalej program od punktu ostatniego zatrzymania z raportem różnym od 0. Jeśli był to raport 9 lub L, to kontynuuje wykonanie od następnego polecenia w programie (biorąc pod uwagę skoki); w przeciwnym razie powtarza polecenie, w którym wystąpił błąd. Jeśli ostatni raport został wygenerowany przez polecenie w wierszu rozkazów, to CONTINUE będzie próbowało kontynuować ten wiersz rozkazów i albo wpadnie w pętlę, jeśli błąd wystąpił w 0:1, da raport 0, jeśli był w 0:2 lub da raport N, jeśli był w 0:3 lub dalej.

Na klawiaturze polecenie CONTINUE występuje jako CONT.

COPY   Wysyła kopię 22 wierszy obrazu na drukarkę, jeśli została podłączona, w przeciwnym razie nic nie robi. Zauważ, że COPY nie można używać do drukowania automatycznych listingów, które pojawiają się na ekranie.

Jeśli będzie naciśnięty klawisz BREAK, powstanie raport D.

DATA a1 , a2 , a3 , ...   Część listy DATA. Musi być w programie
DEF FN a (a1 . . . ak )=e Funkcja definiowana przez użytkownika, musi być w programie. Każde z a oraz a1 do ak musi być albo pojedynczą literą, albo pojedynczą literą ze znakiem $ dla argumenty lub wyniku łańcuchowego.

Jeśli nie ma argumentów, to przyjmuje postać DEF FN a()=e.

DELETE f   Nie działa bez podłączonej stacji Microdrive, itp.
DIM a( n1 , . . . ,nk ) Usuwa każdą tablicę o nazwie a i tworzy nową tablicę liczbową a o k wymiarach n1,...,nk. Inicjuje wszystkie elementy na 0.
DIM a$( n1 , . . . ,nk )   Usuwa każdą tablicę lub zmienną łańcuchową o nazwie a$ i tworzy nową tablicę znakową a$ o k wymiarach n1,...,nk. Inicjuje wszystkie elementy na " ". Można ją traktować jako tablicę łańcuchów o stałej długości nk z k-1 wymiarami n1,...,nk-1.

Powstaje błąd 4, jeśli nie ma miejsca, aby pomieścić tablicę. Tablica jest niezdefiniowana aż do momentu użycia jej z poleceniem DIM.

DRAW x,y   DRAW x,y,0
DRAW x,y,z   Rysuje linię z bieżącej pozycji PLOT, przesuwając się o x w poziomie i o y w pionie względem początku, jednocześnie dokonując obrotu o kąt z.

Jeśli linia wyjdzie poza ekran, powstanie błąd B.

ERASE   Nie działa bez podłączonej stacji Microdrive, itp.
FLASH n Określa, czy drukowany znak będzie lub nie będzie mrugał. n=0 brak mrugania, n=1 z mruganiem, n=8 bez zmiany.
FOR a=x TO y   FOR a=x TO y STEP 1
FOR a=x TO y STEP z  Usuwa każdą prostą zmienną a i na jej miejscu tworzy zmienną sterującą pętli z wartością x, granicą y oraz krokiem z, oraz adresem początku pętli, który wskazuje pierwszy rozkaz za poleceniem FOR. Sprawdza, czy wartość początkowa jest większa (gdy krok ≥ 0) lub mniejsza (gdy krok < 0) od granicy, a jeśli tak, to pomija treść pętli aż do następnego polecenia NEXT a, dając błąd 1, jeśli go nie znajdzie. Zobacz na NEXT.

Błąd 4 pojawia się, gdy nie ma miejsca na zmienną kontrolną.

FORMAT f   Nie działa bez podłączonej stacji Microdrive, itp.
GO SUB n   Umieszcza na stosie numer wiersza z poleceniem GO SUB, a następnie wykonuje GO TO n.
Błąd 4 występuje, gdy w programie braknie poleceń RETURN.
GO TO n   Skacze do wiersza n (a jeśli takiego nie ma w programie, to do pierwszego wiersza za nim).
IF x THEN Jeśli x jest prawdziwe (niezerowe), to s zostaje wykonane. Zauważ, że s obejmuje wszystkie polecenia do końca tego wiersza.
Postać IF x THEN numer wiersza jest niedozwolona.
INK n  Ustawia kolor tuszu znaków, które dalej będą drukowane. n jest w zakresie 0 do 7 dla koloru, n = 8 dla przezroczystości lub 9 dla kontrastu. Zobacz na ekran telewizyjny w Dodatku C.

Błąd K powstaje, gdy n nie jest w zakresie od 0 do 9.

INPUT  ... ' . . . '  jest ciągiem elementów INPUT rozdzielonych, jak w poleceniu PRINT, za pomocą przecinków, średników lub apostrofów. Elementem INPUT może być:

 (i) Dowolny element PRINT nie rozpoczynający się od litery
 (ii) Nazwa zmiennej lub
(iii) LINE, a następnie nazwa zmiennej typu łańcuchowego.

Elementy PRINT i separatory w (i) są traktowane dokładnie jak w PRINT, z wyjątkiem tego, że wszystko jest wyświetlane w dolnej części ekranu.

Przy (ii) komputer zatrzymuje program i czeka na wprowadzenie wyrażenia z klawiatury, którego wartość zostanie następnie przypisana podanej zmiennej. Wprowadzane dane są wyświetlane w normalny sposób, a błąd składniowy daje mrugający znak ?. Dla wyrażeń typu łańcuchowego w buforze wejściowym zostają umieszczone dwa znaki cudzysłowu (które w razie potrzeby można wymazać). Jeśli pierwszym znakiem w buforze będzie STOP, program zatrzyma się z błędem H. (iii) jest jak (ii), za wyjątkiem tego, że dane wejściowe są zawsze traktowane jak tekst bez cudzysłowów, a STOP nie zadziała: aby zatrzymać program, musisz nacisnąć klawisz .

INVERSE n Steruje negatywem znaku, który zostanie następnie wydrukowany. Jeśli n=0, to znak zostanie wydrukowany w normalny sposób w kolorze tła i tuszu. Jeśli n=1, to znaki będą drukowane z zamienionymi kolorami tła i tuszu. Zobacz na ekran telewizyjny w Dodatku C.

Błąd K powstaje, gdy n nie jest równe 0 lub 1.

LET v=e   Przypisuje wartość e zmiennej v. LET nie można opuszczać. Prosta zmienna jest niezdefiniowana, jeśli nie nadano jej wartości w poleceniach LET, READ lub INPUT. Jeśli v jest indeksowaną zmienną łańcuchową lub zmienną łańcuchową ze slicingiem (podłańcuchem), to przypisanie odbywa się wg zasad Prokrusta (stała długość): wartość łańcuchowa e jest albo przycinana, albo wypełniana spacjami z prawej strony, aby miała taką samą długość jak zmienna v.
LIST   LIST 0
LIST n   Wyświetla w górnej części ekranu listing programu rozpoczynając od wiersza o numerze co najmniej n oraz czyniąc wiersz n wierszem bieżącym (umieszcza w nim kursor programu).
LLIST   LLIST 0
LLIST n   Jak LIST, lecz z użyciem drukarki.
LOAD f   Ładuje program i zmienne
LOAD f DATA ()    Ładuje tablicę liczbową
LOAD f DATA $()    Ładuje tablicę znakową $
LOAD f CODE m,n    Ładuje co najwyżej n bajtów, poczynając od adresu m.
LOAD f CODE m    Ładuje wszystkie bajty, poczynając od adresu m
LOAD f CODE    Ładuje bajty z powrotem pod adres, z którego zostały zapisane.
LOAD f SCREEN$    LOAD f CODE 16384,6912.
Szuka na taśmie magnetofonowej podanego pliku o właściwym rodzaju i ładuje go do pamięci ekranu. Zobacz do Rozdziału 20.
LPRINT   Jak PRINT, lecz z wykorzystaniem drukarki.
MERGE f   Jak LOAD f, lecz nie usuwa wierszy i zmiennych starego programu. Po wczytaniu zastępuje nowymi wierszami programu wszystkie stare o tych samych numerach. Zastępuje również nowymi zmiennymi wszystkie stare o tych samych nazwach.
MOVE f1,f2   Nie działa bez podłączonej stacji Microdrive, itp.
NEW Rozpoczyna od nowa pracę systemu BASIC, usuwając program i zmienne i używając pamięci aż do adresu wskazywanego przez zmienną systemową RAMTOP. Zachowuje zmienne systemowe UDG, P_RAMT, RASP i PIP.
NEXT a (i) Znajduje zmienną sterującą
(i) Dodaje krok pętli do wartości zmiennej
(iii) Jeśli krok ≥ 0 i wartość > granica; lub jeśli krok < 0 i wartość < granica, to skacze do polecenia na początku pętli.

Błąd 2 powstaje, gdy nie ma zmiennej a (nie została zdefiniowana przez FOR).

Błąd 1 powstaje, jeśli jest taka zmienna, lecz nie jest zmienną sterującą pętli.

OPEN #   Nie działa bez podłączonej stacji Microdrive, itp.
OUT m,n   Wysyła bajt n do portu m na poziomie procesora. (Ładuje parę rejestrów bc wartością m, rejestr akumulatora a wartością n i wykonuje instrukcję języka asemblera out (c),a.)
0≤m≤65535, -255≤n≤255, inaczej błąd B.
OVER n   Steruje nadpisywaniem znaków, które będą dalej drukowane. Jeśli n=0, to nowe znaki zastępują poprzednie na danych pozycjach znakowych. Jeśli n=1, to nowe znaki zostaną zmieszane ze starymi przy pomocy funkcji sumy symetrycznej - tam, gdzie w nowym i starym znaku są punkty w kolorze tła lub tuszu, powstaje punkt w kolorze tła. W przeciwnym razie rysowany jest punkt w kolorze tuszu. Zobacz na ekran telewizyjny w Dodatku C.

Błąd K powstaje, gdy n nie jest równe 0 lub 1.

PAPER n   Jak INK, lecz ustawia kolor tła znaków.
PAUSE n   Zatrzymuje obliczenia i wyświetla obraz przez n ramek (przy 50 ramkach na sekundę lub 60 w Północnej Ameryce) lub do czasu naciśnięcia jakiegoś klawisza.

0≤nc≤65535, inaczej błąd B. Jeśli n=0, to pauza trwa aż do naciśnięcia klawisza.

PLOT c;m,n   Rysuje punkt w kolorze tuszu (o ile nie zastosuje się OVER i INVERSE) na współrzędnych (|m|, |n|); przesuwa pozycję PLOT. O ile elementy kolorów c nie określą inaczej, kolor tuszu na pozycji znakowej zawierającej rysowany punkt zostanie ustawiony na kolor ustalony, a inne atrybuty (kolor tła, miganie i jasność) pozostaną niezmienione.
0≤|m|≤255, 0≤|n|≤175,  inaczej błąd B.
POKE m,n Zapisuje wartość n do bajtu w pamięci o adresie m.
0≤m≤65535, -255≤n≤255, inaczej błąd B.
PRINT ... ' . . . ' jest ciągiem elementów PRINT rozdzielonych przecinkami, średnikami lub apostrofami, które zapisuje się do obszaru ekranu w celu wyświetlenia na telewizorze.

Średnik pomiędzy dwoma elementami nie ma na nie wpływu i służy jedynie do ich rozdzielenia. Przecinek wysyła na ekran znak sterujący, który powoduje wysyłanie spacji, aż pozycja PRINT osiągnie kolumnę 0 lub 16 (zależy, która będzie osiągnięta szybciej). Apostrof wysyła znak ENTER (koniec wiersza), który powoduje przejście z wydrukiem na początek następnego wiersza ekranu (z możliwym przesunięciem treści w górę, jeśli pozycja druku wychodzi poza dolną krawędź obrazu).

Jeśli polecenie PRINT nie kończy się przecinkiem lub średnikiem, to na jego końcu zostaje wysłany na ekran znak ENTER.

Element PRINT może być:

(i) pusty, tj. może wcale nie wystąpić;

(ii) wyrażeniem liczbowym - wtedy najpierw jest drukowany znak minus, jeśli wartość wyrażenia jest ujemna. Teraz niech x będzie wartością bezwzględną tego wyrażenia. Jeśli x≤10-5 lub x≤1013, to zostanie wydrukowane przy pomocy zapisu naukowego. Część mantysy ma do 8 cyfr (bez zer końcowych), a kropka dziesiętna (nieobecna przy tylko jednej cyfrze) jest umieszczana za pierwszą cyfrą zapisu mantysy. Część cechy rozpoczyna się literą E, za którą występują znaki + lub -, a następnie jedna lub dwie cyfry. W przeciwnym wypadku x jest wyświetlane w zwykłym zapisie dziesiętnym do ośmiu cyfr znaczących, bez zer końcowych za kropką dziesiętną.  Po kropce dziesiętnej na początku zawsze występuje zero, jeśli jest konieczne, zatem przykładowo liczby .03 i 0.3 zostaną tak właśnie zapisane. 0 jest zapisywane jako pojedyncza cyfra 0.

(iii) wyrażeniem łańcuchowym. Tokeny (nazwy poleceń i funkcji) są wypisywane w łańcuchu w pełnej postaci, możliwe że ze spacją przed lub po nazwie. Znaki sterujące posiadają swój efekt sterujący. Znaki nierozpoznane są wyświetlane jako ?.

(iv) AT m,n. Wyprowadza na ekran znak sterujący AT, za którym występuje jeden bajt dla m (numer wiersza) oraz jeden dla n (numer kolumny). Powoduje wydruk następnych elementów od wiersza m i kolumny n.

(v) TAB n. Wyprowadza na ekran znak sterujący TAB, za którym występują dwa bajty wartości n (mniej znaczący bajt jako pierwszy). Drukuje spacje, aż do zatrzymania się na kolumnie o numerze (n modulo 32).
(vi) element koloru, który przyjmuje postać polecenia PAPER, INK, FLASH, BRIGHT, INVERSE lub OVER.

RANDOMIZE   RANDOMIZE 0
RANDOMIZE n   Ustawia zmienną systemową (zwaną SEED) używana do tworzenia następnej wartości funkcji RND. Jeśli n≠0, zmiennej SEED zostaje nadana wartość n; jeśli n=0, zmiennej tej zostaje nadana zawartość innej zmiennej systemowej (zwanej FRAMES), która zlicza ramki obrazu wyświetlone dotychczas na ekranie telewizora, zatem powinna być dosyć przypadkowa.

Na klawiaturze RANDOMIZE pojawia się jako RAND.

Błąd B powstaje, gdy n nie jest w zakresie od 0 do 65535.

READ vl , v2 , . . . vk   Przypisuje zmiennym kolejne wartości z listy DATA.

Błąd C, jeśli typ przypisywanego wyrażenia jest niezgodny z typem zmiennej (liczba do łańcucha lub odwrotnie).

Błąd E, jeśli lista DATA skończy się przed przypisaniem wartości dla wszystkich zmiennych.

REM . . .   Bez efektu. "..." może być dowolnym ciągiem znaków, z wyjątkiem ENTER. Może on zawierać :, zatem za REM nie są możliwe żadne polecenia w tym samym wierszu programu.
RESTORE   RESTORE 0
RESTORE n   Przewija wskaźnik danych DATA do pierwszego polecenia DATA w wierszu o numerze co najmniej n: następny odczyt danych poleceniem READ rozpocznie się od tego miejsca.
RETURN   Pobiera odwołanie (numer wiersza oraz numer polecenia w wierszu) do polecenia ze stosu GO SUB, a następnie skacze do następnego polecenia za tym odwołaniem.

Błąd 7 pojawia się, gdy na stosie nie ma odwołania do polecenia. W twoim programie musi być jakaś pomyłka. Nie ma odpowiedniej równowagi pomiędzy poleceniami GO SUB a poleceniami RETURN.

RUN   RUN 0
RUN n   CLEAR, a następnie GO TO n
SAVE f   Zapisuje na taśmie program i zmienne.
SAVE f LINE m       Zapisuje na taśmie program i zmienne tak, że po załadowaniu następuje automatyczny skok do wiersza o numerze m.
SAVE f DATA ()    Zapisuje na taśmie tablicę liczbową.
SAVE f DATA $()    Zapisuje na taśmie tablicę znakową $.
SAVE f CODE m,n    Zapisuje na taśmie n bajtów, poczynając od adresu m.
SAVE f SCREEN$      

  

SAVE f CODE 16384,6912.
Zapisuje treść ekranu na taśmie, nadając plikowi nazwę f.
Błąd F, jeśli f jest pustą nazwą lub zawiera ponad dziesięć znaków.
Zobacz do Rozdziału 20.
STOP      Zatrzymuje program z raportem 9. CONTINUE spowoduje kontynuowanie wykonywania programu od następnego polecenia.
VERIFY   Takie samo jak LOAD z wyjątkiem tego, że dane nie zostają załadowane do pamięci RAM, lecz porównane z tym, co się w niej już znajduje.

Błąd R, jeśli porównanie wykrywa różne bajty.

 

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe