Polecenia Basic’a cz. 2

INPUT# – Wprowadza dane z kanału I/O (we/wy) do zmiennych tekstowych lub numerycznych.

INPUT# ,
Instrukcja ta działa podobnie do INPUT, ale pobiera dane z otwartego wcześniej kanału, zwykle z dyskietki lub kasetki, zamiast z klawiatury. Znaki zachęty nie są używane. Instrukcja ta może być wykonywana tylko z programu.

PRZYKŁAD:
10 OPEN 2,8,2
20 INPUT#2,A$,C,D$

Instrukcja INPUT w linii 20 pobiera dane z kanału dyskowego nr 2 (został on otwarty w linii 10) i przypisuje je zmiennym A$, C i D$.

LET – Przypisuje wartość zmiennej programowej.

[LET] =
Słowo LET (pozwól) jest rzadko używane w programach, ponieważ nie jest konieczne (było dawniej). Za każdym razem, kiedy wartość zmiennej ulega modyfikacji, LET jest stosowane automatycznie. Nazwa zmiennej, której przypisana jest wartość znajduje się po lewej stronie znaku równości. Liczba, łańcuch tekstowy, lub wyrażenie umieszcza się po stronie prawej. Przy pomocy jednej instrukcji LET możesz przypisać tylko jedną wartość.

PRZYKŁAD:
10 LET A=5 (Przypisz wartość zmiennej liczbowej A)
20 B=6 (Przypisz wartość 6 zmiennej liczbowej B)
30 C=A*B+3 (Przypisz zmiennej C wartość wynikającą z obliczenia 5*6+3)
40 D$=”HALO” (Przypisz łańcuch „HALO” zmiennej łańcuchowej D$)

LIST – Wyświetlanie na ekranie treści programu BASICowego znajdującego się aktualnie w pamięci.

LIST [pierwsza linia] [-ostatnia linia]
Polecenie LIST („LISTUJ”) powoduje wyświetlenie programu BASICowego znajdującego się w pamięci komputera (wpisanego albo załadowanego z dyskietek lub kasetek). Kiedy polecenie LIST użyte jest samodzielnie (bez dalszych liczb), to COMMODORE 64 wyświetli na ekranie treść całego programu. Proces wyświetlania może być spowolniony poprzez naciśnięcie klawisza CTRL, lub przerwany przez naciśnięcie klawisza RUN/STOP. Jeśli po LIST podany jest numer linii, to COMMODORE wyświetli tylko tę linię. Jeśli po numerze linii dopiszesz myślnik, to COMMODORE wyświetli linie programu począwszy od podanej linii do końca. Podobnie, jeśli podasz po słowie LIST myślnik i numer linii, to wyświetlone zostaną linie od początku do podanego numeru. I na koniec, jeśli podasz polecenie LIST z dwiema liczbami oddzielonymi myślnikiem, to wyświetlony zostanie fragment programu pomiędzy tymi liniami. Używając tych różnych sposobów korzystania z polecenia LIST możesz w wygodny sposób przeglądać dowolne fragmenty programu i przywoływać je na ekran w celu modyfikacji. Polecenie LIST może być użyte także w programie, ale wykonywanie programu zostanie zawieszone po jego wykonaniu.

PRZYKŁADY:
LIST listuje cały program.
LIST 10 wyświetla linię 10.
LIST 100- listuje program od linii 100 do końca.
LIST -100 listuje program od początku do linii 100.
LIST 10-200 wyświetla na ekranie linie o numerach od 10 do 200 (włącznie).

LOAD – Ładuje program z urządzenia zewnętrznego takiego jak stacja dyskietek lub kasetek.

LOAD „nazwa zbioru” [,numer urządzenia][flaga relokacji]
To polecenie używane jest do wczytania programu zapamiętanego na dysku lub kasetce. Nazwa zbioru oznacza nazwę programu, o długości max. 16 znaków, umieszczoną w cudzysłowiu. Nazwa zbioru musi zostać uzupełniona przecinkiem (poza cudzysłowem) i numerem urządzenia na którym program jest przechowywany (dysk lub taśma). Jeśli numer zostanie pominięty, to komputer przyjmie wartość 1 oznaczającą kasetki (magnetofon DATASSETTE). Flaga relokacji (0 lub 1) określa, w które miejsce pamięci palety załadować program. Flaga relokacji równa 0 oznacza ładowanie programu od początku pola programów BASICu. Flaga 1 oznacza, że program ma być załadowany w to miejsce pamięci, z którego został pobrany do przechowania (instrukcja SAVE). Wartość 0 jest przyjmowana przez komputer automatycznie. Flaga 1 jest używana przy ładowaniu programów napisanych w języku maszynowym. Najczęściej używanym w instrukcji LOAD urządzeniem jest stacja dyskietek. Jest to urządzenie o numerze 8. Jeśli w instrukcji LOAD nie zostanie podane argumenty, to 64 C przyjmie, że chcesz załadować program z taśmy kasetowej i napisze: „PRESS PLAY ON TAPE” (Naciśnij klawisz PLAY magnetofonu). Kiedy naciśniesz PLAY, komputer rozpocznie przeszukiwanie taśmy. Kiedy znajdzie na niej program, to napisze komunikat FOUND „nazwa zbioru”, gdzie „nazwa zbioru” oznacza nazwę pierwszego napotkanego na taśmie zbioru. Naciśnij wtedy klawisz COMMODORE (C=) lub odstępnik, a program zostanie załadowany do pamięci. Jeśli nie naciśniesz żadnego klawisza, to po ok.10 sekundach komputer sam rozpocznie ładowanie programu. Kiedy program zostanie załadowany, to możesz go uruchomić (RUN), przejrzeć (LIST) lub poprawić.

PRZYKŁADY:
LOAD Ładuje pierwszy program z taśmy.
LOAD „HELLO” Szuka na taśmie i ładuje jeśli znajdzie program o nazwie „HELLO”.
LOAD A$,8 Ładuje z dysku program, z którego nazwa jest zapamiętana w zmiennej A$.
LOAD „HELLO”,8 Szuka na dysku i ładuje jeśli znajdzie program o nazwie „HELLO”.
LOAD „MACHLANG”,8,1 Ładuje z dysku program w języku maszynowym w miejsce, z którego był on wysłany na dysk.

Polecenie LOAD może być użyte wewnątrz programu w celu załadowania a następnie uruchomienia innego programu. Mówimy wtedy, że programy tworzą łańcuszek.

NEW – Skasuj program oraz zmienne w pamięci komputera.

NEW
Polecenie to kasuje całkowicie program w pamięci. Polecenie NEW wywołuje automatycznie funkcje CLR (czyszczeni ekranu), odtwarza standardowe kanały I/O (WE/WY), zeruje wskaźniki instrukcji DATA, wskaźnik stosu oraz wskaźniki zmiennych. Jeśli program nie został zapamiętany na taśmie lub dyskietce, to przepadnie bezpowrotnie po użyciu polecenia NEW. Bądź ostrożny z używaniem tego polecenia. NEW może być takie użyte w programie BASICowym. Wykonanie tego polecenia spowoduje jednak natychmiastowe skasowanie i zatrzymanie programu.

ON – Skocz warunkowo do wybranej linii programu, lub wywołaj podprogram, w zależności od wartości wyrażenia.

ON wyrażenie linia#1 [,linia#2,…]
Po słowie ON (W PRZYPADKU) następuje wyrażenie matematyczne, potem jedno ze słów GOTO albo GOSUB, a następnie lista numerów linii oddzielonych przecinkami. Jeśli część całkowita wyrażenia wynosi 1, to program przystąpi do wykonania pierwszej linii. Jeśli rezultat wynosi 2, to wykonana zostanie druga linia itd. Jeśli rezultat wynosi 0, lub jest większy nit liczba numerów linii na liście, to program wykona linie następującą bezpośrednio po instrukcji ON. Jeśli rezultat jest ujemny, pojawi się błąd ILLEGAL QUANTITY ERROR (nieprawidłowa wartość).

PRZYKŁADY:
10 INPUTX:IFX<0THEN 10
20 ON X GOTO 30,40,50,60 Jeśli X = 1, to ON powoduje skok do pierwszej linii na liście, czyli 30. Jeśli X=2, to ON powoduje skok do drugiej linii na liście, czyli 40.itd.

25 STOP
30 PRINT”X=1″
40 PRINT „X=2”
50 PRINT „X=3”
60 PRINT „X=4” Jeśli X=0 lub X > 4 to program skończy się w linii 25 (STOP).

OPEN – Otwórz kanał logiczny.

OPEN , , [,drugi adres] < [;”nazwa zbioru, typ zbioru, tryb”] I [,łańcuch cmd] >
Instrukcja OPEN pozwala komputerowi na dostęp do takich urządzeń jak stacja dyskietek, magnetofon, drukarka czy nawet ekran komputera C64. Po słowie OPEN umieszczony musi być numer zbioru, do którego odwołują się wszystkie pozostałe instrukcje wejścia wyjścia BASICu (takie jak PRINT#, itp.). Liczba ta moce być z zakresu 0 do 255, ale w większości przypadków należy używać liczb z zakresu 1 do 127. Liczby większe od 127 mają specjalne przeznaczenie. Druga liczba zwana numerem urządzenia podawana jest po numerze zbioru. Urządzenie nr 0 to klawiatura komputera, 1 to magnetofon, 2 oznacza kanał RS-232, 3 to ekran COMMODORE 64 C, 4 – 7 zarezerwowane są zwykle dla drukarek, a 8 -11 dla stacji dyskietek. Warto zwykle używać tych samych liczb dla numeru zbioru i numeru urządzenia, ponieważ łatwiej jest wtedy zapamiętać, który jest który. Poprawne numery urządzeń muszą mieścić się w granicach od 0 do 30, przy czym numery od 4 do 30 zarezerwowane są dla urządzeń szeregowych. Po numerze urządzenia można podać trzeci parametr nazywany drugim adresem. W przypadku kasetek może on wynosić 0 w przypadku czytania, 1 w przypadku pisania i 2 w celu zapisania na końcu taśmy symbolu END-0F-TAPE (koniec taśmy). W przypadku dyskietek drugi adres określa numer kanału. Więcej informacji o kanałach dysku i ich numerach znajdziesz w podręczniku obsługi stacji dyskietek. W przypadku drukarki drugi adres służy do wybrania pewnych programowych funkcji. W instrukcji OPEN można także podać po drugim adresie nazwę zbioru dyskowego lub kasetowego lub łańcuch znaków. Ten ostatni stanowi dodatkową komendę dla stacji dyskowej/kasetowej. Jeśli nazwa zbioru jest wyszczególniona, to typ zbioru i tryb odnoszą się tylko do zbiorów dyskowych. Jako typów zbiorów można używać PROGRAM, SEQUENTIAL, RELATIVE i USER; jako trybów: READ i WRITE.

PRZYKŁADY:
10 OPEN 3,3 Otwiera ekran jako zbiór numer 3.
20 OPEN 1,0 Otwiera klawiaturę jako zbiór 1.
30 OPEN 1,1,0 „DOT” Otwiera kasetki w celu czytania, jako zbiór nr 1, podając „DOT” jako nazwę zbioru.
OPEN 4,4 Otwiera drukarkę jako zbiór numer 4.
OPEN 15,8,15 Otwiera kanał poleceń w dysku jako zbiór 15, używając drugiego adresu 15. Drugi adres równy 15 oznacza kanał poleceń/błędów stacji dysków.

5 OPEN 8,8,12,”ZB-TESTOWY,SEQ,WRITE” – Otwiera na dysku, w celu zapisania, zbiór sekwencyjny o nazwie ZB-TESTOWY, jako zbiór nr 8, z drugim adresem równym 12. Zobacz także polecenia CLOSE, CMD, GET#, INPUT# i PRINT# oraz zmienną systemową ST.

POKE – Zmienna zawartość wybranej komórki pamięci.

POKE ,
Polecenie POKE pozwala na zmienienie wartości dowolnego bajtu spośród 64 K pamięci RAM COMMODORE 64 C. Pozwala tym samym na zmianę zawartości wielu rejestrów I/0 (WE/WY). Po słowie POKE należy podać zawsze dwa parametry. Pierwszy określa adres w pamięci i może przyjmować wartości z zakresu 0 do 65535. Drugi parametr może mieć wartość od 0 do 255 i zastąpi wartość znajdującą się dotychczas pod wybranym adresem. umieszczona w pamięci określa układ bitów w danej komórce.

PRZYKŁAD:
10 POKE 53280,1 – Zmienia kolor ramki ekranu

PRINT – Wyświetla na ekranie.

PRINT [lista]
Polecenie PRINT jest podstawowym narzędziem wprowadzania danych w BASICu. Chociaż jest to pierwsza instrukcja, którą poznaje uczący się BASICu, to posiada on bardzo wiele różnych wariantów. Po słowie PRINT mogą występować następujące elementy listy:

Znaki wewnątrz cudzysłowu („tekst”)
Nazwy zmiennych A,B,A$ B$
Funkcje SIN (23), ABS (X)
Wyrażenia 2+2, A*X, C=D
Znaki przystankowe ; ,

Znaki w cudzysłowu zwane są również wyrażeniami dosłownymi, ponieważ będą wydrukowane dokładnie w takiej formie w jakiej podane są w instrukcji PRINT. Nazwa zmiennej powoduje wydrukowanie aktualnej zawartości (zarówno liczbowej jak i tekstowej). Podobnie nazwa funkcji powoduje wydrukowanie jej wartości. Znaki przystankowe służą zorganizowaniu formatu wydruku na ekranie. Przecinek oddziela kolejne drukowane elementy o 10 spacji. Średnik w przypadku wydruku liczbowego powoduje dodanie jednej spacji przed liczbą (która zawiera albo znak minus albo spację w jego miejscu). W przypadku wydruku tekstowego średnik nie dodaje żadnych spacji w wydruku. Oba znaki przystankowe mogą zostać użyte na końcu listy, co spowoduje, że następna instrukcja PRINT będzie działała jako kontynuacja bieżącej.

PRZYKŁADY: WYNIK:
10 PRINT „HELLO” HELLO
20 A$=”WY”:PRINT”HEJ”:A$ HEJ WY
30 A=4:B=2:PRINTA+B 6
40 J=41:PRINT J;:PRINT J-1 41 40
50 PRINT A;B;:D=A+B:PRINT D;A-B 4 2 6 2

Zobacz także instrukcje POS, SPC i TAB

PRINT# – Zapisz dane do zbioru.

PRINT# , [lista]
Po instrukcji PRINT# podaje się numer odnoszący się do kanału poprzednio otwartego. Następnie pisze się przecinek oraz listę elementów, które mają zostać wysłane do kanału wyjściowego. Na liście mogą znajdować się łańcuchy tekstowe, liczby, zmienne tekstowe i liczbowe. Przecinek i średnik działają w ten sam sposób jak w przypadku instrukcji PRINT.
Niektóre urządzenia mogą nie funkcjonować z funkcjami SPS i TAB.

PRZYKŁADY:
10 OPEN 4,4
20 PRINT#4,”HEJ WY”,A$,B$ – Wysyła informację „HEJ WY” i dwie zmienne tekstowe na drukarkę.

10 OPEN 1,8,2
20 PRINT#2,A,B$,C,D – Wysyła zmienne A,B$,C i D do zbioru dyskowego nr 2. UWAGA: Po poleceniu CMD instrukcja PRINT# powinna być używana samodzielnie przez zamknięciem zbioru w celu spowodowania odłączenia się urządzenia (na przykład zamknięcie kanału drukarki). Na przykład:

10 OPEN 4,4
20 CMD4
30 PRINT#4, „NAPISZ SŁOWA”
40 PRINT#4
50 CLOSE 4

READ – Czyta dane z instrukcji DATA i wprowadza je do pamięci zmiennych.

READ
Instrukcja ta powoduje wczytanie danych umieszczonych w instrukcji DATA i umieszczanie w pamięci zmiennych. Lista zmiennych może składać się z ciągów i liczb. Uważaj, aby nie wczytywać łańcuchów, kiedy instrukcja READ oczekuje liczb i na odwrót. Spowoduje to błąd: MISMATCH ERROR (konflikt typów).Dane w instrukcji DATA czytane są w sposób sekwencyjny. Każda instrukcja READ może wczytać jeden lub więcej elementów. Każda zmienna na liście READ wymaga elementu danych. Jeśli ich zabraknie, to pojawi się błąd END OF DATA ERROR (koniec danych). Zobacz też instrukcję DATA. W programie można powtórnie wczytywać te same dane, korzystając z instrukcji RESTORE, która ustawia wskaźnik instrukcji DATA na początek danych. Dzięki temu dane mogą zostać powtórnie wczytane. Zobacz polecenie RESTORE.

PRZYKŁADY:
10 READ A,B,C
20 DATA 3,4,5 – Wczytuje wartości trzech zmiennych numerycznych

10 READ A$,B$,C$
20 DATA JANEK,ADAM,KAROL – Wczytuje wartości trzech zmiennych tekstowych

10 READ A,B$,C
20 DATA 1200,ANNA,343 – Wczytuje (i wprowadza do pamięci komputera) liczbę, ciąg znaków i drugą liczbę.

REM – Oznacza komentarz lub uwagi umieszczone w treści programu.

REM
Instrukcja REM (REMark – uwaga, komentarz) służy każdemu, kto czyta treść programu. REM może wyjaśnić działanie fragmentów programu, dostarczyć informacji o autorze itp.. Polecenia REM nie mają wpływu na funkcjonowanie programu. Zajmują jednak miejsce w pamięci komputera. Nic, co znajduje się po prawej stronie instrukcji REM, nie jest interpretowane przez BASIC. (Uwaga. Polecenie LIST potraktuje jednak symbole graficzne umieszczone w REM jako skrótowe kody instrukcji). Dlatego też po instrukcji REM nie można wstawić żadnych instrukcji dla programu (nawet po dwukropku).

PRZYKŁAD:
10 NEXT X:REM TA LINIA ZAWIESZA X.
20 REM TO WSZYSTKO TO KOMENARZ:A=A=B:PRINT A

Dodaj komentarz

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