- 21 - bnhx - konverze 8-mi bitove hodnoty na dve hexadecimalni cislice vstup: = konvertovane cislo = adresa pameti, kde se ma vysledek konverze ulozit vystup: = adresa pameti za ulozenou dvojici znaku meni se: , bndc - konverze 16 ti bitove hodnoty na retezec decimal- nich cislic cislo je ulozene v pameti jako retezec ASCII zna- ku, predrazene 0 se vypusti vstup: = konvertovane cislo = adresa pameti, kde se ma vysledek konverze ulozit vystup: = adresa pameti za retezcem decimal- nich cislic meni se: , , , inkey - cteni jednoho znaku z klavesnice s automatickym opakovanim. Modul ceka, dokud neni stlaceno tla- citko. Po opetovnem volani vykonava automaticke opakovani, tj. podrzeni tlacitka ma stejny ucinek jako jeho opetovne tisknuti. Stisknuti tlacitka je indikovano zvukovym signalem. vstup: vystup: = ASCII kod stisknuteho tlacitka meni se: scan - ohmatani klavesnice. Modul zjisti, zda je nektere tlacitko stisknute vstup: vystup: = 0 kdyz neni stisknute, nebo pri nedovolene kombinaci tlacitek meni se: clear - vymazani obrazovky vstup: vystup: meni se: vse outchr - vypisuje znak na pozici oznacenou kurzorem a kur- zor posune doprava. Na konci radku prejde na novy radek,na konci obrazovky posune obrazovku nahoru. OUTCHR spravne osetri tyto ridici znaky: #19 - posun kurzoru vlevo, #18 - posun kurzoru vpravo, #0D - konceni radku a prechod na novy radek. Na obrazovce se kurzor nezobrazi (zabezpecuje to modul SETCRS), modifikuje se jen promenna CURSOR. vstup: = kod znaku vystup: meni se: - - 22 - cursor - adresa pameti, ktera obsahuje pozici kurzoru na obrazovce pro modul OUTCHR. Jsou to dva byty, v prvnim se uchovava cislo sloupce (0-31) a ve dru- hem cislo radku (0-23). setcrs - na puvodnim miste se kurzor (blikajici ctverecek) smaze a na pozici, kterou udava promenna CURSOR, se objevi. vstup: CURSOR = nova pozice kurzoru vystup: meni se: mrs - prace s dialogovym radkem. Modul vypise pozadova- ny text do dialogoveho radku, nacte vstupni text a podle pozadavku ho analyzuje na trojznakove prikazy. Vyvolanim tohoto modulu ma uzivatel k dispozici vsechny funkce, ktere jsou popsane v popisu prace s modulem MRS, tzn. ze na editovani textu je mozne vyuzit tlacitka CS+5,8,9,0 , vstup textu vzdy ukoncuje tlacitko ENTER. vstup: = cislo pozice v dialogovem radku, od ktere se ma vypsat text (0-31) = adresa vypisovaneho textu = delka vypisovaneho textu. Kdyz = 0, text se nevypisuje = 0, nic se necte, jinak se cte text z klavesnice a uklada se do bufru od adresy #FE00. = adresa tabulky trojznakovych pri- kazu. Kdyz =0, nacitany text se neanalyzuje. V tabulce nasledu- ji za sebou vzdy trojznakova zkra- tka a adresa obsluzneho programu. Tabulka je zakoncena binarni 0.Po- kud je pozadovana tato analyza,mo- dul nevrati rizeni, dokud uzivatel nenapise radek, ktery zacina pri- pustnym prikazem. vystup: = pocet nacitanych znaku bez ENTER. Nacitany retezec je ukoncen binar- ni 0. = adresa nacitaneho retezce. Pokud byla pozadovana analyza trojznako- vych prikazu, ukazuje na prv- ni znak za prikazem. = Kdyz byla pozadovana analyza troj- znakovych prikazu, obsahuje adresu prislusneho podprogramu. meni se: , , , mrs2 - umozni opravit text nacteny modulem MRS. Musi mu predchazet volani modulu MRS se ctenim retezce. - - 23 - vstup: Pouzije informace ziskane pri praci modu- lu MRS. Modul MRS2 se musi volat instruk- ci !!! JP MRS2 !!! vystup: stejny jako u modulu MRS meni se: , , , schent - vyhleda vstupni bod v knihovne. Da se vyuzit jako napr. jeden program produkuje data,ktere ma zpra- civat jiny modul knihovny. Pomoci SCHENT muze da- ny program najit tabulku v jinem modulu, kam ma ulozit data. vstup: = adresa retezce, ktery udava poza- dovane vstupni navesti. Retezec musi koncit binarni nulou. vystup: = 1 - chybna syntaxe, nebo v knihovne neni toto jmeno. Jinak = adresa jmena v knihovne. Na teto adrese je 6 znaku jmeno a dalsi dva znaky adresa, kterou toto jme- no oznacuje (napr. adresa tabulky, ktere jmeno je popsane jako ENT). meni se: , , , pntchr - vytisknuti jednoho znaku na tiskarne. Vysvetleni tohoto modulu viz oddil 2.4.5 Prace s tiskarnou vstup: = kod tisknuteho znaku vystup: meni se: invpix - invertuje znak obrazovky vstup: = radek (0-23) = sloupec (0-31) vystup: meni se: ii - seznam ilegalnich instrukci, viz oddil 2.7.4. Vyuziti modulu SYSMOD muze zpocatku delat urcite tezkosti, nebot v obdobnych systemech se nevyskytuje. Je to vsak velmi po- hodlny a silny prostredek, jak dokumentuje nasledujici priklad: Chceme vymazat obrazovku a v cyklu nacitat znak, zobrazit znak na obrazovku, dokud neni nacten znak !. ext cursor, outchar, inkey, clear start call clear ld hl,0 ld (cursor),hl loop call inkey push af call outchr pop af cp '!' jr nz,loop ret end - - 24 - Po prelozeni (prikazem asm) a spojeni (prikazem lnk) pro- gramu, je tento pripraveny k praci. Vidime, ze se nemusime sta- rat o adresy danych modulu, a program nemusime modifikovat, ani kdyz se system MRS zmeni. Zmeni se totiz odpovidajicim zpusobem i modul SYSMOD. Kdyz pozdeji chceme odstranit zavislost programu na syste- mu MRS, muzeme prikazem dis modulu EDI vlozit prislusne casti kodu programu MRS, jak to bylo jiz drive popsane. Proto je sou- casti teto prirucky vypis zdrojoveho programu nekterych modulu. 2.7 Ladici program 2.7.1 Uvod Ladici program se spousti prikazem dbg bez parametru. Na- vrhu modulu dbg byla venovana velka pozornost, protoze ladeni programu je nejcastejsi cinnost programatora. Po spusteni modul DBG vypise zakladni stavovou informaci do spodnich radku ve tvaru: x pcpc instrukce szapc aa bbcc ddee hhll xhxl yhyl spsp kde x - status. Je to jeden znak, kterym je uzivatel infor- movan o stavu ladiciho programu. Zpravidla je x me- zera. pcpc - hexadecimalni hodnota registru PC. instrukce - vytvori vypis instrukce, ktera se ma vykonat, v symbolickem tvaru. Hodnota adresove casti je vy- jadrena jako hexadecimalni konstanta. Toto pole je na obrazovce vypsane inverzne. szapc - indikatory (sign, zero, auxiliari cary, parity, carry). Prislusne pismeno znamena, ze odpovidajici indikator je rovny 1, jinak je na dane pozici znak - . aa - hexadecimalni hodnota registru A. bbcc - hexadecimalni hodnota registru BC (v tomto poradi). ddee - hexadecimalni hodnota registru DE (v tomto poradi). hhll - hexadecimalni hodnota registru HL (v tomto poradi). xhxl - hexadecimalni hodnota registru IX. yhyl - hexadecimalni hodnota registru IY. spsp - hexadecimalni hodnota registru SP. Zakladni informace se vypisuje vzdy do dialogoveho radku. Uzivatel vsak muze zabezpecit opis dialogoveho radku do obrazov- ky pomoci tlacitka L tak, jak je to popsane dale. 2.7.2 Zadavani hodnoty veliciny pro Ladici program Ve vsech pripadech, kdy uzivatel zadava hodnotu nejake ve- liciny, ma k dispozici tyto moznosti: - - 25 - - decimalni konstanta, - hexadecimalni konstanta, - navesti, - libovolna kombinace uvedenych trech prvku spojenych ope- racemi + nebo - s vyjimkou, kdy navesti oznacuje vstupni bod v knihovne. V tomto pripade musi byt navesti posled- ni clen vyrazu. Pritom na syntaxi zapisu jsou kladeny stejne pozadavky ja- ko pri psani symbolu v modulu EDI. Syntakticky nespravny zapis Ladici program odmitne zvukovym signalem a da moznost opravy. Kdyz uzivatel zadal hodnotu jako navesti, Ladici program nejdrive prohledne tabulku symbolu posledne prekladaneho zdrojo- veho textu a kdyz tam dany symbol nenajde, tak prohleda tabulku vstupnich bodu v binarni knihovne. Kdyz se ani tam dany symbol nevyskytuje, zazni zvukovy signal a je mozne chybny symbol opra- vit. Dana velicina ziska hodnotu prislusneho symbolu, tj. napri- klad registr PC je mozno nastavit na adresu libovolneho navesti v posledne prekladanem modulu nebo na adresu libovolneho vstup- niho bodu pomoci jeho symbolickeho jmena bez toho, abychom se museli starat o ulozeni programu v pameti. Na editovani vstupu muzeme vyuzit stejne prostredky jako pri praci s dialogovym radkem. Kdyz se odesle prazdny radek, prislusna velicina se nemeni (viz napr. prikaz pro modifikovani pameti M). 2.7.3 Prikazy pro Ladici program Prikazy pro Ladici program jsou jednopismenne. Po napsani prislusneho znaku se prikaz ihned vykona, neni tedy mozne opra- vit chybny prikaz. Odeslani znaku, kteremu neni predrazeny zadny prikaz, nevykona nic. Nasleduje popis prikazu. Zpusob jejich pouziti viz v oddi- lu 2.7.4. r - prikaz pro nastaveni hodnot registru. Po jeho napsani systen ocekava jmeno registru, tedy jeden ze znaku p, a, b, d, x, s. Kdyz napiseme jiny znak, Ladici program reaguje zvukovym signalem a ocekava dalsi prikaz. Po napsani spravneho jmena registru se dialogovy radek vymaze, vypise se: rn: kde n je jmeno registru, ktery se bude modifikovat. Modifikovat muzeme jen 16-ti bitove registry (napr. ne pouze C registr, ale vzdy celou dvoujici BC). Kdyz se odesle prazdny radek, hodnota prislusneho registru se nezmeni. Pokud uzivatel iniciuje registr P, automaticky se iniciuje i registr SP na hodnotu, kterou mel pri spu- steni Ladiciho programu. i - prikaz pro nastaveni bodu preruseni. Ladici program o- cekava hodnotu zadanou dle bodu 2.7.2 a na adresu da- nou touto hodnotou nasadi bod preruseni. Potom do dia- logoveho radku vypise: n: - - 26 - a ocekava decimalni cislo, ktere udava, kolikrat musi program prejit pres bod preruseni, nez se jeho prova- deni zastavi. Pokud se hodnota nezada, program se pre- rusi ihned, jakmile narazi na bod preruseni. Kdyz se zada napr. hodnota 1000, tak se program prerusi tehdy, kdyz se narazi na bod preruseni po 1001. Krome toho se pri kazdem pruchodu bodem preruseni testuje tlacitko BREAK a je-li stisknuto, vykonavani programu se pre- rusi. Pri preruseni se rizeni odevzda Ladicimu progra- mu, ktery pokracuje vypisem zakladniho stavu a citanim prikazu. Pri vypisu zakladniho stavu je na prvni pozi- ci znak 'B' (BREAK), ktery signalizuje, ze program na- razil na bod preruseni. Ve vykonavani programu je moz- no pokracovat bud po odstraneni bodu preruseni prika- zem O, nebo po vykonani jedne instrukce prikazem S (viz dale). V druhem pripade bod preruseni v programu zustal a kdyz program pri dalsim vykonavani na tento bod narazi, opet se prerusi jeho vykonavani. Pocet pruchodu bodem preruseni musime opet specifikovat, protoze zustal nastaveni na hodnotu 0. Uzivatel muze specifikovat nejvise jeden bod preruseni. Pri zadani noveho se stary automaticky vy- maze. Na bod preruseni program reaguje bez ohledu na zpusob, jakym byl program spusteny, ale pri prikzu G jen pro programy, ktere nejsou v pameti ROM. Bod preruseni je realizovany pomoci instrukce RST 10 s vyuziva systemovou promenno CURCHL na adrese #5C51 (23633). Pro uzivatele je tedy tato promenna pri praci s Ladicim progamem nepouzitelna. o - prikaz pro odstraneni bodu preruseni. g - prikaz na spusteni programu. Registry se iniciuji na hodnoty, ktere je videt pri vypise zakladniho stavu, a program se odstartuje. Pokud program uspesne probehne az po posledni instrukci navratu, rizeni se vrati La- dicimu programu. Registr PC je nastaveny opet na zaca- tek programu, tj. program je mozno opet spustit pri- kazem g. CS+G - prikaz ma stejnou funkci jako prikaz g, ale vykona- vani programu se prerusi pri prvnim pruchodu bodem preruseni bez ohledu na pocet pruchodu. **************************************************************** System MRS bezi se zakazanymi prerusenimi a praci s klavesnici vykonava vlastnim modulem. Proto po prikazu g musi uzivatel sam vykonat instrukci EI, pokud je to potrebne. Pri navratu do Ladi- ciho programu se opet preruseni zakaze. Upozornujeme, ze pri po- volenych prerusenich musi byt registr IY roven #5C3A a na tuto hodnotu ho Ladici program iniciuje. **************************************************************** - - 27 - s - prikaz na vykonani jedne instrukce. Vykona se jedna instrukce s hodnotami registru, ktere jsou videt pri vypisu zakladniho stavu. Po jejim vykonani se rizeni vrati Ladicimu programu. Vypis zakladniho stavu zacina znakem 'S' (STEP), ktery signalizuje krokovaci rezim. Jestlize si uzivatel zabezpeci opis dialogoveho radku do obrazovky (tlacitkem l), ziska podrobny prehled o vykonavani sveho programu. Pred vykonanim se instrukce analyzuje, zda nepo- rusuje nekterou uzivatelem stanoveou ochranu (viz od- dil 2.7.4). Analyzovani instrukce typu LDIR muze trvat az 20 s, je to mozne odstranit krokovanim pomoci klavesy CS+S (viz dale). Krokovat je mozno i programy v pameti ROM. CS+S - Krokovani programu s ignorovanim ochran (viz od- dil 2.7.4). c - prikaz ma stejnou funkci jako prikaz s, ale krokovani programu se vykona tak, ze za instrukci se vlozi bod preruseni a instrukce se vykona normalne. Tento inter- ni bod preruseni nesouvisi s bodem preruseni zadanym uzivatelem krome pripadu, ze bod preruseni zadany uzi- vatelem je v podprogramu, ktery krokujeme prikazem c. V tomto pripade se vykonani programu prerusi v podpro- gramu, ale uz ne po vystupu z neho. Vyznam prikazu je predevsim v tom, ze odladene podprogramy volane instrukci CALL se vykonaji v nor- malnim rychlem rezimu. Podobne jako pri prikazu i (IN- SERT BREAK) se funkce neda pouzit na programy v pame- ti ROM. Stejne jako pri krokovani prikazem s se instruk- ce pred vykonanim analyzuje. CS+C - ma stejnou funkci jako prikaz c, ale instrukce se vy- kona i kdyz analyza zjistila naruseni nektere ochrany. CS+J - timto prikazem se instrukce vypisuji, ale nevykonava- ji (v tomto pripade se samozrejme ani nic nekontrolu- je). Registr PC se nastavi na dalsi instrukci. Prikaz CS+J slouzi k preskoceni instrukce, ktera se nema vykonavat (napr. chcemem ukoncit predcasne prikaz cyklu, tj. nevykoname instrukci DJNZ, ale preskocime ji prikazem CS+J). t - program se vykona ve sledovacim rezimu.Jedna se vlast- ne o opakovany krokovaci rezim. Ladici program kazdou instrukci pred vykonanim interpretuje a zjisti, zda je pripustna. Pripustne instrukce vykona, vypise zakladni stav do dialogoveho radku, ale bez vypisu instrukce v symbolickem stavu, protoze tuto instrukci ve sledova- cim rezimu nestihne uzivatel v dialogovem radku sledo- vat. Jestlize pozada o opis dialogoveho radku do obra- zovky (tlacitkem l), zacinaji tyto radky znakem 'T' (TRACE), ktery signalizuje sledovaci rezim, a obsahuji take vypis instrukce v symbolickem tvaru. Popis mozno- sti, ktere poskytuje sledovaci rezim viz oddil 2.7.4. - - 28 - n - program se vykona ve zrychlenem sledovacim rezimu. Moznosti tohoto rezimu jsou stejne jako pri prikazu t, ale po vykonani instrukce se nevypisuje zakladni stav, a tim se znacne urychli vykonavani sledovaneho progra- mu. w - prikaz umoznuje nastavit pametove okna a okna pro re- gistr PC. Po zadani prikazu Ladici program ocekava znak 'M' (MEMORY), kdyz se budou definovat pametova okna, nebo znak 'P' (PROGRAM COUNTER), kdyz se budou definovat okna pro registr PC. Kdyz uzivatel napise jiny znak, Ladici program prejde do zakladniho stavu, jinak vypise hodnoty prislusnych oken - ctyri dvojice hexadecimalnich cisel, kde kazda dvojice definuje jed- no okno. Kdyz chce uzivatel zmenit nektere z techto osmi cisel, zada jeho poradove cislo pomoci cislice v rozsahu 1-8. Po napsani jineho znaku prejde Ladici program do zakladniho stavu, jinak ocekava hodnotu hranice, ktera se zada podle oddilu 2.7.2. Po jejim zapsani prejde Ladici program do zakladnih stavu. Funkce pametovych oken je vysvetlena v oddilu 2.7.4. p - prikaz na zobrazeni pametoveho okna. Ladici program vypise do dialogoveho radku text: p: a ocekava hodnotu dle zasad popsanych v oddilu 2.7.2. Potom vypise: l: a ocekava desitkove cislo. Adresa definuje zacatek pa- metoveho okna a cislo l udava jeho delku ve ctvericich bytu (tj. pocet radku vypisu pameti). Kdyz se v libo- volnem sledovacim rezimu zmeni obsah tohoto pametoveho okna, zobrazi se na obrazovku vypis pameti od dane ad- resy l radku (viz tez prikaz d). m - prikaz na modifikovani obsahu pameti. Ladici program vypise do dialogoveho radku text: m: a ocekava hodnou dle zasad popsanych v oddilu 2.7.2. Potom do dialogoveho radku vypise adresu a obsah 4 by- tu od teto adresy vcetne. Vypis je jednak hexadecimal- ni, jednak znakovy. Uzivatel muze modifikovat pamet zadavanim hexadecimalnich konstant a vyuziva nasledu- jici ridici tlacitka: - CS+5 - prechod na predchazejici znak. Mezery, ktere oddeluji byty, se automaticky preskakuji. Kdyz je kurzor na prvnim znaku, posune se vy- pis o jeden znak smerem k nizsi adrese. - CS+8 - prechod na nasledujici znak. Mezery, ktere oddeluji byty, se automaticky preskakuji. Kdyz je kurzor na poslednim znaku, posune se vypis o jeden znak smerem k vyssim adresam. - CS+1 - zobrazi a modifikuji se predchazejici 4 byty. - CS+4 - zobrazi a modifikuji se nasledujici 4 byty. - - 29 - - CS+SS - byty modifikovane na obrazovce se vrati do puvodniho stavu. Vseobecne do pameti se zapi- se modifikovana ctverice znaku az tehdy, kdyz se posunou po obrazovce tak, ze nektery z nich zmizi z obrazovky. - ENTER - modifikovane byty se ulozi do pameti a rize- ni se vrati Ladicimu programu, ktery vypise zakladni stav. - ASCII znak - representujici hexadecimalni cislici (0-9 nebo A-F) prepise cislici, na ktere je kurzor. Kurzor se posune o jednu pozici, pri- cemz mezery se preskakuji. - mezera - tento znak je akceptovany, jen kdyz je kur- zor na prvnim znaku dvojice. System po nem o- cekava dalsi znak. Jeho kod se ulozi na misto oznacene kurzorem. - staceni jineho tlacitka je chyba. Zazni zvukovy sig- nal a nic se neprovede. Prikaz m (a prikaz d) nejcasteji vyuziva tu vlastnost vstupu, ze odeslani prazdneho radku nezmeni uvedenou hodnotu, tj. kdyz napr. prikazem m:#4000 prohlizime pamet od adresy #4000, tak kdyz nejblizsi prikaz m: ukoncime hned tlacitkem ENTER, opet se zobrazi pamet od adresz #4000. d - prikaz na zobrazeni pameti. System vypise do dialogo- veho radku d: a zobrazi na obrazovku hexadecimalni a znakovy vypis 64 bytu od adresy, kterou zadal uzivatel. Kdyz odeslal prazdny radek, tak se pouzije naposledy zadana adresa. Vypis ridi uzivatel temito tlacitkz: CS+6 - zobrazi se nasledujicich 64 bytu, CS+7 - zobrazi se predchazejicich 64 bytu, a - specifikuje znakovy retezec (viz dale), h - specifikuje retezec hexadecimalnich konstant (viz dale), ENTER - rizeni se vrati Ladicimu programu. Jine klavesy jsou povazovany za chybne. Kdyz uzivatel pouzije prikaz a resp. h, system vy- pise do dialogoveho radku a: resp. h: a ocekava retezec znaku resp. hexadec. konstant. Pri jejich zadani je mozne opravovat chyby tlacitkem CS+0, retezec se ukonci tlacitkem ENTER. Pri chybne zadanem retezci zazni zvukovy signal. Editor vyhleda retezec v pameti a udela jeho vypis na obrazovku. Neni-li dany retezec v pameti, zazni zvukovy signal. Kdyz se pri hledani retezce zjisti ko- nec pameti, system automaticky pokracuje od zacatku. Kdyz se zada prazdny retezec, system vyhleda novy vyskyt drive zadaneho retezce. Pokud jeste nebyl rete- zec zadany,hleda se vyskyt prvniho bytu vypisu pameti. a - prikaz na zpetny preklad s vypisem na obrazovku. Do dialogoveho radku se vypise text a: - - 30 - a na obrazovku se zobrazi zpetny preklad 21 radku od adresy, kterou zada uzivatel. Opetovnym stisknutim tlacitka a se vypise vzdy dalsi radek zpetneho prekla- du. Stisknutim tlacitka ENTER se system vrati do za- kladniho stavu. x - toto tlacitko slouzi jako prepinac. Jeho stisknutim vymenime sadu registru za registry alternativni, tj. vykoname instrukci EXX i instrukci EX AF,AF'. l - timto prikazem urci uzivatel, kolik radku se ma zobra- zit na obrazovce. System do dialogoveho radku vypise n: a ocekava pocet radku. Pred vypisem zakladniho stavu se potom posouva obrazovka o 2 radky nahoru, a tim se predchazejici stavovy radek opise do obrazovky, pri- cemz se na to vyuzije n dvojradku obrazovky. Kdyz n=0, pouziva se jen dialogovy radek, ale v rezimu T se vy- pisuje i instrukce ve zdrojovem tvaru. Kdyz se misto cisla stiskne ENTER, tak se tato vlastnost zrusi. q - rizeni se preda systemu MRS. 2.7.4 Ladeni programu Sledovaci rezim (prikazy t nebo n) je velmi silny prostre- dek na ladeni programu. Pri jeho navrhu byl sledovany hlavni cil - uzivatel ve sledovacim rezimu nesmi ztratit vladu nad svym programem. Kontrolu nad programem muze ztratit trojim zpusebem: - prepsanim pameti, - vykonanim zakazane instrukce, - zacyklenim programu. Ladici program tedy musi poskytnout uzivateli moznost chranit libovolnou cast pameti pred prepsanim, filtrovat nektere instru- kce a umoznit preruseni programu. Toto lze dosahnout nasledovne: - ve sledovacim rezimu neni mozne prepsat adresy pameti, ktere se nachazeji v nekterem pametovem okne. Kdyz tedy mame nektere pametove okno nastavene jako interval aaaa bbbb, tak adresy od aaaa do bbbb vcetne neni mozne ve sledovacim rezimu prepsat. Pri pokusu o jejich modifiko- vani se rizeni vrati Ladicimu programu, ktery vypise za- kladni stav. Tento vypis zacina znakem 'M' (MEMORY), a tim signalizuje, ze doslo k pokusu modifikovat chranenou pamet. Kdyz uzivatel spustil program pomoci prikazu Editoru ald, je prvni pametove okno iniciovano tak, ze je chra- neny zdrojovy text uzivatele. - v zakladnim modulu knihovny je 16 bytu, pomoci nichz u- zivatel muze definovat ilegalni instrukce. Kdyz pri vy- konani programu prikazem s, c, t nebo n Ladici program zjisti, ze se ma vykonat instrukce, ktera je v tomto seznamu, vykonavani programu se prerusi a do dialogoveho radku se vypose zakladni stav, pricemz se nastavi sta- tus 'I' (ILLEGAL). Uvedenych 16 bytu je pod vstupnim bodem ii, tj. uzi- vatel definuje ilegalni instrukce normalne prikazem mo- dify (m:ii), seznam ilegalnich instrukci musi byt zakon- cen instrukci NOP (00), ktera tudiz nemuze byt ilegalni. - - 31 - Instrukce se zadavaji jednim bytem (operacnim zna- kem), krome instrukci s prefixem #ED, ktere se zadavaji dvema byty (tj. #ED a jeste jeden byt). Jako ilegalni instrukci muzeme definovat celou tridu instrukci s pre- fixem #CB (rotace, posuny, bitove operace), instrukce, ktere pracuji s registrem IX (prefix #DD), ale i napr. konkretni instrukci LDIR (byty #ED, #B0) nebo instrukci EXX (byt #D9). V zakladnim modulu SYSMOD je jako ilegalni definovana instrukce HALT (#76). Instrukce definovane jako ilegalni je mozno vykonat prikazy CS+S nebo CS+C. Krome ilegalnich instrukci definovanych uzivatelem se stejnym zpusobem vyhodnocuji byty, jejichz kombinace ne- ma pro procesor Z80 vyznam (napr. byty #DD, #FD). V tom- to pripade je tez status ve vypisu Ladiciho programu 'I' (ILLEGAL), ale krokovanim s vypustenim kontroly (prika- zy CS+S nebo CS+C) se takovato ilegalni instrukce nevy- kona, ale preskoci se jeji prvni byt. - pred vykonanim kazde instrukce v sledovacim rezimu zjis- tuje Ladici program,zda nebylo stisknuto tlacitko BREAK. Pokud bylo, vykonavani programu se prerusi a Ladici pro- gram prejde do zakladniho stavu. Timto tlacitkem je moz- no prerusit program behem vykonavani a pokracovat dale krokovanim nebo spustit normalne program prikazem g. - obdobnou funkci jako pametove okno maji i okna pro re- gistr PC. Jejich vyuziti neni tak kriticke, jako vyuziti pametovych oken, nebot Ladici program muze sledovat nebo krokovat i programy v pameti ROM, tzn. ze i kdyz ma re- gistr PC jakoukoliv hodnotu, neznamena to ztratu kontro- ly na programem. I tak je pouziti oken pro PC uzitecne, uzivatel pomoci nich muze realizovat dalsi body, ba do- konce cele oblasti preruseni. Na rozdil od pametovych oken, ktere zakazuji vykonani instrukce, okna pro regi- str PC je naopak povoluji, tzn. ze instrukce se vykona jen tehdy, kdyz hodnota registru PC padne aspon do jed- noho okna. Pri spusteni programu je prvni okno pro regi- str PC iniciovan na interval 0000-FFFF, tj. registr PC muze nabyvat jakekoliv hodnoty. - - 32 - Kapitola 3 - ZAVER System MRS byl vyvinuty na Ustavu aplikovane kybernetiky a jeho vlastnikem je tento ustav. Pro pocitace ZX Spectrum je volne pristupny, ale distribuovat je povelene jen verzi oficial- ne schvalenou a jen za podminek uvedenych v Copyright (program zadarmo). Stejne tak je zakazano prenaset program na jine systemy bez souhlasu Ustavu aplikovanej kybernetiky. Autori MRS jsou o- chotni prenest programove vybaveni do jineho technickeho pros- tredi za predpokladu, ze dany pocitac bude zapujcen na Ustav ap- likovanej kybernetiky, a ze je moznost prenosu souboru do tohoto pocitace, at uz pres seriovy nebo paralelni interface, nebo ne- jake nosne medium. Jeste mi pripada mila pozornost vzpomenout vsech, kteri se na tvorbe systemu podileli, nebot jinak z toho nic nemaji. Ivan Jedlicka navrhl system a realizoval moduly EDI, LNK a LIB. Igor Titka realizoval modul DBG. Milan Tvarozek realizoval modul ASM a ty casti modulu EDI, ktere souvisi s prekladacem (vytvareni zhusteneho formatu zdro- joveho textu a jejich prevod do textoveho tvaru,zpetny preklad). Ivan Fedorko realizoval modul prace s klavesnici. Peter Ondris a Martin Prikryl realizovali paralelni inter- face pro ZX Spectrum, a tim vlastne umoznili, aby se MRS do po- citace vubec dostal. Miroslav Adamy nasel v pracovni verzi vic chyb nez kdoko- liv jiny. Robert Vasicek dal uzivatelske prirucce jeji pekny tvar. No a samozrejme i vedeni Ustavu aplikovanej kybernetiky, ktere celou praci umoznilo. Pripadne dalsi informace o systemu a i o dalsich realizo- vanych programech muze podat RNDr. Ivan Jedlicka Ustav aplikovanej kybernetiky Hanulova 5/A Bratislava 8 4 4 1 6