GENSnav.4                                            TASWORD TWO
    dujici vyskyt retezce 'f'. Tento spolu s prikazem 'F'
    uvedenym vyse se pouziva ke krokovani textovym souborem
    pricemz se nahrazuji retezce 'f' retezci 's' - viz kapitola
    3.3, kde je uveden priklad.
I (INSERT) - Vlozi znaky na pozici ukazatele. V teto cinnosti
    setrvava dokud se nestiskne ENTER - ten vrati cinnost do
    hlavni smycky s ukazatelem nastavenym za posledni vlozeny
    znak. Pri teto cinnosti zpusobi CH ( DELETE ) vymazani znaku
    vlevo od ukazatele, zatimco CI ( ridici funkce ) posune
    ukazatel na dalsi tabelacni pozici a vklada mezery.
X - Posune ukazatel na konec radku a automaticky prechazi do
    cinnosti vkladani ( INSERT ) popsane vyse.
C (CHANGE) - Zmeni znak. Tento prikaz umoznuje prepsat znak na
    pozici ukazatele a posunout ukazatel o jeden krok dopredu.
    Nadale se zustava u teto cinnosti dokud se nestiskne ENTER,
    cimz se vrati do hlavni smycky programu a ukazatel bude za
    poslednim zmenenym znakem. CH ( DELETE ) v tomto pripade
    posune pouze ukazatel o jeden krok zpet zatimco CI nema
    ucinek.
3.2.4 Prikazy pro pasku
    Text muze byt ulozen na pasku nebo nahran z  pasku  pouzitim
prikazu 'P', 'G' a 'T'.
Prikaz: P n,m,s
Oblast  radku  definovanou  n<x<m  ulozi   na  pasku  se  jmenem
urcenym retezcem 's'. Pamatujte, ze  tyto  argumenty  mohou  byt
definovany  drive  vlozenym  prikazem.  Pred  vlozenim    tohoto
prikazu se presvedcte, ze  magnetofon  je zapnut  na  nahravani.
Nepouzivejte  tento  prikaz,  budete-li  si  pozdeji  prat  tuto
oblast vlozit 'Include' (do jineho programu - textu).  V takovem
pripade pouzijte prikaz 'T'.
Prikaz: G ,,s
Na pasce hledate soubor s nazvem 's',  je-li  nalezen,  pak  jej
ulozite na konec textu. Neni-li vlozeno jmeno, nahraje se  prvni
textovy soubor na pasce.
   Po vlozeni  prikazu  se  objevi  zprava  'Start  tape  ..'  -
spustte prehravani. Nyni se hleda soubor s uvedenym jmenem nebo
v pripade,ze jmeno nebylo uvedeno, je vzat prvni textovy soubor.
Pri souhlasu nazvu se zobrazi  zprava  'Using  filename',  jinak
'Found filename' a hledani na pasce pokracuje.
   Pamatujte, je-li  jakykoliv  textovy  soubor  jiz  umisten  v
pameti, pak  nove  nahrany  soubor  z  pasky  bude  pripojen  ke
stavajicimu souboru a  cely  soubor  bude  precislovan  pocinaje
radkem 1 s krokem 1.
Prikaz: T n,m,s
Ulozit blok textu mezi radky n a m vcetne,  na  pasku  ve  tvaru
vhodnem k pozdejsimu vlozeni  prikazem  assembleru  *F  -    viz
kapitola 2.8. Soubor je ulozen s nazvem s.  Ukladani  se  zahaji
okamzite  po  stisknuti  ENTER,  proto  se  presvedcte,  ze   je
magnetofon pripojen a spusten pred vlozenim  tohoto  prikazoveho
radku.
3.2.5 Kompilace a spusteni
Prikaz:  A  -  Provest  kompilaci  od  prvniho  radku  textoveho
souboru. Podrobneji viz kapitola 2.
Prikaz:  R - Byla-li kompilace  provedena  bez  chyby  a  urcena
prikazem ENT adresa spusteni, pak  lze  pouzit  prikazu  'R'  ke
spusteni programu ve strojnim  kodu.  Strojni  kod  muze  pouzit
instrukci  RET  (#C9)  k  navratu  do  editoru  pokud   ukazatel
zasobniku (stack) bude po provedeni tohoto  programu  na  stejne
pozici jako byl na zacatku.
Uvedomte si, ze ENT se neprovede v  pripade,  ze  pro  kompilaci
byla zvolena cinnost 16.
3.2.6 Ostatni prikazy
Prikaz: B - Jednoduse vrati rizeni do operacniho systemu BASIC.
Navrat do assembleru se provede studenym nebo teplym startem viz
kapitola 1.
Prikaz: C  -  Tento  prikaz  umoznuje  prevest  textove  soubory
vytvorene pomoci GENS 1 na format pro GENS 3. Nahraje se textovy
soubor GENS 1 prikazem 'G'  a  potom  se  prikazem  'C'  provede
konverze souboru a nahraje se jiz jako soubor  GENS  3  prikazem
'P' na pasku.
   'C' nema  argument  a  muze  chvili  trvat  nez  se  konverze
provede.
Prikaz: S,,d - Tento  prikaz  umoznuje  zmenit  separator, ktery
oddeluje argument v prikazovem radku. Pri vstupu do  editoru  je
carka ',' brana jako separator; toto muze byt  zmeneno  prikazem
'S'  na  prvni  znak  uvedeneho  retezce  d.  Pamatujte,  ze  po
definovani noveho separatoru musi byt tento pouzivan dokud  neni
specifikovan jiny prikazem 'S'.
   Jako separator nesmi byt pouzita mezera.
Prikaz: V - Zobrazi okamzitou  hodnotu  N1,  N2,  S1  a  S2  tj.
standardni hodnoty  cisel  radku  a  retezcu.  Pouziva  se  pred
vkladanim prikazu pouzivajicich standardnich hodnot ke kontrole,
zda tyto hodnoty jsou vhodne.
Prikaz: W n,m - Provede vypis oblasti  s  cisly  radku  n  az  m
vcetne na tiskarnu. Pokud n a m maji standardni hodnotu, pak  se
vytiskne cely textovy soubor. Tisk se prerusi  po  poctu  radku,
nastavenem  prikazem  'K'  a  pokracuje  stlacenim   libovolneho
tlacitka.
Prikaz: X  -  zobrazi  dekadicky  pocatecni  a  koncovou  adresu
textoveho souboru. To je uzitecne  pro  ulozeni  textu  v  ramci
BASICu nebo chceme-li zjistit kolik pameti nam zbyva za textovym
souborem. GENS 3 ocekava, ze text zacina na  prvni  adrese  dane
prikazem 'X'  a  koncovou  adresu  textu  ma  ulozenu  v  pozici
TEXTEND, ktera je 'Start of GENS3 + 54'. Takze chcete-li  vepsat
textovy soubor (napr. vytvoreni MONS3), musite  prevest  textovy
soubor na adresu urcenou prvni adresou zobrazenou prikazem  'X',
zmenit TEXTEND tak, aby  obsahoval  koncovou  adresu  souboru  a
konecne vstoupit do GENS 3 teplym startem. Napr. vytvorili  jste
textovy soubor spravne  umisteny,  ktery  konci  na  (adresa  za
poslednim znakem konce radku) adrese #9A02. Dale  prdpokladejme,
ze jste nahrali GENS 3 od 24064, mate v  BASICu  provest  prikaz
POKE 24064+54,2 (#02) a POKE 24064+55,154 (#9A) a potom  spustit
GENS 3 pomoci  RANDOMIZE  USR  24125.  Nyni  muzete  pracovat  s
textovym souborem primo z editoru.
3.3 Priklad pouziti editoru
Predpokladejme, ze jste psali do nasledujiciho programu  (pomoci
prikazu I10,10).
    10 #h   16 BIT RANDOM NUMBERS
    20
    30 ;INPUT:  HL contains previous random number or seed.
    40 ;OUTPUT: HL contains new randon number.
    50
    60 Random PUSH AF     ;save registers
    70 PUSH BC
    80        PUSH HL
    90        ADD  HL,HL  ;*2
   100        ADD  HL,HL  ;*4
   110        ADD  HL,HL  ;*8
   120        ADD  HL,HL  ;*16
   130        ADD  HL,HL  ;*32
   140        ADD  HL,HL  ;*64
   150        PIP  BC     ;old random number
   160        ADD  HL,DE
   170        LD   DE,41
   180        ADD  HL,DE
   190        POP  BC     ;restore registers
   200        POP  AF
   210        REY
V programu jsou nasledujici chyby:
Radek 10: v prikazu bylo pouzito h misto H
radek 40: randon misto random
radek 70: PUSH BC zacina v poli navesti
radek 150: PIP misto POP
radek 160: chybi komentar (stylizacni chyba)
radek 210: REY misto RET
Rovnez dva dalsi radky ADD HL,HL by mely byt vlozeny mezi  radky
140 a 150 a vsechny reference na registrovy par  DE  na  radcich
160 az 180 by mely byt na registrovy par BC.
Opravy provedeme takto:
E10 ENTER                  pak_(space) C nasleduje H ENTER ENTER
F40,40,randon,random ENTER pak pomocny prikaz 'S'
E70 ENTER                  pak I_______(7 mezer) ENTER ENTER
I142,2 ENTER               142_______ADD HL,HL     ;*128
                           144_______ADD HL,HL     ;*256 a  'CC'
F150,150,PIP,POP ENTER     pak pomocny prikaz 'S'
E160 ENTER                 pak X___;*257 + 41 ENTER ENTER
F160,180,DE,BC ENTER       pak opakovane pouzit 'S'
E210 ENTER                 pak CI CI ____C T ENTER ENTER
N10,10 ENTER               precisluje text
Durazne  doporucujeme  projit  celym  vyseuvedenym  prikladem  a
skutecne pouzit editor.
PRILOHA 1 CHYBOVA HLASENI A JEJICH VYZNAM.
*ERROR* 1           Chyba v kontextu v danem radku
*ERROR* 2           Neznama mnemonika
*ERROR* 3           Chybne formulovany prikazovy radek
*ERROR* 4           Vicenasobne definovany symbol
*ERROR* 5           Radek obsahuje  nedovoleny  znak, tj.  znak,
                    ktery je v danem kontextu neplatny
*ERROR* 6           Nedovoleny operand
*ERROR* 7           Pouzity symbol je rezervovane slovo
*ERROR* 8           Neshoda registru (mismatch)
*ERROR* 9           Mnoho registru v prikazu
*ERROR* 10          Vyraz  pouzity  jako    8  bitovy  ma  vetsi
                    hodnotu nez 255
*ERROR* 11          Instrukce  JP  (IX+n)  a  JP  (IY+n)  nejsou
                    dovoleny
*ERROR* 12          Chyba v usporadani assembleroveho povelu
*ERROR* 13          Nedovolena predbezna reference  tj.  Pouziti
                    EQU pro dosud nedefinovany symbol
*ERROR* 14          Deleni nulou
*ERROR* 15          Preplneni pri nasobeni
Bad ORG!            Byl proveden ORG pro adresu, ktera  zasahuje
                    do  GENS,  textoveho  souboru  nebo  tabulky
                    symbolu. Rizeni se vraci do editoru.
Out of Table space! Vyskytne  se  pri  prvnim  prubehu,    pokud
                    tabulka symbolu ma  nedostatecnou  velikost.
                    Rizeni se okamzite vraci do editoru.
Bad Memory!         Zobrazi se, kdyz neni prostor pro dalsi text
                    tj. konec textu se blizi k ramtop. Stavajici
                    textovy soubor nebo jeho  cast  by  se  mela
                    ulozit na pasku.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+