Strona główna

TŁumaczenie firma exalt. Pl


Pobieranie 227.56 Kb.
Data19.06.2016
Rozmiar227.56 Kb.
TŁUMACZENIE FIRMA EXALT.PL

Spis treści

Sekcja 1: Zrozumienie środowiska ZBI
Krótki przegląd ZBI

Rozpoczęcie ZEBRA BASIC Interpreter

ZBI Interpreter Modes

Kończenie sekcji ZBI

Przykłady ZBI

Przykład 1

Przykład 2

Przykład 3

Przykład 4

Przykład 5

Sekcja 2: Komendy programowania ZBI
Użycie sekcji 2: Zakres komend programowania ZBI

AND


Arrays

AUTONUM


Boolean Expression

BREAK


Channels

CLOSE


CLRERR

CTRL-C


DEBUG

Declaration

DECLARE

DELETE


DIR

DO-LOOP


ECHO

END


! (wykrzyknik)

EXIT


FOR-LOOP

Funkcje


Funkcje liczb całkowitych

DATE


DATAREADY(A)

ISERROR


ISWARNING

LEN(A$)


MAX(X,Y)

MAXLEN(V$)

MAXNUM

MIN(X,Y)


MOD(X,Y)

ORD(A$)


POS(A$,B$)

POS(A$,B$,M)

TIME

VAL(A$)


Funkcje ciągów

CHR$(M)


DATE$

EXTRACT$(A$,B$,C$)

LCASE$(A$)

LTRIM$(A$)

REPEAT$(A$,M)

RTRIM$(A$)

STR$(X)

TIME$


UCASE$(A$)

GOTO


GOSUB-RETURN

IF Statements (Stwierdzenia IF)

INBYTE

INPUT


LET

LIST


LOAD

NEW


NOT

Numeric Expressions

ON ERROR

OPEN


OR

OUTBYTE


Porty

PRINT


REM

RENUM


RESTART

RUN


SEARCGTO$(A,B$)

SEARCHTO$(A,B$,C)

SETERR

SLEEP


STEP

STORE


STRING CONCATENATION(&)

STRING VARIABLE

SUB-STRINGS

TRACE


SEKCJA 1
Wstęp do programowania ZEBRA BASIC
Interpreter Zebra BASIC (ZBI™) został zaprojektowany na podstawie doświadczeń ze środowiskiem "firmware X.10" oraz językiem programowania ZPL II® w celu stworzenia jeszcze lepszego nowego języka programowania drukarek. Posiada rozbudowane opcje dla kodów kreskowych.
ZBI charakteryzuje się dużym podobieństwem do wielu innych interpreterów BASIC i nie wymaga nauczenia się zupełnie nowego języka od podstaw w celu skorzystania z jego cech. Aby zobaczyć kompletną listę komend ZBI oraz oznaczeń, odwołaj się do Sekcji 2 na str. 7. O dodatkowe informacje na temat komend ZPL II odwołaj się do ZPK Programming Giude Volume One (45541L) oraz Volume Two (45542L).
W tej sekcji znajdziesz kilka przykładów na temat jak ZBI i ZPL II oddziaływają na "bar code printing". Rekomendowane jest, abyś wcześniej uruchomił kilka przykładów w celu zrozumienia działania Interpreter w połączeniu z twoją drukarką.
Rozpoczęcie ZEBRA BASIC Interpreter
ZBI jest uruchomione przez wysłanie komendy ZPL II do drukarki przez jeden z portów komunikacyjnych (seria, parallel albo Ethernet) w modulu interaktywnym.

Ten port komunikacyjny odnosi się tak, jak do "console". Programy takie jak HyperTerminal® dla Windows ™ może służyć do komunikacji z twoją drukarką.


Dwie komendy ZPL II są dostępne by rozpocząć Interpreter ZBI: ~JI oraz ^JI. Kiedy drukarka jest włączona, zostaną zaakceptowane komendy ZPL II i formaty etykiet. Jednakże, by odebrać komendę ZBI drukarka musi rozpocząć użycie ~JI lub ^JI.
Gdy aplikacja konsoli jest otwarta, wyślij jedną z dwóch komend do drukarki.
1 ~JI - kiedy komenda jest otrzymana, drukarka odpowiada poprzez wysłanie header ZBI wraz z wersja programu i nową linijką zawierającą "input prompt" (podpowiedź) (>)z powrotem do ekranu. Jest to wskazówka, że linijki lub komendy programu ZBI mogą być wysłane do drukarki. Podczas otrzymywania komend programu, drukarka odbiera "echo" otrzymanych liter z powrotem do źródła. Ech może zostać wyłączone poprzez komendę ECHO.

2. ^Jid: o,x,b,c,d-wysłanie tej komendy do drukarki uaktywni sesję ZBI. Parametry te mają następujące funkcje:


d=lokalizacja programu do uruchomienia po rozpoczęciu

Zaakceptowane wartości: R:, E: i B:

Wartość Default (ustawienie standardowe): lokalizacja musi być sprecyzowana
o=nazwa programu do uruchomienia po rozpoczęciu

Zaakceptowane wartości: imię jakiegokolwiek ważnego programu

Wartość Default (ustawienie standardowe): nazwa musi być sprecyzowana
X=przedłużenie uruchomienia programu po rozpoczęciu

Fixed Value: .BAS

b=kontrola konsoli

Wartości zaakceptowane: Y (konsola włączona) lub N (konsola wyłączona)

Default Value (ustawienie standardowe): Y
c=kontrola echa

Wartości zaakceptowane:Y (echo włączone) lub N (echo wyłączone)

Default Value(ustawienie standardowe) : Y
d=przydział pamięć dla ZBI

Wartości zaakceptowane: 20K do 1024K

Default Value (ustawienie standardowe): 50K
Jeśli druga komenda ~JI lub ^JI zostanie otrzymana podczas gdy interpreter jest uruchomiony, komenda zostanie zignorowana.

ZBI Interpreter Modes


Interpreter ZBI działa w 2 modułach:
1. "Interactive mode" zezwala by komendy wchodziły i przebiegały natychmiastowo. Ciągi komend, które weszły bez linii numerów są interaktywne i zostaną poddane działaniu tak szybko, jak dotrą do drukarki.
PRZYKŁAD:

>NEW
2. "Program mode" zezwala, by seria komend została zmagazynowana w pamieci i poddana działaniu w porządku numerycznym kiedy komenda RUN jest włączona. Ciąg numerów musi być większy niż 0 i mniejsza niż 10.000.


PRZYKŁAD:

>10 LET A=10

>20 LET B=3
Program jest uaktywniony od pierwszej numerowanej linii poprzez komendę RUN. Gdy program działa, może zostać zatrzymany przez komendę Control-C (^C), wysłany do drukarki z konsoli. Przerwany program będzie kontynuowany od miejsca przerwania przez włączenie komendy RESTART.

KOŃCZENIE SEKCJI ZBI


Aktywna sekcja ZBI może zostać przerwana poprzez jeden z dwóch sposobów:
1. Wysłanie ZPL do "input prompt(>)".

2. Wysłanie ~JI do "input prompt(>)".

Przykłady ZBI
Przykład 1

Ten przykład generuje etykiety z miarą wagi jaką użytkownik zdefiniował. Po tym jak plik jest naładowany i uaktywniony, dane są wpisane i ukażą się na etykiecie.


5 ECHO OFF

10 CLOSE #1

20 CLOSE #0

30 OPEN #2 : NAME „SER”

40 OPEN #1 : NAME „ZPL”

50 DO


55 SLEEP 1

60 PRINT #2 : „W”;

70 INPUT #2 : A$

80 IF A$ = „EXIT” THEN

90 CLOSE #2

100 OPEN #0 : NAME „SER”

105 END

110 END IF



120 LOOP WHILE POS (A$,”000.00”) = 1 OR POS (A$, „?”)=1

130 PRINT #1 : „~SD25^XA^MTD^FS^PW400^FS”;

140 PRINT #1 : „^LHO, 0^FS”;

150 PRINT #1 : „^FO56,47^A0N,69,58^FDThis weighs^FS”;

160 PRINT #1 : „^FO56,150^AON,69,58^FD”&AS&” Ibs^FS”;

170 PRINT #1 : „^PQ1,0,0,N”;

180 PRINT #1 : „^XZ”

190 DO


200 PRINT #2 : „W”;

210 INPUT #2 : A$

220 LOOP UNTIL POS (A$, „000.00”) = 1 OR POS (A$, „?”) = 1

230 GOTO 50

Przykład 2
Włączając wymienione poniżej kody uruchomi to ciąg długości 5 linii i wyśle je do drukarki. W tym przykładzie, ciąg musi być wyznaczony.
10 OPEN 1# : NAME „ZPL”

20 DECLARE STRING MYARRAY$(5)

30 FOR INDEX = 1 to 5 STEP 1

40 INPUT MUARRAY$ (INDEX)

50 NEXT INDEX

60 PRINT #1 : „^XA^FO20,20^FD”&MYARRAY (1) &”^FS”;

70 PRINT #1 : „FO20,80^FD”&MYARRAY (2) &”^FS”;

80 PRINT #1 : „FO20, 140 ^FD”& MYARRAY (3) &”^FS”;

90 PRINT #1 : „FO20, 200 ^FD”& MYARRAY (4) &”^FS”;

100 PRINT #1 : „FO20, 260 ^FD”& MYARRAY (5) &”^XZ”;

Przykład 3
Jest to przykład użycia pliku AUTOEXEC, i ładowania programu START.BAS z E: kiedy interpreter jest aktywny. Zauważ, że pliki START.BAS i AUTOEXEC.ZPL muszą już istnieć w określonym miejscu.
^XA^DEF:AUTOEXEC.ZPL^FS

^JIE:START.BAS,Y,N^FS

^XZ

Przykład 4


Ten przykład ilustruje możliwości wydobycia danych ZBI. ZBI może być użyte do zbierania danych z programów, które nie są ZPL-based (oparte na ZPL). Ta informacja może być importowana do istniejącego formatu etykiet ZPL, które drukarka Zebra wygeneruje.
10 CLOSE #1

20 CLOSE #0

30 OPEN #2 : NAME „SER”

40 OPEN #1 : NAME „ZPL”

50 DO

60 INPUT #2 : A$



70 IF A$ = „EXIT” THEN

80 CLOSE #2

90 OPEN #0 : NAME „SER”

95 END


100 END IF

110 LOOP WHILE POS (A$, „START”) = 0

120 DECLARE STRING BS$ (17)

130 LET INDEX = 1

140 DO WHILE INDEX <=17

150 INPUT #2 : B$

160 IF POS (B$, „DATA”) <> 0 THEN

170 LET BS$ (INDEX) = EXTRACT$ (B$, „ , „ , „ ; „)

180 LET INDEX = INDEX + 1

190 END IF

200 LOOP

210 PRINT # 1 : „~SD25^XA”;

220 PRINT #1 : „XFE:LABEL^FS”;

230 PRINT #1 : „^FN1^FD”&BS$(2)&”^FS”;

240 PRINT #1 : „^FN2^FD”&BS$(3)&”^FS”;

250 PRINT #1 : „^FN3^FD”&BS$(4)&”^FS”;

260 PRINT #1 : „^FN4^FD”&BS$(9)&”^FS”;

270 PRINT #1 : „^FN5^FD”&BS$(10)&”^FS”;

280 PRINT #1 : „^FN6^FD”&BS$(11)&”^FS”;

290 PRINT #1 : „^FN7^FD>;>8”&BS$(15)&”^FS”;

300 PRINT #1 : „^FN8^FD”&BS$(14)&”^FS”;

310 PRINT #1 : „^FN9^FD>;>8”&BS$(16)&”^FS”;

320 PRINT #1 : „^FN10^FD”&BS$(5)&”^FS”;

330 PRINT #1 : „^FN11^FD”&BS$(6)&”^FS”;

340 PRINT #1 : „^FN12^FD”&BS$(17)&”^FS”;

350 PRINT #1 : „^FN13^FD”&BS$(13)&”^FS”;

360 PRINT #1 : „^FN14^FD”&BS$(7)&”^FS”;

370 PRINT #1 : „^FN15^FD”&BS$(12)&”^FS”;

380 PRINT #1 : „^XZ”

390 GOTO 50

Linie 120 do 180 ustalają dane wydobycia parametrów i wyszczególniają index informacji do zebrania.
Linia 220 przywołuje istniejącą etykietę ZPL i wstawia w następne linie dane z otrzymanego indeksu do ponumerowanych pól.

Przykład 5

Ten przykład ilustruje w jaki sposób komunikować z innymi portami przy użyciu różnych kanałów- tutaj użyty jest raczej port seryjny niż konsola. Zauważ, jak użyte są komendy INPUT i PRINT.

10 CLOSE #0

20 OPEN #1 : NAME „SER”

30 OPEN #2 : NAME „ZPL”

40 INPUT #1 : A$

50 PRINT #2 : „^XA^FO20,20^AON,50,50^FD”&A$&”FS^XZ”


Linia 10 tej próbki zamyka konsolę (konsola jest ustawieniem standardowym kanału kiedy interpreter uruchamia się). Powinno być to zrobione, kiedy ukazuje się kontrolny znak będący transmitowany z tym ciągiem - np. kombinacja Ctrl-C zakończy program jeśli jest otrzymany z konsoli.


Linia 20 otwiera kanał 1 jak port seryjny.
Linia 30 otwiera kanał 2 jak silnik ZPL.
Linia 40 wskazuje na program, którego kanał ma odebrać dane. W tym przykładzie, jest to port seryjny w kanale 1. Jeśli żadna wartość kanału nie jest dana, program dokona ustawień standardowych na konsoli.
Linia 50 drukuje dane, które wpisujesz do silnika, wyszczególnione w kanale 2.

SEKCJA 2


KOMENDY PROGRAMOWANIA ZBI
Użycie sekcji 2: Zakres komend programowania ZBI

Ta sekcja zawiera pełną alfabetyczną listę komend ZBI wspieraną przez X.10 "firmware release". Jeśli jesteś użytkownikiem poprzedniej wersji Zebra Printer firmware, kod ZBI nie zostanie rozpoznany.


Tekst w tej sekcji jest ułożony wg następujących nagłówków:
Description (opis): Pod tym nagłówkiem znajdziesz opis w jaki sposób użyta jest komenda, co jest w stanie zrobić i jakie posiada zdefiniowane znaki.
Format: Format mówi jak ustawiona jest komenda i jakie zawiera parametry. Np. komenda AUTONUM rozpoczyna opcje automatycznego numerowania. Formatem tej komendy jest AUTONUM , . i parametrami tej komendy i są zamienione z wartościami ustalonymi przez użytkownika.
Parameters: Jeśli komenda ma wartości takie, które użytkownik może zdefiniować do stworzenia komendy funkcjonującej dokładniej, są one wymienione pod nagłówkami. Używając nadal przykładu AUTONUM, parametr
jest zdefiniowany jako:
= numer użyty do rozpoczęcia sekwencji autonumerowania.
Przykład: Jeśli komenda jest najlepiej wyjaśniona w kontekście, dostarczony jest przykład kodu ZBI. Tekst wskazujący parametry, dokładny kod jaki ma być wpisany lub dane jakie powróciły z hosta są wydrukowane w stylu Courier aby były łatwo rozpoznawalne. Przykładem kodu AUTONUM jest:
>AUTONUM 10,5

10 PRINT "HELLO WORLD"

15 GOTO 10
W przykładzie, symbol > wskazuje na ciąg kodów jaki wpisze użytkownik.
Komentarz: Sekcja ta jest dla programisty, zawiera wartościowe informacje, ostrzeżenia potencjalnych interakcji komend,
lub komendy-informacji, która powinna być wzięta pod rozwagę. Przykładową komendą może być:

This is a program command and must be preceded by a line number.

(To jest komenda programu i musi być poprzedzona przez numer linii)
Kompletna lista komend ZBI dla X.10 firmware zaczyna się na następnej stronie.

AND
Opis: wyrażenie AND jest operatorem Boolean. Jeśli oba wyrażenia są prawdziwe, wynik będzie prawdziwy; w innym wypadku wynik będzie fałszywy.


Format:

AND
Comments: To jest operator Boolean i jest użyty w połączeniu z wyrażeniem Boolean.

ARRAYS
Opis: szereg jest zbiorem wartości używanych przez program. Szeregi dzielą następujące własności:


* Szeregi dopuszczają liczby całkowite i zmienne

* Indeksy szeregów mają dostęp przez "parenthesy"

* Indeksy szeregu zaczynają się na 1 a kończą się na długości szeregu (np. zmienna 3 przywróci wartość w 3-cim miejscu zmiennego szeregu)

* 1- i 2-wymiarowe szeregi są dozwolone. 2-wymiarowe szeregi mają odniesienie do 2 indeksów w parenthezie, oddzielone są przecinkiem.

* Szereg może być powtórnie wymiarowany poprzez wywołanie DECLARE, które zniszczy oryginalny ciąg.

* Rozmiar ciągu jest limitowany przez wielkość zgromadzonej pamięci.

* Jeśli ciąg nie może być przydzielony, ukaże się wiadomość o błędzie - Error: Heap overflow

* Jeśli użytkownik usiłuje dostać się do ciągu niezgodnie z jego limitami, pojawi się wiadomość o błędzie - Error: Invalid array access.


AUTONUM
Opis: Ta komenda automatycznie generuje program ciągłej linii numerów. Ta cecha jest niesprawna przez za długie pisanie aktualnego numeru linii i włączenie żądanych "interactive mode" komend lub pozostawienie tej linii pustej.


Format:

AUTONUM A,B

Parametry:

A=numer używany do rozpoczęcia sekwencji auto-numerowanie

B=automatyczny wzrost pomiędzy nowymi numerami linii
Przykład:

>AUTONUM 10,5

10 PRINT "HELLO WORLD"

15 GOTO 10


Komentarz:

2 linie są automatycznie rozpoczęte z parametrami AUTONUM, w tym przypadku, 1-sza linia jest zaczęta z "10" i każda następna linia z przyrostem "5".


To jest komenda interaktywna, która skutkuje tak szybko jak zostanie dostarczona do drukarki.

Boolean Expression


Opis: Wyrażenie Boolean uważa zero za fałszywe a nie-zero za prawdziwe.
Formaty:



<# expression> <# expression>

()


Komentarz: # wskazuje na wyrażenie numeryczne. Wyrażenie numeryczne nie może być porównane do wyrażenia ciągu. Jeśli usiłujesz tak zrobić, pojawi się wiadomość: Error: Poorly formed expression.
Wyrażenie numeryczne może zostać zastąpione przez wyrażenie Boolean, gdzie wartość zero reprezentuje błąd a wartość nie-zero reprezentuje prawdę.
Porządkiem pierwszeństwa dla <,<=,>,>=,= jest ten sam porządek: NOT, AND i OR, w tym właśnie układzie. Pozycje w tym samym porządku pierwszeństwa zostaną przerobione z lewej na prawą.

BREAK
Opis: Ta komenda jest dostępna tylko gdy funkcja DEBUG jest aktywna. Gdy DEBUG jest włączony, BREAK zatrzyma proces. RUN rozpocznie program od początku. RESTART zezwoli, aby program kontynuował od momentu przerwy.


Format:

BREAK
Komentarz: To jest komenda programu, która jest poprzedzona przez numer linii.

Channels
Opis: komenda I\0 może być przydzielona do kanału aby skierować komendę do określonego portu. Port „data-input" jest określony poprzez komendę ZPL, która rozpoczyna interpreter ZPL. Przez ten port będą miały miejsce wszystkie interaktywne komunikaty.
Format:

#


Parametry:

#

Wartości akceptowane: od 0 do9

Wartości Default: 0


CLOSE
Opis: Ta komenda jest wprowadzona, by zamknąć określone porty, które są w użyciu. Jeśli port jest otwarty na kanale i komenda CLOSE jest włączona, port zamknie się i powróci do komunikacji z buforem ZPL.
Format:

CLOSE


Parametry:

Akceptowane wartości: 0 przez 9

Wartość Default: nie będzie użyta
Przykład:

>CLOSE #1


Komentarz: to może być interaktywna komenda, która wywołuje efekt tak szybko jak zostanie dostarczona do drukarki, lub komenda programu, która jest poprzedzona przez numer linii.

CLREER
Opis: komenda ta wysyła wiadomość w celu zlikwidowania błędu "error flag" do drukarki. Błąd "error flag" zostanie wykasowany jeśli nie jest to błąd stały.


Format:

10 CLRERR


Komentarz: Jest to komenda programu, która poprzedzona jest numerem linii.

CTRL-C
Opis: Wysłanie 03 do portu 0 lub użycie kombinacji Ctrl-C zakończy działający obecnie program ZBI.


DEBUG
Opis: Kiedy DEBUG jest włączony, opcje TRACE i BREAK mogą działać. Kiedy DEBUG jest wyłączony, opcje TRACE i BREAK nie mogą działać.


Format:

DEBUG


Parametry:

=przełącza moduł debug z ON(włączony) na OFF (wyłączony).
Komentarz: to może być interaktywna komenda, która wywołuje efekt tak szybko jak zostanie dostarczona do drukarki, lub komenda programu, która jest poprzedzona przez numer linii.

Deklaracja


Opis: Niektóre popularne właściwości deklaracji to:

* Nazwy zmiennych są typowo ustalone na początku programu ZBI. Kiedy są już ustalone, całość rozpocznie się od zera oraz ciąg zmiennych rozpocznie się od pustych ciągów ("")

* Sprecyzowana deklaracja kasuje i powtórnie oznacza poprzednio ustaloną zmienną

* Ukryta deklaracja używa zmiennej nazwy, która nie została wcześniej zdefiniowana. Wartość tej zmiennej będzie niezdefiniowana.

* Nie-szereg i liczba całkowita zmiennej może być określona domyślnie lub jawnie.

* Szereg musi być zdefiniowany jawnie.


DECLARE
Opis: To jest jawna metoda ustalania zmiennej i jest typowo wykonana na początku programu. Szeregi są określone przez umieszczenie zestawu zamkniętych "parenthes" wokół numerycznego wyrażenia rozmiaru szeregu, który ma zostać przydzielony.


Format:

DECLARE [,}*


Parametry:

=numeryczny lub ciąg

=zmienna, która może być ciągiem jest ustalana
Przykład:
10 DECLARE NUMERIC A! Declare an integer

20 DECLARE STRING A$ ! Declare a string

30 DECLARE NUMERIC My_Array(10) ! Declare an integer array of size 10

40 DECLARE STRING My_Str_Array$(10) ! Declare a string array with 10 strings

50 DECLARE NUMERIC A, B(10), C ! Declare multiple integer variables

60 DECLARE STRING A$, B$, C$ ! Declare multiple string variables

70 DECLARE STRING A2D$ (5,5) ! Declare A2-D array
Komentarz: to może być interaktywna komenda, która działa tak szybko jak zostaje otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona przez linię numerów.

DELETE
Opis: ta komenda usuwa wyszczególnione pliki z pamięci drukarki.


Format:

DELETE <"filename">


Parametry:

<"filename">=nazwa pliku jaki ma być usunięty. Przejdź do tego miejsca, a nazwa pliku musi być ujęta w cudzysłów.
Przykład:

>DELETE "E:PROGRAM1.BAS"

Komentarz: to jest komenda interaktywna, która działa tak szybko jak zostanie otrzymana przez drukarkę.

DIR


Opis: ta komenda, bez wliczonego filtra, podpowiada drukarce aby stworzyć listę wszystkich programów ZBI znajdujących się we wszystkich pamięciach w drukarce.
Zawierający sygnały filtra drukarki aby ograniczyć szukanie; zawierający "drive location" sygnalizuje drukarce aby szukać tylko w jednym miejscu.
Odsyłacze (*) są użyte jako „wild cards”("dzikie karty"). „Dzika karta” (*) znajdzie każdy przypadek poszczególnej prośby. Przykład tutaj: DIR "B:*.BAS" sygnalizuje drukarce aby szukała każdego pliku z przedłużeniem .BAS w pamięci B:.
Format:

DIR ["filter"]


Parametry:

["filter"]=nazwa pliku jaka ma być dostępna (opcjonalnie). "Drive location" i nazwa pliku muszą być w cudzysłowiu.


Przykład:
>DIR

>DIR "E:BASIC1.BAS"

>DIR "B:*.BAS"

>DIR "R:BASIC3.BAS"


Komentarz: to interaktywna komenda, która działa tak szybko jak zostanie otrzymana przez drukarkę.

DO-LOOP
Opis: Przetwarzanie "LOOP" (luki) jest kontrolowane przez wyrażenie znajdujące się na linii DO lub LOOP.


Przetwarzanie twierdzenia "WHILE" jest takie same na liniach DO i na LOOP. Wyrażenie Boolean jest szacowane i jeśli stwierdzenie jest prawdziwe, LOOP będzie kontynuowany na linii po wyrażeniu DO. W innym razie, linia po odpowiednim LOOP będzie następna do przetworzenia.
Przetworzenie twierdzenia "UNTIL" jest takie same na liniach DO i LOOP. Wyrażenie Boolean jest szacowane i jeśli stwierdzenie jest fałszywe, LOO będzie kontynuowany na linii po twierdzeniu DO. W innym razie, linia po odpowiednim LOOP będzie następna do przetworzenia.

Jeśli jest na linii LOOP, BODY luki zostanie wykonane przed tym, jak wyrażenie Boolean zostanie oszacowane.


Jeśli ani linia DO ani LOOP nie ma stwierdzenia , luka będzie kontynuowana nieograniczenie.


DO-LOOP-y mogą być zagnieżdżone ale nie mogą nachodzić na siebie. Komenda DO-LOOP ma 2 formaty.
FORMAT 1.

DO

~~BODY~~

LOOP
Przykład Formatu 1.


>10 DO WHILE A$="70"

>20 INPUT A$

>30 LOOP

FORMAT 2.

DO

~~BODY~~


LOOP
Przykład Formatu 2.
>10 DO

>20 INPUT A$

>30 LOOP UNTIL A$="EXIT"
Komentarz: jest to komenda programu, która poprzedzona jest numerem linii.
ECHO
Opis: Jeśli moduł konsoli jest możliwy, ta komenda kontroluje czy drukarka wyśle znowu znaki do portów komunikacyjnych. Jeśli "ECHO ON" jest włączone, wyniki kombinacji klawiszy powracają do ekranu.
Format:
ECHO
Parametry:
=sprawia, że komenda ECHO jest włączona lub wyłączona.
Komentarz: To może być interaktywna komenda, która działa tak szybko jak zostaje otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona przez linię numerów.

END
Opis: Komenda END kończy program teraz uruchomiony. Kiedy komenda END zostaje otrzymana, interpreter powróci do modułu interaktywnego.


Format:

END
Przykład:

>10 PRINT "THIS PROGRAM WILL TERMINATE"

>20 PRINT "WHEN THE COMMAND IS RECEIVED"

>30 END
Komentarz: jest to komenda programu, która zostanie poprzedzona numerem linii.

! (EXCLAMATION MARK) (wykrzyknik)


Opis: Wykrzyknik jest znacznikiem dodającym komentarze na końcach numerowanych linii programowania. Jakikolwiek tekst znajdujący się za znakiem "!" będzie zignorowany kiedy linia albo komenda jest nim poprzedzona.
Format:

![comment text]


Przykład:

10 LET A=10 ! zawiera liczbę etykiet do drukowania.


EXIT
Opis: ta komenda jest użyta aby wyjść z luk DO i FOR.


Format:

EXIT


Komentarz: jest to komenda programu poprzedzona numerem linii.
FOR-LOOP
Opis: luka FOR wyznaczy zmienną liczbową dla wartości pierwszego wyrażenia. Linia NEXT zwiększy liczbową zmienną przez wielkość STEP.
Jeśli zmienna liczbowa jest mniejsza niż drugie wyrażenie po powiększeniu przez linie NEXT, program będzie kontynuował działanie na linii następującej po linii FOR.
Kiedy część STEP jest ominięta, wartość STEP będzie wynosić 1. Jednakże, jeśli drugie wyrażenie jest większe od pierwszego, ustawi standardowo do -1.
Format:
FOR <# variable>=<# expression> TO <# expression>

[STEP <# expression>]

~~BODY~~

NEXT <# variable>


Parametry:

<# variable>=wskazuje, że zmienna liczbowa jest użyta.

<# expression>=wskazuje, że wyrażenie numeryczne jest użyte.
Przykład:

10 FOR X=1 TO 10 STEP 1

20 PRINT X; ";ZBI IS FUN"

30 NEXT X


Komentarz: FOR-LOOPy mogą być zagnieżdżone ale nie mogą nachodzić na siebie. Zmienne nie mogą być powtórnie użyte przez zagnieżdżone luki. jest to komenda programu poprzedzona numerem linii.

FUNKCJE


Opis: funkcje wbudowane w ten interpreter mogą być użyte tylko w wyrażeniach. W nazwach funkcji nie są ważne wielkości liter.
Jeśli istnieje wkład parametrów, są one w załączeniu paranthes. Jeśli żadne parametry nie istnieją, parenthesy są użyte.
Zmienna odwołane w funkcjach mogą być zamienione przez funkcje lub wyrażenia tego samego typu. Jeśli nazwa funkcji kończy się na $, powróci wartość ciągu. W innym razie, powróci wartość numeryczna.

Określenie złego typy parametru powróci albo Syntax Error albo Poorly formed expression error.


INTEGER FUNCTION

(Funkcje liczb całkowitych)

Funkcje całkowite wymienione poniżej przywrócą wartości liczbowe.
DATE
Ta funkcja przywraca bieżące dane w YYYYDDD, gdzie YYYY jest rokiem a DDD jest numerem dnia od początku roku. Jeśli Real Time Clock nie jest zainstalowany, powróci 0. Np. przypuszczając, że bieżąca data to 1 styczeń 2000 roku:

>10 PRINT DATE

>RUN
Wynikiem jest

2000001


DATAREADY(A)
Ta funkcja przywróci liczebnik 1 jeśli dane są gotowe na porcie A, i powróci 0 jeśli nie ma dostępnych danych. Przykład:

>10 PRINT DATAREADY(0)

Wynikiem jest, przypuszczając, że żadne dane nie czekają:

0

ISERROR


Ta funkcja przywraca wartość nie-zero jeśli występuje wewnętrzny błąd w drukarce. W innym razie, liczebnikiem znowu będzie 0. Np.

>10 PRINT ISERROR

>RUN

Wynikiem jest:



0

ISWARNING


Ta funkcja przywróci wartość nie-zero jeśli występuje wewnętrzne ostrzeżenie w drukarce. W innym razie, liczebnikiem znowu będzie 0. Np.:

>10 PRINT ISWARNING

>RUN

wynikiem jest:



0

LEN(A$)
Ta funkcja przywraca długość ciągu A$. Np.:

>10 LET A$=”Hello World”

>20 PRINT LEN (A$)

>RUN

wynikiem jest:



11

MAX(X,Y)
Funkcja ta przywraca wartość maximum algebraicznego dla X lub Y. Jeśli X jest większe niż Y, wartość X zostanie przywrócona. W innym razie, wartość Y zostanie przywrócona. Np.:

>10 LET A=-2

>20 LET B=-1

>30 PRINT MAX (A,B)

>RUN
wynikiem jest:

1

MAXLEN(V$)


Funkcja ta przywraca maksymalną długość dla ciągu V$, który zawsze jest 255. Wartość ta jest niezależna od V$ ale przypomina zgodność z wymogami ANSI. Np.:
>10 LET A$=”Hello”

>20 PRINT MAXLEN(A$)

>RUN

wynikiem jest:



255
MAXNUM
Funkcja ta przywraca największy numer prezentowany przez tą maszynę: 2,147,483,647. Np.:

>10 PRINT MAXNUM

>RUN
wynikiem jest:

2147483647


MIN(X,Y)
Funkcja ta przywraca wartość minimum algebraicznego dla X lub Y. Jeśli X jest mniejsze niż Y, wartość X zostanie przywrócona. W innym razie, przywrócona będzie wartość Y. Np.:

>10 LET A=-2

>20 LET B=0

>30 PRINT MIN (A,B)

>RUN

przywróconym wynikiem jest:



-2
MOD (X,Y)
Funkcja ta przywraca X Modulo Y (tak samo jak reszta z X\Y). Np.

>10 LET A=9

>20 LET B=2

>30 LET C=-2

>40 PRINT MOD (A,B)

>50 PRINT MOD (C,A)

>RUN

wynikiem jest:



1

-2

ORD(A$)


Funkcja ta przywraca wartość ASCII pierwszego znaku w ciągu A$. Np.:

>10 LET A$+”ABC”

>20 PRINT ORD(A$)

>RUN


wynikiem jest:

65
POS (A$,B$)


Funkcja ta przywraca położenie pierwszego zdarzenia B$ w A$. Jeśli nie ma zdarzenia , wynikiem jest 0.

Np.:


>10 LET A$=”ABCDD”

>20 LET B$=”D”

>30 PRINT POS(A$,B$)

>RUN


wynikiem jest:

4

POS (A$,B$,M)



Funkcja ta przywraca położenie pierwszego zdarzenia B$ w A$ zaczynając z pozycji M. Jeśli nie ma zdarzenia, wynikiem jest 0. Np.:
>10 LET A$=”Hello World”

>20 LET B$=”0”

>30 PRINT POS (A$, B$,6)

>RUN


wynikiem jest:

8

TIME


Funkcja ta przywraca czas północy (2400h) w sekundach. Jeśli Real Time Clock nie jest zainstalowany, 0 powróci. Np.:

>10 PRINT TIME

>RUN

wynikiem, przypuszczając że czas to 1min po północy, jest :



60

VAL(A$)


Ta funkcja przywraca wartość numeryczną reprezentowaną przez A$. Przeliczenie jest zrobione w ten sam sposób, jak komenda INPUT. Np.:

>10 LET A$ =”123”

>20 LET C=VAL (A$)

>30 PRINT C

>RUN

wynikiem jest:



123

FUNKCJE CIĄGÓW


Funkcje ciągów wymienione poniżej przywracają wartość ciągu.
CHR$(M)
Funkcja ta przywraca znak na pozycję M rozszerzonej tabeli ASCII. Używając wartości M większej od 255, jej wartość zostanie modulowana przez 255. M nie może być 0. Liczebnik 1 zostanie zamieniony. Np.

>10 LET A=97

>20 PRINT CHR$(A)

>30 PRINT CHR$ (353) ! zauważ, że 353 jest zmodulowane do 97

>RUN

wynik to:



a

a
DATE$


Funkcja ta przywraca bieżące dane w ciągu z YYYYMMDD. Jeśli Real Time Clock nie jest zainstalowany, żadne dane nie powrócą. Np.

>10 PRINT DATE$

>RUN

wynikiem, przypuszczając że datą jest 1 styczeń 2000roku, jest:



20000101

EXTRACT$(A$,B$,C$)


Funkcja ta przywraca ciąg zawarty w A$ między pierwszym wystąpieniem B$ i następnym wystąpieniem C$. Jeśli B$ lub C$ nie istnieje w A$, ciąg NULL powróci. Np.

>10 LET A$=”HELLO”

>20 LET B$=”L”

>30 LET C$=”O”

>40 PRINT EXTRACT$ (A$, B$, C$)

wynikiem jest:

L
Przykład 2

>10 LET A$=”HELLO”

>20 LET B$=”H”

>30 LET C$=” ”

>40 PRINT EXTRACT$ (A$,B$,C$)

>RUN


wynikiem przykładu 2 jest:

ELLO
Przykład 3

>10 LET A$=”Hello”

>20 LET B$=”C”

>30 LET C$=”F”

>40 PRINT EXTRACT$ (A$,B$,C$)

>RUN
W przykładzie 3 nic nie jest przywrócone.

LCASE$ (A$)


Funkcja ta przywraca ciąg odpowiedni do A$ w małych literach. Wartości „nie-znak” nie zostaną zmienione. Np.

>10 LET A$=”Zebra Technologies”

>20 PRINT LCASE$ (A$)

>RUN


Wynikiem jest:

zebra technologies

LTRIM$(A$)
Funkcja ta przywraca szereg A$ z wszystkimi usuniętymi prowadzącymi przestrzeniami. Np.

>10 LET A$=”Hello”

>20 PRINT LTRIM$ A$)

>RUN
wynikiem jest:

Hello

REPEAT$ (A$, M)


Funkcja ta przywraca ciąg zawierający kopie M z A$. Np.

>10 LET X=3

>20 LET A$=”Hello”

>30 PRINT REPEAT$ (A$,X)

>RUN
wynikiem jest

HelloHelloHello

RTRIM$ (A$)
Funkcja ta przywraca ciąg utworzony z A$ z usuniętych „trailing” przestrzeni. Np.

>10 LET A$=”Hello”

>20 LET B$=”World”

>30 PRINT RTRIM$ (A$);

>40 PRINT B$

>RUN
wynikiem jest:

HelloWorld

STR$(X)
Funkcja ta zamienia typ liczbowy X na ciąg. Np.

>10 LET A=53

>20 PRINT STR$ (A)


wynikiem jest:

53

TIME$


Funkcja ta przywraca czas danego dnia w formacie HH:MM:SS. Jeśli Real Time Clock nie jest zainstalowany, żadne dane nie zostaną przywrócone. Np.

>10 PRINT TIME$

>RUN
wynik, przypuszczając że mamy 10 rano, jest

10:00:00

UCASE$(A$)
Funkcja ta przywraca ciąg utworzony z A$ z dużymi znakami. Wartość „nie-znak” nie zmieni się. Np.

>10 LET A$=”Zebra Technologies”

>20 PRINT UCASE$ (A$)

>RUN
wynikiem jest:

ZEBRA TECHNOLOGIES

GOTO
Opis: stwierdzenie GOTO jest użyte aby skierować interpreter do określonego numeru linii. Po GOTO następuje numer linii, który program spróbuje następnie przetworzyć. Kiedy stwierdzenie GOTO jest przeprowadzane, interpreter kontynuuje działanie na numerze linii określonej następującym GOTO. Jeśli wspomniany numer linii nie istnieje, pojawi się wiadomość o błędzie-Error: Line does not exist.


Format:
GOTO
Przykład:

>10 PRINT „Zebra Printers”

>20 GOTO 10
Komentarz: wynik ukaże „Zebra Printer” do momentu gdy program jest zatrzymany. To jest komenda programu i musi być poprzedzona przez numer linii.

GOSUB-RETURN


Opis: Po GOSUB następuje numer linii, który program będzie próbował następnie przetworzyć. Gdy stwierdzenie GOSUB jest przeprowadzane, interpreter będzie pracował nadal na linii numeru określonego następującym GOSUB. Jeśli wspomniany numer linii nie istnieje, wyświetli się informacja o błędzie- Error: Line does not exist.
Przed wykonaniem następnej linii, komenda GOSUB zachowa numer linii GOSUB. Kiedy stwierdzenie RETURN zostanie przywołane, program wróci do następnej linii śledzącej GOSUB.
Wykonywanie stwierdzenia RETURN bez odpowiadającego stwierdzenia GOSUB wywoła wiadomość o błędzie-Error: Invalid RETURN statement.

Stwierdzenia GOSUB mogą zostać „zagnieżdżone”.

Format:

GOSUB


RETURN
Przykład:

>10 PRINT „Call Subroutine”

>20 GOSUB 1000

>30 PRINT „Returned from Subroutine”

>40 END

>10000 PRINT „In Subroutine”



>1010 RETURN
Komentarz: jest to komenda programu i musi być poprzedzona numerem linii.

IF STATEMENTS

(stwierdzenia IF)
Opis: Jeśli wartość w stwierdzeniu IF jest prawdziwa, a po linii programu następuje słowo THEN, ta linia programu będzie przeprowadzona. Jeśli wartość wyrażenia Boolean jest fałszywa a po linii programu następuje słowo ELSE, ta linia programu zostanie przeprowadzona. Jeśli ELSE nie jest obecne, wykonanie będzie kontynuowane w seriach, z linią następującą po stwierdzeniu END IF .
Gnieżdżenie się bloków jest dozwolone, podlegające temu samemu ograniczeniu gnieżdżenia jak DO-LOOP-y (nie ma zachodzących na siebie bloków).
Stwierdzenia ELSE IF są traktowane jak linia ELSE następująca po linii IF, z takim wyjątkiem, że IF dzieli END IF linie oryginalnego stwierdzenia.
Format:

IF THEN

~~BODY~~

[ELSE IF THEN

~~BODY~~]*

[ELSE


~~BODY~~]

END IF
Przykład:

>10 IF A$=”0”THEN

>20 PRINT „ZBI IS FUN”

>30 ELSE IF A$=”1” THEN

>40 PRINT „ZBI IS EASY”

>50 ELSE

>60 PRINT „X=0”

>70 END IF
Komentarz: jest to komenda programu, która poprzedzona jest numerem linii.

INBYTE
Opis: komenda ta zmusza interpreter do zatrzymania się aż do momentu, gdy dane są dostępne. Użyj funkcji DATAREADY aby ustalić czy są dane na porcie.


Format:

INBYTE [channel expression:]


Parametr:

=wyrażenie liczbowe lub ciąg. Otrzymana wartość zamieni bieżącą wartość zatrzymana w zmiennej.
Przykład:

>10 INBYTE A$ !takes one byte (char) from port #1 (zabiera 1 bajt z portu)

>20 PRINT A$ !prints the character to the console (drukuje znak do konsoli)
Komentarz: w tym przykładzie interpreter zatrzyma się do momentu gdy dane weszły całkowicie i wtedy kontynuuje przetwarzanie. Ta komenda wprowadzi dane bajtów w ciąg lub liczbę całkowitą, wliczając kody kontroli.
Może to być interaktywna komenda wywołująca efekt tak szybko jak otrzymana jest przez drukarkę, lub komendę programu, która jest poprzedzona numerem linii.

INPUT
Opis: Jeśli zmienna jest stałą liczbową i wpisana wartość nie może być zmieniona w numer, zostanie to zapisane jako 0. Ta operacja skanuje dane z lewej do prawej, zmieniając numer w zmienną. Ignoruje każdy inny znak z wyjątkiem znaku, który kończy wprowadzanie danych, lub Ctrl-C(^C), który kończy program. Zmienna może być w ciągu lub formie cyfrowej.


Format:

INPUT [:] [,variable]*

Jeśli [:] jest ominięty, domyślny port to 0. Jeśli nieważny port jest określony, pojawia się informacja o błędzie w takiej formie: Error: Invalid port.
Przykład:
>10 INPUT A

>20 PRINT A

Jeśli użytkownik wpisał 1234567891011, numer wysłany do wyświetlacza zostanie modulowany przez wartość MAXNUM.
Przykład 2:
>10 OPEN #1: NAME „ZPL”

>20 PRINT #1: „~HS”

>30 FOR I = 1 TO 3

>40 INPUT #1: A$

>50 PRINT A$

>60 NEXT I


W przykładzie 2, status hosta będzie wydrukowany do konsoli po przedstawieniu żądania statusu hosta ~HS do portu ZPL.
Komenda interpretatora ZBI Input\Output będzie ograniczona do komunikatów portów. Plik I\O nie jest wspierany.
Komentarz: Może to być interaktywna komenda, która wywołuje efekt tak szybko, jak jest otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona numerem linii.

LET
Opis: komenda LET jest użyta aby wyznaczyć wartość dla określonej zmiennej. Wyrażenie to jest szacowane i wyznaczone dla każdej zmiennej z listy zmiennych.


Format:

LET [,]*=


Te zmienne typy musza pasować do typów wyrażeń, w innym razie wystąpi komunikat-Error: Variable types must be the same.
Kiedy wartość jest wyznaczona do ciągu zmiennej z pod-ciągu „qualifier”, zamienia to wartość pod-ciągu

„qualifier”. Długość wartości ciągu zmiennej może się zmienić jako wynik tej wymiany.

Przykłady:

>10 LET A$= „1234”

>15 LET A$ (2:3)= ”55” ! A$ NOW = 1554

>20 LET A$ (2:3)=” „ ! A$ NOW = 14


>10 LET A$= „1234”

>15 LET A$ (2:3) = A$ (1:2) ! A$ NOW = 1124


>10 LET A$= „1234”

>20 LET A$ (2:1)= „5” ! A$ NOW = 15234


Komentarz: Może to być interaktywna komenda, która wywołuje efekt tak szybko jak zostaje otrzymana przez drukarkę, lub komendę programu poprzedzoną przez numer linii.

LIST
Opis: Komenda ta wylicza numerycznie linie programu bieżąco w pamięci.


Format:

LIST [RANGE]


Parametry:

[RANGE]=opcjonalne żądanie określenia linii (lub 1 linii) kodów. [RANGE] jest pojedynczą parą numerów oddzielonych przez łącznik.


Przykład:

>LIST 20


>LIST 90-135
Drukarka powraca do linii 20, lub w drugim przykładzie do linii 90 przez 135.
Komentarz:
jest to interaktywna komenda, która skutkuje tak szybko jak tylko jest otrzymana przez drukarkę.

LOAD
Opis: komenda ta przesyła plik programu wcześniej zachowany w pamięci drukarki i otwiera w ZBI Program Memory.

Jeśli plik programu nie istnieje, ZBI Program Memory jest wyczyszczony i żaden program nie jest otwarty. Wyświetli się informacja o błędzie-Error: Invalid file name.
Format:

LOAD <”filename”>


Parametr:

<”filename”> = nazwa pliku jaki ma być pobrany przez pamięć. Miejsce i nazwa pliku musza być w cudzysłowiu.
Przykład:

>LOAD „PROGRAM1.BAS”

>LOAD „E: PROGRAM1.BAS”
Komentarz: jest to interaktywna komenda, która skutkuje tak szybko jak tylko jest otrzymana przez drukarkę.

NEW
Opis: komenda ta czyści pamięć interpretera, wliczając linie „buffera” i zmienne, ale nie żaden otwarty port.


Format:

NEW
Przykład:

>NEW
Komentarz: jest to interaktywna komenda, która skutkuje tak szybko jak tylko jest otrzymana przez drukarkę.

NOT
Opis: Stwierdzenie NOT jest operatorem Boolean. Jeśli wyrażenie Boolean jest prawdziwe, wynik jest fałszywy. Jeśli wyrażenie Boolean jest fałszywe, wynik jest prawdziwy.


Format:

NOT


Przykład:

>10 LET A=1

>20 IF NOT A=0 THEN

>30 PRINT A

>40 END IF

>RUN
Komentarz: jest to operator Boolean używany w połączeniu z wyrażeniem Boolean.

Numeric Expressions
Opis: Bazą dla wyrażeń numerycznych może być albo stała, albo zmienna, albo inne numeryczne wyrażenie zamknięte w „parenthesach”. Przepełnienie nie może być wykryte. Wynik będzie niezdefiniowany. 5 użytych typów (dodawanie, odejmowanie, mnożenie, dzielenie i potęgowanie) wypisane są poniżej.


  1. + (dodawanie) wyrażenie zawierające dodawanie używa następującego formatu:

+< numerical expression>

  1. – (odejmowanie) wyrażenia odejmowania używają następującego formatu:

-

  1. * (mnożenie) wyrażenia mnożenia używają następującego formatu:

*

  1. \ (dzielenie) wyrażenie dzielenia używa następującego formatu:

\

  1. ^ (potęgowanie) wyrażenie potęgowania używa następującego formatu:

^
W matematyce, porządek pierwszeństwa opisuje w jakiej sekwencji dane będą następować w wyrażeniu.

Wszystkie wyrażenia mają wcześniej ustalony porządek pierwszeństwa.


Porządek pierwszeństwa to: ^, *, \ , +, -.

i \ mają takie samo pierwszeństwo oraz + i – mają takie samo. Wyrażenia z takim samym porządkiem pierwszeństwa będą przetwarzane z lewej do prawej.

Np., następujące wyrażenie 5+(8+2)\5 będzie przetworzone jako 8+2=10, po nim nastąpi 10\5=2, wtedy 5+2 daje wynik 7.

Funkcje i parenthesy zawsze maja najwyższy układ pierwszeństwa, podtrzymując że zostaną przetworzone jako pierwsze. Pozostałe elementy są określane do typu wyrażenia (Boolean, numeryczny i ciąg).


Maxymalna wartość: 2,147,483,647

Minimalna wartość: -2,147,483,648


Komentarz:

  • Żaden zmienny punkt nie jest wspierany.

  • Zmienne nazwy musza zaczynać się od liter i mogą zawierać pewną sekwencje liter, cyfr i podkreślnik.

  • Nazwy funkcji i komendy nie mogą być użyte jak nazwy zmiennych.

  • W nazwach zmiennych nie są ważne wielkości liter i nie zostaną zmienione w duże litery przez drukarkę.

  • Przy użyciu dzielenia, numer zawsze będzie zaokrąglony w dół. Np. 5\2=2

ON ERROR


Opis: komenda ON ERROR może być użyta aby uchronić program od zatrzymania się w razie błędu. Jeśli zdarzy się błąd w poprzedniej linijce podczas wykonywania programu, stwierdzenie ON ERROR przywołuje stwierdzenie GOTO lub GOSUB i zezwala na dalszą kontynuację programu.
Format:

ON ERROR LN

Jeśli nie ma błędu, ta linia zostanie zignorowana.
Przykład:

30 LET A = B\C

40 ON ERROR GOTO 100

...


100 PRINT „DIVIDE BY ZERO OCCURRED”

110 LET A=0

120 GOTO 50

...
Komentarz: jest to komenda programu poprzedzona numerem linii.


OPEN
Opis: komenda ta używana jest do otwarcia portu do transmisji i otrzymania danych.


Format:

OPEN #: NAME [, ACCESS ]


Parametry:

=

Wartości akceptowane: 0 do 9

Wartości „Default” (domyślne) : port musi być określony
= nazwa portu do otwarcia (SER, PAR, lub ZPL)

=

INPUT tylko do otrzymywania

OUTPOUT tylko do transmisji

OUTIN do transmitowania i otrzymywania


Kanał musi być określony; domyślna wartość nie może zostać użyta. Dostęp typu OUTIN jest użyty jeśli dostęp nie jest określony.
Przykład:

>10 OPEN #1 : NAME „ZPL”


Jeśli występują sprzeczności w otwieraniu portów, pojawi się informacja o błędzie- Error: Unable to open. Jeśli port jest już otwarty, wystąpi informacja o błędzie-Error: Port already opened.
Port będąc otwieranym nie będzie już zezwalał aby dane przechodziły bezpośrednio do jego buffera , zostanie rozłączony, interpreter będzie teraz kontrolował przepływ danych.
Dane, które są w bufferze zostaną w nim.
Komentarz: może to być interaktywna komenda, która skutkuje tak szybko jak tylko jest otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona przez numer linii.

OR
Opis: stwierdzenie OR jest operatorem Boolean. Jeśli żadne z wyrażeń nie jest prawdziwe, wynik będzie prawdziwy; w innym razie wynik będzie fałszywy.


Format:

OR
Komentarz: jest to operator Boolean, który jest użyty w połączeniu z wyrażeniem Boolean.

OUTBYTE
Opis: komenda ta „output” wszystkie bajty w ciągu, włączając kody kontrolne.


Format:

OUTBYTE [:]


Parametry:
= wyrażenie numeryczne lub ciąg
Jeśli parametr jest wyrażeniem numerycznym, musi być wartością od 0 do 255. Jeśli nie, zostanie okrojony. W przypadku ciągu, pierwszy znak będzie użyty. W przypadku ciągu NULL, 0 zostanie wysłane.
Przykład:

>Let A$=Hello”

>OUTBYTE A$
Wynik

H
Komentarz: może to być interaktywna komenda, która skutkuje tak szybko jak tylko jest otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona przez numer linii.

Ports
Opis: każda drukarka ma listę portów, które mogą być otwarte przez drukarkę.
Każdy port dostanie 3-literowy skrót, który będzie użyty z komenda OPEN do otwarcia tego portu. Standardowa nazwa portu to „SER” dla seryjnego portu i „PAR” dla równoległego portu. Odwołanie portu ZPL otwiera silnik formatującej drukarki, która działa jak port nie kontrolowany przez interpreter ZBI.
PRINT

Opis: komenda wysyła dane do drukarki aby je wydrukować.


Format:

PRINT [channel expression:] [,or; ]* [;]


Wyrażenie może być ciągiem albo wyrażeniem numerycznym.
Użycie a , do rozdzielenia wyrażeń doda przestrzeń pomiędzy wyrażenia.
Użycie a ; do rozdzielenia wyrażeń nie umieści przestrzeni między nimi.
Użycie a : na końcu linii zakończy stwierdzenie drukowania bez nowej linii.

Przykład:


>10 LET A$ = „This is an example”

>20 LET B$ = „of the PRINT Command.”

>30 PRINT A$, B$ ! dodaje przestrzeń pomiędzy wyrażeniami

>40 PRINT A$; B$ ! żadna przestrzeń nie jest dodana


Wynik:

Jest to przykład komendy PRINT (drukuj).


Komentarz: : może to być interaktywna komenda, która skutkuje tak szybko jak tylko jest otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona przez numer linii.

REM


Opis: Ponumerowana linia „uwaga/komentarz” jest rozpoczęta z REM i może zawierać tekst w jakimkolwiek formacie po nim.
Format:

REM [comment]


Przykład:

10 REM COMMAND LINES 20-100 PRINT A LABEL


Komentarz: Uwagi użyte są dla opisu programu i mogą zostać zaliczone jako oddzielna linia programu lub dołączone na koniec linii programu. Dla wewnętrznych komentarzy użyte jest również stwierdzenie z wykrzyknikiem (!).

RENUM
Opis: komenda ta powtórnie numeruje linie programu będące edytowane. RENUM może przegrupować kod, kiedy numery linii stają się over lub under spaced: nad- lub pod- „spaced” (rozmieszczone).

Linie odwołań następujące po stwierdzeniach GOTO i GOSUB są przenumerowane, jeśli są stałymi wartościami numerycznymi. Przenumerowanie nie pojawia się, jeśli numery linii są na zewnątrz przedziału limitu od 1 do 10000.
Format:

RENUM ,


Parametry:

=numer, który rozpoczyna przenumerowanie sekwencji.

=automatyczny przyrost pomiędzy nowymi numerami linii
Przykład:

13 LET A=6

15 LET B=10

17 GOTO 13


>RENUM 10,5
10 LET A=6

15 LET B=10

20 GOTO 10
Komentarz: jest to komenda interaktywna, która skutkuje tak szybko jak zostanie otrzymana przez drukarkę.

RESTART
Opis: Jeśli program był zatrzymany przez Ctrl-C lub komendę BREAK, komenda RESTART może być użyta do ponownej aktywacji programu od momentu gdzie został on zatrzymany. RESTART działa podobnie do RUN, z takim wyjątkiem, że program usiłuje wznowić działanie od momentu, w którym został skończony. Będzie również pracował w połączeniu z komendą STEP, zaczynając gdzie skończył STEP.


Format:

RESTART
Komentarz: jeśli program nie działał lub jest zakończony, RESTART uruchomi program od początku. Jest to komenda interaktywna, która
skutkuje tak szybko, jak zostaje otrzymana przez drukarkę.


RUN
Opis: Komenda ta zezwalana na edycję programu by został on aktywowany, zaczynając od najniższego numeru linii. Jeśli linia nie określa nowej linii do przejścia, następna linia w porządku numerycznym jest przetworzona. Kiedy wyższy numer linii nie istnieje, komenda RUN zatrzymuje się.


Format:

RUN
Przykład:

>10 PRINT „ZBI”

>15 PRINT „Programming”

>RUN
Wynik:

ZBI


Programming
Komentarz: otwarte porty, kiedy aplikacja jest aktywna, pozostaną otwarte po tym jak aplikacja będzie zakończona.
Jest to interaktywna komenda, która skutkuje tak szybko, jak zostanie otrzymana przez drukarkę.

SEARCHTO$ (A,B$)


Opis: ta funkcja wykonuje poszukiwania ciągu, który będzie zdefiniowany przez B$ na porcie. Wynik poszukiwania ciągu jest pokazany.
Format:

SEARCHTO$ (A,B$)


Parametry:

A=numer portu, (0 do 9), który wymagał danych jest wysłany.

B$=ciąg zmienny lub, „string array”. Jeśli B$ jest szeregiem, komenda ta będzie szukać wszystkich szeregów „non-null” w szeregu B$.
Przykład:

10 LET A$=SEARCHTO$ (0,”Hello)


„There are several ways to display Hello World” jest ciągiem tekstu, który jest szukany w tym przykładzie. A$ wyrówna wtedy Hello, przeprowadzi poszukiwanie, i tylko World pozostanie na porcie.

SEARCHTO$ (A,B$,C)


Opis: ta funkcja działa podobnie jak SEARCHTO$ (A,B$) i wykonuje poszukiwania ciągu, który będzie zdefiniowany przez B$ na porcie A. Wynik poszukiwania ciągu jest pokazany. Nieużyte znaki zostają wysłane do portu C.
Format:

SEARCHTO (A, B$, C)


Parametry:

A=numer portu, (0 do 9), wymagany ciąg jest wysłany.

B$=ciąg zmienny lub, „string array”. Jeśli B$ jest szeregiem, komenda ta będzie szukać wszystkich szeregów „non-null” w szeregu B$.

C=numer portu (0 do 9), niewykorzystane znaki są przesłane.


Przykład:

10 LET A$=SEARCHTO$ (0,”Hello”, 1)


„There are several ways to display Hello World” jest ciągiem tekstu, który jest szukany dla tego przykładu. A$ wyrówna wtedy Hello, przeprowadzi poszukiwanie, i tylko World pozostanie na porcie. Nieużyte znaki „There are several ways to display” zostają wysłane do portu 1.

SETERR


Opis: komenda ta wysyła wiadomość do drukarki, aby ustalić znacznik błędu. Logiczny interpreter znacznika wywoła reakcje w drukarce. Błąd zostanie określony jako BASIC Forced Error.
Format:

SETERR
Komentarz: jest to komenda programu i musi być poprzedzona numerem linii.


SLEEP
Opis: komenda ta określa czas, w jakim interpreter zatrzymuje się by wytworzyć etykietę, aby otrzymać większy priorytet. Komenda ta może zostać wysłana do drukarki po wysłaniu formatu etykiety do drukowania. Interpreter zatrzymuje się w przetwarzaniu dla określonej ilości czasu.


Format:

SLEEP


Parametry:

= czas w sekundach (0 do 500) interpreter zatrzyma się.
Przykład:

>10 SLEEP 450


Komentarz: jest to komenda programu i musi być poprzedzona numerem linii.

STEP
Opis: jeśli program został zatrzymany przez komendę BREAK, STEP będzie próbował ukończyć program 1 linię od momentu gdzie ostatnio skończył. Jeśli program nie był uruchomiony lub ukończony, zakończy on najniższą numerowana linię.


Format:

STEP
Przykład:

>10 PRINT „Hello World”

>20 BREAK

>30 PRINT „30”
Włączenie STEP spowodowałoby zakończenie linii 10.
Włączenie RUN za którym następuje STEP wywoła:

RUN-wykonanie do linii 20 i zatrzymanie.

STEP-wykonanie linii 30 i zatrzymanie.
Komentarz: Jest to interaktywna komenda, która skutkuje tak szybko, jak zostanie otrzymana przez drukarkę.

STORE
Opis: Komenda ta zachowuje programy bieżące w pamięci jako określone nazwy plików. Użyty jest następujący format:

STORE <”filename”>
Parametry:

<”filename”>=nazwa pliku do zachowania. „Drive location” i nazwa pliku muszą być w cudzysłowiu.
Przykład:

>STORE „E:ZEBRA1.BAS”


Komentarz: aby nazwa pliku była ważna, musi być zgodna z 8.3 Rule: każdy plik musi mięć nie więcej niż 8 znaków w nazwie pliku i mieć 3-znakowe przedłużenie. Tutaj przedłużenie będzie zawsze .BAS (np. MAXIMUM8.BAS).

Jest to interaktywna komenda, która skutkuje tak szybko, jak zostanie otrzymana przez drukarkę.


STRING CONCATENATION (&)


Opis: podstawowy ciąg może być albo stałą albo zmienną, a łączenie (&) jest wspierane. Używanie operatora łączenia doda drugi ciąg do pierwszego ciągu.
Format:

& < string expression>
Przykład:

10 LET A$= „ZBI”

20 LET B$= „Programming”

30 LET C$= A$ & B$

40 PRINT C$
Wynik:

ZBI Programming


Komentarz: jeśli łączenie spowoduje, że ciąg będzie większy niż możliwa maksymalna długość ciągu (255 znaków), zostanie przywołany pierwszy ciąg i ukaże się informacja o błędzie-Error: String size limit exceeded.

STRING VARIABLE


Opis: Maksymalna długość: 255 znaków.
Zmienne nazwy muszą zaczynać się od litery i mogą zawierać sekwencję liter, cyfr, i podkreślnik. Zmienna kończy się na $.
Nazwy funkcji i komend nie mogą być użyte jako nazwa zmiennej.

W nazwach zmiennych nie są ważne wielkości liter i zostaną zmienione przez interpreter na duże litery


SUB-STRINGS
Opis: użycie operatora „sub-string” (podciąg) na ciągu pozwala określonej ilości ciągu uzyskać dostęp. Aby ustalić współrzędne ciągu, który ma być użyty, policz odstęp od początku do końca ciągu, wliczając przestrzenie.
Format:

StringVariable$ (A:B)


Parametry:

A=pozycja pierwszego znaku w żądanym ciągu.

B=pozycja ostatniego znaku w żądanym ciągu.
Przykład:

>10 LET A$=”Zebra Quality Printers”

>20 LET B$=A$ (1:13)

>30 PRINT B$


Wynik:

Zebra Quality


Aby wyliczyć pozycje Zebra Quality Printers” w linii 10, „Z” zajmuje pozycje 1, „e” zajmuje pozycję 2, „b” zajmuje pozycję 3, „r” zajmuje 4, „a” zajmuje 5, przerwa zajmuje 6, itd.

Komentarz: jeśli parametr A jest mniejszy niż 1, zostanie automatycznie oznaczony wartością 1. Ponieważ ciąg wg planu ma zacząć się od 1, parametr A nie może być mniejsze niż 1.


Jeśli B jest większe niż długość ciągu, zostanie zamienione na długość ciągu. W tym przykładzie, parametr B nie mógłby być większy od 22.

Jeśli A jest większe od B, ciąg NULL („ „), który wskazuje na miejsce mniejsze niż A lub koniec ciągu, powróci. Jest to używane w przypadku dodawania ciągu do środka innego ciągu bez usuwania znaków. Odnosi się do komendy LET.

TRACE
Opis: komenda ta jest ważna
tylko wtedy, gdy funkcja DEBUG jest aktywna.
Format:

TRACE


Parametry:

=kontroluje czy TRACE jest aktywne (on) czy nieaktywne (off).
Jeśli DEBUG jest aktywny i komenda TRACE jest włączona, szczegóły TRACE zostaną pokazane. Kiedy jakiekolwiek zmienne są zmienione, nowa wartość będzie pokazana następująco:

Variable$=New Value


Każda przetworzona linia będzie miała wydrukowany numer linii.
Jeśli DEBUG jest włączony, numer linii drukuje się przed komendą linii, która jest przeprowadzona a zmienne drukują się, jak ich wartości, które są oznaczone.
10 LET A=5

20 GOTO 40

30 PRINT „Error”

40 PRINT A



RUN
Wynikiem jest:

10

A=5

20

40

5
Komentarz: Jest to interaktywna komenda, która skutkuje tak szybko, jak zostanie otrzymana przez drukarkę, lub komendę programu, która jest poprzedzona numerem linii.


©snauka.pl 2016
wyślij wiadomość