Polecenia Basic’a cz. 3

RESTORE – Ustawia wskaźnik instrukcji DATA na początek danych.

RESTORE [numer linii]
W BASICu istnieje wewnętrzny wskaźnik do następnego elementu w instrukcji DATA, który będzie czytany przy pomocy READ. Kiedy polecenie RESTORE jest wykonywane w programie, to wskaźnik ten jest ustawiany tak, aby wskazywał pierwszy element DATA. Pozwala to na powtórne wczytanie danych. Jeśli po RESTORE podany został numer linii, to spowoduje to ustawienie wskaźnika na początek danych znajdujących się w pierwszej instrukcji DATA począwszy od podanego numeru linii.

PRZYKŁADY:
10 FOR I =1 TO 3
20 READ X
30 SUMA=X+SUMA
40 NEXT
50 RESTORE
60 GOT010
70 DATA 10,20,30

W przykładzie tym dane z linii 70 wczytywane są do zmiennej X przy pomocy READ. Kiedy wszystkie liczby zostaną przeczytane (w trzech cyklach pętli), to RESTORE zeruje wskaźnik w celu ponownego czytania danych z linii 70.

10 READ A,B,C
20 DATA 100,500,750
30 READ X,Y,Z
40 DATA 36,24,38
50 RESTORE
60 READ S,P,Q
70 RESTORE 30
80 READ D,E,F

W tym przykładzie instrukcja RESTORE ustawia wskaźnik na początek danych w linii 20. W ten sposób READ w linii 60 może przeczytać dane 100,500,750. RESTORE 30 ustawia wskaźnik na najbliższą instrukcję DATA po linii 30; w tym przypadku na początek danych w instrukcji DATA w linii 40. W ten sposób linia 80 wczyta liczby 36,24 i 38.

RETURN – Powrót z procedury.

RETURN
Instrukcja ta występuje zawsze w parze z instrukcją GOSUB. Kiedy program natrafia na instrukcję RETURN, to skacze do instrukcji znajdującej się bezpośrednio po instrukcji GOSUB. Jeśli jednak taka instrukcja nie była poprzednio wykonana, to wystąpi błąd RETURN WITHOUT GOSUB ERROR (powrót bez GOSUB) i program zatrzyma się. Wszystkie podprogramy muszą kończyć się instrukcją RETURN.

PRZYKŁAD:
10 PRINT „SKOCZ DO PODPROGRAMU”
20 GOSUB 100
30 PRINT „Z POWROTEM W PROGRAMIE”
90 STOP
100 PRINT „PODPROGRAM 100”
110 RETURN

W programie tym następuje wywołanie (w linii 20) podprogramu w linii 100, który drukuje informację „PODPROGRAM 100” i powraca do linii 30 programu.

RUN – Uruchamia program w BASICu.

RUN [numer linii]
Instrukcja RUN uruchamia program wpisany uprzednio do pamięci komputera, lub załadowany do niej przy pomocy instrukcji LOAD. Zanim nastąpi uruchomienie programu, RUN kasuje wszystkie zmienne, zeruje wskaźniki DATA, czyści (ale nie domyka) kanały I/0 (WE/WY) i odtwarza standardowe kanały I/0. Jeśli po instrukcji RUN następuje numer linii, to wykonywanie programu rozpocznie się w tej właśnie linii.

PRZYKŁAD:
RUN Rozpocznie wykonywanie programu od początku.
RUN 100 Rozpocznie wykonywanie w linii 100.

SAVE – Zapisz program na taśmie lub dysku.

SAVE [„nazwa zbioru”] [,numer urządzenia] [znak EOF]
Polecenie to powoduje przepisanie programu z pamięci komputera na nośnik magnetyczny. Jeśli podasz samo słowo SAVE i wciśniesz klawisz RETURN, to komputer przyjmie, że urządzeniem wyjściowym jest taśma. Komputer nie ma sposobu na sprawdzanie, czy w miejscu zapisywania programu nie zostało coś uprzednio nagrane, więc upewnij się przed nagrywaniem, czy taśma jest wolna. Jeśli po SAVE podamy nazwę zbioru (w formie ciągu znaków lub zmiennej tekstowej), to COMMODORE nada tę nazwę zbiorowi na taśmie. Jeśli po nazwie i przecinku podany zostanie numer urządzenia, to program zostanie wysłany na to urządzenie. Urządzenie numer 1 oznacza taśmę kasetową, numer 8 stację dyskietek. W przypadku taśmy kasetowej na końcu instrukcji może być podany także tzw. drugi adres. Jeśli ma on wartość zero, to wykonana zostanie normalna instrukcja SAVE. Jeśli liczba ta wynosi 1, to COMMODORE 64 zapisze w nagłówku adres startowy programu, w celu późniejszego utycia go w instrukcji LOAD. Jeśli liczba ta wynosi 2, to na końcu programu zapisany zostanie znak EOF (End Of Tape – koniec taśmy). Jeśli liczba ta wynosi 3, to zapisany zostanie adres startowy i znak końca taśmy (EOF). Jeśli w trakcie ładowania programu komputer odczyta ten znacznik, to wyświetlony zostanie komunikat FILE NOT FOUND ERROR (nie znaleziono programu).

PRZYKŁADY:
SAVE Zapisuje program na taśmę.
SAVE „PROGRAM” Zapisuje program na taśmie i nadaje mu nazwę „PROGRAM”.
SAVE A$,8 Zapisuje program na dysk nadając mu nazwę zawartą w zmiennej A$.
SAVE „PROGRAM”,8 Zapisuje program na dysk, nadając mu nazwę „PROGRAM”.
SAVE „PROGRAM”,1,2 Zapisuje program na taśmę, umieszcza znak EOF za programem.

STOP – Zatrzymuje program.

STOP
Instrukcja ta wstrzymuje wykonywanie programu. Informacja BREAK IN LINE xxx (przerwano w linii xxx pojawi się na ekranie, gdzie xxx oznacza numer linii zawierającej instrukcję STOP. Program może zostać uruchomiony ponownie od następnej linii przy utyciu instrukcji CONT, jeśli polecenie to użyte zostanie przed wprowadzeniem jakichkolwiek zmian w treści programu. Instrukcja STOP jest często używana w „odpluskwianiu” programu (poszukiwaniu błędów).

SYS – Wywołuje i wykonuje podprogram w języku maszynowym zaczynającym się od podanego adresu.

SYS
Polecenie to powoduje wywołanie podprogramu rozpoczynającego się od podanego adresu. Adres może być z zakresu 0 do 65635. W komórce o podanym adresie musi zaczynać się program w języku maszynowym.

PRZYKŁAD:
SYS 40960 – Wywołuje i wykonuje program maszynowy od adresu 40960.

VERIFY – Porównuje program w pamięci z programem umieszczonym na taśmie lub dysku.

VERIFY „nazwa zbioru”[,numer urządzenia][,flaga relokacji]
Instrukcja ta powoduje, że COMMODORE 64 porówna program znajdujący się na taśmie z programem już zapisanym na taśmie lub dysku, w celu sprawdzenia jego poprawnego zapisania. Polecenie to jest również użyteczne w celu ustawienia taśmy za ostatnim programem. Komputer czyni to informując użytkownika, że program nie zgadza się. Taśma będzie jednak ustawiona właściwie w celu bezpiecznego nagrania następnego programu. Instrukcja VERIFY podana bez dodatkowych argumentów spowoduje porównanie najbliższego programu na taśmie, niezależnie od jego nazwy, z programem w pamięci. Podanie nazwy programu w cudzysłowiu, lub podanie nazwy zmiennej tekstowej spowoduje uprzednie odszukanie na taśmie właściwego programu. Podanie numeru urządzenia po nazwie zbioru spowoduje porównanie zbioru z wybranego urządzenia (1 – taśmy, 8 – dyskietki). Flaga relokacji jest ta sama co w instrukcji LOAD. Porównuje program od adresu pamięci, od którego był on zapisany na taśmie.

PRZYKŁADY:
VERIFY Weryfikuje najbliższy program na taśmie.
VERIFY „PROG” Odszukuje program „PROG” na taśmie i porównuje go z pamięcią.
VERIFY „PROG”,8,1 Odszukuje program „PROG” na dysku i porównuje go z pamięcią.

WAIT – Zatrzymuje program do czasu spełnienia określonego warunku przez dane.

WAIT < adres > , < maska-1 > [, < maska-2 > ]
Instrukcja WAIT zawiesza wykonanie programu do czasu, aż określona przez adres komórka pamięci nie będzie zawierała zadanej wartości (układu bitów). Innymi słowy, WAIT powoduje oczekiwanie na wystąpienie pewnego zjawiska zewnętrznego. Odbywa się to przy pomocy monitorowania stanu bitów rejestrów I/0 (Wejście/Wyjście). Dane używane w instrukcji WAIT mogą mieć wartości 0-65535 dla adresu i 0-255 dla masek. W większości programów polecenie to nie powinno być używane. Powoduje ono zawieszanie wykonywania programu do czasu, aż układ bitów w wybranym miejscu pamięci nie zmieni się w pożądany sposób. Może być to użyteczne przy pewnych operacjach I/O. Instrukcja WAIT pobiera zawartość komórki pamięci i wykonuje logiczną operację AND (i) z maską-1. Jeśli podana jest maska-2, to wykonywana jest instrukcja XOR (wyłącznie lub) z maską-2. Innymi słowy maska-1 filtruje wszystkie bity, które nie mają być testowane. Jeśli jakiś bit w masce-1 wynosi 0, to odpowiadający mu bit w wyniku ma zawsze wartość zero. Maska-2 odwraca wszystkie bity, zatem oba stany bitu mogą być testowane. Każdy bit, który testujemy ze względu na wartość zero musi mieć ustawiony (równy 1) odpowiedni bit maski-2. Jeśli odpowiednie bity operandów maski-1 i maski-2 różnią się, to operacja wyłącznego LUB daje rezultat 1. Jeśli odpowiednie bity mają tę samą wartość, to rezultat wynosi 0. Przy pomocy WAIT można wejść w pętlę nieskończoną, z której można wyjść jedynie przez wciśnięcie RUN/STOP i RESTORE. Pierwszy z poniższych przykładów oczekuje na wciśnięcie klawisza w magnetofonie. Drugi program oczekuje, na zderzenie „duszka” z ramką ekranu.

PRZYKŁADY:
WAIT 1,32,32
WAIT , ,

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *