pascal ZX TASWORD TWO
POPIS PREKLADACE PASCAL NA ZX SPECTRUM
====================================== Pascal v sobe neobsahuje graficke procedury,ty nasleduji v
programu "ROZPAD".
Poznamky o implementaci dat a organizaci bloku jsou tez sou-
casti manualu.Pro zacatek vsak nejsou nezbytne. OMEZENI
-------
- typ FILE neni implementovan
- typ RECORD nesmi mit variantni cast
- procedury a funkce nemohou byt formalnimi parametry
- POINTER na typ,ktery nebyl deklarovan,neni povolen
- tento Pascal pouziva pro kontrolu typu ekvivalenci jmen,nikoli
struktury. Proto: var a:array[1..3]of T;
b:array[1..3]of T;
nemohou byt vzajemne michany. Nelze provest prirazeni a:=b; SYNTAXE A SEMANTIKA
-------------------
(pouze rozdily oproti standardu)- cislo bez znamenka: := #hexdigit
- string (unsignet constan) uvozen "'",max 255 znaku
- constant ::="CHR("constant ")" ;pro ridici znaky cr,lf,null.
- klicove slovo PACKED je akceptovano ale ignorovano
- bazovy typ mnoziny muze mit az 256 prvku,dolni hranice mnoziny
je 0
- prazdny seznam v prikazu CASE pusobi chybu
- prikaz CASE muze mit pri vycerpani prvku seznamu alternativu
ELSE
- jestlize hodnota selektoru neni nalezena,preda se rizeni prika
zu nasledujicimu za END
- kontrolni promenna prikazu FOR musi byt nestrukturovana a ne-
smi byt parametrem
- prikaz GOTO smi vest jen do bloku,kde se vyskytuje prikaz GOTO
a musi byt na teze urovni
- program nema parametry
- preddefinovane identifikatory :
konstanty : MAXINT ... 32767
TRUE,FALSE
typy : INTEGER ... 2 byte, 2 DOPLNEREAL ... 4 byte
CHAR ... extended ASCII..256 znaku
BOOLEAN PROCEDURY A FUNKCE
------------------
VSTUP A VYSTUP :
WRITE na obrazovku nebo na tiskarnu
CHR(8) ... destr.bspace na obrazovce
CHR(12) ... clear screen nebo newpage
CHR(13) ... cr and lf
CHR(16) ... prehazuje vystup mezi obra-
zovkou a tiskarnou
READ z klavesnice
INCH funkce cte znak z klavesnice,neni-li nic
stisknuto,je funkcni hodnotou chr(0)
ARITMETICKE FUNKCE :
FRAC destinna cast,pro zaporne doplnek
DALSI FUNKCE :
vynechana procedura DISPOSE,misto ni MARK
a RELEASE
INLINE(c1,c2,...) ci hex digits,dovoluje vkladat strojak
primo do kodu
USER(v) v je integer,vola strojak,ten musi koncit
RET
HALT konci program
POKE(x,v) da vyraz v do pameti pocinajic pametovym
mistem x
TOUT(name,start,size) nahrava promenne na pasek
TIN(name,start) nahrava promenne z pasky
OUT(p(c) BC:=p;A:=c;OUT (C),A
RANDOM dava nahodne cislo 0-255
ADDR(v) argumentem je promenna lib. typu,vysledkem
je jeji adresa
PEEK(x,t) x je typu integer,udava adresu,druhy argu-
ment je vysledny typ funkce,je pouzitelne
pro ziskani dat libovolneho typu
SIZE(v) parametrem je promenna,vysledkem je mnoz-
stvi pameti zabrane touto promennou
INP(p) totez,jako OUT KOMENTARE
---------
"(*" "*)" "{" "}"
Options v komentari za "$",nasleduje znak "+|-""," a znova
znak,je-li treba
L kontrola listinku pri kompilaci,(default: L+)
O owerflow check(O+)
C kontrola klavesnice pri behu(O+)
S kontroluje preteceni stacku(S+)
A kontrola mezi pri pristupu k polozkam poli (A+)
I
P
F zahrnuti casti programu z pasku,nezabira pamet EDITOR
------
I n,m automaticke cislovani radku od n po m,EDIT konec ci-
slovani
L n,m listing od n do m,EDIT konec
D n,m mazani radek od n do m
K n meni pocet radek vypisovanych pri listingu na obra-
zovce
M n,m text radky n prepise text na radce m
F n,m,f,s mezi radkami n az m hledej string f,pri nalezeni ho
edituj,pripadne nahrad stringem s (viz podprikaz S)
E n edituj radku s poradovym cislem n
PODPRIKAZY E n :
" " text pointer se inkrementuje,zobrazuje se nasledu-
jici znak
DELETE dekrementace text pointeru
-> posun text pointer na dalsi tabulovanou pozici
ENTER konec editovani,jsou platne vsechny zmeny
Q konec editovani,radka zustava ve sve puvodni podobe
R znovu zacni editovat editovanou radku,avsak z jeji pu-
vodni podoby
F hledj dalsi vyskyt stringu urceneho prikazem F n,m...;
a ten edituj
S nahrad string z Fn,...;
L vypis radek
K zrus znak na soucasne pozici kursoru
Z vynech vsechny znaky od soucasne pozice kursoru do
konce radku
I vkladej znaky od soucasne pozice kursoru,ENTER pro
ukonceni vkladani
X posune kurzor na konec radku
C prepisuj znaky,ENTER konec prepisu TAPE KOMANDS
------------
P n,m,s text od radku n do m je nahran na pasek pod nazvem s
G,,s nahraje text s nazvem s z pasky do pameti
W n,m,s nahraje program na pasku ve forme,jaka muze byt pou-
zita pri option
$F n,m,s KOMPILACE A BEH
---------------
C n text od radky n je kompilovan
R drive zkompilovany text je zpusten,pak navrat do editoru
T n odladeny program je prelozen tak,ze prepise kompilator
muze byt pote nahran na pasku pro okamzite pouziti
B navrat do basicu
O n,m prikaz pro pouziti jineho editoru
CS+BS zastaveni prekladu
E pri chybe editace chybneho radku
P pri chybe editace predesleho radku
Po uspesne kompilaci po otazce RUN? Y spusteni,pak navrat
COKOLIV navrat do editoru