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