                        






















    
    
    TTTTTTTTT      RRRRRRRR          A            CCCCC        EEEEEEEEE
        T          R       R       A   A        C       C      E
        T          R       R      A     A       C              E
        T          R       R     A       A      C              E
        T          RRRRRRRR      A       A      C              EEEEEEE
        T          R   R         A       A      C              E
        T          R    R        AAAAAAAAA      C              E
        T          R     R       A       A      C       C      E
        T          R      R      A       A        CCCCC        EEEEEEEE
    
    
    
    
                        Symbolic Instruction Debugger
    
                           for Z80 microprocessor
    
    
    
                                M A N U A L
    
    
    
    








    
    
    
    
    Obsah:
    
    Uvod  .........................................................   1
    Natazeni TRACE80  .............................................   2
    Zadavani povelu  ..............................................   3
    Preruseni  ....................................................   4
    Format zadani  ................................................   4
    Chybova hlaseni  ..............................................   5
    
    Aritmeticke vyrazy  ...........................................   6
    Booleovske vyrazy  ............................................  12
    
    Formaty zobrazeni  ............................................  14
    
    Povely  .......................................................  16
    Modifikace  pameti  ...........................................  22
    Porty i/o  ....................................................  27
    Modifikace registru  ..........................................  29
    Vypocty  ......................................................  32
    Hledani a porovnavani  ........................................  34
    Pouziti symbolu  ..............................................  37
    Emulace  ......................................................  40
    Realny cas  ...................................................  48
    Spooler  ......................................................  60
    Natazeni programu do pameti  ..................................  61
    Navrat do CP/M  ...............................................  63
    Zpracovani davek  .............................................  64
    
    Priloha A  Nazvy registru  ....................................  66
    
    Seznam povelu  ................................................  68
                               -  1 -
    
    
    
    
    
    
    
    
    
    
    Uvod:
    
    TRACE80 je symbolicky odvsivovac pro mikrocomputery s mikroprocesorem
    Z80-CPU a s provoznim systemem CP/M. Program potrebuje tabulku symbolu,
    ktere se vytvareji vetsinou spojovacich programu, ktere jsou k dispozici
    pro CP/M. Takto se daji testovat strojove kody tvorene nejenom assem-
    blery, ale take compilery.
    
    Hlediska pro navrhovani:
    
    Systemy CP/M maji zpravidla k dispozici pamet RAM o 64 kbytech.
    aplikacni programy, ktere se vyvijeji v assembleru prekracuji zridka
    hranici 20 kbyte. Rozsah dat se ve fazi vyvoje da vetsinou omezit.
    Proto byl kladen duraz na vykonou povelovou sadu vice nez na mini-    
    malizaci delky programu.                                    
    
    Pozadavky na system:
    
            TRACE80 verze 2.0 vyzaduje 18 kbyte a navic pro kazdy pouzity
    symbol jeste pripadne 10 byte. Provozni system pokryva zpravidla 5
    kbyte, takze pri systemu o 32 kbytech je k dispozici jeste maximalne
    9 kbyte.
    
    Terminal CRT by mel zpracovat minimalne 4800 Baudu.
    
    Prizpusobovani systemu:
    
    Prizpusobovani programu k ruznym systemum pocitacu se realizuje
    pomoci tabulky, viz priloha A. Aby se dalo celit vadnym funkcim
    musi se adaptovat alespon funkce vymaz obrazovky a vymaz radku.
    Stejne tak se musi parametry pro format obrazovky a sirku tisku
    nastavit.
                               -  2 -
    
    
    NATAZENI TRACE80
    
    Programy se v systemech CP/M  vyvolavaji uvedenim jejich jmena.
    Na stejnem radku lze udanim dalsiho jmena programu zavest do pra-
    covni sfery TRACE80 file. Bez udani startovaci adresy se natahuje
    od 100h.
    
    Existujici adresove parametry udavaji adresu natazeni, limit a 
    offset. Jestlize existuje symbolovy file stejneho jmena zkontroluje
    relokator delku datoveho souboru a odpovidajicim zpusobem pomeruje
    delku bufferu symbolu. Jestlize se nenajde zadny symbolovy file,
    vytvori se buffer s konstantni delkou. Ridici znak ./. predava
    vsechny dalsi znaky na povelovy dekoder TRACE80.
    
    
    
    Priklady:
    
    A>T80 TEST                  File TEST.COM se natahuje od 100h.
    
    A>T80 TEST.COD              File TEST.COD se natahuje od 100h.
    
    A>T80 TEST. 100 200         File TEST se natahuje od 100h az maximalne
                                vcetne 200h.
        
    A>T80                       Delka bufferu symbolu cini 512 symbolu.
    
    A>T80 :200 TEST             Delka bufferu symbolu cini 200 symbolu.
                                File TEST.COM se natahuje od 100h.
    
    A>T80 /BAT X 2              Povel 'BAT X 2' se realizuje ihned po
                                natazeni TRACE80.

    
    
    Pri vyvolani programu se TRACE80 lokalizuje pod BDOS (Diskovy
    operacni system u CP/M). Buffer symbolu se nachazi mezi TRACE80
    a BDOS. Pro aplikacni programy predstavuje TRACE80 zmenseny system.
    Vektor vskoku BDOS se prepina na zacatek TRACE80. TRACE80 prechazi
    ke komunikaci s terminalem a tiskarnou primo na BIOS.
    Funkce 'WARMBOOT' inicializuje BDOS. Aplikacni programy, ktere
    probihaji pod TRACE80 daji se ukoncit funkci BDOS 0 nebo skokem na
    adresu 0, pritom se vyvolava TRACE80. Skok zpet do provozniho systemu
    realizuje povelem 'BYE' TRACE80.
    
    Aplikacni programy pod CP/M probihaji od 100h a vyzaduji rozsah od
    0 az 0FFH k vymene dat s provoznim systemem. Strojni programy, ktere
    nepotrebuji zadnou podporu provozniho systemu se mohou natahovat od
    adresy 0. TRACE80 zabira adresu RESTART pri provadeni programu v
    realnem case a adresy od 66h az 68h pri pouziti povelu 'NS' (NMI).
    
    TRACE80 se da jedine natahovat, dokud povel XSUB provozniho systemu
    neni aktivni. XSUB se muze dezaktivovat tim, ze se provede teply
    start. Toho se da dosahnout skokem na adresu BIOS+3. Skok na adresu
    0 ponechava program XSUB v pameti.
                               -  3 -
    
    
    ZADANI POVELU
    --------------
    
    Povel:
    
        <CR>    (Car.Return)    pro zpetny chod voziku
        <LF>    (Line Feed)     pro predsun radku
        <SP>    (Space)         znak mezery
        <BS>    (Back Step)     pro krok zpet
        <HT>    (Hor. Tab.)     pro horizontalni tabulator
        <VT>    (Vert. Tab.)    pro vertikalni tabulator
        <ESC>   (Escape)        pro Escape
        <FF>    (Form Feed)     pro predsun stranky
        <ETX>   (End of Text)   pro ^C
        <DEL>   (Delete)        pro vymazavaci tlacitko
    
    TRACE80 se ohlasuje po natazeni hvezdickou a ukazuje tim pripravenost
    k zadani povelu. Povely se skladaji z poveloveho slova a az ze 20
    parametru. Zadani je buffrovano a uzavira se znakem <CR> nebo <LF>.
    
    Nasledujici ridici znaky slouzi k editovani zadavaciho radku:
    
        <ESC>   Vymaz radku a posazeni kurzoru na zacatek radku.
        <DEL>   Vymaz znaku.
        <VT>    Zacleneni znaku.
        <HT>    Kursor doprava.
        <BS>    Kursor doleva.

    
    
    Jestlize se kurzor naleza v nejprednejsi pozici a buffer zadani je
    prazdny, prijima TRACE80 povely, ktere se okamzite provadeji:
        
        ,       Jednotlivy krok
        .       Jednotlivy krok s protokolem 1
        ;       Preskocit povel
        :       Jednotlivy krok s kratkym udanim
        /       Opakovani posledniho povelu
        _       Program realneho casu
        <LF>    Znazorneni registru
        <HT>    Prevzeti posledniho zadani
        <ETX>   Inicializace BDOS
        <FF>    Vymaz obrazovky
        <ESC>   Vymaz BATCH-Mode
    
    Ridici znaky pro prime povely se k adaptaci na terminal daji menit 
    (Adaptace viz priloha A).Provedeni jednotlivych kroku a vyvolani
    podprogramu by se mely provest bez pouziti posunoveho tlacitka.
    U terminalu s oddelenymi tlacitky cislic se tato tlacitka daji obsa-
    dit primymi povely. 
                               -  4 -
    
    
    
    PRERUSOVANI
    ------------
    
    Provadene povely se daji stisknutim mezerovaciho tlacitka pozdrzet 
    a nebo prerusit tlacitky <CR>, <LF>, <ESC>, <FF> nebo <ETX>. Preru-
    sovavaci znaky se pritom zpracovavaji jako prime povely. Pri preru-
    seni se programovaci adresa a znacka '-' objevuji jako 'prompt'.
    V povelu se da pokracovat tlacitkem <SP>. Vsechny ostatni znaky se 
    ihned prebiraji do bufferu zadani, popripade se ihned realizuji jako
    prime povely.
    
    
    FORMAT ZADANI
    --------------
    
    Povely se skladaji z poveloveho slova a z parametru. Povely a parametry
    se museji zadavat velkymi pismeny. Jestlize terminal nema zadne tlacit-
    ko Alpha-Lock da se ucinek posunoveho tlacitka otocit uplatnenim Flagu
    (zmena viz v priloze A). Mezi povelovym slovem a mezi parametry musi
    byt prinejmensim 1 znak mezery. Parametry se musi zadavat kompaktne,
    tj. bez mezerovacich znaku. Oddeleni jednotlivych parametru se prova-
    di bud mezerovacimi znaky, nebo carkou. Pri strukturovanych parametrech
    anebo k zadavani prazdneho parametru je bezpodminecne nutno pouzit
    mezerovaci carky.
    
    
    Napriklad:

                3+3     Parametr s hodnotou 6
                3 +3    Dva parametry s hodnotou 3 a 3
                3,,3    Tri parametry v hodnote 3, mezera a 3
                               -  5 -
        
        
        
    CHYBOVA HLASENI:
    ----------------
    
    TRACE80 zna tato hlaseni chyb:
    

        COMMAND ERROR           Povelove slovo je neplatne
                                nebo povel neni pripustny
    
        ARGUMENT ERROR          Chyba v argumentech, prilis velka
                                zavorkovaci hloubka, nespravna
                                rozdelovaci znamenka
    
        INVALID REGISTER NAME   Nepripustny nazev pro registr CPU
    
        INVALID SYMBOL          Symbol neni k dispozici nebo nebyl 
                                natazen zadny symbolovy file
    
        MEMORY ERROR            Vadna pametova bunka nebo pokus psat
                                do ROM
    
        CANNOT ASSEMBLE         Assemblovaci chyba
    
        CANNOT TRACE            Nepripustny kod OP
    
        STACK UNDERFLOW         Hodnota ukazatele zasobniku je vetsi
                                nez limit
    
        FILE NOT FOUND          Datovy soubor neni k dispozici
    
        FILE TOO LONG           Datovy soubor presahuje TRACE80
    
        DISK FULL               Plna disketa
    
        DIRECTORY FULL          Plny directory
    
        SYMBOL BUFFER OVERFLOW  Symbolovy buffer je prilis maly
    
        INVALID SYMBOL FILE     Symbolovy file je vadny
    
        ADRESS TABLE OVERFLOW   Adresova tabulka napriklad pro
                                operne body je plna
                               -  6 -
    
    
    ARITMETICKE VYRAZY
    -------------------
    
    Aritmeticke vyrazy se skladaji z konstant, promennych a operacnich
    symbolu. Promenne a konstanty jsou interne znazornovany 16-ti
    bitovymi cisly, presahy pri operacich se ignoruji. Negativni cisla
    jsou znazornovana svym dvojkovym komplementem. Vyrazy se musi zadavat
    pres mezery, protoze mezerovaci znamenko se pouziva k oddelovani
    vyrazu.
    
    
    KONSTANTY
    ----------
    
    HEX - KONSTANTY
    
    Pokud nejsou zvlast oznaceny predsunutim zvlastniho znamenka,
    interpretuji se konstanty zasadne jako Hexa cisla. Proto mohou
    v TRACE80 cisla zacinat pismeny 0 - 9 a A - F.
    
    
    Priklady:   1000            1000h
               -1000           0F000h
    
    
    DECIMALNI CISLA
    
    Decimalni cisla se oznacuji znamenkem procenta. Jsou pripustne
    hodnoty od 0 az 65535
    
    
    Priklady:   %1024           0400h
    
               -%1024          0F000h
    
    
    
    BINARNI KONSTANTY
    ------------------
    
    Binarni konstanty se oznacuji vykricnikem. Rozsah hodnoty se
    realizuje od 0..1111_1111_1111_1111. Ke strukturaci lze pouzit
    pomlcky pod carou.
    
    
    Priklad:    !100_0000_0000    0400h
                               -  7 -
    
    
    SYMBOLY
    --------
    
    Jmena symbolu zacinaji '.'. Prvni znacka musi byt pismeno nebo 
    zvlastni znamenko. pripustne jsou symboly 0-9 , A-Z ,# , _ , 
    ., % , ? , .
    
    
    Priklad:    .STACK
    
    
    ASCII-KONSTANTY
    ----------------
    
    Znaky ASCII , s vyjimkou ridicich znaku a znacek mezerovacich,
    se mohou oznacovat jednoduchym znamenim string.
    
    
    Priklad:    'A              41h

    
    
    ARITMETICKE PROMENNE
    ---------------------
                        
    Aritmetickych promennych se vyuziva k rychle aplikaci casto pouzivanych
    adres.
     
    PROGRAMOVY CITAC
    -----------------
    
    Promenna '* ' obsahuje okamzitou hodnotu programoveho citace, promenna
    se aktualizuje pouze pri emulaci. Pri provadeni realneho casu obsahuje
    adresu posledniho emulovaneho povelu, popripade pri provadeni realneho
    casu s opernymi body, pak adresu naposled probehleho operneho bodu.
    
    PROMENNA X
    
    X obsahuje aktualni hodnotu toho aritmetickeho vyrazu, ktery se
    uklada do pameti pri povelu HF.
    
    PROMENNA Y
    
    Y obsahuje hodnotu posledniho parametru. Tato promenna je uzitecna
    tehdy, kdyz se pri povelech vyzadujicich udaj rozsahu zadava misto
    vymezeni pocatecni adresa a distance.
    
    
    Priklad:    D .RDHL-10 Y+%20        To znazornuje 21 Bytu
                                        pocinaje adresou LDHL-
                                        10
    
    PROMENNA Z
    
    Promenna Z se aktualizuje v povelech F a CP. Odkazuje tak na
    naposled zjistenou adresu pred prerusenim povelu CP nebo F.
                               -  8 -
    
    
                
    PROMENNA        M   (MORE)
    
                    M se aktualizuje povely D, L, LP aLD.
    
    
    Priklady:       D 100               Dump od 100h
                    <CR>                Preruseni povelu
                    D M         Pokracovani pametoveho Dumpu
    
    
    
    CPU - REGISTRY
    ---------------
    
    Obsahy registru CPU se daji pouzit ve vyrazech predsunutim 
    'R ' pred nazev registru.
    
    
    Priklady:       RHL         Obsah HL
                    RC'         Obsah C'
                    RCA         Obsah Carry-Flagu
    
    Platne nazvy registru viz priloha B.        

    
    
    ARITMETICKE OPERACE
    --------------------
    
    NEGATIVNI CISLA
    
    Znamenko minus tvori vzdy dvojkovy komplement prislusneho cisla
    hexa.
    
    
    Priklad:    -%1024            FC00h
    
    JEDNOTKOVY KOMPLEMENT
    
    Jednotkovy komplement je bitove invertovani hexa cisla
    a vypocitava se z dvojkoveho komplementu odectenim jednicky.
    TRACE80 prevadi cisla do jednotkoveho komplementu predsunutim
    'U' (Unary Minus).
    
    
    Priklady:    U0000          FFFFh
                -U0000             1h
                U-0000          FFFFh
    
    DVOJKOVA POTENCE
    
    '^' tvori dvojkovou potenci cisla mezi nulou a patnacti.
    
    
    Priklady:   ^0              0h
                ^F           8000h
                               -  9 -
    
    
    ADRESOVANI
    -----------
    
    Funkce @ dava jako vysledek obsah pametove bunky, kterou operand
    adresuje.
    
    
    Priklady:   @1000           Obsah bunek 1000h a 1001h
                @RHL            Obsah pametovych bunek,
                                ktere jsou adresovany pres HL.
    
    PAMETOVE BYTE
    --------------
    
    Funkce '[ ' ma jako svuj vysledek hodnotu pametoveho byte
    adresovaneho argumentem.
    
    
    Priklady:   [1000           Obsah bunky 1000h
                [(RIX+3)        Obsah bunky (RIX+3)
                [RIX+3          3+obsah (IX)
    
    
    FUNKCE H (HIGH)
    
    Hodnota High - byte operandu
    
    
    Priklad:    H1000           0010h
    
    
    
    FUNKCE L (LOW)
    
    Hodnota Low - byte operandu
    
    
    Priklad:    L1003           0003h
                               - 10 -
    
    
    
    FUNKCE I (IF)
    
    Syntax: I (<podminka>,<hodnota 1>,<hodnota 2>)
    I ma jako vysledek hodnotu 1, kdyz podminka je spravna,
    jinak znamena hodnotu 2, nebo 0.
    
    
    Priklad:    I(*>1000,2000,100)
     
    Vysledek je 2000h, v pripade, ze programovy citac je vetsi nez
    1000h, jinak 100h.
    
    
    FUNKCE P (PORT)
    
    P uvolnuje osmi bitovou hodnotu od I/0-Portu.
    
    
    Priklad:    P10             Obsah portu 10h
    
    
    NASOBENI
    
    Nasobeni se realizuje mezi sestnactibitovymi hodnotami bez ohledu
    na presahy.
    
    
    Priklad:    1000*3          3000h
                1000*10         0H
    
    
    DELENI
    
    Deleni se realizuje v celych cislech beze zbytku.
    Pri deleni nulou se objevuje hlaseni:
    
        /0 ARGUMENT ERROR
    
    
    Priklad:    %10/3           3h
    
    
    MODULO
    
    Operace modulo je znazornena '\'.
    
    
    Priklad:    8\3             2h
                               - 11 -
    
    
    LOGICKE OPERACE S BITY
    -----------------------
    
    Aby byla rychla interpretace a prehledny vzhled v kompaktnim
    zpusobu psani, vyjadruji se bitove operace ciselnym znakem.
            V protikladu k boolevskym operacim, ktere vydavaji,
    jako vysledek operace 'SPRAVNE' nebo 'NESPRAVNE', predstavuji
    operace '#' bitovou logickou operaci. Vysledkem je cislo.
    
    FUNKCE:
    
        N#      NOT     bitova inverze
        #A#     AND     bitova operace AND
        #O#     OR      bitova operace OR
        #X#     XOR     bitova operace XOR
    
    
    Priklady:   1000#O#2000     3000h
                RHL#A#1         maskovani bitu 0 v HL
    
     

    HIERARCHIE
    -----------
    
    Aritmeticke operace se provadeji v tomto poradi:
    
            1.  (......)        
            2.  U,+,-,@,[,I,H,L,P       (+/- jako predznamenani)
            3.  *,/
            4.  +,-                     (+,- jako operace)
            5.  N#
            6.  #A#
            7.  #O#,#X#
    
    Ve stejnych rovinach se vyraz zpracovava z leva do prava.
    
    
    BYTOVE VYRAZY
    --------------
    
    Vyrazy jejichz vyslednice je prirazovana k bytove promenne,
    smeji mit jako vysledek jen hodnoty mezi -256 a +255.
    
    
    BITOVE VYRAZY
    --------------
    
    Zadani k vymazu, nebo k vsazovani FLAGu smeji mit pouze
    hodnoty 0 nebo 1.
                               - 12 -
     
    
    BOOLEOVSKE VYRAZY (PODMINKY)
    -----------------------------
    
    Booleovske vyrazy slouzi, jako ridici kriteria pri povelech
    TRACE. Jejich hodnota je bud 'SPRAVNE' nebo 'NESPRAVNE'.
    
        BOOLEOVA KONSTANTA T (TRUE)
        Konstanta T ma hodnotu 'TRUE'.
    
        BOOLEOVA PROMENNA Q (QUERY)
        Q ma jako hodnotu aktualni vysledek Booleova vyrazu 
        zadaneho v povelu B.
     
        BOOLEOVA PROMENNA S (SYMBOL)
        S znamena 'SPRAVNE',kdyz programovy pocitac obsahuje 
        symbolickou adresu.
        
    
    
    SROVNAVANI
    -----------
    
    Srovnavani jsou operace mezi dvema aritmetickymi vyrazy.
    Jako operacni znaky jsou pripusteny:
    
        =       rovna se
        >       vetsi nez
        <       mensi nez
        >=      vetsi nebo rovna se
        =>     vetsi nebo rovna se
        <=      mensi nebo rovna se
        =<      mensi nebo rovna se
        <>      nerovna se
        ><      nerovna se
        
    
    Priklad:    $>1000          Spravne, kdyz programovy citac
                                je vetsi nez 1000h.
                               - 13 -
     
    
    BOOLEOVSKE OPERACE
    -------------------
    
    Booleovske operace se musi odlisit od bitovych operaci:
    
                N:      NOT
               :A:      AND
               :O:      OR
               :X:      XOR
    
    
    Priklad:    $>100:A:RHL=0   SPRAVNE,kdyz programovy 
                                citac je vetsi nez 100h a HL=0.
    
                N:T             NESPRAVNE
        
    
    PRIORITY
    ---------
    
    Booleovy vyrazy se zpracovavaji v tomto poradi:
    
                 1.     (.....)
                 2.     T,Q,S, SROVNANI
                 3.     N:
                 4.     :A:
                 5.     :O:, :X:
                               - 14 -
     
    
    FORMATY ZOBRAZENI
    ------------------
    
    POVELOVE RADKY
    
    Povelove radky se zobrazuji takto:
    
    G/B/C/J/ PC 1000  CD 00 20   ZNAKY   CALL 2000  ;OUT
       1     2   3       4         5         6        7
    
        1       Ridici znaceni prubehu
                /B pro BREAK
                /C pro CALL
                /G pro GO
                /J pro JUMP
        2       Znaceni pro programovy pocitac
        3       Adresa
        4       OP-kod (1-4 byty)
        5       Symbolicke znaky
        6       Mnemonicky kod
        7       Symbolicke znaceni adresy operandu, nebo znaky ASCII.


     
    
    REGISTRY CPU
    -------------
    
    Registry CPU se objevuji takto:
    
    84218421 A   B  C   D  E   H  L    SP    IX   IY   I   IFF
    ........ 00  00 00  00 00  00 00   9000  0000 0000 00  0
    
    84218421 A'  B' C'  D' E'  H' L'   -4    -2
    ........ 00  00 00  00 00  00 00   1000  2000
    
    Flegy pokud nejsou uvedeny '.', jsou znazorneny pomoci:
    
        C       CARRY
        N       Pomocny flag pro soucet
        P       PARITA
        H       PUL-CARRY
        Z       ZERO
        S       SIGN
    
    Vpravo dole se znazornuje cast zasobniku. I je prerusovaci 
    registr, IFF prerusovaci FLIP-FLOP CPU.
        
    
    
    DATA
    -----
    
    Datove rozsahy se znazornuji vzdycky Hexa a ASCII na obrazovce.
    Za kazdym Hexa bytem s adresami xxxFh nebo xxx7h se misto mezery
    tiskne bod.
                               - 15 -
     
    
    TISKARNA 
    ---------
    
    V tiskarne se protokoluje dvema provoznimi zpusoby:
    
        PLNY TISK
        Zapinani, vypinani prostrednictvim ^P
        Veskere vystupy na terminalu se tisknou.
        
        DILCI TISK
        Zapinani, vypinani prostrednictvim ^T
        Sytemova tiskarna tiskne pouze kratke radky, kdyz na terminalu
        probiha znazorneni registru. Krome toho jsou zachycovany
        povely TRACE80 a hlaseni chyb.
                               - 16 -
     
    
    POVELY
    -------
    
    Vsechny povely TRACE 80 jsou znazorneny v tomto formatu:
    
    FORMAT:             Uplne znazorneni syntaxe
    
    FUNKCE:             Kratky popis funkce
    
    POZNAMKY:   Popis zvlastnosti
    
    PRIKLADY:   Typicke priklady
    
    NOTACE
    
    Syntaxe se znazornuje podle techto pravidel:
    
    1. Jmena se museji zadavat tak, jak jsou znazornena. 
    
    2. Jmena malymi pismeny v kulatych zavorkach zastupuji jeden vytisk.
    
    3. Vytisky v hranatych zavorkach se mohou vypustit.
    
    4. Vsechny interpunkce se museji zadavat tak jak jsou znazorneny.
    
    5. Jestlize znazorneni syntaxe konci '...', lze predchazejici vytisk
       zopakovat.
    
    6. Radky, ktere jsou podtrzeny se vydavaji programem.
                               - 17 -
    
    
    ----------------------------------------------------------------------
    D           DUMP
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     D [<startovaci adresa>] [<koncova adresa>]]
    
    
    FUNKCE:     Znazorneni obsahu pameti v HEXA a ASCII
    
        
    POZNAMKY:   Jestlize chybi udaj o adrese, pouzije se hranic
                posledniho povelu D
        
                Aktualizuje se promenna M
        
        
    
    Priklady:   D 1000          Pametovy dump od 1000h
                
                D 1000 1100     Pametovy dump az 1100h
        
                D               Pametovy dump se starymi parametry
        
                D M             Pokracovani (dump more)
                               - 18 -
    
    
    ----------------------------------------------------------------------
    L           LIST
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     L [<startovaci adresa> [<ukoncovaci adresa>]]
    
    
    FUNKCE:     Znazorneni programu v HEXA a symbolicky, znazorneni
                symbolickych adres a ridicich znaku prubehu.
        
        
    POZNAMKY:   Jestlize chybi hranice adresy, pouzije se hranic
                posledniho povelu L.
        
                Aktualizuje se promenna M.
        
        
    
    Priklady:   L 1000          Listing od 1000h
        
                L               Listing se starymi parametry
        
                L M             Pokracovani listingu
        
                L .OUT Y+20     Listing od 'OUT's minimalne 32 byty


    
    
    ----------------------------------------------------------------------
    LP          LIST PROGRAM
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     LP
    
    
    FUNKCE:     Znazornovani programu od okamziteho stavu programoveho
                citace az k dalsimu absolutnimu rozvetveni.
        
        
    POZNAMKY:   Aktualizuje se promenna M.
                               - 19 -
    
    
    ----------------------------------------------------------------------
    LD          LIST DATA
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     LD [<startovaci adresa> [<koncova adresa>]]
    
    
    FUNKCE:     Listing v HEXA a ASCII, v Bytech a se symbolickymi
                adresami.
        
        
    POZNAMKY:   Aktualizuje se promenna M.
        
        
    
    Priklady:   LD 1000         Listing od 1000h
        
                LD 1000 1100    Listing od 1000h do 1100h
        
                LD M            Pokracovani listingu
                               - 20 -
    
    
    ----------------------------------------------------------------------
    V           VIEW
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     V [<ADRESA> ...]
    
    
    FUNKCE:     Zadavani masky pro data.
    
    
    POUZITI:    Soucasne zobrazovani datovych rozsahu ve spojeni se
                zobrazovanim registru na terminalu.
        
        
    POZNAMKY:   V s argumenty prebira data primo, V bez argumentu
                otevira zasobnikovou pamet pro editaci.
    
                Data jsou zobrazovana v HEX nebo ASCII, vzdy s 8 nebo
                16-ti byte na radek. Pred byte s adresou xxx0h nebo
                xxx8h se objevuje bod. Jestlize na odpovidajici adresu
                odkazuje registrovy par, pak se tiskne dvojtecka.
        
        
    
    Priklady:   V 1000 Y+10     Prime zadani dvou adres do zasobnikove
                                pameti.
        
                V               Otvirani zasobnikove pameti.
                1000 Y+10 10    Zadavani dodatecne adresy.
                ---------
    
                V
                1000 Y+10 10
                ------------
                <ESC>           Vymaz zasobnikove pameti.
                               - 21 -
    
    
    ----------------------------------------------------------------------
    VP          VIEW PROGRAM
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     VP  [<Pocet radku>]
    
    
    FUNKCE:     Zadani masky obrazovky pro program.
    
        
    POZNAMKY:   Jestlize pocet radku je prilis velky, zobrazuje se
                jenom jedna cast. 
        
        
    
    Priklady:   VP 5            Zobrazi se dodatecne 5 povelu.
        
                VP              Vymaz pridavnych povelovych radku.
                               - 22 -
    
    
    ----------------------------------------------------------------------
    P           PRINT
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     P [<adresa>] [,  <data>  ...]
    
    
    FUNKCE:     Zadavani dat do pracovni pameti.
    
        
    POZNAMKY:   P s datovym udajem zapisuje hodnoty primo do pracovni
                pameti.
        
                P s nebo bez udaju adres jde do interaktivniho zadava- 
                ciho modu.
        
                P bez adresoveho udaje pokracuje v zadavani pri dalsi
                adrese.
        
        
    DATA:       Akceptuji se tato zadavana data:
        
                Bytove vytisky  Preda se vzdycky jeden Byte. Hodnota
                                aritmetickeho vytisku se musi pohybo-
                                vat mezi -256 a 255.
        
                Adresy          Predsunutim znamenka '#' se aritmetic-
                                ke vytisky interpretuji jako adresy a
                                prebiraji jako dvojite Byty.
        
                ASCII strings   Dvojite uvozovky zahrnuji znakove rete-
                                zy, ktere se v ASCII formatu prebiraji
                                bez paritniho bitu.
        
                Prevzeti do pameti se realizuje teprve po uspesne 
                kontrole syntaxe.
                               - 23 -
    
    
    
    RIDICI ZNAKY:       V interakcnim modu v prvni kurzorove pozici
                        a pri prazdnem bufferu se akceptuji tyto ridici
                        znaky:
    
                <CR>    Konec zadani
                <LF>    Listing predchazejiciho bloku
                <TAB>   Listing dalsiho bloku
                <BS>    Snizit adresu o 1
                <SP>    Zvysit adresu o 1
                <ESC>   Vymaz modu BATCH
    
    
    
    Priklady:   P 1000 23 -3    Zadani dvou Bytu od adresy 1000h
    
                P ,45 'A        Pokracovani zadani se 45H a ASCII 'A'
        
                P               Interakcni zadani
        
                P 1000 "ABC" 0D Zadani stringu 'ABC' a 0Dh od 1000h
        
                P , #1000       Zadani hodnoty 1000h jako adresy
                               - 24 -
    
    
    ----------------------------------------------------------------------
    A           ASSEMBLE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     A [<Adresa>] [<Symbol>:][<Mnemonika>]
    
    
    FUNKCE:     Zadavani programu do pracovni pameti.
    
        
    POZNAMKY:   A s datovym udajem zapisuje povel primo do
                pracovni pameti.
        
                A s adresovym udajem nebo bez adresoveho udaje
                vychazi do interakcniho modulu.
        
                A bez adresoveho udaje pokracuje z zadani pri
                dalsi adrese.
        
        
    ZNACENI:    Oznaceni se mohou skladat maximalne z 6, popripade
                8 znaku, a musi koncit ':'.
        
        
    MNEMONIKA:  Mnemonicke povelove instrukce se musi zadavat
                ve formatu Zilog.
        
        
    ARGUMENTY:  Asembler akceptuje vsechny numericke argumenty.
                Hexa-konstanty musi zacinat ridici cislici.
                Promenna $ obsahuje hodnotu programoveho citace
                TRACE 80. Vsechny argumenty se museji zadavat  
                kompaktne.
                               - 25 -
        
        
      
    RIDICI ZNAKY:       V interakcnim modu se v prvni pozici kurzor
                        a pri prazdnem bufferu akceptuji tyto ridici
                        znaky:
        
                <CR>    Konec zadani
                <LF>    Listing predchazejiciho bloku
                <TAB>   Listing pristiho bloku
                <BS>    Adresa predchazejiciho prikazu
                <SP>    Adresa dalsiho prikazu
                ,       Zvysit adresu o 1
                <ESC>   Vymaz modu BATCH
        
        
    
    Priklady:   A 1000  LD A,B  Asemblovani od 1000h
    
                EE: OR  23      Zadani oznaceni EE a 
                                prikazu OR 23h
    
                CALL NZ,.EEE    Zadani CALL NZ,EEE
    
                DEFB "ABC"      Zadani ASCII 'ABC'


    
    
    ----------------------------------------------------------------------
    FILL 
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     FILL  <Startovaci adresa> <Koncova adresa> [<String>]
    
    
    FUNKCE:     Natazeni konstanty do pameti
    
        
    POZNAMKY:   FILL naplnuje pracovni pamet konstantou, popr. 0.
        
                Soucasne se provadi jednoduchy pametovy test.
        
        
    
    Priklady:   FILL    1000 2000 23     Plneni od  1000h do 2000h
                                         obsahem 23h.
        
                FILL    1000 2000        Plneni od 1000h do 2000h
                                         obsahem 0h
        
                FILL    1000 2000 "ABC"  Plneni od 1000h do 2000h
                                        s obsahem ASCII 'ABC'
                               - 26 -
    
    
    ----------------------------------------------------------------------
    MOVE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     MOVE  <start. adresa> <konc. adresa> <cilova adresa>
       
    
    FUNKCE:     Kopirovani pametoveho rozsahu 
    
                
    POZNAMKY:   MOVE kopiruje obsah od startovaci adresy do koncove
                adresy na cilovou adresu. Rozsahy se mohou prekryvat.
                Soucasne se provadi jednoduchy pametovy test.
                
                
    
    Priklady:   MOVE    1000 2000 3000  Kopirovani od 1000h do 2000h
                                        na 3000h
                
                MOVE    1000 2000 1000  Pametovy test od 1000h do 2000h

    
    

    ----------------------------------------------------------------------
    FCB         FILE CONTROL BLOCK
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     FCB <Nazev datoveho souboru> [<Adresa>]
    
    
    FUNKCE:     Naplneni FCB
    
        
    POZNAMKY:   Povel FCB zapisuje nazev datoveho souboru do bloku
                File-Control. Byty 12 az 15 se inicializuji 0.
        
                Jestlize neni udavana adresa, naplnuje se FCB pri
                5Ch.
        
        
    
    Priklad:    FCB     xxx.REL  1000   FCB se naplnuje na adresu
                                        1000h
        
                FCB     *.*             FCB se naplnuje na adresu
                                        5Ch s obsahem 0,'????????'
                               - 27 -
    
    
    ----------------------------------------------------------------------
    BUF         BUFFER
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     BUF     <Text>
    
    
    FUNKCE:     Natazeni bufferu pri 80h a naplneni FCB pri 5Ch a 6Ch.
    
        
    POZNAMKY:   Prikaz BUF naplnuje FCB a 'Buffer Default' stejnym
                zpusobem jako provozni system pri vyvolani programu.
        
        
    
     Priklady:  BUF xxx yyy     FCB 1 se naplnuje obsahem yyy,
                                FCB 2 obsahem yyy. Bunka 80h obsahuje
                                delku <Text>, text zacina 81h a
                                konci 0h.


    
    
    ----------------------------------------------------------------------
    I           INPORT
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     I  [<Adresa portu ...>]
    
    
    FUNKCE:     Cteni stavu I/O portu
    
        
    POZNAMKY:   Povel I cte porty I/O podle udanych adres.
                Lze ukladat a{ 20 adres. Adresy se ukladaji 
                do pameti.
        
        
    
    Priklady:   I 10 11         Cteni portu 10h a 11h
        
                I               Otevreni textoveho bufferu
        
                10 11 12        Zadani adresy
                -----
                <CR>            Cteni portu
                               - 28 -
    
    
    ----------------------------------------------------------------------
    O           OUTPORT
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     O <Adresa portu> <String>
    
    
    FUNKCE:     Vystup bytu pres port I/O.
    
        
    POZNAMKY:   <Adresou portu> musi byt aritmeticky vypis o hodnote
                mezi 0 - 255.
        
        
    
    Priklady:   0 10  'A'       Vystup  ASCII 'A' na portu 10h
        
                0 10 24 OF      Vystup 24h a OFh na portu 10h
    
                           - 29 -
    
    
    ----------------------------------------------------------------------
    R           REGISTER
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     R <Nazev registru> [<Hodnota>] , ...
    
    
    FUNKCE:     Nastavovani jednotlivych registru CPU.
    
    
    POZNAMKY:   Pri startu TRACE80 ukazuje Stack-pointer na konec
                volne pameti. Registr Interrupt zustava na hodnote,
                kterou mel pri vyvolani ladiciho programu. Zbyle
                registry jsou prednastaveny 0.
        
                Jestlize chybi udaj hodnoty, prislusny registr se
                vymaze.
                
                Pri pouziti vice nazvu registru je nezbytne nutne
                pouzit carky.
        
                Platne nazvy registru viz priloha B.
        
        
    
    Priklady:   R HL 1000,C 'A          Registr HL je obsazen
                                        hodnotou 1000h, registr
                                        C hodnotou 'A'.
        
                R HL,C 'A               Registr HL je obsazen
                                        hodnotou 0, registr C'
                                        hodnotou 0Ah.
        
    
    ZVLASTNOSTI:   TRACE80 ma 2 pridavne registry, ktere nejsou zahrnuty
                   v CPU.
        
                Registr SL (Subroutine Level) znazornuje okamzitou
                uroven poprogramu. Pri kazdem realizovanem povelu
                Return Z80 obsah zmensuje. Pri povelech CALL a
                RST zvysuje.
        
                Registr SB /Stack Basis/ ukazuje na zacatek stacku.
                Jeho obsah urcuje udaj hloubky zasobniku. Jestlize
                
                obsah Stackpointru je vetsi nez SB, objevi se
                hlaseni STACK UNDERFLOW.
        
                Oba registry mohou byt nastaveny jako normalni
                registry CPU, ctou se povelem H.
                               - 30 -
    
    
    ----------------------------------------------------------------------
    K           KILL
    ----------------------------------------------------------------------
    
    
    
    FORMAT:      K
       
    
    FUNKCE:     Vymaz veskerych registru
    
    
    POZNAMKY:   Vymazavaji se vsechny registry krome programoveho
                citace a registru Interrupt. Inicializuje se
                Stackpointer.


    
    
    ----------------------------------------------------------------------
    STO         STORE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     STO
    
    
    FUNKCE:     Uklada se do pameti okamzity stav registru.
    
        
    POZNAMKY:   TRACE80 ma k dispozici dalsi sadu pseudoregistru.
                Sada se natahuje obsahem STO a lze ji znovu      
                vyvolat pomoci REC.
    
    


    ----------------------------------------------------------------------
    REC         RECAL
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     REC
    
    
    FUNKCE:     Cteni druhe sady registru.
                               - 31 -
    
    
    ----------------------------------------------------------------------
    PC          PROGRAM COUNTER
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     PC  [<Adresa>]
    
    
    FUNKCE:     Nastaveni programoveho citace
    
        
    POZNAMKY:   PC bez adresy nastavuje programovy citac na adresu
                pouzitou pri poslednim povelu PC.
        
        
    
    Priklady:   PC 1000         Nastaveni programoveho citace na
                                1000h
        
                PC $+3          Zvyseni programoveho citace o 3


    
    
    ----------------------------------------------------------------------
    ;           SKIP
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     -- Primy povel --
    
    
    FUNKCE:     Prikaz preskakuje prikazy, aniz je provede.
    
        
    POZNAMKY:   Uvadi se vzdycky dalsi prikaz.
                               - 32 -
    
    
    ----------------------------------------------------------------------
    H           HEX
    HF          HEX FUNCTION
    ----------------------------------------------------------------------
    
    
    FORMAT:     H   <tisk>
                HF [<tisk>]
    
    FUNKCE:     Vypocet aritmetickeho tisku
    
        
    POZNAMKY:   HF s argumentem prebira aritmeticky tisk primo do
                vyrovnavaci pameti funkce. 
                HF bez argumentu otevira vyrovnavaci pamet 
                pro edici.
    
                Aktualni hodnota aritmetickeho tisku se muze pod
                funkcni promenou x pouzit v jinych tiscich.
    
                Promenna x se v prikazu HF nesmi pouzit (rekurzivni
                vyvolani).
    
                Prikaz H vypocitava hodnotu aritmetickeho tisku
                aniz by se tisk prevzal do vyrovnavaci pameti funkce.
        
        
    
    Priklady:   H .STACK        Hodnota symbolu STACK je uvedena.
                H @1000         Obsah radku 1000h a 1001h.
                HF x            Neni dovoleno !.
                               - 33 -
    
    
    ----------------------------------------------------------------------
    B           BOOLEAN
    BF          BOOLEAN FUNCTION
    ----------------------------------------------------------------------
    
    
    FORMAT:     B   <podminka>
                BF [<podminka>]
    
    FUNKCE:     Vypocet Booleovskeho tisku
    
        
    POZNAMKY:   BF s argumentem predava podminku primo do vyrovnavaci
                pameti funkce. 
    
                BF bez argumentu otevira vyrovnavaci pamet primo pro
                edici.
    
                Hodnota funkce se da pod promennou Q pouzit v jinych 
                Booleovskych tiscich.
    
                B vypocitava hodnotu podminky aniz by se podminka
                prevzala do vyrovnavaci pameti funkce.
    
                Promenna Q se nesmi v prikazu B pouzit.
        
    
    Priklady:   B RHL>1000:Q:$>1000
    
                Pravdive, kdyz HL je vetsi nez 1000h, nebo programovy
                citac je vetsi nez 1000h.
    
                BF Q    neni dovoleno !
                               - 34 -
    
    
    ----------------------------------------------------------------------
    CP          COMPARE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     CP [<start. adresa> <konc. adresa> <srovnavaci adr.>]
    
    
    FUNKCE:     Porovnani dvou pametovych prostoru a zobrazeni rozdilu.
    
        
    POZNAMKY:   Jestlize je zjisten rozdil, objevi se jako pohotovostni
                znamenko spojovaci carka. V porovnavani se da pokra-
                covat stisknutim mezerniku.
    
                Promenna Z obsahuje adresu rozdilu, ktery byl naposled
                zjisten.
    
                Prikaz CP bez argumentu, pouziva parametru posledniho
                prikazu CP.
        
    
    Priklady:   CP 1000 1100 2000
    
                Porovnava obsah pameti od 1000h do 1100h s obsahem
                pameti od 2000h.
                               - 35 -
    
    
    ----------------------------------------------------------------------
    F           FIND
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     F [<start. adresa> <konc. adresa> <data> ...]
    
    
    FUNKCE:     Vyhledavani retezcu HEX a ASCII.
    
        
    POZNAMKY:   Jestlize neexistuji hranice rozsahu, hleda se uvnitr
                naposled pouzitych hranic. Aktualizuje se promenna Z.
                Pomoci <SP> lze pokracovat v hledani. Data se musi
                objevit ve stejnem formatu jako v prikazu P. Delka
                retezce je omezena na 40 Byte.
        
    
    Priklady:   F 1000 2000 "ABC"
    
                Hledani v rozsahu od 1000h do 2000h ASCII retezce "ABC"
    
    
                F ,"ERROR" 0D
    
                Hledani se starymi hranicemi noveho ASCII retezce
                "ERROR" a 0Dh.
    
    
                F 1000 3000
    
                Hledani s novymi hranicemi posledne pouziteho retezce.
    
    
                F
    
                Hledani s posledne pouzitymi hranicemi posledne uziteho
                retezce.


    
    
    ----------------------------------------------------------------------
    HELP
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     HELP
    
    
    FUNKCE:    Zobrazeni povelu TRACE80
                               - 36 -
    
    
    ----------------------------------------------------------------------
    WAIT
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     WAIT [Cekaci doba]
    
    
    FUNKCE:     Nastavovani cekaci doby
    
    
    POZNAMKY:   U povelu T, UT a PASS se da vytvorit dodatecna
                cekaci doba pred vymazem obrazovky.
    
                Parametr zavisi na typu pocitace a na rychlosti
                procesoru.
                
                V prizpusobovaci tabulce TRACE80 se da zaznamenat
                standardni hodnota.
    
                Bez udani parametru je cekaci doba nulova.
    
    
    Priklad:    WAIT 1000
                               - 37 -
    
    
    ----------------------------------------------------------------------
    SS          SYMBOL SET
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     SS <symbol> <adresa> , ...
    
    
    FUNKCE:     Vytvareni symbolu a urcovani hodnoty.
    
    
    POZNAMKY:   Nazvy symbolu se skladaji ze 6, maximalne 8
                znaku a musi zacinat pismenem, nebo zvlast-
                nim znakem.
    
                Nove generovane symboly se vzdy nachazi na
                zacatku symboloveho bufferu, takze vybavova-
                ni techto nazvu probiha velmi rychle.
    
                Symbolovy buffer a zasobnik TRACE80 pouzivaji
                stejnou pamet. Je mozne, ze pri silnem rozpo-
                lickovani vyrazu se objevi hlaseni:
                'ARGUMENT ERROR' i kdyz nejde o zadnou for-
                malni chybu. V tomto pripade se poruchova
                funkce da odstranit vymazanim nekolika 
                vyrazu.
    
    
    Priklady:   SS NAME 1000    Symbol 'NAME' se nasadi na 
                                adresu 1000h.
                               - 38 -
    
    
    ----------------------------------------------------------------------
    SC          SYMBOL CLEAR
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     SC [<start. adresa> [<koncova adresa>]]
    
    
    FUNKCE:     Vymaz vsech symbolu uvnitr urcite oblasti.
    
    
    POZNAMKY:   SC bez udani adresove oblasti vymazava
                vsechny symboly.
    
                Povel LOAD vymazava rovnez vsechny symboly
                v rozsahu nabijeci adresove oblasti.
    
    
    Priklady:   SC 1000 2000    Vymaz veskerych symbolu
                                mezi 1000h az 2000h.
                SC 2000         Vymaz veskerych symbolu
                                nad 2000h.


    
    
    ----------------------------------------------------------------------
    SD          SYMBOL DELETE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     SD <symbol> ...
                SD /<maska> [<start. adresa> [<koncova adresa>]]
    
    FUNKCE:     Vymazavani jednotlivych symbolu nebo celych skupin
                symbolu.
    
    POZNAMKY:   Maska je platny nazev symbolu, ktery muze take
                obsahovat znaky '*' a '?'. '?' zastupuje jaky-
                koliv znak, zatimco '*' nahrazuje libovolny
                retezec znaku.
    
    
    Priklady:   SD xxx yyy      Vymazavaji se symboly xxx a yyy.
    
                SD /*A*         Vymaz vsech symolu, ktere obsahuji
                                znak 'A'.
                               - 39 -
    
    
    ----------------------------------------------------------------------
    SL          SYMBOL LIST
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     SL [<start.adresa> [<koncova adresa>]]
                SL /<maska> [<start. adresa> [<koncova adresa>]]
    
    FUNKCE:     Zobrazeni a serazeni vsech pouzitych symbolu
                v abecednim poradi.
    
    POZNAMKY:   Pri udani hranic rozsahu se zobrazuji pouze
                symboly, ktere lezi pouze uvnitr techto hranic.
    
    
    Priklady:   SL 1000 2000    Zobrazeni serazenych symbolu
                                mezi 1000h az 2000h
    
                SL              Zobrazeni vsech symbolu
    
                SL /*OUT        Zobrazeni vsech symbolu
                                koncicich 'OUT'.
    
                SL /OUT*        Zobrazeni vsech symbolu
                                zacinajicich 'OUT'.

    
    
    
    TESTOVANI PROGRAMU:
    --------------------
    
    Casti programu, ktere se maji otestovat se mohou realizovat pomoci
    TRACE80 dvema zpusoby:
    
        EMULACI         nebo v          REALNEM CASE
        --------                        -------------
    
    Realny cas, kdyz se v nem testuje, dovoluje zasahy do prubehu pro
    gramu pouze na bodech zastaveni. Provadeni programu se deje maximalni
    rychlosti procesoru.
    
    Pri emulaci se interpretuje kazdy povel. Stav simulovaneho procesoru
    je vzdy znam. Program se po kazdem povelu da zastavit. Emulaci se
    rychlost zpomaluje o faktor 100 az 500.
    U povelu UT, nebo pri uziti povelu W se doba realizace dodatecne
    prodlouzi o cas potrebny k interpretaci podminky. Jestlize v uzivatel
    skem programu jsou casti narocne na cas, mely by se otestovat nejdrive
    a potom oznacit jako rozsah realneho casu.
    
    Vsechny emulacni prikazy testuji podminku preruseni teprve po prvnim
    emulacnim kroku. Emuluje se tedy nejmene jeden povel. 
                               - 40 -
    
    
    ----------------------------------------------------------------------
    ,           SINGLE STEP
    .
    :
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     -- Primy povel --
    
    
    FUNKCE:     Emulace jedne instrukce procesoru Z80
    
    
    POZNAMKY:   ',' emuluje jeden povel, '.' tiskne na tiskarne
                dodatecne kratky radek.
    
                Povel ':' emuluje jednu instrukci Z80 aniz
                by byl zobrazen stav registru.


    
    
    ----------------------------------------------------------------------
    T           TRACE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     T [pocet]
    
    
    FUNKCE:     Emulovani nekolika instrukci se zobrazenim na
                obrazovce.
    
    
    POZNAMKY:   T bez argumentu emuluje tolik instrukci, kolik
                jich bylo navoleno predeslym povelem T.
    
                Pocet je aritmetickym vyrazem.
    
    
    Priklady:   T 10    Emuluje se 16 instrukci
    
                T %10   Emuluje se 10 instrukci
                               - 41 -
    
    
    ----------------------------------------------------------------------
    U           UNTRACE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     U [<pocet>]
    
    
    FUNKCE:     Emulace nekolika instrukci, aniz by se na
                obrazovce, nebo tiskarne po kazde emulaci
                zobrazoval povelovy radek a stav registru.
    
    POZNAMKY:   Pocet je aritmeticky vyraz. Jestlize se jeho
                hodnota rovna 0FFFFh (-1), emulace pokracuje
                az se provede preruseni pres klavesnici.
    
    
    Priklady:   U 10    Emuluje se 16 povelu.
    
                U -1    Emuluje se bez preruseni


    
    
    ----------------------------------------------------------------------
    UU          UNTRACE UNTIL
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     UU [<adresa>] [<citac pruchodu>]
    
    
    FUNKCE:     Emulace pokracuje, az se dosahne udane adresy.
    
    
    POZNAMKY:   Jestlize citac prubehu je vetsi nez 0,
                probehne se adresou casto.
    
    
    
    Priklady:   UU 1000         Sledovani, az se progra-
                                movy citac rovna 1000h.
    
                UU 1000, 10     Sledovani, az adresa
                                1000h probehne 16 x.
                               - 42 -
    
    
    ----------------------------------------------------------------------
    UR          UNTRACE REGISTER
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     UR <jmeno registru> [<hodnota>]
    
    
    FUNKCE:     Povel ridi prubeh programu v zavislosti na
                obsahu registru CPU.
    
    POZNAMKY:   Bez udani hodnoty dojde k preruseni pri
                obsahu registru 0.
    
                Povel se da aplikovat v ciselnych smyckach.
    
    
    
    Priklady:   UR HL           Sledovani az se <HL> rovna 0
    
                UR CA 1         Sledovani az k nastaveni
                                indikatoru prenosu CA.
                               - 43 -
    
    
    ----------------------------------------------------------------------
    UL          UNTRACE LEVEL
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     UL [<hodnota>]
    
    
    FUNKCE:     Emulace az se dosahne urcite urovne
                podprogramu.
    
    POZNAMKY:   Povel UL emuluje povely tak dlouho, az pocet
                vyvolanych podprogramu (CALL A RST) bez poctu
                skoku podprogramu (RET) rovna vyrazu <hodnota>.
                Argument tedy predstavuje relativni uroven 
                podprogramu u ktere dojde k preruseni.
    
                Jestlize sledovani ma pokracovat az do skonceni
                podprogramu, musi se pracovat s negativnimi
                argumenty.
    
                Povel UL bez argumentu pusobi jako UL -1.
    
                Navrat z podprogramu. Provedeni podprogramu
                v realnem case (povely C a J) potom neni mozne,
                kdyz napr. predani parametru podprogramu nasle-
                duje po instrukci CALL. Zde se muze bezchybne
                emulovat povelem UL (UL = J, UL 0 = C).
    
    
    
    Priklady:   UL 1            Sledovani az k podprogramu.
    
                UL              Sledovani az k dosazeni programu,
                                ktery je vyvolavan.
    
                UL 2            Sledovani az do urovne podprogra-
                                mu o 2 mensi.
                               - 44 -
    
    
    ----------------------------------------------------------------------
    UB          UNTRACE BRANCH
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     UB
    
    
    FUNKCE:     Prubeh programu pokracuje tak dlouho, az se
                program rozvetvi.
    
    POZNAMKY:   Povel se da provest pouze tehdy, kdyz progra-
                movy citac je na podminenem skoku.
                (napr. JR NZ, RET C, JP (HL))
    
                TRACE80 kontroluje smer rozvetveni a pokracu-
                je v emulaci tak dlouho, az se na stejnem miste 
                programu rozvetvuje jinym smerem.
    
                Povel UB slouzi k ukonceni smycek. Pritom musi
                programovy citac pri provadeni programu ukazo-
                vat na instrukci skoku.
    
                Pozor u smycek s nekolika vystupy !
    
    
    
    Priklady:   Program
    
                        LD      B,10
                LOOP:   LD      A,(DE)
                        INC     HL
                        INC     DE
                LP1:    DJNZ    LOOP
                        LD      A,C
    
                Program se muze az k LP1 emulovat s povely
                jednotlivych skoku. Potom se s UB probiha smyc-
                kou az k odskokum.
                               - 45 -
    
    
    ----------------------------------------------------------------------
    UT          UNTRACE TRUE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     UT [<podminka 1> [<citac>] [<podminka 2>]]
    
    
    FUNKCE:     Emulovani az je splnena podminka 1.
    
    
    POZNAMKY:   Povel UT je nejpomalejsim a nejvsestranejsim
                emulacnim povelem. V protikladu ke vsem ostat-
                nim emulacnim povelum se hodnota argumentu po
                kazdem kroku znovu vypocitava.
    
                Jestlize je splnena podminka 1, srovnava se stav
                citace podminky s hodnotou <citac> a u stejneho
                stavu se emulace prerusi; jinak se citac podminky
                zvysuje o 1. Pri splneni podminky 2 se na termi-
                nalu zobrazuje stav registru CPU.
    
                Povel UT bez argumentu otevira buffer k editaci.
    
                Provadeni programu se da uspisit, kdyz se misto
                symbolickych adres pouzije adres HEX a pracuje
                se podle moznosti bez zavorek.
    
    
    
    Priklady:   UT $=1000,3,T   Adresa 1000h az do preru-
                                seni probehne 3 x a po kaz-
                                dem emulacnim kroku se zo-
                                brazuje stav registru.
    
                UT N:T,,$=1000  Sledovani bez preruseni,
                                udavani stavu registru pri
                                adrese 1000h.
    
                UT [(RIX+2)=0   Sledovani az se obsah pame-
                                tove bunky adresovane pomo-
                                ci IX+2 rovna 0.
    
                UT S            Sledovani az k symbolicke
                                adrese.
                               - 46 -
    
    
    ----------------------------------------------------------------------
    HL          HISTORY LIST
    HC          HISTORY CLEAR
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     HL [<pocet povelu>]
                HC
    
    FUNKCE:     HL      Zobrazuje probehle instrukce.
                HC      Vymazava buffer probehlych instrukci.
    
    POZNAMKY:   TRACE80 uklada do pameti adresy poslednich
                255 probehlych instrukci, ktere byly emulovany.
                Tento buffer se da zobrazit na terminalu 
                pomoci povelu HL.
    
    
    Priklady:   HL %10          Zobrazeni poslednich 10
                                instrukci.
    
                HC              Vymaz bufferu.
                               - 47 -
    
    
    ----------------------------------------------------------------------
    W           WATCH
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     [<podminka>]
    
    
    FUNKCE:     Stanoveni podminky preruseni.
    
    
    POZNAMKY:   Pro vsechny emulacni povely se da stanovit
                podminka preruseni. Podminka se kontroluje
                po kazde provedene instrukci. Tim se vzdy
                provadi nejmene 1 povel.
    
                Jestlize se pouzije povelu W bez argumentu,
                lze editovat starou podminku.
    
                Kdyz je podminka splnena, objevi se pred
                vodicim znakem znamenko +, jinak -.
    
                Rychlost emulace se zpomali.
    
    
    
    Priklady:   W $ 1000:O:$ 100        Omezeni pripustneho
                                        rozsahu pro progra-
                                        movy citac.
    
                W RSP<RSB-200           Preruseni, jestlize
                                        delka zasobniku je
                                        vetsi nez 200h.
                               - 48 -
    
    
    Prubeh programu v realnem case.
    --------------------------------
    
    Pri provadeni programu v realnem case nema obsluhujici zadny vliv na
    prubeh programu. Preruseni se realizuje bodem zastaveni. Body zastaveni
    se uskutecnuji tak, ze se prvni byte instrukce nahradi instrukci RST.
    Na adresu podprogramu instrukce RESTART se zapise skok do TRACE80.
    Uzivatelske programy se mohou prerusit skokem na adresu 0000h.
    (CP/M - WARMBOOT)
    
    
    Jestlize pri provadeni instrukci v realnem case, nebo ridici znacky
    prubehu je na startovaci adrese bod zastaveni, emuluje se nejdrive
    instrukce a potom program pokracuje v realnem case. Tak se daji pouzit
    instrukce v realnem case s adresami, ktere obsahuji bod zastaveni.
    
    
    Body zastaveni je mozno nastavit na adresu 1 byte jedne instrukce Z80.
    
    
    TRACE80 nastavuje pri startu programu prerusovaci klopny obvod CPU. Tim
    se daji zpracovavat preruseni dokud se zadne uzivatelske programy ne
    provadeji v realnem case. Registr prerusovaciho bistabilniho klopneho
    obvodu (IFF) TRACE80 plati jenom pro programove casti v realnem case.
    Instrukce EI uvolnuje preruseni teprve pri prespristi instrukci.
    TRACE80 nastavuje uz pri pristi instrukci registr prerusovaciho klopne-
    ho obvodu (IFF).
    
    
    Funkce provozniho systemu (CP/M) pouzivaji mnohonasobne prerusovacich
    podprogramu ke komunikaci s perifernimi jednotkami. Proto by mel byt
    prerusovaci klopny obvod uvolnen pri vyvolani provozniho systemu. To
    se muze uskutecnit explicitne nastavenim registru prerusovaciho klopne-
    ho obvodu, nebo zapisem instrukce EI do programoveho rozsahu, ktery
    bude probihat pri vyvolani provozniho systemu (viz priloha A).
                               - 49 -
    
    
    ----------------------------------------------------------------------
    G           GO
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     G [<start.adresa>] [bod zastaveni> ...]
    
    
    FUNKCE:     Spusteni programu v realnem case.
    
    
    POZNAMKY:   Povel G znamena pokracovani programu pri start.
                adrese v realnem case. Bez udani start. adresy
                pokracuje program pri poslednim stavu programo-
                veho citace.
    
                Dodatecne se pro trvani povelu da stanovit 10
                bodu zastaveni. Pri vyuziti teto moznosti se
                pridavne body zastaveni serazuji. Pomoci <SP>
                lze program spustit.
    
    
    
    Priklady:   G 1000          Provadeni v realnem case od
                                adresy 1000h.
    
                G               Provadeni v realnem case od
                                okamzite hodnoty programoveho
                                citace <SP>.
    
                G ,2000         Provadeni v realnem case od
                                okamzite hodnoty <SP> s bodem
                                zastaveni na 2000h.
                               - 50 -
    
    
    ----------------------------------------------------------------------
    GB          GO BRANCH
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     GB
    
    
    FUNKCE:     Ukoncovani smycky v realnem case.
    
    
    POZNAMKY:   Povel GB je povolen jen tehdy, kdyz programovy
                citac stoji na podminenem vetveni.
    
                TRACE80 nasazuje na tuto adresu bod zastaveni a
                realizuje pokracovani programu v realnem case.
                Bod zastaveni je ignorovan tak dlouho, dokud
                smer vetveni neodpovida smeru vetveni pri vyvo-
                lani povelu.
    
                Povel je ekvivalentem v realne case k povelu UB.
                Slouzi k rychlemu ukonceni smycek.
    
    
    Priklady:   Program
    
                WAIT:   LD      B,3
                WAIT1:  PUSH    BC
                        LD      BC,0
                WAIT2:  DEC     BC
                        LD      A,B
                        OR      C
                        JR      NZ,WAIT2
                        POP     BC
                WAIT3:  DJNZ    WAIT1
                        RET
    
    Kdyz programovy citac ukazuje na WAIT3 da se program ukoncit po-
    velem GB.
                               - 51 -
    
    
    ----------------------------------------------------------------------
    GN          GO NO BREAKPOINTS
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     GN [<start.adresa>] [<bod zastaveni>]
    
    
    FUNKCE:     Startovani programu v realnem case
    
    
    POZNAMKY:   Povel GN pusobi stejne jako povel G s tim roz-
                    dilem, ze se body zastaveni nestanovi ihned,
                nybrz teprve kdyz se na terminalu zada urcity
                znak 'Ctrl \'.
    
                Uzivatelsky program tedy musi pouzit provozni
                systemove funkce CONSOLE INPUT.
    
                Tim je umozneno zacilene preruseni uzivatelske-
                ho programu.
    
    
    
    Priklady:   GN ,1000, 1200          Start programu s body
                                        zastaveni na 1000h a
                                        na 1200h.
                               - 52 -
    
    
    ----------------------------------------------------------------------
    J           JUMP
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     J [<start.adresa>]
    
    
    FUNKCE:     Ukonceni podprogramu v realnem case.
    
    
    POZNAMKY:   Povel nasazuje nerezistentni bod zastaveni na
                tu adresu, ktera je v zasobniku nejvyse.
    
                Podprogram se tedy da provest jenom s J v realnem
                case, pokud v zasobniku nebyly jeste zajisteny
                dalsi hodnoty. Povel je dovolen na vsech mistech
                skoku podprogramu.
    
    
    
    Priklady:   Podprogram
    
                SUBR:   LD      A,C
                SUBR1:  PUSH    HL
                        ...
                        ...
                        POP     HL
                SUBR2:  ...
                        ...
                SUBR3:  RET
    
    
                Povelu J se da pouzit jenom na mistech oznacenych
                znackami.
                               - 53 -
    
    
    ----------------------------------------------------------------------
    C           CALL
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     C
    
    
    FUNKCE:     Provedeni podprogramu v realnem case.
    
    
    POZNAMKY:   Jestlize programovy citac je na instrukci CALL,
                nebo RST, provede se podprogram v realnem case.
    
                K tomu se za povel CALL nebo RST zaznamena
                nerezistentni bod zastaveni.
    
                Klavesa '.' provede povel C v primem modu.
                Jestlize se na adrese nenajde zadne vyvolani
                podprogramu, provede se emulacni krok.


    
    
    ----------------------------------------------------------------------
    E           EXECUTE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     E [<start.adresa>]
    
    
    FUNKCE:     Provedeni podprogramu v realnem case
    
    
    POZNAMKY:   Povel slouzi k testovani jednotlivych modulu.
                V protikladu k povelu J se ukazatel zasobniku
                neinkrementuje. Programovy citac ukazuje po
                provedeni podprogramu na zacatek podprogramu.
                
                Jestlize neni udana zadna startovaci adresa,
                predpoklada se, ze programovy citac uz ukazuje
                na podprogram.
    
    
    
    
    Priklady:   E 1000          Provedeni podprogramu pri 
                                1000h.
                               - 54 -
    
    
    ----------------------------------------------------------------------
    BS          BREAK SET
    GS          GO    SET
    JS          JUMP  SET
    CS          CALL  SET
    ----------------------------------------------------------------------
        
    FORMAT1:    ?S <adresa> ...
    FORMAT2:    ?S /<maska>[<start. adresa>[<konc. adresa>]]
    
    FUNKCE:     Umisteni ridicich znacek prubehu.
    
        
    POZNAMKY:   Pridrzne body se daji umistit prikazem BS.
                Prikazy GS, JS, CS oznacuji programova mista, na
                kterych se misto emulace provadi prislusny povel v
                realnem case. Pocet pridrznych bodu je omezen na 40.
                Pocet ridicich znacek prubehu pro J je omezen na 40,
                pro C a G vzdy na 20.
    
                Format 1 umoznuje umistovat jednotlive znacky
                udanim adresy.
    
                Format 2 generuje znacky z pouzitych symbolu v ramci
                uvedenych adresnich hranic.
    
                Ucelnym pojmenovanim znacek v puvodnim textu se 
                ridici znacky prubehu daji definovat uz tam. 
    
                <Maska> je retezec s maximalne 8-mi znaky. '?' zastu-
                puje kterekoliv pismeno,  '*' zastupuje kteroukoliv
                slabiku.
        
    
    
    Priklady:   BS 1000 1200
        
                Umisteni pridrznych bodu na adresu 1000h a 1200h.
    
                BS /L???????
    
                Umisteni pridrznych bodu na vsechny adresy, jejichz
                symbol zacina s L.
    
                BS /*$
    
                Umisteni pridrznych bodu vsech adres, jejichz symbol
                konci na *.
                               - 55 -
    
    
    ----------------------------------------------------------------------
    BC          BREAK CLEAR
    GC          GO    CLEAR
    JC          JUMP  CLEAR
    CC          CALL  CLEAR
    MC          MARK  CLEAR
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     ?C [<start. adresa> [<konc. adresa>]]
    
    
    FUNKCE:     Povely vymazavaji vsechny znacky jednoho typu.
                MC vymazava vsechny znacky.
        
        
    POZNAMKY:   Jestlize se dodatecne uvede rozsah, vymazavaji se
                pouze znacky uvnitr hranic adres. 
        
    
    
    Priklady:   BC              Vymazani vsech pridrznych bodu.
    
                CC 1000 2000    Vymazani vsech ridicich znacek pro C
                                v rozsahu mezi 1000h a 2000h.
                               - 56 -
    
    
    --------------------------------------------------------------------
    BD          BREAK DELETTE
    GD          GO    DELETTE
    JD          JUMP  DELETTE
    CD          CALL  DELETTE
    ---------------------------------------------------------------------
    
    
    FORMAT1:    ?D <adresa> ...
    FORMAT2:    ?D /<maska> [start. adresa> [<konc. adresa>]]
    
    
    FUNKCE:     Vymazavani jednotlivych ridicich znacek prubehu.
    
        
    POZNAMKY:   Povely BD, GD, JD a CD vymazavaji ridici znacky pru-
                behu, popripade pridrzne body na prislusnych adresach.
                
                Format 1 umoznuje vymazavat jednotlive znacky udanim
                adresy.
    
                Format 2 vymazava znacky pomoci masky v ramci adresnich
                hranic. 
                
                <Maska> je retezec s maximalne osmi znaky.
                '?' zastupuje kterekoliv pismeno.
        
    
    
    Priklady:   BD 1000 1200
    
                Vymaz pridrznych bodu na adrese 1000h a 1200h.
    
                BD /L???????
    
                Vymaz vsech pridrznych bodu,jejichz symboly zacinaji L.
                               - 57 - 
    
    
    ----------------------------------------------------------------------
    BL          BREAK LIST
    GL          GO    LIST
    JL          JUMP  LIST
    CL          CALL  LIST
    ML          MARK  LIST
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     ?L [<start. adresa> [<konc. adresa>]]
    
    
    FUNKCE:     Vypis ridicich znacek prubehu jednoho typu.
                ML vypisuje vsechny znacky.
        
        
    POZNAMKY:   Udanim rozsahu se vypisuji jenom znacky, jejichz 
                adresa je v ramci uvedenych rozsahu.
        
        
    
    Priklady:   BL 1000 2000
    
                Vypis vsech pridrznych bodu v rozsahu 1000h a 2000h.
                               - 58 -
    
    
    ----------------------------------------------------------------------
    PASS
    ----------------------------------------------------------------------
    
    
    FORMAT:     PASS [<podminka1> [<citac>] [<podminka 2>]]
    
    
    FUNKCE:     Zadani podminky pro pridrzny bod.
    
        
    POZNAMKY:   PASS bez argumentu otevira zasobnikovou pamet pro
                editovani.
                
                PASS s argumenty, prebira tisk primo do zasobnikove
                pameti.
    
                Povel PASS umoznuje propojovat pridrzne body s podmin-
                kami. Jestlize plati podminka 1, pridrzny bod se igno-
                ruje a program pokracuje v realnem case.
                Prubeh programu lze prerusit na pridrznem bode
                mezernikem, popripade klavesou CR.
                Velicina citac udava, kolikrat je treba splnit
                podminku 1 na pridrznem bode, aby se uskutecnilo
                preruseni programu (Citac prubehu pro pridrzne body).
    
                Jestlize plati podminka 2 uvadi se stav registru
                na terminalu.

    
    
    Priklad 1:  BC                      Vymaz veskerych pridrznych bodu
    
                BS 1000                 Umisteni pridrzneho bodu na
                                        adresu 1000h.
    
    
                PASS T %1000 RC=0       Zadani podminky.
    
                G                       Startovani programu v realnem
                                        case.
    
    
                Pridrzny bod na 1000h probehne 1000x, nez dojde k pre-
                ruseni programu. Na terminalu se zobrazi stav registru,
                jestlize registr C ma hodnotu 0.
    
    
    
    Priklad 2:  BC
                BS 1000 1200
                PASS T
               G
    
    
                Program se provadi bez preruseni, lze jej vsak pre-
                rusit na mistech 1000h a 1200h.
                               - 59 -
    
    
    ----------------------------------------------------------------------
    NS          NMI SET
    NC          NMI CLEAR
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     NS
    FORMAT:     NC
    
    
    FUNKCE:     Umisteni / vymaz volby NMI.
    
        
        
    POZNAMKY:   Povel NON MASKABLE INTERRUPT (NMI) znamena nemasko-
                vatelne preruseni. U obvodu Z80-CPU lze pouzit k pre-
                ruseni programu. K tomu je treba na adresu 66H zavest
                skokovou instrukci. Na stejnych adresach je uz FCB z
                CP/M. Proto se skokova instrukce zavadi jen pri umiste-
                ne volbe a pri povelech v realnem case.
    
                Zachranuje stary stav pametovych bunek a po skonceni
                programove casti se ukladaji zpet do pameti.
    
                Ke spusteni NMI je nutny neodskakujici spinac, nebo
                logicke zapojeni.
                               - 60 -
    
    
    ----------------------------------------------------------------------
    SPL         SPOOLER
    ----------------------------------------------------------------------
    
    
        
    FORMAT:     SPL <Nazev datoveho souboru>
    
    
    FUNKCE:     Vytisteni souboru dat na tiskarne.
    
        
    POZNAMKY:   Pomoci SPL se soubor dat prenasi na tiskarnu. Pritom
                se prechodne blokuje pouziti jinymi programy.
    
                Protoze provozni system neni vicenasobne pristupny,
                suspenduje se funkce tak dlouho, dokud se programovy
                citac nachazi nad volnou pameti.
    
                Bez udani typu datoveho souboru se tiskne typ  .PRN.
        
        
        
    Priklady:   SPL xxx         Vytisteni xxx.PRN
    
                SPL xxx.        Vytisteni xxx
    
                SPL xxx.MAC     Vytisteni xxx.MAC


    
    
    ----------------------------------------------------------------------
    SPE         SPOOLER END
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     SPE
    
    
    FUNKCE:     Preruseni prenosu na tiskarnu.
    
        
        
    POZNAMKY:   SPE vytvari v kazdem pripade strankovy posuv.
                               - 61 -
    
    
    ----------------------------------------------------------------------
    LOAD
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     LOAD <data> [<zavadeci adresa> [<limit> [<offset>]]]
    
    
    FUNKCE:     Zavadeni souboru dat.
    
        
        
    POZNAMKY:   LOAD prevadi soubor dat z diskety do pameti.
    
                Bez udani adresy se zavadi do pameti na adresu 100h.
    
                Offset se vztahuje na disketu, tj. hodnota offset
                znamena pocet Byte, ktere cte disketa nez zacne
                zavadeci proces u zavadeci adresy. Pri nazvech
                bez udani typu se zavadi typ  .COM.
    
                Vsechny symboly v rozsahu zavadeci adresy se vymaza-
                vaji. Jestlize se na diskete nachazi soubor symbolu,
                zavadi se vsechny symboly.
        
        
    
    Priklady:   LOAD xxx         
    
                Zavadeni souboru xxx.COM a souboru dat xxx.SYM.
    
    
                LOAD xxx 100 200
    
                Zavadeni souboru xxx.COM od adresy 100h az maximalne
                200h, vcetne prislusnych symbolu.
                               - 62 -
    
    
    ----------------------------------------------------------------------
    SAVE
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     SAVE <nazev dat. souboru> <start. adresa> <konc. adr.>
    
    
    FUNKCE:     Prenos obsahu operacni pameti na disketu.
    
        
        
    POZNAMKY:   SAVE kopiruje obsah pameti do datoveho souboru
                na disketu. Bez udani typu datoveho souboru se
                ulozi soubor  .COM.
    
                Volne Byte posledniho sektoru se naplnuji nulou.
                
                Soucasne se generuje soubor symbolu, ktery obsahuje 
                vsechny symboly v rozmezi adresy.
        
        
    
    Priklady:   SAVE xxx 100 200
    
                Ulozi obsah pameti od adresy 100h do 200h do datoveho
                souboru xxx.COM. 


    
    
    ----------------------------------------------------------------------
    RUN
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     RUN <nazev dat.souboru> [<text>]
    
    
    FUNKCE:     Zavadeni a startovani programu.
    
        
    POZNAMKY:   RUN zavadi datovy soubor na 100h, obsazuje formatem
                text FCB pri 5Ch a 6Ch a zasobnikovou pamet od 80h
                a startuje program od adresy 100h. Navrat k TRACE 80
                se realizuje bud pomoci RET a nebo pomoci WARMBOOT.
        
    
    
    Priklady:   RUN M80
    
                Spusteni programu M80.COM.
                               - 63 -
    
    
    ----------------------------------------------------------------------
    BOOT                
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     BOOT
    
    
    FUNKCE:     Studeny start provozniho systemu
    
        
        
    POZNAMKY:   V adaptacni tabulce TRACE 80 lze zanest skok do
                rutiny studeneho startu, popripade nekolik povelu,
                ktere vyvolavaji nastaveni pocatecniho stavu systemu.


    
    
    ----------------------------------------------------------------------
    BYE         
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     BYE
    
    
    FUNKCE:     Ukonceni prace TRACE80 a predani rizeni  provoznimu
                systemu.
    
        
    POZNAMKY:   BYE predava rizeni provoznimu systemu (CCP).
                Predtim se odstrani modifikace v ramci skoku BIOS.
                               - 64 -
    
    
    ----------------------------------------------------------------------
    BAT         BATCH
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     BAT <nazev souboru> [<strana>]
    
    
    FUNKCE:     Vyvolani datoveho souboru BATCH
    
        
    POZNAMKY:   Povely TRACE80 se daji ulozit do pameti v textovem 
                souboru. Povelem BAT se tento soubor cte a povely 
                se provadeji. Pro kazdy povel se musi pouzit novy
                radek. V jednom textovem souboru se da umistit
                nekolik povelovych skupin, ktere musi byt od sebe
                oddeleny pomoci <FF>.
    
                BAT bez udani poctu stranek se vzdycky zameruje na 
                prvni stranku (stranka 0).
    
                Pred provedenim povelu BAT se prezkousi, zda na
                terminalu existuje znak. Je-li tomu tak, predava
                se kontrola az po <CR> na terminal.
    
                <ESC> v prvni poloze kurzoru a pri prazdnem zadavacim
                bufferu vymazava povel BAT. Dokud je povel BAT nebo BAR
                aktivni, tiskne se pred prompt druha hvezdicka.
    
                Typ souboru pro soubor BATCH je .T80 nebo .T85.
        
    
    
    Priklady:   BAT ZZZ 2
    
                Stranka 2 souboru ZZZ.T80 se aktivuje jako soubor
                BATCH.
        
                BAT ZZZ.ZZZ
    
                Stranka 0 souboru ZZZ.ZZZ je aktivovana.
                               - 65 -
    
    
    ----------------------------------------------------------------------
    BAR         BATCH REQUEST
    ----------------------------------------------------------------------
    
    
    
    FORMAT:     BAR [<nazev souboru> [<stranka>]
    
    
    FUNKCE:     Vyvolani souboru BATCH
    
        
    POZNAMKY:   Povely TRACE80 se daji ulozit v textovem souboru.
                Povelem BAR se tento soubor cte a povel se pro-
                vede. Pro kazdy povel se musi pouzit novy radek. 
                V jednom textovem souboru se da umistit nekolik sku-
                pin povelu, ktere musi byt od sebe oddeleny pomoci
                <FF>.
    
                BAR bez udani poctu stranek smeruje vzdycky  na 1.
                stranku (stranka 0).
                Povel BAR prevadi prikaz do poveloveho bufferu TRACE80
                a predava kontrolu az po <CR>. <ESC> v nejprednejsi
                poloze kursoru a pri prazdnem bufferu povel BAR
                vymazava.
    
                Dokud je povel BAT nebo BAR aktivni, pisi se jako
                prompt dve hvezdicky.
    
                Typ souboru pro soubor BATCH je 'T80' nebo 'T85'.
    
    
    
    Priklady:   BAT ZZZ
    
                Stranka 2 souboru ZZZ.T80 se aktivuje jako povel
                BATCH.
    
                BAR ZZZ.ZZZ
    
                Je aktivovana stranka 0 souboru ZZZ.ZZZ .

                               - 66 -
                
    
    
        * * *   DODATEK A   * * *
    
        
    Pripustne registry:
    --------------------
        
    Jednoduche registry:
    
        A               akumulator
        F               flag-registr
        B               registr B
        C               registr C
        D               registr D
        E               registr E
        H               registr H
        L               registr L
        HX              high-byte indexregistru IX
        LX              low-byte indexregistru IX
        HY              high-byte indexregistru IY
        HY              low-byte indexregistru IY
        A'              registr A'
        F'              registr F'
        B'              registr B'
        C'              registr C'
        D'              registr D'
        E'              registr E'
        H'              registr H'
        L'              registr L'
        I               interrupt-registr
        R               refresh-registr
        
    Dvojite registry:
    
        AF              registr AF
        BC              registr BC
        DE              registr DE
        HL              registr HL
        AF'             registr AF'
        BC'             registr BC'
        DE'             registr DE'
        HL'             registr HL'
        IX              indexregistr IX
        IY              indexregistr IY
    
        SP              ukazatel zasobniku
        PC              programovy citac
    
        SL              rovina podprogramu
        SB              zacatek stacku
                        CA              carry
        N               addition/substraction flag
        P               paritni flag
        HC              flag pro polovicni prenos
        Z               zero-flag
        S               znamenkovy flag
    
        CA',P'          flagy pro zalozni registry
        N',HC'
        Z',S'
    
        IFF             interrupt flip-flop
        INT             interrupt flip-flop
                               - 68 -
    
    
    
    SEZNAM POVELU:
    ===============
    
    ,   ....................................................  40
    .   ....................................................  40
    :   ....................................................  40
    A   ....................................................  24
    B   ....................................................  33
    BAR ....................................................  65
    BAT ....................................................  64
    BC  ....................................................  55
    BD  ....................................................  56
    BF  ....................................................  33
    BL  ....................................................  57
    BOOT ...................................................  63
    BS  ....................................................  54
    BUF ....................................................  27
    BYE ....................................................  63
    C   ....................................................  53
    CC  ....................................................  55
    CD  ....................................................  56
    CL  ....................................................  57
    CP  ....................................................  34
    CS  ....................................................  54
    D   ....................................................  17
    E   ....................................................  53
    F   ....................................................  35
    FCB ....................................................  26
    FILL ...................................................  25
    G   ....................................................  49
    GB  ....................................................  50
    GC  ....................................................  55
    GD  ....................................................  56
    GL  ....................................................  57
    GN  ....................................................  51
    GS  ....................................................  54
    H   ....................................................  32
    HC  ....................................................  46
    HELP ...................................................  35
    HF  ....................................................  32
    HL  ....................................................  46
    I   ....................................................  27
    J   ....................................................  52
    JC  ....................................................  55
    JD  ....................................................  56
    JL  ....................................................  57
    JS  ....................................................  54
    K   ....................................................  30
    L   ....................................................  18
    LD  ....................................................  19
                               - 69 -
    
    
    LOAD ...................................................  61
    LP  ....................................................  18
    MC  ....................................................  55
    ML  ....................................................  57
    MOVE ...................................................  26
    NC  ....................................................  59
    NS  ....................................................  59
    O   ....................................................  28
    P   ....................................................  22
    PASS ...................................................  58
    PC  ....................................................  31
    R   ....................................................  29
    REC ....................................................  30
    RUN ....................................................  62
    SAVE ...................................................  62
    SC  ....................................................  38
    SD  ....................................................  38
    SL  ....................................................  39
    SPE ....................................................  60
    SPL ....................................................  60
    SS  ....................................................  37
    STO ....................................................  30
    T   ....................................................  40
    U   ....................................................  41
    UB  ....................................................  44
    UL  ....................................................  43
    UR  ....................................................  42
    UT  ....................................................  45
    UU  ....................................................  41
    V   ....................................................  20
    VP  ....................................................  21
    W   ....................................................  47
                               - 70 -
    
    
    POMOCNE PROGRAMY:
    
    ----------------------------------------------------------------------
    NXSUB               NOT XSUB
    ----------------------------------------------------------------------
    
    
    
    Pri vyvolani TRACE80 se ocekava, ze vektor na adrese 0  (skok na tep-
    ly start) ukazuje na skokovou tabulku CBIOS. To je nutne, protoze
    program TRACE80 provadi vstup a vystup primo pres CBIOS. Jestlize
    TRACE80 byl vyvolan sekvenci SUBMIT, pak je jeste predtim treba
    odstranit pripadne instalovany XSUB. Program NXSUB vyvolava systemovou
    funkci 0 a zpusobuje teply start.
    
    
    
    Priklad:    SUBMIT file:
        
                XSUB
                L80
                TEST1,TEST2,TEST/N/Y/E
                NXSUB
                T80 TEST
                ...
                ...
                XSUB
                ...
                ...

    
    

    ----------------------------------------------------------------------
    GSYM                GENERATE SYMBOLS
    ----------------------------------------------------------------------
    
    
    
    GSYM je pomocny program pro uzivatele souboru ZASM. Linkovaci program
    nevytvari zadny soubor symbolu kompatibilni s TRACE80. Pomoci GSYM
    se ziskava soubor typu SYM ze souboru krizovych odkazu linkeru.
    Tento program je mozne spustit jedine na pocitacich se Z80-CPU.
    
    
    
    Priklad:    GSYM TEST
    
                Soubor symbolu TEST.SYM se vytvari ze souboru
                TEST.CRS
                               - 71 -
    
    
    ----------------------------------------------------------------------
    SETG                SET GLOBAL
    ----------------------------------------------------------------------
    
    
    
    V testovaci fazi je zadouci, aby byl pristup ke vsem navestim pouzitym
    v puvodnim textu. K tomu je treba deklarovat vsechna navesti jako
    globalni. Aby se tento postup zjednodusil a soucasne usnadnilo odstra-
    neni pridavnych deklaraci GLOBAL, melo by se pouzit uvedeneho programu.
    Program splnuje tyto funkce:
    
        1.      Vsechny deklarace global, ktere zacinaji na 1.radku,
                jsou odstraneny az do objeveni prazdneho radku.
        2.      Pro vsechna navesti, ktera dosud nebyla deklarovana
                jako globalni prostrednictvim znaku '::', se  na za-
                catku puvodniho textu vytvari deklarace global. 
        3.      Pripadne existujici cisla radku s bit7=high  se od-
                stranuji (MACRO-80  radkova cisla).
        
    Program se da libovolne casto aplikovat na zdrojovy soubor, protoze se
    vsechny stare globalni deklarace pokazde odstranuji. Puvodni text nesmi
    zacinat deklaracemi global. Po testovaci fazi se pridavne dohody
    s editorem daji snadno odstranit. 
    
    Pro prizpusobeni k ruznym typum assembleru je nutna modifikace pro-
    gramu. Protoze nelze prevzit zaruku na presnou funkci programu, je
    bezpodminecne nutne pri prvnich pokusech zajistit puvodni text.
    
    Prubeh programu se da modifikovat stanovenim dvou variant:

        /R      REQUEST pri kazdem zjistenem symbolu se vznasi dotaz,
                zda se ma vytvorit deklarace GLOBAL.
    
        /C      CLEAR   vsechny drive vytvorene globalni deklarace se
                vymazavaji. Nevytvari se zadne nove deklarace.
    
        /L      LIST    vsechny globalni deklarace se zobrazuji na
                terminalu.
                               - 72 -
    
    
    SYNTAX:             <file-name> /  <volba>, ...
    
    
    Priklad:    SETG  TEST
    
                Pro soubor  TEST.MAC se vytvari pridavne globalni
                deklarace.
     
                SETG TEST1/C
    
                Globalni deklarace v souboru TEST1.MAC se vymazavaji.
    
                SETG TEST/R
    
                Program vytvari v dialogu v souboru TEST.MAC.
    
                               - 73 -
    
    
    ----------------------------------------------------------------------
    SETM                SET MARKS
    ----------------------------------------------------------------------
    
    
    
    BATCH - soubory pro program TRACE80 se daji stanovit jak s editorem,
    tak take jiz ve zdrojovem textu assemleru, kde se definuji. Odpovi-
    dajici povel TRACE80 se pritom zanasi do komentaroveho pole. Tim je
    zajisteno, ze beh assembleru neni ovlivnen. Pro oznaceni prikazu
    TRACE80 se musi primo za komentarovy strednik umistit znak '$'.
    Nasledujici text se pak interpretuje jako prikaz TRACE80.
    
    
    Priklad:    
        
        IN::    IN      A,(CONST)               ;$ JS .IN
                BIT     READY,A
                JR      Z,IN
                RET
        
        
    Pomoci programu SETM se komentarove radky zacinajici znackou '$'
    z assembleroveho zdrojoveho textu ziskavaji, tridi a ukladaji 
    v souboru typu  T80. Uvedenim cisla primo za znackou '$' se da
    zvolit stranka 0 az 255, pod kterou se textovy retezec uklada
    do souboru. Soucasne se da nacist az 20 zdrojovych textu.
        
        
        SYNTAX: <cilovy soubor> = <zdrojovy soubor>, ...
        
        
    Priklady:
        
        A>SETM                          vyvolani programu
    
        *TEST=TEST1,TEST2               Ze souboru TEST1.MAC a
                                        TEST2.MAC se ziskava soubor
                                        TEST.T80
    
        *=TEST.ASM                      Ze souboru TEST.ASM se ziska
                                        DEF.T80
    
        *CON:=TEST                      Vsechny zaznamy do souboru
                                        TEST.MAC se zobrazuji na
                                        terminalu.
    
        *LST:=/TEST                     Tiskne se obsah BATCH-souboru
                                        TEST.T80.
    
        *TEST=TEST1.T80,TEST2.T80       Oba BATCH-soubory se sdruzuji.
    
    



EMULACE
--------
HL   [<pocet>]                                  Vypis poslednich povelu
HC                                              Vymaz vyrovnavaci pameti
W    [<podminka>]                               Stanoveni podminky preruseni


PROVADENI V REALNEM CASE
-------------------------
G    [<start. adresa>] [<bod zastaveni> ... ]   Start programu v realnem case
GN   [<start. adresa>] [<bod zastaveni> ... ]   Start programu v realnem case
GB                                              Provadeni programu v realnem
                                                case az do rozboceni programu
J    [<start.adresa>]                           Zakonceni podprogramu
C /                                             Podprogram v realnem case
E    [<start.adresa>]                           Provadeni podprogramu


NASTAVENI, VYMAZ A INDIKACE RIDICICH ZNACEK PRUBEHU A BODU ZASTAVENI
---------------------------------------------------------------------
?S   <adresa> ...                               Nastaveni jedne znacky
?C   [<start. adresa> [<konc. adresa>]]         Vymaz vsech znacek
?D   <adresa ... >                              Vymaz jedne znacky
?L   [<start. adresa> [<konc. adresa>]]         Listing znacek


BODY ZASTAVENI
---------------
PASS   [<podminka> [<citac>] [<podminka>]]      Stanoveno podminek pro body
                                                zastaveni
NS                                              Stanoveni varianty NMI
NC                                              Vymaz varianty NMI


SPOOLER
--------
SPE   <datovy soubor>                           Vytisteni datoveho souboru
SPL                                             Zakonceni vyrazu


ZAVADENI DATOVYCH SOUBORU A JEJICH UKLADANI DO PAMETI
------------------------------------------------------
LOAD   [<disk:>] <datovy soubor> [<zavadeci adresa> [<limit> [<offset>]]]
                                        Zavedeni datoveho souboru z disku
SAVE   [<disk:>] <datovy soubor> <start. adresa> <konc. adresa>
                                        Ulozeni datoveho souboru na disk
RUN    <program>                        Zavedeni programu a jeho provadeni


NAVRAT ZPET DO PROVOZNIHO SYSTEMU
----------------------------------
BYE                                            Teply start (WARMBOOT)
BOOT                                            Studeny start


ZPRACOVANI DAVEK
-----------------
BAT    <datovy soubor> [<strana>]    Vyvolani davkoveho datoveho souboru
BAR    <datovy soubor> [<strana>]    Interakcni odpracovani davk. dat. souboru




TISKARNA
---------
<Ctrl_T>                             Strucne vytisky
<Ctrl_P>                             Plne vytisteni


ARITMETICKE A BOOLEOVSKE VYRAZY
--------------------------------
%       Dekadicka cisla                         ^       Druha mocnina
!       Binarni cisla                           *       Nasobeni
.       Symboly                                 /       Celociselne deleni
'       ASCII znaky                             \       Modulo
"       ASCII retezce                           +       Soucet
#       Adresy                                  -       Rozdil
$       Programovy citac                        N#      Vyznam bitu (NOT)
X       Hodnota HF                              #A#     Vyznam bitu (AND)
Y       Hodnota 1. vyrazu                       #O#     Vyznam bitu (OR)
Z       Adresovy ukazatel pro F, CP             #X#     Vyznam bitu (XOR)
M       Adresovy ukazatel pro D, LD, L          T       True (pravdive)
R       Registr                                 Q       Hodnota BF
_       Dvojkovy komplement                     S       Symbol
U       Jednotkovy komplement                   =,>,<   Porovnani
@       Adresa pameti                           >=,<=
[       Pametovy byte                           <>,><
H       High byte                               N:      NOT
L       Low byte                                :A:     AND
I       Funkce IF                               :O:     OR
P       Porty                                   :X:     XOR


VYPISY
-------
D    [<start. adresa> [<konc. adresa>]]         Vypis pameti v hex a ASCII
L    [<start. adresa> [<konc. adresa>]]         Vypis programu
LP                                              Vypis programu od $
LD   [<start. adresa> [<konc. adresa>]]         Vypis dat


MASKA OBRAZOVKY
----------------
V    [<adresa> ... ]                            Zadani datovych rozsahu
VP   [<pocet radku>]                            Maska programu


MODIFIKACE PAMETI
------------------
P     [<adresa>]a[<data>]                               Zadavani dat
A     [[<adresa>] [<symbol>:] <mnemonika> <argument>]   Zadavani programu
FILL  <start. adresa> <konc. adresa> [<data>]           Plneni pameti konst.
MOVE  <start. adresa> <konc. adresa> <cilova adresa>    Kopirovani
FCB   [<adresa>]                                        Zavadeni FCB
BUF   <text>                                            Zavadeni CP/M bufferu
ZADAVANI PORTU
---------------
I    [<adresa portu> ... ]                Cteni portu
O    <adresa portu> <data>                Vystup dat na port




INDIKACE A ZMENY REGISTRU
--------------------------
<LF>                                       Zobrazeni CPU registru
R    <nazev registru> [hodnota], ...       Zadani hodnoty do registru
K                                          Vymaz vsech registru
STO                                        Ulozeni stavu registru
REC                                        Vyvolani ulozeneho stavu registru


ZMENY PROGRAMOVEHO CITACE
--------------------------
PC   [<adresa>]                            Nastaveni programoveho citace
;                                          Preskakovani povelu


VYPOCTY
--------
H    <vyraz>            Vypocet jednoho aritmetickeho vyrazu
HF   [<vyraz]           Vypocet aritmetickeho vyrazu a ulozeni do pameti
B    <podminka>         Vypocet Booleovskeho vyrazu
BF   [<podminka>]       Vypocet Booleovskeho vyrazu a ulozeni do pameti


POROVNAVANI
------------
CP   [<start. adresa> <konc. adresa> <adresa porovnavani>]
                        Porovnavani dvou pametovych rozsahu


VYHLEDAVANI ZNAKOVYCH RETEZCU
------------------------------
F    [<start. adresa> <konc. adresa>] [<retezec>]       
                        Hledani hex, nebo ASCII retezcu


PRACE SE SYMBOLY
-----------------
SS   <symbol> <adresa> , ...                    Vytvoreni symbolu
SC   [<start. adresa> [<konc. adresa>]]         Vymazavani symbolu
SD   <symbol> ...                               Vymaz jednoho symbolu
SL   [<start. adresa> [<konc. adresa>]]         Abecedni vypis symbolu


EMULACE
--------
,                                       Jednotlivy krok
.                                       Jednotlivy krok s protokolem
:                                       Jednotlivy krok se strucnou indikaci
T    [<pocet>]                          Emulace se zobrazenim
U    [<pocet>]                          Emulace bez zobrazeni
UU   [<adresa>] [citac prubehu>]        Sledovani az k udane adrese
UR   <nazev registru> [<hodnota>]       Sledovani az ke stavu registru
UL   [<relativni uroven podprogramu>]   Sledovani az k podprogramu
UB                                      Sledovani az k rozboceni
UT   [<podminka> [<citac prubehu>] [podminka>]
                                        Sledovani az k podmince
