7
Z
2
—1—
PROLIETHEUŠ
systém
Ladicí Trocha
sebechvály
aneb odkud
to
pFiFlo
brzy človik na Spectru Při psaní programů v assembleru musí se vejít do pamiti narazí na problém velikosti památi možno niiak pokud a assembler, zdrojov text, pFeložen‘ kód kouoit eeni. si bud prostredek pro ladáni‘. Nabízejí se dvá toto řeseni má mal4 zádrhel, chce neco vjtsiho než je Spectrum maljm množstvím která tím s nebo získat programy, to peníze jako Jápady úsporná zacházejí pameti, která jek dispozici, a lid pro silná kostrbatá jsou kompilace přímo z pásku jsou prakticky microdrive ani jednotku nevlastníci ani disketovou nepouži telná. -
-
—
a
Rozhlédne—li se uživatel kolem sebe na nabídku ladících prostředků zjisti následující fakta: EENS
-
assemblerů
neistarii a neirozEíFenájčí assembler, zdroiovťj pomár mezi text je uložen jako textovy soubor, 9:1, dálkou zdrojového textu a překladu je asi vymyslet, kter lze si snad nejhoréi editor, pTekládá assembler je dlouh‘j eFibližná 9,5 kĎ, neustálá je obtežujjcí pomárni rychle, silná hodnota implicitní kde Table size:, otázka space‘ table ‘No hláéeni obvykle nestačí a po vetéi tabulkou, je nutno kompilaci opakovat s práci při každá kompilaci také dotaz ‘Option: zbytacne neurychluje, prograrm je relokovateln‘,, programu k zvyéuje, velmi hodnotu což jeho s ním práce bohužel MbNS existuje monitor hesa není pohodlná oro uživatele nepoužívající poskytuje monitor soustavu, ani služby, které dlouh‘ je monitor doby, už nejsou na úrovni S <Ď a je relokovatelny -
RoziíFená verze CENSu vylepsaná verze programu GENE, EENSJE (Lamač) automatickou Editor 5 Screen Full obsahuje program je 12 <Ď tabelací a 42 znaky na řádek, dlouh) a zachoval si relokovatelnost -
-
—
bCP
—
má GENS3E jako podobná fldámkovo roziičeni na rull Screen Editor s automatickou tabelaci, rádku je 64 znaků thorií čitelnost), program už není relokovateln -
u tohoto programu f‘ibSM (llbCPQS, PSSEMĎLER 99) estli je nebo neni od by se dalo polemizovat, velká má viak ním s programu GENE odvozen, (bohužel i patn‘ich), prvků množství shodn‘ich q, kS, relokovateln‘ 11 není je dálka programu tabelací, má rull Screen Editor s automatickou má křížová reference, neznámá instrukce, zná žádná revoluce, není celková lze Fíci, že to zdrojové text je uložen steini neefektivná jako u programu GENE —
zdrojov‘ nereiokovateln.i. Program ie assembler programu u stejni text zabírá více místa nez zadávat delií nutno je GENE, pčed kompilací Ecreen Editor, posloupnost parametrů, má rull Ci modifikaci) chyby na rozdíl od programu GENE nevypisuje čísly (tzn mít po ruce tabulku) ale přímo slovy (práce je pohodlnéjsí)
Laser
—
má program ie relokovateln‘. Cenius Pssembler pro (s lopatou na komára), 29 kS dálku kolem disketová bez použi teln svou dálku je téčko jednotky nebo microdrivů, existuje k námu La;er pameti Cenius Monitor, oba programy se vsak do —
-2— tárn
najednou
nevejdou
se kterj první assembler, tlemory Resident Syptem je snaží uložit eíektjvne zdroiov‘i teet. pomer 61 (tedy při stejná dálce pojme dvakrát oko]o je dlouh‘ program tak dlouhů zdrojovi test). (existuji 3 verze), 11 K a není relokovatelná už instrukce a kontroluje má rull Screen Editor při vkládání (odstraní se mnoho chyb). ve snaze ne nekterž zkrátit rdrojovú text byla pouzitz sayimalne 255 návesti, prilis sl.astná omezení dva operandy maximálnů ve vrazu se smí použít zápis binární pouzit a jeden operátor, nelze zabiji doslova omezení první ucel (zvláátá dokáze dobr4 nápad), rozpornú je taká monitor, text pi trasováni hlídat assembler a zdrojovj před náhodnúm přepsáním, bohuzel vsechny vjpisy jsou v sestnáctková soustave, v monitoru se lze tabulce návástí ‚v existující na odkazovat na symbolů, při psaní MRS byl zrejmá pozadavek krátkost přecenán (program jedloutig 1? k6) ale na úkor komfortu obsluhy i mozností -
—
PI1
11 1<6 není dlouhú. je R.C. od proqram zdrojová relokovatelni‘ má rull Screen Editor, text ukládá v komprimovaná formá (pomerb-6-1), pri‘jemnou má na rozdíl od předchozích editorů tom po kompilaci zůstává kurzor na vlastnost vstupu do (pri mistá, kde byl před kompilací na zacátek). editoru nemkáce ani na konec ani kazdou pred kompilaci assembler taká umí při (call, jp, ret) programu instrukci řidici bůh užiterná SREO)< vložit volání tastu klávesy (lze zastavit prooram, při ladůni bez monitoru kousnul) která se zacyklil (tzv
-
-
—
MON,
jsou 2 1<8, oba a 7,5 monitory, dlouhá MON? ruáná i relokovatelná, umí krokovat instrukce automaticky (5 vypisováním o každá instrukci i velmi rychlá), vypisovat pamd, menit bez náj obsah pamůti, plnit a presouvat bloky, lze taká budou míru nadefinovat oblast obrazovky, kam vyrisy (souvislá úsek řádků na obrazovce) -
-
-
VQSt
monitor dlouhá L. 6 (FIkOMON, MILIMON, MIKROMON) původni byl KD, umístinú v obrazovková pamůti ho lze zivotii, uržen ro hledání nekonežnách v závereěná fázi použít i při ladení programů verze nová Existuje v mista pamiti málo kdy je nazvaná OEVPSt. vylepšená o dalái sluzby, tento na nemá program vůak na rozdíl od předchozích existuje i svčpdomí tP.? nábrž moje maliřkost, v pamůti Pro mistů zvolenám na verze Pracující zajímavost: program OEVOSJ je dlouhá asi L. 6 1<5 a jeho zdrojov text v assembleru PROME1HEUS má dálku kolem 16 1<5 -
—
názory Uvedená přehled ukazuje autorovi známá stav a jeho použivaná na dostupná programy. Z uvedenách programů jsou Easto komb i nace: MONS CENS CENS MON (MON?) 026 MONS Memory Resident System Laser Cenius -
vyrobit Při posouzení dostupnách programů vzniká myřlenka a programů program, která by spojoval váhody vsech predchozích nevhody. neobsahoval jejich Nejdůležitůjři jsou
dvá
assembleru
co
a
vlastnosti,
nejefektivnáj
monitoru do
která
uloženi
jednoho
by
taková program mát
zdrojováhc
cetku,
tak.
textu a mohl
abu
mít
spojoní monitcr
—3— existující používat nQktero podproqramu z assembleru a používat tabulku sumbolii pri virisech. Froto vznikl tento proeram. za vznikal flssembler a monitor, ladící system PRDPIE1HCUS Program CCN pomoci proqramů C[N3r, CCNS 3 1, tiby, MQli2 a Vfl) první odlad,t podařilo než se doby, té do použjván byl vyleesováni daléí provozuschopnou verzi assembleru FRQME1WEUS. sám byl pFekládán assembler verzi na stari vždy se provádélo sebou. monitor vznikl úplné od začátku na assembleru PROME)HEUtH a KD 6D kolem zdrojovi text v CENS byl dlouhi rro srovnání sekund, 4D byl tedy nutne rozdélen na dva, preklúdal se celkem text zdrojovi se FROMETHEP Po pretazeni zdrojového textu do na tabulku místa zkrátil na polovinu (2D KD), odpadla pol5eba pamiti do veéel cqmboů u obou cástí asi po 3 KD, text se tedy a pracovní tabulky jsou assembleru kódu najednou (asi S KD byl místa, které nebyla ve zdrojovém textu). Celú zdrojovi text nyní pFeložen za 3 sekundy (tedy 2 KD!s), -
-—
-
Nejdůležitéjži
ladicího
vlastnosti
systému PRDMEiI-IEUS
S KD monitor assembler, délka: Ii KD (celkem lb KD. monitor lze odpojit a neužívat)
-
a
celĽi proeram je relokovateln.. na systému Spectra
-
-
a
textem
pomér mezi zdrojovim je 3—1,:) (CENS Dl)
-
závislti
není
p?eloženm kódem
tabulka symbolů je orsanickou částí zdrojovóho vzdy teytu, testu, vytvári se hned p‘ri psaní už že pro kompilaci tzn je ihned pFistupná není treba ani byte navíc -
-
—
rychlost kompilace nez G[NS
je
2-3
asi
KD/s
IPx
-
víc
editor je Fádkové orientovanú, má automatickou velmi je skrolováni a stránkování tabelaci bloků, a kopírováni rychlé, umožnuje mazání vyhledávání a nahrazováni řetézců. každý řádek je pri odeslání syntakticky kontrolován -
-
-
-
—
-
-
-
obvyklé kazetové operace možnost vyhrát i prihrát kus zdrojového textu
—
Qvr, vcRlry, Lobu, (na libovolné místo)
CEN umožéuje nahrát zdrojov péíkaz ve formátu assembleru CENS (tlPSli) zdrojová
monitor
chránící
nikolik
trasovacích
definovat možnost Etení nebo behu
text
a
ladící
teet
ve
systém
režimů se
okna
možnost zcela ovlivnit celního panelu, počet položek
zákazom
složení, a způsob
zápisu,
tvar a polohu véech vpisu
Easovou zjistit monitor umí krokováni pH cykly počítá nárocnost krokovaného proqramu técka) procesoru (tzv -
vlastnosti jsou Detailnč popsány v dalsim textu.
a
možnosti
tohoto
proeramu
—4-ladícího
Instalace
II.
systámu
Na kazeti je program uložen asi jako CODE blok dlouhú 12522 bytů obsahuje 5022 bytů monitoru. 11202 bytů assembleru. a bytů instalačního programu a 2500 tabulky relokacních adres. -
26222
v
Program lze nahrát na libovolnou adresu ar 47222 a od táto adresy spustit CLCPR
adr-1
L000
Po spučtini se následující informace
‘CaDE
objeví
adr
rozmezí
RrINDDMJZE
instalační
(JSR
obrazovka
adres
adr obsahující
kde yyyy je adresa kam byl lnstalation address:yysx,c program nahrán tuto adresu je morno prepsat pomocí kláves R ar (COPS a ODLETE rozsahu adres na libovolnou adresu v St-1lrT2) 9 Na tuto adresu monitoru). 23296 až 49520 (23296 až 34520 bez kdykoliv bude PRDMC1HCUS umístin a od ní ho bude možno z 2flSlCu opit spustit. Umístíte—li programod !dresY 23296. nelze se jiz program systámová promenná vrátit do 8OSlCu prepíse RI3MTOP, adresu nastaven Ďudete—li používat instalaci na pod do DOSlCu bezpečne. nelze se již vrátit ladicí Umístíte—li systim tak, že pFepíše systámová prominná (tzn. na adresu nizsi ner 23753 ), nesmí Vaáe programy pourivat sluzby 6PSlCu (t,sk 1. v je znakú atd ) a povolovat módu Obvykle pI‘eruseni IN nejlípe použít pro instalaci adresu 25226. -
-
tlonitor‘res instalovat je možno buč celů systám ladicí klávesy nebo jen assembler, zminu volby docílíte stisknutím M Instalovat jen samotn. monitor není mozná protore používá mnoho podprogramů assembleru. —
Dále lze nastavit barvy, která bude assembler používat. Je klávesa a jas klávesa P, barva inkoustu to barvy papíru I rádek jeden klávesa tichto dvou barev je D. Při editaci vyznačen jinou barvou nastavení je obdobná, je nutná stisknout soucasne navíc COPS Sl-tlEL —
-
—
—
FRDMC1I-1EUS dvima psát umí dvojnásobne tlustým (může bit lápe obima typy písma klávesou O.
druhy a obvyklém písma pčepináni čitelná) mezi -
—
FF1 editaci vyeisuje assembler Ci disassembler) instrukce návč‘átj velkúmi nikdo malůmi písmeny a váak písmeny, je—Ii zvkl‘ pouzívat jen velká (jako DUND) nebo malá (MRS), písmena můre toto nastaveni zmini t klávesou C vs ledek je hned videt na instalacní obrazovce. —
Poslední je vlastnost možno systámu. kterou ladícího ovlivnit mn instalaci je klávesnicová echo mini ge klávesou X COPS jedním smerem a klávesami 5l-1IET druhim smerem X současná nastaveni je slyčet pri stisku libovolná klávesy —
-
Po nastavení požadovangch parametrů klávesu stisknžte program UNIER, zvolenou se na adresu, přesune pčepiái se absolutni adresy (relokace) a program se spustí. Tuto instalaci můžete erovádit při každim použití ladicího systímu (obvykle stačí jen stisknout UNTER) nebo si pozadovanou konfiguraci vyhrát na pracovní kazetu nejlápe následovná —
Připiáte
krátk
Program v
basicu:
I RQNDDMIZE USR adr:STDP 9999 CLIl-IR adr—1L000 ‘‘CDDE:RUN kam místo ‘adra ‘adr-1‘ dosadíte program) a na kazetu uložíte pomocí: SOVU Sl-IVE
‘PROMETHEUS‘ ‘Prometheus‘
LINE EDDU
9999: adr,lb(Il32
čísla
(11626
(adresa
bez
kde
monitoru)
je
-5konfiguraci Tuto adresa. bude kde ‘adr‘ opit místo budete spoustet a z basicu nahrajete pomoci obyčejnáho LO9D dobrá je jednoduše prikazem RUN. První rádek z tohoto programu PROrIETHEUS se bude spouštit příkazem RUN a nehrozí vložit vždy adr USR ‘RPNDOMIZE chyba, která by mohla vzniknout při psaní znacne můze o tom, ze funkce USR pouzitá se spatnúm argumentem nijak nutno uživatele není snad duševní pohodu narušit zdůrazř,ovat. -.
-
III.
‘
assembler PROrIETI4EUS 1.
editor
Qssembler obsahuje poflodln řádkový editor, kterú se hodni všechny taká V zadávají editoru SOSICu. se podobá editoru odpadá tedy nutnost neustáláho přecházení z editoru do příkazy je v jako editoru systámu a naopak spojená se ztrátou pozice umozřiuje bloková tomu u MRSu a rozšířenjch verzí QENSu. Editor a nahrazováni a vyhledávání mazání a přesouváni operace řetizce v textu. —
—
—
Oznaiení přistupov (přístupni) rádek ve v.pisu editainí jádek kurzor
-
úplná
řádek spodní
—
barevná odlišenů řádek,
je
na nim
stavov řádek obsahuje toto (zleva doprava): sdeleni nebo chybová hlášení informaci o nastavenám režimu (INSERT/OVERVRITE) adresu posledního bytu zdrojováho textu adresu posledního bytu oblasti ro zdrojovC, text, jakási obdoba RPMTOP v DPSICu -
—
—
-
SYTISOL klávesy provádí stisknutím Vkládání příkazů se rádku, prázdnám sditacním mn a odpovídajícího písmene znak (ani a za vlevo není zádnú ním tedy kurzor je úplná mezera). Nejsou-li tyto podmínky splniny, napíse se znak na daná se vypíše cebg gHlrTem, jsou-li splniny. klávese se SVMSOL provede se (nikterá ihned nebo slovo) příkaz (jako klířová skok na konec zdrojováho textu atd.). příkazy
SHIFT
-
znaků, na řádek lze zapsat maximálni 31 Zápis instrukce znaková), prvních S pozic je vyhrazeno pro návištj (maximálne S místa zbqvající a mnemoniku dalších S pozic je vyhrazeno pro na pouze psát mozno jsou vyhrazena Pro operandy. Poznámky je psát nelze stredník zvlástní rádek a to hned od zacátku za se Pokud nevešly). stejná se tam za by (ony komentáře instrukce nebo zvyknout bud nekomu zdá 31 znaků málo, nezbjvá mu nez si používat jinú assembler, I< tomuto omezení jsem dospil na základá nepíse znám zkusenosti svůch i svch přátel, támiř nikdo, koho (maximálne na papír s programem), komentáre do zdrojováho textu a prodlužuje neúmirni je to práce navíc a zdrojový text to má taká zpomaluje to preklad i nahrávání (to zv)ášti). Omezení svá svetlá stránky. zdrojov text je dobre citelnú a prehledn. —
—
—
je psát možno instrukce Mezerník automaticky tabeluje, návestí libovolne. malmi nebo velkůmi písmeny, program rozlisí rádek a zkontroluje vkládané řádek, najde—li chybu, ohlásí ji a nezaradi do veisu.
Edi tažní
klávesy:
—c
—
rnrS
SI-lIFT - I (EDIT) přenese do edita2njho řidku
CPFS
SHIFT - 2 (CDFS LDCI() zapini / vypjnú CPPS LDEk. ten pracuje trochu jinak nes obvykle, původni píše Spectrum při zapriutóm CPP LOCKu pouze velkž písmena, nyní funguje spise jako jakgsi invertor CCFS SHIrTu. kdyz je zapnut FOrS LOCK a není stisknut CPFS SHIFT pise Sc‘ectrum vejká Písmena, a je—li stisknut CE1FS SHIFT. píle Spectrum malá písmena
-
SHIFT 4 3 (TRUE VIDEO) na následující stránku
FOrS
Si-uri 4 L, (INV VIDEO) — na predcházející stránku
FORS
FORS
SHIFT
4
5
doleva
o
jeden
SI-lIFT
v
znak
SHIFT vpravo
(lipka
(lipka jeden
P o
vipisu
—
ve
posun rádku
kurzoru
posun přistupniho v4pisu
-
posun přistupnóho ve vipisu
doprava) znak v
posun kurzoru editacnim řádku
následující
-4
—
editačním
nahorú)
ve
přechod ve vpisu
doleva)
(lipka
7
4
na
přechod
—
SI-IIrT 6 (lipka dolu) Fádku na předchozí rádek
řádku
FORS
řkdek
—
CPPS
FORS
přistupov
rádek
COPS
SHIFT 4 poRuč e
P (FRRH) na předchozí
FORS
SHIFT kurzorem
13 (DFLCTE) a posun kurzor
—
vymaž přistupov řádek vymaž znak doleva
řádek
vlevo
před
SYM8DL SHIFT -‚ V př-epínmní režimů INSERT a DVERVRITE (písmeno nebo D ve stavovóm I rádku), stisku ři EDIT přepne se režim DVERVRITE a odeslání po vrátí se zpit rezim INSER1 chcete—li zkopjrovat jeden řádek, vyeditujte ho, přepnite na INSERT a vložte na pozadovaní místo, chcete—Ii úplni přepsat rádek, napiste teXt, prepnete na DVERVRITE a odellete -
‚
SYII6DL SHIFT 3 12 pri prázdnám FORS
vymazání rádku
editačního
řádku,
ne
SHIFT 4 SYMPDL SHIFT (EXTEND MDDE) nastaví okraj bloku přislusnost řádku k bloku je signalizována cernm ctvercem na deváté pozici, mezi návestím a instrukci oznacení je videt pouze ve vpisu, nikoliv pri hledáni nebo tisku, není rozlisen zacátek a konec. promram si pamatuje vždy dva okraje a při zadáni nového odstraní ten, co zadán byl drive a pridá novú okraj. chcete—ii nastavit DIok. nastavtQ jeden okraj do pristupového rádku, stisknete FORS SHIFT - S‘YMDL SHIFT nastavte druhé okraj bloku do pristupového rádku a stisknete FORS SHIFT 4 SYMDDL SHIFT —
‚
ENTER odeslání instrukce nebo příkazu. odesláni instrukce má za následek její syntaktickou kontrolu a zarazeni do vpi5u — podle rezimu (1/0) se bud zaradi za instrukci v pristupnóm řádku nebo ji přepíle -
SY7IĎDL SHIFT 4 E jdi na konec zdrojového te.tu. jde o příkaz, kter-j se ihned provede, je ho tedy nutno zadat pri prázdném editacním řádku —
SYMDL
SHIFT
-
K
—
jdi
na
začátek
zdrojového
provode, jde o pFíkaz, který se ihned tedy nutno zadat ři prázdnám editacnim
textu je ho rádku
SYMĎDL SHIFT H prepínání vjpjsu čísel mezi desítkovou a sestnáctkovou soustavou, ovlivní vpisy ve stavováni ridku a v tabulce symbolů -—
F-íkazy pro bloková operace: CDPY
(SYt1DL SHlrl 4 C) pFed p?ístupov řádek do sebe
DELETC (SYMDL SHIFT zdrojovóho textu
4
—
0)
—
—
p?enese nastaveni blok nelze kopírovat blok vymaže nastavenů blok
Příkazy Pro vyhledáváni a nahrazování FIND
Fetizců:
vyhledávání (viz dále), (SYrIDDL SHIFT 4 fl nerozlisují se malá a velká písmena, není—li retezec nalezen, zůstane vpi5 na místi —
REFLPCE
(S‘VMDDL
Vyhledávání
SHIFT
Z)
—
zamiřiování
Fetizců
Fetázců:
FIND sxXxxX vyhledání řetizce zacátku zdrojováho textu
xxxxx‘
FIND
řetizce od
-
vyhledání naposledy zadanáho ni zacátku zdrojoviho textu -
FIND bxxxxx bloku od
vyhledání Fetzce jeho od začátku bloku -
‘xxxxx
vyhledání naposledy zadaniho FIND b v bloku od zacátku bloku
v
?etzce
-
FIND
od
:xxxxx vyhledání Fetizce ‘xxxxx‘ od rádku, kterq je právi pFístupn buč do konce zdrojováhó textu nebo do konce bloku toto v prípade. ze posledne byl prohledáván blok —
—
FIND,— vyhledáni naposledy zadanáho Fetizce od rádku, kter je prává př-istupn bu do konce zdrojováho textu nebo do konce bloku, opit to závisí na posledním způsobu prohledávání FIND b: tímto příkazem se lze dostat okamiti (za dvojtečku nutno zapsat na zacátek bloku jednu mdzeru!) Příklady
-
-
chci vyhledat všechny výskyty návůití ‘kPREL‘. zadám ‘FIND s:karel (nerozliiují se malá a velká), po nalezeni prvního vjskytu zadám pokadá jen ‘FIND pro nalezeni dalsího. jakmile se po zadání FIND‘ jen obnoví na jedná vúpis steinům miste, se o poslední vgskyt retizce kPRUL‘ chci
se oniit dostat na první
vskyt
‘retizce
kQRFL‘,
-8zadám -
Jen
vskyt
v poli pouze KPREL chci vyhledat výskyt náváští jak se způsob je nejrychlejsj (toto návi;tj zadám místo), pozadovaná na ve v‘pisu dostat mezeru! za návištj vložím TINO s:KOREL -
-
a dostanu se na první
TINO s
-
od začátku ld a.(hl) chci vyhledat první instrukci a,(hl), mezi zdrojováho teytu, zadám TINO sId mezer, tolik vložit mu;ím mnemoniku a operandy dal mnemoniky aby jejich počet plus pocet písmen soucet S
Nahrazováni
řetizců:
:xyxxy nahradí vsechny vskyty Fetizce rlNb :yyyy vyhledanáho prikazem yyyy vyhledá a xnx ‘rQtezcem v danám rádku yyyy další výskyt retezce -
RCFLOCU byl byl
—
nahradí všechny v,skyt řetázce, retizcem, zadán příkazem rlrqlj, zadán prjkazem REF‘LflCC
kterú kterj
Příklad:
-
kCREL chci najít a vyminit nikterá v,skyty řetázce po jgcr, zadám příkaz TINO s:karel řetázcem udelám: XflREL nalezeni výskytu řetezce dále už a (podruhá RIPLOC[ :J0SCF bud zadám jen TCPLOCC) když budu chtít vskyt nahradit rlNly když budu chtít tento vskyt nebo zadám ponechat beze zmeny všechny neprojdu dokud tak dlouho což opakuji kQRCL‘ výskyty retezce ‚
-
Mazání
zdrojováho
textu
nastavení
a
prostoru pro náj:
text příkaz vymaže zdrojov‘ Y) CLCQR (SYMSOL I-4lFT a vycisti tabulku symbolů (ponechá v ní jen uzamčená erotože L. symbolů), Tabulka kapitolu viz symboly jehož chybná použiti můze značná se jedná o príkaz, zvýšit hladinu adrenalinu v krvi uživatele, je nutno CLEOR W jej zadávat ve tvaru -
-
uživatelská zarážka, toto je U—TOP (SYMSOL I-4IrT 4 W a poslední adresa, kam smí bt uložen zdrojové text kam smí bt provedena kompilace (kap. 3 Překlad). Za nebo matematickú uvúst číslo musíte U-TOF príkazem vqraz (bude vyhodnocen zleva doprava, může obsahovat čísla i existující definovaná náviští (jinak chyba), vsledek tento příkaz lze použit í jako kalkulačku, nastavení zarážky k je trvale videt vpravo nahore, U-TOP -1., pomocí na adresu 65535 používejte příkaz uzivatQ)ská zarázky získáte chránenou oblast pamiti, podproram a jiná, kam můzete uložit třeba tisková monitor je oblast od zarázky az do i pro assembler konce pameti neprístupná —
Chyby při
editováni:
Sad mnemonic
v chyba náuesti v
mnemoniky, zápisu poli mnemoniky
nebo
-9Sad
v
operand
chybne operand
použit
instrukci
je
vitší
65525
ner
Sig number
použitá
Syntax horror
položka yntaktickS chyba, nikterů dve operace je delší než může bút. ve vqrazu vedle sebe,
Sad
string
špatná zapsaně ret.zec, úvozovka se retezec dvojiti, řetizce pise do nesni bqt prúzdn
Sad
instruction
instrukce zapsůna formúInisprvni. pouzitú instrukce vsak nona moznost pracovat s touto kombinaci operandij
tlemory
říslo
zdrojově text marnil přidilenú pro vyřerpkna, můžete se pokusit je zkrátit zdrojovg text (viz kapitolu 6, rormt zdrojováho textu)
fuj]
v chyba při použiti núvišti, která tam je, tabulce symbolů není nebo tato ale nenů definovanou hodnotu chyba je hlúšena u príkazu UTOP
XXXX unknown
-
2.
magnetofonová
operace
(kdyby ne, bylo Pssembler PROMETHEUS umožňuje by povúzenou) uklúdat, kontrolovat a Eíst zdrojová texty Ci z cústi) magnetofonu (SYMSOL
SOVE
Příkaz
sHlrl
4
na to jejich
5)
urěenů pro uložení
zdrojováho
textu na kazetu.
SPVE :karel uloží ce]íj zdrojově text (zdrojově text a jako bude ulozen tabulku symbolů) na kazetu, blok DhSlEovská EODE pod jmónem karel —
jako kazetu, SPVE uloží celt zdrojov text na bude vzato naposledy použitá jmáno toto se a je jestlize při verifikaci doslo k chybo opakovat opit. uklúdúní —
-
jmóno hodí nutno
zdrojováho textu SOVU bkarel Eůst uloží na kazetu (nastaven blok) a celou tabulku symbolů —vybíraní bloku pouzita, nůvestí, kterů jsou ve zvolenám by na proto chcete-li bylo casovi a pamitovi nůrořná textu, jen zdrojováho kazetu uložit opravdu cůst vycistit vymazat všechno ostatní a musíte potom 6 tabulka symbolů) tabulku symbolů (viz kapitola —
—
SOVU b uloží zvolenou čůst zdrojováho textu se naposledy použitům v příkazu SOVU nebo L000 —
L000
(SYM6OL
SNIn
4
jmánem
L)
Příkaz sloužící k přihrúní zdrojováhe textu z kazety. ten musíte Ehcete—li novů zdrojov tQxt pouze nahrút. SS 4 X ). (príkazern ELEPR y starů nejprve vymazat —
L000 do
- nahraje počitae
L000
karel
—
první
nahraje
nalezenj zdrojově
do
požítaže
text z
zdrojovq
kazety
text
se
40
—
jmánem
-
karel
zdrojově LOtID text nahraje do poritace která bylo naposledy použito v příkazech —
jmán.m, se LDPD nebo
qvr Foužj jí-li se místo jmána samá mezery, bude to bráno se první jako kdyby nebylo zadáno žádná jmáno a nacte nalezen blok CODF. Nahrávání
probíhá
následovná
1.
prohledává se kazeta správném jmánem
dokud se
nenajde blok
CODE
2.
po nalezeni takováho bloku se zjisti, vejde do volná pameti, je pokud ne, řlemory full
3.
zdrojově blok se nahraje na konec památi určená pro ve napsána vpravo text (adresa posledního bytu je stavováni rádku)
4.
zjistí-li se, že se nejedná o assembleru, príkaz je prerusen
5.
zdrojováho začne se vkládání nahranáho textu do zdrojováho textu, při kterú je v pamiti od minula, textov táto operaci se každ nová řádek prevede na tvar avlozi do původního textu vkládá se stejne za pristupn rádek. jako pri vkládáni z klávesnice vkládání nalezena chyba, objeví bude-li pri se chybová hlášení a je možno chybu opravit, mo opravá program pokračuje ve vkládání, pri přihrání bloku se dvi do památi musí vejít současná tabulky symbolů, a nová, ze stará (ta se zvátáuje o nová návestí) která se berou náváčti př-i převodu řádků na textovi Vás tvar podrobnosti nemusí zajímat, pokud tyto (nejcastejsi situace). se prekládá za zdrojov‘ text tak problámy 5 místem nastanou jen tižko
zda se hlásena
zdrojově
text
se
blok chyba
tohoto
—
—
-
6.
stav
vkládání
7.
stiskne-li se ukoncí instrukce
8.
pokud dojde při vkládání k chybi a v editačním řádku je chybná instrukce, lze vkládání ukončit vložením nijakáho příkazu nebo povelu (třeba přepnutím mezi desítkovou a žestnáctkovou soustavou)
9.
vkládání bude chvíli trvat po dobu obrazovce nápis ‘Vait please‘
me a
lze
zobrazit stiskem
libovolná klávesy
gFPCC. vkládáni při vkládání klávesa v editacním rádku bude práve vkládaná
vkládání
—
VElUY
(S‘YMDQL
SI-IlrT
3
je
na
V)
Příkaz sloužící ke kontrole na pásce uloženáho textu. je ho nutná provást ihned po příkazu PVE, nepotřebuje zádná parametry, použije jmáno z příkazu SPVE a testuje blok pouze s tímto jmánem CEN
(SYMbOL
S,-llr7
4
C)
Příkaz slouží k přihrání zdrojováho textu ve formátu assembleru CENS (MOEROS), syntaxe je úplná stejná jako u prikazu LObU, zdrojovi text nahraje a vkládá stejná jako u prikazu LUPO, před vkládáním zdrojováho textu z tENSu je vhodná text nejprve upravit zkrátit řádky —
—11
—
přemístit lfloZni tak. aby odpovídaly formítu PROtItTHtP, je s tim móne prkce komenl.íre na zvlístni r.idky atd, než opravovat řidky až řl vkl$dínj —
nastaven na text Je—li konec prostoru pro zdrojov a nebudu rozeznin konec souboru adresu 65535 (*rrrr), dojde k pokusu vzít jako vklídíní se zastaví na chybe z ROjI. byt6 prvních nikollk řádek zdrojováho textu vit bod 8. preruste vklídmní vložením nijakáho povelu pameti nastavte konec pro Chcete—li se tornu vyhnout, zdrojové text treba na adresu 65580 (príkaz U—TOP). —
-
ke stisku kl$vesy operacích Pokud dojde při kazetových ĎREOK (FflCC), v editačním řídku zůstane naposledy tedan povel. se Pokud dojde v prikazu LOPD, CCN nebo VCRIY k chybe, vypís. rídku v a je editacníp ‘Iape error‘ opit chybová hliiení posledni zadaná příkaz. z zdrojov text Pokud budete chtít do assembleru vložit CLNS, jjnóho assembleru. musíte ho převést na formt assembleru každý růdek začíní dvema byty číslo rídku (pro FROMCTHCLIS neni mezera vždy jedna místo (stačí podstatná), potom text ‘rídku a na konci řídku je kód 13, takto upraveni zdrojové nikolika) CCNS prikazem a múzete ho CODE text vyhrajte z pamiti jako (možni jednodusí) rafli použitelnú způsob dostat do PRDMCTI4EP je popsín v kapitole 5. Ostatní (viz CLNSDR). —
3.
překlad
provede kompilaci cisrrrny (Yr1SOL S,4lT “ fl) příkaz uvést parametr zdrojového textu. Za příkazem PSEMDLY je možno v tomto případi bude kompilovín pouze nastaveni (nebo ‘Ď) b blok zdrojového textu. —
-
možnost tato Při kompilaci neexistuje kompilační vqpis uprímne rychlosti odstranena, byla pro jednoduchost a zvkeni Pokud se jemu) zdila zbyteční. se řečeno autorovi (a nejen byla je (to která instrukce chcete dozvidit. na jaká adrese výpisu). napiste kompilačnlho jediná ňámitka proti odstranní kompilace skoncení tam nejaká nkvesti (pokud uz tam není) a po (viz kapitola hodnotu se podívejte do tabulky symbolů na jeho 1, disassembler samozřejmi použít také tabulka symbolů), lze (7) Fotrebujete—li nejakch o Protokol z důvod6 monitoru. assembleru jiného prekladu. preneste zdrojově text do nejakúho CCf%1SOR) viz kapitolu S. ostatní (CINS pomocí programu CCNDR a 5 jeho pomoci ho získáte. —
—
—
Kompilace je provádna rychlostí přibližné 2 KD strojového není prekládin tedy ani dlouhů zdrojov, text kódu za sekundu je kompilace dále než 3-k sekundy, u krítk!ch zdrojových textů takřka okamžitá. —
‚
pouze Kompilace je dvouprúchodová, při prvním průchodu se zjijtuji hodnoty návižtí v poli návéití (nikoliv u příkazu COli). bjt pri druhém prúchodu se jiz generuje strojově kód, nyní musí pamitl je do známa vžechna náveští. Ukládáni strojového kódu kontrolováno tak, aby nebyl mrepsán ladicí systém, zdrojov text a oblast pameti nad uzivatelskou zarázkou. Možná chybová hlášení: Sad P117
(DRC)
XXXX unknown
—
—
při druhém průchodu kompilace došlo k pokusu o prepsání ladícího systému, nad nebo oblasti zdrojového textu uzivatelskou zarázkou strojovým kódem XXXXX použitá náviiti přiřazenu žádnou hodno1u
nemá
dosud
12
-
fllready
defjned
-
pokus
-
druhů
o
hodnoty
definování
návestí
Sig number
—
čísla do velkáho pokus o zapsání příkazů relativních skokó u P bitů, je prílis to znamená. ze vzdálenost (jxd) smí typu velků. u instrukci príkazy bt d v rozsahu —129 az 127, rozsahu Id a,N smí bút N v typu -235 až 253 (podrobnijj dále)
a se zastaví přcklad kompilaci. při Dojde—Ii k chybč nyní je obnoví se vipis tak. ze rádek. ria kterám doslo k chybo ono podruhů tak přístupný (jedná-li se o chybu Qlready defiriod poli definovaná náviřtí je samozřejmbv poli nkvestí, nikoliv v hlásenj se vypise úspesne. operandö). Fokud kompilace skonej bssembly complete. 4 slouží příkaz R) Hlrr RUN (fl‘MDDL CEntry ENI příkazem programu od místa zadanáho provede vždy s programu dále), před spu;taním příkaz zanirnuje příkaz PESEMDLV (proklad je rychl‘ právo nalezen zadávat dva příkazy), pokud nebude ‘raků tento 1N7. vypise se chybová hláieni Etfl7‘ pred spustenim se prolczí obsahovat parametr ‘b‘ spusten bude blok zdrojováho textu. Vá program přeružením a proto jej musíte případná povolit! —
.
—
sputiní ke viz point kompilac! treba a není jeden příkaz múze príkaz pouze zvolenj zakázaným se —
—
lns trukce a (známá) FRDMETI‘iCUE překládá vjechny základní instrukce ‘neznámá‘ jediná instrukcí neznámúch‘ tzv. taká vátiinu na adrese instrukce, která assombler nezná jsou všechny rotace budete (ixd) s následr‘1im prenosem do zvolenáho registru, pokud pomocí zapsat můsíte je pouzít, instrukce tyto chtít v se (instrukce nebyly zarazeny protoze D[5 pseudoinstrukce Následuje assembleru). dálku by praxi nepoužívají a zv6tily používá assembler která seznam tách ‘nezniámch‘ instrukcí, —
‚
»,IV Instrukce, která používají poloviny indexregistrů horní polovina Dolní polovina registru !X je znacena LX. a LV HV. je bude označena FIX, obdobne pro registr IV —
inc
inc
hx
inc
Ix
inc
hy
inc
ly ly
dec
doc
lix
doc
Ix
dec
hy
dec
Id
Id Id Id Id Id Id Id Id
hx,N b,hx c,hx d,hy e,hx hx.hx l,‘.hx a.hx
3d Id Id Id Id Id Id Id
Ix,N b.Ix c,lx d,lx e,ly hx,lx lx,lx a.bi
Id Id 3d Id Id Id 3d Id
hy,N b,hy c,hy d,hy e,hy hy,hy ly,hy z,niy
Id Id Id Id Id Id Id Id
ly.N b.ly c,ly d,ly e,ly hy.Iy ly,Iy a,Iy
add
add
a,flx
add
a,Ix
add
a.hy
odd
a,ly
a,hy
adc
a,ly
tly
suD
ly
adc
adc
a,hx
adc
a,lx
adc
suD
suD
hx
sub
Ix
sub
sbc
sbc
a,hx
sbc
al,
sbc
a,hy
sbc
a,ly
and
and
hx
and
Ix
and
tly
and
Iy
xor
xor
hx
xor
Ix
xor
hy
xor
ly
or
or
hx
or
Ix
or
hy
Or
Iy
co
cp
hx
cp
Ix
cp
tly
cp
Iy
is
—
Rotace SLIP (shift
invertovanú iriverted arithpetlc registr. posune doleva zvoleni
leH
—
arjtmetjck posun doleva) vystupující bit je uloien jedni cka.
sliz
sila D sliz ti
—
—
do
vstupující
CPRRY,
bit
sliz
c
sliz
d
sliz e
sliz
I
sIla
(hl)
sliz z
je
U instrukcí relativních skoků a instrukce D.JN2 se u jako ostatních assemblerů píse absolutní koepilaci adresa. Rn se vypočte relativní adresa a uloží se. Pokud je relativní adresa mimo rozsah —128 až 127, ohlásí se chyba flig number. Dssembler používá nikterá pseudoinstrukce slouží Dua k zápisu čísel a te,ctú do pamiti nebo k ovládání ukazatele kompilace. umístiní stro.iováho kódu z k nastavování startu pro prikaz RUN a hodnot návistí následuje seznam —
—
DRC vraz
—
nastaví
čítač
adres
z
ukazatel
uloženi
do
pameti na hodnotu vi.razu. Ukazatel uložení do pamiti urcuje, kam se bude ukládat strojov kód, určuje kde bude čítač adres přelozen program pracovat— hodnota tohoto čítače se používá
dosazování
návestí hodnot pri I cítač instrukcí práv6 přeložená instrukce. pri
ulozeni
do pameti
průchodu. prvním vždy zvitsuji se
RUl vůraz nastaví ukazatel uložení výrazu. Tento příkaz se používá v přípzdi, —
strojovg kód
jinam nez
bude
spouitan.
Ukazatel O dálku
do pzmátl na hodnotu že je potřeba uložit
Chcete
trebz
preložit
program tak, aby pracoval v obrazovková pamiti tedy, od adresy 16391,, protoze překládat prímo do obrazovky není možná, vložte za príkaz DRC 16391. je5te príkaz PUl 68888 program bude se prekládat tak, aby pracoval od adresy 16381. ale ukládat se bude od adresy 68080. Nelze přehodit ve kterám pořadí, jsou Obá pseudoinstrukce uvedeny, nastavuje protože DRC taká příkaz ukazatel ulození do pameti! PUl zaveden Příkaz jako byl alternativa k možnosti za ukládat přeložen program tabulku -
—
pseudoinstrukci symbolů bez ohledu na poskytuje DRC, kterou assembler CCN (MPSfl), je vjak toto resení podstztni prizpósobivejjí, programátor kde tabulka se nemusí starat, symbolů končí a může se sám nastavit. tram si ukládat. Chcete-li vyrobit program. kter se o rozmístí po pameti, múzete to vyrobjt třeba takto
bude překlad spužtinj sám
org 68808
flPR1
Id Id Id ldir Id Id ldir jp
hl,flPRTI de,38080 bc.DLDKILCN de,35888 bc,8LDK2LCN 30800
‚adresa, kde je 1. blok uložen ‚adresa, kde má 1. blok pracovat ‚dálka 1. bloku ‚přesuň 1. blok ‚adresa, kde má 2. blok pracovat ‚dálka 2. bloku ‚presuň 2. bloku ‚skok na začátek 1. bloku
CND I org put 7?? 7?? DLDkILCN emu CND2 or9 put flORT2 ??? 7?? ĎLDR2LCN equ
388fl CNDI
‚první blok bude na adrese 38802 ‚jeho kód se ukládá stále dále ‚zde je teyt prvního bloku
STCR1I
S-SIQRTI
‚6LDKILEN bude
35222 END2
‚druhj blok bude na adrese 35220 ‚kód se ukládá stále dále ‚zde je teXt druháho bloku
s-SIPRI
‚6LDK2LCN bude
návžtí EDU výraz vyrazu. V okamziku, kdy zpracování táto instrukce ‚
—
přiřadí dochází uz
musí
obsahovat
obsahovat
dálku
dálku
náviití použitámu hodnotu druhám průchodu ke pri známá včech b.t hodnoty
—
návižti.
která
jsou použita
‘l‘i
—
ve vůrazu,
jinak
dojde
k
chybá,
LPhELI LQDEL2
equ
L26EL241
:takhle to bude fungovat, protože ;návájtí LPOEL2 bylo definováno ;LJZ prj prvním průchodu prokladu
LPOCLI LPrL2
equ
LPDEL21 32222
takhle to bohužel fungovat nebude ;protože náviti LPĎEL2 ježti nemá ;definovanou hodnotu
QqLJ
nastavení adresy, od Ehl výraz tento pFikaz slouží k bude spuátán strojovi kód v prjpade, ze bude pouzit príkaz -
která RUN.
na
ent
STPR‘I
;prosram bude spužtán od místa, ;námz se nachází návestí ‘lPR‘T ;v poli náviti
ent
S
;promram bude spután od místa, na ;kterám se vyskytuje tento príkaz
kterou adresy, na orrs vúraz,vraz, ‚viraz uloží od vqsledkq vrazů jako uložení do pameti. ukazuje ukazatel je v -56 az 255, jinak. musí lezet rozmezí osmibitová hodnoty zvseny citace Foton, jsou hodnoty hlážena chyba ‘Sis nurnber‘ ktere byly bytů, o pocet adres a ukazatele ujození do pameti pocet vúrazů, pFjkazem DEF‘D naplneny .
—
—
.
—
burs, podobná jako pčíkaz orru vraz,v4raz, ‚vraz a potom ukládají se žestnáctibitová hodnoty (napred nizsí byte zvetsi vyžží byte). Ukazatel ujozenj do pametj a citac adres se dva. vjrazů krát naplneny pocet o počet bytů, která byly .
—
.
—
orrp retizoc uložení u assembleru rozsíren
Fetázce
-
do památi.
tento
p?íkaz byl
det,,,
‘karel‘
‚uloží do památi postupná OSElI ‚kódy jodnotlivch Písmen
defm
‘karel‘
‚provede támiř‘ totáž. poslední ‚znak bude mít OStII hodnotu vetsí invertovanú znak, pokud ‚o 122 ‚netušíte. k čemu je to dobrá. ‚podívejte sena priklady programů -
-
orrs výraz vyhodnotí se vjraz a o jeho hodnotu se zvátií pseudoinstrukce ‘lato ukazatel uložení do památi a citac adres. se používá k vynechání místa o pozadovaná dálce. -
surrr ĎUER2
defs defs
100 1000
‚vynechání ‚vynechání
100 bytů 1000 bytů
v je instrukci fissembler umožřiuje vložit na místo. ‘kde skládá číselná hodnota. matematickíi viraz, f1atematickvraz se od jednoho nebo nákolika návážtí či konstant oddelench sebe prevedena 2-65535 Všechna císla na rozsah operátory. jsou prevedena (záporná čísla jsou přičtena k číslu 65536 a tím jsou a jsou provedeny operace na rozsah 0—65535). v tomto, tvaru je prováden vúsledek je pouzit podle potreb instrukce. t/pocet Fokud není zleva doprava, není zachovávána priorita operátorů. zleva možno vraz tak, aby mozno provádet zapsat ho bylo doprava, musíte ho rozepsat na dva řádky a mezivisledek priradit njetámU niviití ? to použít ne dalším řádku, autor se touto s nejcactájjí vrazy pouzívají pouze eventualitou ježte nesetkal jeden operátor. —
—
—
kor-is tzn ty Jsou povoleny
tyto kor,stzrity
deítkovó
1231.
1.7
—32
estrictkovó
NPC
—#3
a3
dvojkov
:iiii
ii1
—111
znzkov
úvozovk se musí
v]ozit dvojjte
Je rnozr,o5t odkzt Se r-rz zktujrrí hodnotu ítEe S
rrz
—
JRT
toto rnjslc‘ bude doszžer-rz hodi-.otz ítzo zdros ‚zde je ct t.,rtu, jej ‚důlku potrebujerne zjistit ‚z vjozit do núvistí LENTIl ‚toto je ns konci orlů csti
7777 7777 7777 eu S—1PRT
LENi!-1
zdre
Nvití kter. je F‘osjoupnost Eísol. písmen z zrrzku z pr-o jder,tifjkscj lze pouzít ms,iimlne dMeitó viechr‘y.
Nvijtí
zzír, písmenem. jsou
Zrrzkr
Ope rtory‘
4
sč:i:trií
odcítní
—
S
nrobar,i
delení zbytek po dolení
/ 7
-
horní
Chcete—li získst dojní byte nSVQStÍ tpĎ/25B. získte pomocí
tP
vlozte
TP725.
byte
při
Or‘,le.itó upozornnj v9slDdQk je 5535.
1..
dlenj
Tzbujks sysmbojj
která poskytuje ze znskr!‘ která ho
tzbulkou symboJC s od ostztních odljjujj
FROMET-I(U
f1onoti.
jsou jedním sssambl eni.
nulou není fljjenre thybz z
rzznr
s vidy 7sbulks symbolů q,ristuje r.eustjo rnonú j hodnot, prohjádniout si sbecedna sQszenmi vypiš rmvátí S jejich r,jzkó primzzer-ry. Neustj existence tzbu)ky pokud jirn byly rrsk je vjzstnt. která mbcmjů se múze zdát nevmrhodrm to a tzkú zrychlení umorruje vmr-zzná zkrácer,í zdrojováflo textu kompi )Sce. —
Fíksry pro práci
TPLL
s
(‘ťMOL I-llFI
tztlulkou
‘
7)
—
tento
‚nFfkzz
vypíše
tzbujku
(1.2 z návatí) srmnbo)ó rrs otrzzovku, zobrzzí e jednmz strárrk klávesa PflCC, ocekává se stisk nejzká klávesy, pokud to bude
kjávesz nebude. SFPCC vypisování tzbulky se skončí, pokud to se dzli strúnkz. 1ává1i jsou vypsáns v dvou Joupcich, (její vznsm‘r pí-od r,ávetjm je vypsáns bud mezer-z nebo flvezdjcks je vyn‘sánz hodnotz, která byls je popsán dále), zz návitjm VyPi;Q
—16
-
nvijtí přiřazena ři posledním překladu, pokud mu žádná hodnota je pr)razena nebyla, je vypsáno pet tecek, Hodnota návestí vypsána v nastavená číselná soustave (desítková ci sestnáctková viz kapitolu I Editor). Možnost precíst si tabulku symbolů lze pouzi‘t, zajímají-li Vás adresy cástí prosramu nebo nekterúch když si nejste jistí tu dlouhich textů se to občas stane), která návestí jste už pouzili a která ne. IPĎLE p proádí vqpis tabulky symbolů na obrazovku a taká na tiskárnu, pro podrobnosti se podívejte na příkaz FRIML na každg řádek se vytiskne jedno návestí a jeho hodnota, jedna stránka obrazovky se tedy vypÍse na L, řádků papíru. —
TOCLE c vyčitání tabulky symbolů, z tabulky symbolů se odstraní ta náviřtí, která se nevyskytuji ve zdrojovám a textu uzamcena. nejsou Při vymazání rádku nebo b]oku zdrojováho textu se z tabulky symbolů neodstraní ta návesti. která se vyskytovala pouze ve vymazaná části zdrojováho textu akce můze tato bút časová náročnijH a nevyplatí se ji provádit neustále protoze by mohla zdržovat, bytů za taká nikolik nestojí. Zbytečná to provedení vypísete nivestí jsou videt když si po kompilace tabulku symbolů defíncvanou nemají hodnotu jejich pokud pocet vzroste, tak použijte vyčistení prikaz pro tabulky symbolů. Pokud nemáte problámy s volnou pametí (pak je kazdj na můžete tento byte dobré) príkaz zapomenout, při kazdóm přečtení zdrojováho textu z kazety (tuto akci je nutno provádet obvykle nekolikrát za den proramú ve pri ladeni strojovám kódu není nouze o stavy, kdy se zkousen program odmítá vrátit vymaže) ve zpit, případná se rovnou po spustiní zdrojovám se textu zachovají jen použitá návestí. —
—
—-
-
—
Oddálená kompilace
-
kompilace Po
částech
TPLE I uzamkne všechna náviští v tabulce symbolů. tato návestí se chovají při kompilaci tak, jako byla stále by definována, príkaz TPDLE c tato návásti neodstraní. Popsání smyslu tohoto příkazu následuje. --
—
TPĎLE u odemkne všechna symbolů, opak příkazu TQDLE I -
zamčená
náváští
v
tabulce
Dva předchozí příkazy jsou určeny pro umožnáni oddáleni kompilace důvodem může velké b,it rozsah zdrojováho textu. Zdrojovg text je nutno na rozdelit jakési základ (pomocná podprogramy tisková rutiny, práce s obrazovkou, data,. ) a na hlavní část (toto může rozdálení nákolikavrstevná), i bút aby dúlez,tá je, se základ úroveň) neodkazovala (nižší na návestí v hlavní cásti (vyšsí úroveň). Nyní se odladí základ. zamkne tabulka symbolů a vymne zdrojov vymazáni text. Po zdrojováho v textu zůstanou pamiti všechna náváští. která obsahoval a je možno se na v ne odvolávat dalším zdrojovám textu. Tuto moznost Vám snad lúpe osvetlí následující priklad: -
—
V příkladu je promram rozdi)en v na vrstvy, tři první vrstve jsou ulozeny texty, druhá cást obsahuje prosram. kterq vytiskne text, jehož adresa mu bude zadána a poslední (nejvyšší) vrstva bude volat tisk textu TEXT1 TEXT2
org 65Dfl defm ‘Zkusebni defm ‘text cl defm ‘Pokusny defm ‘text c.2
‘
toto je první část promramu, ;není v ní zádni odkaz na ;návešti ve vyí vrstvi
Tuto část proqramu (OSEMĎLY), zkompilujte zamknáte tabulku symbolú (lOLE 1) a vymazte zdrojové text (CLEPR y). PRINT
orp Id and
6.ODP a,(hl) 127
toto je druhá část proqramu. ;odkaz na nizší úroveň v ní
-
16 a,(hl) hl 129 z,PRINT
rst Id inc and jr rot
;sice není, mohl by vjak bůt, :odkaz do vysí úrovne se ;zde vyskytovat nesmí
Nyní opit zkompilujte zdrojovú text (PLMDLY). opit tabulku symbolů (TnDLE 1), nyní jsou v ní Jiz tri a opit vymažte zdrojovĽ. text (CLEOR y) MPIN
org 53909 Id a,2 call 51591 Id hl,TEXT1 call FRINT rot
-
uzamknite ná“esti,
-
;poslednj a nojvysí ůroven ;programu,můze se odkazovat ;i na návistí definovaná v ;obou nižiích ůrovních
Fo vložení poslední části zdrojováho textu jsouv symbolů niviití TEXT 1, TEXT2, PRINT a rIfllN. První tri jsou uzamcena.
tabulce návistí
Je zřejmá, že v uvedenám př-jkladi nemá rozdoloní tohoto krátkiho zdrojováho textu na kusy smysl, ilustruje vsak způsob, jakům lze zpracovávat i dlouhá zdrojová texty. Tento způsob práce byl použit při ladinj monitoru, z kompilace zdrojováho textu byla zachována tabulka symbolů a přeložená kód, do pameti byl vkládán zdrojovů text monitoru a laden tímto způsobem bylo možno odladit rozumnúm způsobem program dlouhú 11 KS, odpovídající zdrojově text by byl dlouhú celkem asi 49 KS anevesel by se za zádnůch okolnosti spolu s assemblerem do pameti, o potřebi místa přeložen pro kód ani nemluve. —
Při kompilaci jednotlivůch vrstev je vhodná nižží vrstvy chránit tím, že se uzivat*lská zarazka nastav í pod ne nehrozí nebezpečí, že již hotová cástj budou prepsá zdrojovm ny textem nebo generovanúm strojovúm kódem. —
Při každám zahájeni práce je nutno opit zkompilovat všechny vrstvy, aby se do tabulky symbolů dostala potrebná návižti, a vyplatí se tedy spíže vyhrát na kazetu celou pamiL tedy ladící systám i se zdrojovým textem a prolozenmi již vrstvami programu. Může se to zdát, že se nahrává zbytecni velků rozsah pamiti. ale z časovůch důvodů je to lepží, než při zapnutí pocítače provádit nikterá akce vzdy znovu, navíc tento postup umozč,uje mít v pamiti i dalsí programy a data a nemuset je pokazdá nahrávat z deseti rúznůch kazet po dlouhám hledáni a převíjení kazet z jednoho konce na druhů, takto popsanú způsob jsem i nevycucal z palce ale sám jsem ho pouzíval pri práci na monitoru k tomuto ladícímu systámu assembler uz byl plni funkcni v táto dobe. Můžete pouzít násled ující modifikaci tohoto způsobu -
1.
odladíte
2.
pro ladiní dalží vrstvy si vyrobíte jakousi instalaci, ta bude obsahovat krátků zavidecí SflSIC program a dva bloky EQUE první bude tvorit ladící systám spolu s tabulkou symbol6 vzniklou odladením základní vrstvy, druhů pak přelozenů kód a připadni nijaká data nebo cokoliv jináho rozdilenj je proto, že mezi ladicím systámem a prolozenům kódem je obvykle velká mezera a nemá smysl nahrávat nikolik KS nul, to ovžem neplatí když překládáte před ladící systám a ne za nij
si
základní
vrstvu
-
Zavádicí
SPSIE může
vypadat
třeba
takto:
I
RUNDQMIZE UP 24e3:STQP 9999 CLEPR 23999:LQI3Q COQE:LQflD Odpovídající
bloky dostanete na
-
C09E:RUN
kazetu pomoci
příkazů:
-
-
SPVE PVE DVE
LINE 9999‘ ‘Instalace ‘Cade 1‘ CODE 2L.e3,‘,conec—23999: ‘Cade 2‘ COOE zacátek,dálka
ve číslo (první textu zdroiováho ‘konec‘ je konec jsou cida urcujjcí a dálka začátek stavová řádce, dat, vrstvy a prjpadne polohu a rozsah pť‘elozenu nizsi v tomto příkladu je assembler umisten na adresa 24PW 3
podle monitor nastavit taká múzete v instalaci si nastavovat svgch požadavků a nemusíte jej pak pokazdá znovu
L.
po odladinj instalaci cel‘ hotov
—
dalšj další vrstvy si vyrobíte opit novou program dokud není a takto porád dokola
a z přeložit vrstvu základní taká samozřejmá Můžete nejmáne má to dalších vrstev se odkazovat uz prímo na adresy, odkazovat moci nebudete se při pouzívání moni toru dvi nevhody prjpade, na náviští v již hotová vrstvi (nebudou v tabulce) a v budete ro zmenu nekterá cásti v nizsí vrstve, rozhodnete se že protože vy5j vrstvi ve adresy muset přepsat každ odkaz na stací postup, popsan se tyto adresy posunou. pouzí jete—li v.jše symbolů vyrobit si novou instalaci s novými hodnotami vtabulce více a vušší vrstvu nemusíte menit (pokud ovsem nezmeníte nejak jiná návestí, jin smysl). základní vrstvu —
-
značnámu díky Nutnost použiti oddilení kompilace se však odsouvá az (proti CENS je polovicní) zkráceni zdrojováho textu kódu, kratší strojováho menerovanáho na hranici kolem 5-7 KS není snad vghody jaká to má strojov kód lze ladit najednou potřeba moc zdůraznovat, —
5,
Ostatní
příkazy a
možnosti:
příkazy, nikterí uvedeny nebyly Doposud assembleru pouzívat. zde je jejich prehled.
která
lze
v
tento příkaz slouží k vytiš tání PRINT (SYMSOL SHlr‘t ‚ P) bere Froqram plotter. nebo tiskárnu na textu zdrojováho systámu kanálu do za znakem znak je jednotlivá rádky a posílá kódem kanál pro tiskárnu, každá rádek je ukončen pectra 53 mezery jsou 13 (EN‘TER) a nejsouv nim použity žádná tabelátory pouzijete prikazu v tomto Pokud vsechny. opravdu tisteny si Chcete—li parametr ‘b‘, bude vytisten pouze nastaven blok. p‘, Provádiní příkaz “TRDLE použijte symbolů, tabulku vytisknout připojíte lze zastavit stiskem klávesy SFPCE. Jakům zPůsobem si aby k vec stací. byl vase je svou tiskárnu na kanál 53 LFRINT. djpozici pro9ram. kter‘umj‘ —
—
—
—
do přechodu příkaz slouží K MONITOR (SYMDOL S4!rT 4 M) před Pouzijete—li parametr ‘a‘, provede se monitoru (viz dále) je to vhodnijši spuštinim monitoru kompilace zdrojováho textu jste si nez zadávat prikazy PSSEMDLY a MONI‘TOR postupná. Pokud při instalaci monitor odpojili. spuštání se neprovede. —
—
• systámu do řízeni 5) vrátí sHlr‘T DOSIC (SYMDOL prepsat nákterá pectra, do DPSlCu. Pokud se Vám však podarilo Vám s obrazovkou systámová prománná Spectra (prosram pracující utekl‘ a prosel pres tuto oblast), použijte ro návrat do DO2IC adresu, radeji příkaz NEW. Pro nová spuštini PROMETHEO pouzijte ve stejnám assembler je pri návratu na která je instalován stavu v nemz jste ho opustili (pokud jste ho ovsem z DQSIC nijak do hodnoty nastaví potřebná se návratu nevylepšili‘). Při zapne prerušení v módu IM I a provede se skok reqistrů IV a P, do hlavni provádácí smyčky (bude se interpretovat další příkaz), při tomto návratu není potreba nastavovat resistr HL‘‘ —
‘
—
—
‘19
—
NEW (SYMDOL SI-lIFT N) příkaz provede stejnou akci jako v OS1E příkaz NEW vymaze colou parnu až po nastaveni RPMTOP. Do assembleru byl zařazen proton ři trasovaní nebo ni behu se můze podařit přepsat systómová a prornenná ze hrozí, se Pri nóvratu pomocí příkazu DPSIC systám zhroutí. Pokud nevíte, zda nepřepsala se taki systómovů promenn RPMTOP, podívejte na se její hodnotu (je to hodnota ria adresúch 23730 a 23731) a připadni ji opravte předtím, nez použi joto příkaz NEW (toto lze provást bud v monitoru nebo tak, ze vyrobíte krtk program, kterú to provede a ten spustíte príkazem RUN: —
-
orm ort Id Id ret
23296 S hl.23999 (23730),hl
Program přeložíte a spustíte příkazem ‘RUN b‘ -předtím ho nastavíte jako blok potom múzete bez obav províst príkaz NEW. Fokud pouzivůte rutiny z ROM Spectra, která prepisují systómová prominnó, je nikdy lepží používat pro nůvrat do systámu vzdy příkaz NEW o skončení Važeho programu totiž nemusí bit v tom stavu, v jakóm by bút mily. —
-
DUU (SVMOOL SHIFT 4 0) pokud bude tento příkaz použit tak zaručeni jako poslední. k pouzití jinch už nebudete mít moznost provdi RESET (RQNDOMIZE USR 0) Tímto přjkazem moure elegantni ukončíte prúci a zcela vyčistíte počítac. Protoze tento příkaz je mimořdni nebezpečný a jeho nechtiná mouziti by mohlo vyvolat u uživatele silnou depresi (uz se stalo), je nutno za nej pridat parametr ‘y‘, pouze takto se provede. —
—
CENSOR:
Zpúsob, jak dostat zdrojově text z programu CENS do tohoto assembleru byl již zminin, múze nastat taká opačni potreba, k tomuto účelu byl vyroben krtk program CENSOR. Program CENSOR se skld z krůtká v č$sti a DPSICu približni z 200 Dytů strojováho kódu, ke svá činnosti potřebuje, aby byla oblast pamiti od adresy 55000 až ke konci pržzdn sem Sc uk)ůdž zdrojový ve text formžtu assembleru CENS (MOttl). Nahrajte do pamiti PROMETHEUS (můžete odpojit monitor aby bulo více místa) a instalujte ho třeba na adresu 25200. Nahrajte do assembleru zdrojové text pokud přesahoval by adresu 5500$, budete ho muset rozdilit. Jestliže je adresa konce zdrojováho textu mensí nez 55220 můžete nahrát program CENSOR príkazem L000 CENSOR Po nahrání přepíete v příkazu RONOOMIZE USR adr, promennou adr‘ skutečnúm startem assembleru (nyní 25e3). Nyní můzete zadat příkaz CO TO O (ne RUN!), provede se inicializace a pro9ram CENSOR se prlpoji na tiskov,ikanil 53, potom se provede spustení assembleru. Nastavte zacútek bloku zacůtek na zdrojovóho textu a konec dejte o maximSlne 32 stránek dal, nyní zadejte príkaz ‘PRIN‘T b‘ zadani blok půjde místo na tiskžrnu do programu CENSOR, kteri ho ukldú za sebe omezení 32 na stránek je dáno velikostí pamiti, do která se může zdrojov‘ text ukLádat (kdyby byly jednotlivá rúdky zdrojováho textu deLáí riez je obvyklá data nebo texty vyplňující celý řádek v!ozte radejj konec bloku dríve nez po 32 stránkách), Zadejte príkaz 6051C a nahrajte průve vytvorenou část zdrojováho na textu kazetu, po návratu do assembleru nastavte dalži část zdrojováho textu a opakujte dokud ceh, zdrojová text není nahrán na kazete. —
—
.
—
—
—
—
Tento způsob přenesení zdrojováho textu do programu CENS můzete pouzi‘t i u jinch assemblerů, máte—li zdrojová ve text formátu pro CENS, můžete ho snadno přenest do PROMETNEO.
‘
-
6.
textu
zdrojováho
fonnit
a
20
-
o
podrobnosti
další
assembleru
dozvidáli rdj tato kapitola je určena všem, kteří by se ‚etá ho morno je způsobem jaktm jak vypadá zdrojový text, dosahuje vlastne zkrátit Cv mezích možností samozřejme) Z proc dálka a (rychlost assembler v nákterich ohJedech taková vkony j)nsm proti textu) zdrojováho uložení úspornost spíše cj assemblerúm, Na počátku byly —
tyto myšlenky
aby se dala instrukce zcela jednoznačná k tomu. o informace kód, rozlišit stačí její operacni prefixech a tvaru připadnáho číselnáno operandu, bytů, dvou do tedy informace, která lze zapsat stačit toto rešeni vrazná urychli překlad, bude nebo prdívat prefixy, jen brit operacní kódy, dosazovat jejich hodnoty a vyhodnocovat vrazy potreba nebude do místa pro číselná operandy zjiflovat operační kódy zhlídat syntaxi příkazů uz při provídejí se akce tyto pri kompilaci a editování Cv táto dobá čeká počítač na člováka vedlejším provedl) mí dost casu aby tyto akce textu zdrojováho efektem pak je, ze uz pri psaní dojde k vychytíní spousty chyb a překlepů -
-
—
-
uložena mohou bút textu nivášti ve zdrojovám tyto odkazy jen jako odkazy do tabulky symbolů, alespoó dlouhch nívišti zaberou jen dva byty. u se symbolů tabulka tri znaky vzniká úspora textu, zdrojováho psaní bude vytváret jiz při prekladu, nebude tedy potřeba vytviret ji až při při taká kazdů odkaz na nívášti bude nasmerovín tabulku prekladu při editaci a nebude potřeba prohl ediva —
nírokem možnim Nyní šlo o to, jak to provást s nejmenším jakási znamení vlastne vúpisu strínka jedna treba na cas to se jakou s rychlosti, o disassemblování 22 instrukci kazdám odeslání provádí se můzete přesvádčit sami (provádí se o ms trukce) —
—
každi
řádek
zdrojováho
textu mi
tvar
první byte je operační kód instrukce, jsou zde ale jako je neinstrukce taká pseudoinstrukce a dalsí mají taká přirazeny ty prízdn rádek a komentár, svá kódy. aby se odlišily od obyčejnqch instrukcí, mají v druhám bytu řídku (informační byte) takovou je kombinaci prefixů, kterou nemá zádní instrukce, třech kombinace prefixů SDO a pro, Z v posledních bitech jeulozeno číslo 7 (mimo prizdn řídek, ten tu mi ulozenu 2). hodnota informacního bytu závisí taká na tom, jestli je nebo není před instrukcí či pro sisnalizaci táto neinstrukcí nivestí nebo ne když skutecnosti je určen 3 bit informačního bytu, je návestí použito, je zde zapsána 1, odpovídající přehled následuje v závorce, hodnota je zapsána neinstrukcí kódú —
neínstrukce orízdn řádek komentář ent esu or put defb defm
operační 2 I
2 3 1,
S 6 7
kód
informační LB 55 55 55 55 55 55
(56) (63) (63) (63) (63) (63) (63)
byte
-
21
—
defs doře
-
je
druh, byte 7 bit 6 bit 5 bit L. bit 3 bit 2-6 bit
jnformaónj
byte,
obsahuje
(63) (63)
tyto údaje:
PED prefix PED prefix POD prefix
(203). 6 ne. I ano (237) (221) sro profjt (253) v poli operandů je návižtj typ cjselnáho vi.razu podle tohoto se dosazuje vůsledek vrazu, vznam hodnoty je následující:
-
—
—
—
-
-
-
0
-
—
2 3 L.
S 6 7 uvedená
-
55 55
8 9
—
—
— —
-
—
instrukce nemá ěíselnú operand jeden byte, rozsah -256 až 255 dva byty, mezi -65536 ar 65535 jeden byte, rozsah —120 ar 128 jeden byte, typu (is4d) typ (iyd).n rst p (P se vloží do op. kódu) neinstrukce
rozsahy
je
možno používat v
textu
další byty jsou použity jen v případi, že je 3 bit informaóního bytu nastaven na I nebo kdyz poslední tři bity informaóního bytu neobsahují nuly, tvar je následující: 1.
bit
3
je
1,
bity
O
až
2‘ jsou vjechny O
potom v daljích dvou bytech je zapsáno pořadí danáho náviiti v tabulce a na konci je číslo 192*2 (dálka) 2.
bit
3
je
8,
bity O
až 2 nejsou
jenom O
v dalžjch bytech je zapsán cel, vraz návestí jsou nahrazena svjm poradím v tabulce symbolú. ostatní znaky jsou zapsany obvyk1‘m způsobem, na konci je císlo 192-‘dálka vgrazu například viraz je
zapsán 2,
‘.
2tLřIDEL4P23
takto:
‘r,
128H,L.
3, 19248
kde a H L jsou horní a dolní byte poradí návejtí LPDEL v tabulce symbolů vraz (2‘LODELP23) bude uložen taká takto, jestli se jedná nebo nejedná o adresu se zjisti z operacního kódu 3.
bit 3
je
1,
bity O
až 2 nejsou
jenom O
uložení bude stejná jako v předchozím prípade. pred vůrazem budou dva byty obsahovat pořadí návářtí a dálka bude o dva byty vitsí Možnosti
zkrácení
zdrojováho
textu:
Dostane—lise prosramátor do situace, že potřebuje nikolik desítek bytů pameti a tyto nejsou k dispozici, pokusí 5e zkrátit rdrojov‘ text tak. aby byl při stejnúm kratií obsahu Nikol ik zpúsobú, která vedou k vsledku; .
-
1. příkazem 2
VyEjstáte TPĎLE c
tabulku
2.2
-
symbolů a prázdná
Odstraóte komentáře
zbyteórijch
od
návišti
řádky
3 Pokud se ve zdrojovám teytu vyskytují příkazy nrrs nebo vrazú za sebou, snažte se dostat co nejvíce do jednoho příkazu (bude mine operaónjch kódů a informačních bytů) —
prepisem
defb 255 defb @ defb 32
L. Zvyknáte invertovanúm znakem defm defb zapsat lze přehlednejsi
na
.defb 255,0,32
ušetříte
5 pokud pc‘uzíváte teyty si pouzívat rozsirení príkazu lJr71
9nvertovant t-‘128
te,w
—
L.
byty
posledním sekvenci
v CENu to jinak ;nelze událat
taká takto defm ‘lnvertovany teyt‘, a kratsí (zvyk bvá zelezná košile).
je
to
5. U konstant použijte desítkovou soustavu, stejná čísle lze zapsat nejkratsim způsoben, je to sice máne prehledná, zle di se s takto usetrit mnoho hlavns u binárního zápisu. pocet znaků potrebnú na zápis stejnáho císla je různ, treba kód mezery je mozno zapsat -
32‘ •
-
v desítková soustavi v šestnáctková soustavá jako znak ve dvojková soustavá
zápis v desítková soustavi je viditelná ze všech nejkratší, Taká je vhodná místo 2-‘3 5. Nekdy je vhodná psát čísla Psát rovnou v zápornám tvaru, třeba Eíslo 55535 lze zapsat jako —1, totáž v platí pro číslo 255. pouze však je-li použito instrukci s osmibitovou konstantou. znaků náviští. 6-. Zkra‘tte náváští, o kolik zkrátíte o zdrojov cel‘ tolik se zkrátí tabulka symbolů z tedy i teyt, vyplatí se ovsom zkracovat vetsí mnozs tví návestí najednou. používato—li treba náváští LUOF s číslem, pak je vhodná nahradit stejnou cást kratsí sekvencí třeba LP zde však dejte si pozor abyste nezpůsobili, že dobrú prohozením dříve rúzná návesti budou nyní stejná, po prohození náveští samozřejmá musíte vycistit tabulku symbolů. -
—
te,‘tu nikterá konstanta Z Vyskytuje-li se ve zdrojovám velmi castoa je—li dlouhá 3 znaky, je vflodná alespoč. její hodnotu priradit nekterámu náveští a nahradit vsude tímto ji tento postup není dobrú jen ro zkráceni návestím ale i pro zpřehledneni abudete—lj chtít konstantu zmánit, stačí jizmánit vsude! na jednom miste a ne v Je—li tato konstanta pouzita prikazu l3[b (DErV) a pouzijete-li jednopísmenná návášti. může se Vám vejít na jeden rádek vícekrát nez původní konstanta. Uvedená způsoby nejsou doporučením jak psát zdrojová te,.ty, vedou totiž až na malá výjimky k přehlednosti. Je horši to zpúsob, jak se vyhnout nutnosti použít oddálenou kompilaci. Pokud se Vám podari zjistit, ze zdrojov nevejde se teXt do v parneti uz polovine Vám prací, nezbyde než ho rozdilit, zacnou—li problámy s památí až na konci, stojí za pokus zkrátit obvykle se to podari zdrojovj !emt stále je to lepší než se zabúvat delením zdrojováho teytu a používat oddálenou kompilaci. —
—
Tabulka symbolů Tabulka tvar.
je
uložena
za
zdrojovm
te,ctem
a
má
následující
-
EjtaE
dva
byty
motet
dva byty
-
nůvišti
v
tabulce
odkazy do vlastní taOulky. pocet je roven poctu nůvestí, v horním bytu odkazu je v bitech 5 a E 7 ulozena informace o nebo uzamEení danáho nívestí
tabulka vektorů dva
byty
dva
byty.
jmáno
dva
byty.
jmmno
vlastni tabulka
rodrobnosti
23
dva byty obsahují hodnotu danáho nivestí, poslední znak jmána je invertován, jdentifiktory jsou serazeny, jejich pošet je roven poElu nvišti
editoru:
Na tomto misti dozvíte se způsobu. o kterm probihů prevdeni radku z te,ctováho tvaru do tvaru, ve kterám je uložen. Nejdiive se oddálí n.žvišti v poli núvišti (pokud tam nijaká je), potom se rozdelí instrukce na mnemoniku a dva operandy (operand múze bt i przdn), zjistí se o jaké typ mnemoniky a operandů se jednž a prohledž se tabulka, taková jestli instrukce eyistuje. Fn prohledávjní operandů se nejprve hledají remistry a kdyz se nenajdou. snazj se assembler vyhodnotit operand jako vraz, tento způsob umožňuje, že je možno jako použit návišti zcela libovolnou kombinaci znaků, nejsou zde žádná rezervovaná slova pouze u nekter4ch slov je nutno pouzit takovg zápis, aby byl vyhodnocen jako vraz: -
napF chcete použít jako návijtj Fetizec F tento rotezec by se vyhodnotil jako remistr SF, napísete—li gp3 vsak • bude vše v porádku
-
Id
hl.sm
;takto zadan4 řádek bude ;vyhodnocen jako chyba
Id
hl,sp®
;pFi tomto zadáni už bude ;pni jat a slovo sp bude ;vyhodnoceno jako návesti
Id
hl,sp
;pokud to zadáte takhle, dojde ;taká k přijetí, zmizí však ;znamónko a mři vyeditováni ;a zpetním vlození bude opet ;hlášena chyba (totiž mři LOPD)
Fosledni poznámka se týká používáni závorek Pro oznažení adresy pokud je v závorce Eiselná hodnota (vgraz), staEí zadat jen tu levou, Pravá závorka bude doplnina však Fokud totiž udelúte a v závorce jsi bjjt resistr (např. (hl)), bude slovo h1 vyhodnoceno jako návosti. nikoliv jako resistr zde je nutno závorku uzavrit. Fouziti závorek mři uzávorkování vjrazu není povoleno‘ -
-
-
Id
a,(hI)
;toto se
ld
a,(hl
;toto bude vyhodnoceno jako a,(l-1L), tedy HL je návestí! ;Id
Id
a,(label
;toto staEí k ;bráno jako
vezme
jako
Id
a,(hl) --
tomu aby to bylo Id a,(LQĎCL)
-
2.l.t
-
Monitor PROMUIHEUS
IV.
doplnil vhodni aby Picni tor PROMET4CLIS byl vytvoFen tak, Poskytuje mnoho možnosti. která poskytuje assembler PROMrII-IEtJS. ovládání návrhu Př-l prosramů. funkcí. která usnadčiuji ladiní ve prakticky VO1 od LR.C byla zachována shoda m programem rádi jisto programu uzivatelá tohoto vjoch shodnúch funkcích tuto skutečnost ocení -
panel,
Po vstuou do monitoru se pokud nebyl celní panel di sor
0C
vpis dvou řádků kódu od aktuální
a
RSRDQQRR Ď:175 \ C:255 P
a vypíče čelní vymaže obrazovka pčedefinován, bude vypadat takto
Dl
tp)L.5L.3
55?97 DC:4S55 SpRRQQ 5R175 DE:@0257 lX:RQeO 2‘.SSS HLSR@Q If 2361R 239SQ
RRQ NZ NC PO P 1HRRReR LR@ Dali NON UNIV(RSUM Control ON .
stroiováho adresy
registrů D,D,C,D,E,H.L DC.Dľ,HL.IX, ‚a dvojregistrů lV,SP a vpis stavu p‘reruení adres). (S zásobníku ;vris jsou ;vpis registrů R a F ‚vyp5any platná podmínky, dále :vúr‘is pocitadla1—cykli ;stavov a editacni‘ rádek
;vpi5y
-
Po vypsání čelního panelu je očekáván stisk nijaká klávesy zjisti, se klávesy stisknuti kláves, po více případná přejde pokud ano, odpovídá-li stisknutá klávesa nijaká funkci, klávesy. na ceká stisk opet se řízení do táto funkce, pokud ne,
Příslue
k
pamiti
Návrat
(aktuální
funkce
a pomocná
adresa)
do systámu assembleru
klávesa
-
O
po assembleru. do Po stisku klávesy Q se provede návrat opušten, jakám byl návratu bude assembler ve steinám stavu, v kompilace zpitná provádána že v byla příeade, toto neplatí
Nastavení
aktuální
adresy
-
klávesa
M
otázka objeví Po stisknutí klávesy M se ve spodním řádku viraz vložit matematickú je možno kurzor, nyní a hemory vyhodnocen bude ten assembler), (pravidla jsou stejná jzkov k vyhodnocováni vúrazu zleva doprava, v pripade, ze dojde pri nákolik chybi, zazní zvukovg signál a do editačního rádku se na objeví editační se opit sekund vypíie chybová Máčení, potom a umožnina je odeslání pri řádek s testem. kterú v nem ‚byl stisknáte klávesu oprava chyby. Pokud chcete preruiit vkládání, EDIT (CIZFS sHIrl 4 1), řízení se vrátí do hlavní smyčky. Hodnota vrazu bude priřazena aktuální adrese.
Posun na
daljí
instrukci
—
klávesy
se zjistí táto volby Při použití aktuální adrese a aktuální adresa se zvetgi panelu. v,pjs čelniho se obnoví proveden
COPS
gHlrT
4
s
instrukce dálka dálku tuto o
na Po
-ZE Fosun
obnoví
o
jeden byte zpit
aktuální Odečtení jedničky od vpjs celního panelu.
VnoFenj
o
jednu úroveri
Slllr1
klávesy CORS
—
—
SI-lIFT
kl.avesy tORS
7
provedeni
po
adresy,
4
se
B
4
FF1 prohlížení programu ve strojovám kódu se často objeví přitom a neztratit nul.r-.ost podívat se do nijakóho podprogramu stejná v prohhízenám podprogramu může dojit ke soucasná místo zvolení táto po vnorováflí funkce potčebe. Froto existuje aktuální hodnota soucasná tlemory, objeví dotaz funkce se a adres) IB (kapacita zásobník zvláčtni adresy se ulozí na aktuální adresa je nastavena vloženou hodnotu. Fokud je zásobník panelu. čelního se vúpis p1n‘ příkaz se neprovede. Obnoví —
Vynočení
o
jednu
úroveř,
—
klávesy tORS Sl-lIFT
S
4
ze runkce odebere vnořeni. funkce Vynoření opak je na pokud aktuální adresu, ni zásobníku hodnotu a nastaví na vgp5 se neprovede. Obnoví se adresa, nic zásobníku není žádná celního panelu.
Smazání
obrazovky
-
klávesy tORS
Sl-liFT
3
používá
Tato funkce snaže obrazovku, nastaví barvy, která assembler ti monitor) a obnoví se vpg čelního panelu.
Smazání
vCqpisováho oRria
—
2
klávesy tORS SI-lIFT
tato Smazání části obrazovky, která je určena pro vpjsy viz Editor vúpisů. obrazovky je vol.itelnú počet řádků -
‚
cást
-
Volání
Voláni
podprogramů
podprogramu
-
použití
a
k]ávesy
DREOKFOIr‘JTu:
SHIFT
SYMBOL
H
níž na adresu, o ta11 Fo stisku klávesy se objeví dotaz velni (zadávejte adresy vložení Fo má bt volán podprogram. následky) ná neodstranitel pozorne. pokud se zmjlíte. může to mít panelu, se nastaví vsechny registry na hodnoty uvedeni v čelním buó 5 podprogramu zavolání podle stavu indikátoru se provede takovú, povo)enn nebo zakázann preruienim. Mód pFeružení bude pod pracuje ladící naposledy systán nastaven jak byl návratu při zakázanúm přeruením a neginj nastavený mód, pouze NtW) Fo (příkazy nOSIt, I do systámu ĎPSIC je nastaveno IM se zjisti regjstr‘ vsechny uloží se návratu z podprogramu a obnoví jestli prí návratu bylo nebo nebylo povoleno prerusení taká ukládá správne se voláni Fn se vúpis celního panelu. pouzití tohoto príkazu si oviFte. zda je hodnota registru R. Fn samozřejne nesní bit místo registr SR nastaven na správná takto se na zásobníku nastaven do oblasti pamiti ROM (I—163B5). se a program přepsat) nelze (ROM adresa neulozí návratová nevrátí na sPrávná místo! -
—
—
-26Nastaveni
startu
pro
použití
DREDKPOINTu
klávesa ti
Tato funkce vezme hodnotu aktuální adresy a uschová viz následující funkce. eotFebu bihu s RREPRPDINTem
ji
pro
-
s
pomocí
RREDKPOINT
—
klávesy
SYMROL
swIrT
U
4
a runkce vyzvedne třI byty na aktuální adrese, uschová je na jejich místo vlozí skok do monitoru. Potom se nastaví vsechny zakáze registry na hodnoty uvedená v celním panelu, povolí nebo se přeruFenj a provede skok na adresu zadanou stiskem klavesy W. do zpet se Pokud program probehne místem s ĎREPKPOINTem, vrátí monitoru, budou uloženy všQchny registry, zjlátin stav prerusení uvedenáho je Z a na svá místo se opát ulozi odebraná tri byty je Dpe pameti ROM. zřejmá, ze tato funkce není použitelná v potrebná není instrukce táto U zprávni zpracován registr R. procesor pri aby to, pouze je SP, důlezitá hlídat hodnotu provádbní programu na REPKPOINT narazil. F
í klad: 9999 5D 5®e3 LOOP 5ee5 SR$ S7 5@O8 5@O
Id Id Id cpI Id inc dec Id or jr call
SR@ii 5O1J Seelb
;na tomto místi ;poEet průchodů
hl,STORT bc,3@OR a,(hl) (hl),a hl bc a,b c nz.LDOP SUDRDUT
stisknite
W
-
-
;na tomto míste stisknete ;SYMROL Sf-llrT ‚ U
klávesy
znamená, že v okamžiku stisknutí na tomto míst Oznařeni stisku okamžiku a v klávesy W bude aktuální adresa rovna U bude aktuální adresa rovna 50S13. kláves SYMDOL Si-1lrr Varovn příklad: kontrolujte DREOKpOINTU vloženi pro FF1 vybírání místa důsledne, aby RREOKPOINT (3 byty) nepřepsal jinou cást programu, kterou bude bih požadovat: 500R0 5ZO3 sess
Id caIl ret
PROCEDUR 5@O8 SR009
Id inc ret
hl,tJ2lR PROCEDUR
Uloženi
bloky, Postup
táto
instrukci
stisknite
;na
táto
instrukci
má
na magnetofon
stisknte
L000
-
bloku na kazetu
na Pssembler umožFuje ukládát tak bloky CODE (se standartní je následujicj‘: -
bůt
W
konec
;kdyby byl použit DREPKPOINT ;na adrese 5RR6, přepířI se ;taká adresy 5@7 a S@$R což ;nelze potřebovat a je tedy ;nutnc zvolit jiná způsob ;projdení táto cásti programu
ajhl) hl
Přístup
;na
klávesu
S
—
a SOVU:
klávesa S
jak bezhlaviEková kazetu v DPSICu). hlavickou jako
rirsr vložte adresu prvního bytu bloku. na dotaz kter ritů bt nahrán na kazetu
—
na
-
—
na
dotaz
LasU
dotaz
Leader
vložte
poslední
adresu zvolenáho bloku dváma způsoby
můžete odpovádit
1.
v tomto připadá Oude na vložením čísla jako blok, kazetu uložen bezhlavickov leader (značkovú byte) bude pouzito toto nahr-ávání se provádí hned zadaná číslo, další stisk na nečeká se po odeslání. kJ ávesy
2.
(pouiije se vložením dvojtečky a jmůna prvních 12 znaků, ostatní budou oddáleny prípade v tomto stejno jako v 2fllCu) bude ve která bude vytvořena hlavička, uložen začátek bloku (First), jeno dálka (Last—rirst4l) a zadaná jmáno, po stisku ne jaká stisk klávesy CNTCR se počká na klávesy a pak se začne ukládáni bloku na (mamnetofon musíte spustit sani) kazetu
—
—
Uloženi
bloku na kazetu
-
klávesy Y?1DOL
Sl-llPT
4
S
předcházející příkaz. jako stejná Tento příkaz pracuje dálku tedy na LonmtW. ptá LasU se pouze místo dotazu na stejná zadáni parametrů bloku je takto úplná ukládanáho bloku na promram jako v PSlCu. Chcete-li například uložit pFeložen, kazetu, provedete to nejlápe takto: -
—
písmeno na začátek promramu vložte náváští 00STORT aby při vjpisu tabulky fl a číslo 2 jsou tam proto. bude hned symbolů nebylo treba toto návástí hledat na začátku -
—
-
za
konec
zdrojováho
-
-
a číslo P2STPRT
vložte
promramu
sekvenci
S—PflSIQRT
P2LENCTH eu písmeno P u návestí
textu
2
jsou
tu ze
stejných důvodů
jako
a v monitoru MONITOR a proveate kompilaci pHkazem rirst dotaz na zvolte nyní popisovanou funkci, Q2LENCTI4 Lenmth vložíte P2STPRT a na dotaz Vám může poskytovat informaci jak P2LENCTI-4 náviští dlouhá je vyrobeni strojov kód, která není nikdy na skodu
Nahrání
bloku z
kazety
do
počítače
-
klávesa .J
dotaz Punkce se zeptá na adresu. kam se má blok nahrávat a dotaz LasU. na poslední adresu nahrávanáho bloku se Potom Leader dotaz na znackovú byte nahrávanáho bloku nebude připadá, že v nahraje první blok. kter. bude nalezen, chyba splňovat parametry, která byly zadány, nebo bude zjištána lato RCQD/URITI Crror, v pante bude ohlášeno chybová hlášení chyba bude hlásena taká v případe, že blok bude zasahovat ladící ješte preruší se provádáni další systám nebo zdrojovú text pred zadáním znackováho bytu. —
irst,
—
-
-
-za Nahráni
se
bloku
z
kazety do počítače
—
klávesy SYMĎOL
runkce pracuje jako funkce pčedečlá. uH místo dotazu ‘LasU používá dotaz ‘Lenth.
Př‘ečtení
hlavičky nebo
značkováno bytu
se
ggjrr
jen
že
tím,
klávesa Y
-
Provádí se čtení hlavičky z kazety vyr‘iSe se bloku typ ( je ĎPslC. I je číselná pole, 2 je znaková Pole a 3 je 1001), potom jmóno bloku, jeho pocáteční adresu, jeho a dálku dalsí informaci, jejíž závisí vúznam na typu bloku. vypsáni Fo informací se očekává stisk klávesy pokud se jedni o klávesu J, bude nahrán blok podle údajů zjistenich z hlavicky. Jinak se vrací rízeni do hlavní smyčky. —
Památová
Vpjs
disassembleru
—
vpisy
14-lIn
klávesy SYMDDL
4
1.
Po klávesy stisku se vpisováho do okna vypisuji disassemblovaná instrukce. Vpis lze pFerusjt stiskem klávesy ‚ (CPS 1011 S4lrT 1). Počáteční vipisu adresa je práve nastavená aktuální adresa.
Vpis
disassembleru od zadaná
?Fíkaz se dotáže na adresu, od provádeno, otázkou ‘Fjrst. Dalsí v pFedchozím pčikazu.
Způsob vúpisu
adres
-
adresy
—
klávesa V
niž má bit disassemblování akce jsou stejná jako
klávesy SYMbOL
SHln‘f
C
PH vypisováni hodnot dvojbytovch čjselnch operandů může disassembler pracovat ve tčech režimech, prepínání táchto režimů je cyklická? 1.
vypje
2.
pokud se hodnota, která má bt vypsána, rovná hodnoti riekteráho návestí v tabulce symbolů, vypíSe se místo císla toto návesti, stejne tak se návestí vypisuje místo adresy pred instrukci
3.
vypisuje náváti stejni jako v režimu č. 2. navíc pokud se hodnota zmensena jednu rovná o hodnotá nekteráho návesti, bude vypsáno? návestí4l
se
bážnm způsobem číselná
hodnota
‚
po
instalaci
ladícího
Povolení
systámu
/
zákaz
je
nastaven vypisovací
vipisu
adres
—
klávesa
režim
č.
3
C
Monitor umožčiuje zakázat vpis adres pied instrukcemi, tento zákaz se netúká návestí, která mohou bit vypisována p‘red instrukcemi pri zvolení rezimů 2 a 3.
-
2mina
císelná
soustavy
29—
klávesy YI1DDL
Sl-llfl
.
3
Zmina císelná soustavy se tí,ká vsech čísel vypisovanch ve všech typech pamelovúch vpjsů, netúká se Ovsefn v1pj5u registrů v celním panelu toto lze ovlivnit v editoru celního panelu. —
Vpis
disassembleru na
tiskárnu
—
klávesa D
disassembleru na Program umožňuje posílat vi,pis v assembleru pres tiskárnu, komunikace se provádí steine jako táto funkce kanál E. 3 operačního systámu Spectra. Při zvolení a na adresu First poslední Last se program zeptá na první instrukce začína.iíci na úseku. kter, má bit vypsán na tiskárnu vypsána už Vypisování lze poslední Last adrese nebude. CDP Sf-iJrI + ENIER přerušit stiskem kláves po každá instrukci, každ, řádek je pro kontrolu taká vypisován do v,pisováho okna. -
Zpitn překlad do
zdrojováho
textu
—
klávesy S‘YMDL
SRIFT
D
smiřuje runkce sp podobá předchozí, v,pis strojováho kódu vkládání se místo na tiskárnu do zdrojováho textu v assembleru provádí za přístupov řádek (zcela jako při napr. prikazu LObD). na adrese Last, instrukce počínající Opit dotaz na •FirsC a dojde textu nedostane. Pokud k Lasli se taká do zdro.iováho je dána chybi, moznost ohlásí se chybová hlášeni a uživateli chyba flemory (u1l, nalezenou chybu opravit, bude—li hlásena nezbyde ner stiskem EDIT (CPPS SHlrT 4 1) celou akci prerusit. kLávesy Chcete—li převod předčasná ukončit, stisknite současně rádek se kazdig CQP l-llrT 4 ENTCP. Při zpitnám překladu opet vypisuje do Vám príklad viz okna. Více poví vúpisováho prí lohy. —
Znakoví vpis pamiti
—
klávesa
D
vždy pamitj Protože při prohlížení obsahu nepotřebujeme v vid,t ien stroiovú kód. vypisování císel umornuje monitor pameti iako znakú. kazd rádek vjpj5u obsahuje adresu ! dvacet v ar 127 rozsahu 32 se pet znaků od táto adresy. Znaky s kódy vypisuji obvyklm způsobem, v ar 31 jsou kódy 0 ro!sahu 127, odecte nahrazeny teckou. Pokud je kód znaku vetsí ner se vypíše stejná jako pouze bude číslo 129 a znak se předtím, vqpis. Jako prohozena barva papíru a barva inkoustu inverzní Vjpjs provádí tak první adresa se vezme aktuální adresa. se a dlouho, dokud je stisknuta libovolná adresa. Preruiení vqpisu návrat do hlavní smycky zajistí stisk klávesy EDIT. -
—
Znakový vqpis
od
od zadaná
adresy
—
klávesy SYIIODL
Naprosto totáž jako v předchozím připadá, rirst. adresy zadaná na dotaz
Vpis
čísel
—
klávesa
HlT
vpis se
D provádí
L
od číseln Poslední vúpis umožnin monitorem je vúpis aktuální zdresy. Na řádku bude vypsána adresa. pot jednoDytovch Všechno ostatní čísel a set znaků odpovidajícíh támto číslům. je shodná jako u znakováho vjpisu
-30-
Vúpis
Eísel
od zadaná
adresy
—
kLávesy gyrlDoL SI-IIF‘t
Vúpis se bude provúdit od dresy zadaná na Jinak se tato funkce neupí od predchozi.
Vyhledávání
Zadání
posloupnosti
byte‘ v
posloupností
a vyhledáni
dotaz
L
‘rirst‘
‚
‚
pamiti
vskytu
pnního
4
—
klávesa
C
dlouhou posloupnost, 5 bytů Příkaz umoiřiuje vyhledávat nikterí byty mohou bt pro porovnávání nevznarnná. Po zvolení sQ bud vlozit můzete ‘5, ‘I. ar byte‘ bwte‘. objeví dotaz takto se oznacuj) dvojtecku požadovaná císlo (vraz) nebo nevznamná byty v hledaní posloupnosti. Fo odeslaní pateho cisla se provede hledání, pokud bude posloupnost nalezena, nastav), se vypis na adresu jejího vskytu aktuální adresa, potom se obnoví Eelniho panelu. l-fledání se provádí od adresy. která je vets) O I ne aktuální adresa a do konce pane ti —
řiklady: hledíte
vskyt
posloupnosti 1, 2. 3, L.
5, hledáte
instrukci 1. 2. 3. L..
5,
byte byte byte byte byte
znaků
flScd,
zadejte:
P 5 ‘c‘ ‘d‘
ldhl,33333
‚zadejte:
byte P21 byte 33333?256 byte 33333/256 byte byte
kód instrukce Id hl,N bua zníte. ‘najdete ho v tabulce nebo editace do prázdniho místa v pamiti tuto instrukci vlošíte (viz pameti) a podíváte se na její operacní kód.
VNhledání
dalšího vjskytu zadaní
posloupnosti
—
klávesa N
adresy se Pktuální adresa se zvitší o jednióku aod táto prikazem, zadaní predchozim vskyt posloupnosti hledí dalsí nastaví na pokud bude posloupnost nalezena, aktuální adresa se její zacátek.
Přenosy
a plniní
Přenos bloku
-
bloků
klávesa
I
se na na první ‘rirst‘ adresu bloku, Fromram zeptá a na kam má bt blok bloku poslední ‘Last‘ adresu místo, prenesen •‘To‘. Fo zadáni se provede kontrola jestli se místo kam nebo nepřekrvá má ladícím systimem prenesen bt blok s testu ke Dojde—li zdrojovům te‘tem. a provede se přesun, při
-‘31zjjštinj kolize tichto dvou částí pamiti, provádiní se přeruí C a odkud Místa Error‘ ‘RCOD/WRI‘tE VyPÍQ 50 chybová hlásení vzdy bude blok místa kam se budo přenášet se mohou překrývat, přesunut dobře.
Fřenos bloku
—
klávesy
SYMBOL
předchozího liší od se Fř‘íkaz parametrů bloku, místo otázky ‘Last‘ je dálku prenásenáho bloku.
bloku
Flniní
Swlrl
zadání zptisobem pouze na nynl otazka ‘Lenmth‘
klávesa F
-
na ‘Last‘ konec a ‘rirst‘ Fromram se zeptá na začátek pameti do nezasahuje zda blok se kontrola, bloku. provede pokud ano, ohlásí obsazená ladícím systámem a zdroiovúm textem se chyba ‘REDD/WRITE Error‘, pokud ne, zeptá se program Joste na se blok vyplní. zvolenq potom blok, chcete ‘Uith‘ plnit to, čím —
Flnní
bloku
—
klávesy
funkce předchozí Obdoba parametry začátek ‘rirst‘ a dálka
Edi tace
-
S‘rf‘IDQL
SHIF“T
‘
F
tentokrát
se blok ‘Length‘.
zadává
památi
je umojř,uje je. FRDMC‘fl-IEIJS V‘raznou vlastností monitoru nutno zapisovat v monitoru do památi přímo instrukce, není tedy vyuzivá funkce lato kódů, operačních pouzívat tabulky podprogramy pro kompilaci z assembleru. Jednorázová editace pambti
—
klávesa
EFPCC
Fo stisku klávesy SFDC( se objeví v editačním řádku kurzor nyní je možno zzdat instrukci stroiováho kódu a to ůplne vlevo, tedy zcela stejnm způsobem jako pri vkládání zdrojováho textu, Príkazu u tohoto instrukce začíná od desátáho znaku na rádce jednou jeste stisknout stačí tabelace, funquje automatická průchody oba provedou se vloženi instrukce mezerník. Fo adresu. Fn aktuální na uložena bude kompilace a instrukce u)ozena nebyla ukládání instrukce se kontroluje, aby instrukce za ani textem zdrojovům se systámu ladícího oblasti do uzivatelskou za instrukci chcete uživatelskou zarážku. Fokud assembleru, do vrátit musíte se jen vlzit, zarázku prece instrukci. přepsat její hodnotu, vrátit se do monitoru a vlozit pouzijte teyt, Chcete—li do pameti prece jen zapsat cjslo nebo pseudoinstrukce textu odpovídající způsob jako ve zdrojovám slouzi sice príkaz účinkam. ocru, Tento ocrri se stejnm DErD, hodnoty keditováni památi, můžete ho pouzit i pro nadefinování použijte pseudoinstrukci CDU, více nejakáho ti nováho) návišti nalezena instrukci se dozvíte v příloze. Fokud buda ve vložená chybová sekund chyba, ohlásí se do editačního rádku na nekolik hláseni, bude-li to pokus o zápis do zakázaná oblasti, vypíse se do instrukce chybová hlášeni ‘Dad FIJT (DRC)‘, Ve fázi vkládáni editačního řádku lze funkce přeruit stiskem Coll. -
-
-
--
—
-
32-
Opakovaná editace pamitj
klávesa E
—
do pamiti vložit více instrukcí, Chcete—li není jednorázová pohodlná je nutno neustále editace pFílij pFeskakovat za právi vloženou instrukci proto pouzljte tento objeví príkaz. Fo zvolení táto funkce se v editacním rádku takó kurzor. steini se funkce chovů j dáJe, po zapsání do instrukce za vlozenou instrukci, obnoví pameti, se ukazatelposune se vpi5 óelního panelu (důležitá jsou dva disassemblovaná řádky) a 9 možno vložit daljí instrukci. FF1 j můžete vkládání používat —
—
pred instrukci taká návestí, bude mu prirazena hodnota ukazatele odvolávat na vžechna pro ukládáni instrukce. FF1 psaní se lze tedy napred návistí použít v již existující definovaná návetí jinak poli návestí a pak se na nej lze odvol.at v poli operandů, bude hláiena chyba, odvolávat se samozřejmá lze na návití i definovaná definovaná v průbihu poslední kompilace nebo dříve viz príloha. pomocí jednorázová editace pseudoinstrukcí EWU —
—
a
krokování
trasování
promramů
nejdůležitájií krokování a trasováni jsou funkce, která poskytuje. trasování a krokování se monitor Fn instrukcí provádí kontroly jestli instrukce nepouzívá zakázaná oblasti pro
záPis. ctení a beh takovch je oblasti morno kazdou pro cinnost definovat az 5, navíc oblast v nachází njz se ladicí systám a zdrojově text se kontroluje na vsechny Vále cinnosti. I-4OLT instrukce zakázanám se kontroluje, aby se nepouzila pri -—
prerusení.
Frovádiní
je
kontrol
možno
vypnout
a
rychlost
trasování se priblizne zdvojnásobi kontrola na instrukci HOLI vypínají se vypnout nedá, na zakázaná se oblasti kontroly —
pamiti
a zdrojovim ladicím systámom textem. obvyklou simulaci. lze volit tri rezimy uvybranch adres (morno az 1 adres) se tyto instrukce provedou (nebude se simulovat voláni prímo podpromramu ale cel‘g podpromram se zavolá najednou) anebo se budou všechny instrukce COLL a dva Rfl provádát najednou. zvyjují Foslední režimy
U
včetnj
instrukci
rychlost
oblasti
s
COLL a Rfl
-
je
trasování,
tu
vsak
riziko
ztráty
kontroly
nad
vybranch prosrarnes —rezim rychláho voláni podpromramů lze vhodne pouzít na dokonale odladinch podprogramech pro zvůení rychlosti trasováni. Vcástech promramu, která jsou přímo volány samozrejme neexistuji zádná kontroly. V řádku editačním jsou vypsány indikace stavu (Control ON/OFF) a způsobu, kontroly jakým se budou provádet instrukce COLL a RS! (Cafl NON/OEF/PLL) (zádná/difinovaná/vjechny instrukce se budou přímo volat). Nevypnete—li kontrolua budete—li krokovat či trasovat 5 vá promramyse zakázaným prerusením, nemůze se stát, ze by monitor ztratil rizení prosramu. hudete—Ji pouzívat povolená prerugení v modu IR I nesmíte menit (je hodnotu resistru IV pouzíván systámem jako ukazatel do systámovch prominnch), dávejte si taká pozor, aby se reeistr SF (ukazatel na zásobník) nenastavil do oblasti pameti ROM. v pFeruieni módu Ďud?te_li ‚povolovat IN 2, musí nastaveno správne preruieni není trasováno ani nijak kontrolováno! .
—
trasováni počítá FF1 krokování a taká monitor časovou párocnostprosramu pocítadlo T-cyklú (IW2eO). Fočitání cyklů se hodí pri práci s na promramech, která musí trvat přesná zadanou dobu promramy LVOV a SOVE, hudební rutiny, barevná efekty na obrazovce a v borderu. Na začátku nastavte počitadlo na nulu a protrasujte tu část, jejiž časovou dálku chcete zjistit. Fn trasování se nesmí zádná instrukce RST COLL nebo provádet Primo. -
—
—
krokování Fo stisknuti
—
kláves
klávesy SVMSOL
se provede
SHIFT
simulace
—
Z
jedná
instrukce na
—33vsech hodnoty obnoví se provedením pied adrese. aktuální registrů (včetne R) aprípadni se povolí proruseni. po provedení stav se simulace se hodnoty vsech registrů omet ulozi. zaznasiena je povolepa Pokud preruseni a obnoví se vqpj5 Eelního panelu. kontrola, provedou se potrebná testy pred vlastní simulaci, kdyz Eeká se a je zjižtána nijaká kolize. vypje se chybová hiásení na stisk klávesy. Simulace instrukcí CPLL a R57 se provádí podle jak toho. podle nastaví zvolenáho režimu. Pktuálnj adresa se simulovaná instrukce smání obsah citace instrukcí.
Pomalá
trasování
—
klávesa T
adrese, aktuální na instrukce simulaci runkce provede provede adresu, aktuální zmení panelu. obnoví vůpis Eelnjho R(QX klávesa stisknuta není pokud test stisknutá klávesy a znovu. stále — cyklus celú opakuje SPQC() SHIrT ((nPS 3 (NT(R. Sl.IlrT CDPS klávesy Stisknete—li při trasováni souEasne obnovováni stisknuty, klávosy kdy budou vynechá se po dobu, celního panelu. tato nosnost je uzitecná pro zrychleni trasování Simulace cyklu. tFeba pro urychleni nikteráho na kratží dobu probjhá stejne jako pri krokování. -
Rychlá
trasováni
—
klávesy
SYMDDL
SHIFT
-
T
adresu na zeptá program se možnosti PH zvoleni táto LasU. a provádí cyklicky instrukce na niz by se mel zastavit aktuální znání adrese, aktuální na tyto akce simuluje instrukci obnoví (nPS SHIFT -4 (NTFR adresu, pokud jsou stisknuty klávesy -4 a SpPc() celní panel, testuje stisk klávesy ĎR(QK ((PPS SHIFT poslední zadaná nerovná adresa aktuální se testuje, jestli na opet R(PR, skoci stisknut adrese, pokud tomu tak není a není panelu zacátek cyklu. V opaónám připadá se obnoví výpis čelního by a rychlá trasování se zastaví. Pokud nevíte, na která adrese RCflkem) zastavíte ho se sel program zastavit (nezáleží na tom vložte třeba R. —
-
Práce
Zmina stavu
s registry
indikátoru přeružení
SYtIDOL
—
SHIFT
-‚
ti
na (I Dl Přerušeníz stavu Přehodí hodnotu indikátoru bude se preruseni nebo naopak. Indikátor urcuje v jakám stavu bih provádit 5 nebo podprogram volat simulovat každá instrukce, se indikátor skoncení každá taková akce pomocí DR(PXPDINTu. nastaví podle skutecnosti po provedeni instrukce.
Přehození
obsahů základních klávesy SYMDL
a alternativních SHIFT
4
registrů
fl
ve registrů, Provede vminu základní a alternativní sady a (X PF,OF (XX strojovás kódu je to ekvivalentní instrukcím registry, vždy ty základní Pri trasování nebo krokování jsou tedy mři se Chcete—li která jsou viditelná na celním panelu. musíte registrů, alternativních hodnoty krokování podívat na pred dalžim krokováním registry vrátit.
—34Nastaveni
obsahu
Fo zvolení
registrů
N
?ádku objeví
se v edjtacním
táto možnosti
S4l3
klávesy SYľ1OL
—
nápis
vložte mino registru, jehoz hodnotu chcete zmenU, carku nebo mezeru a napiste Eís]o do Cvqr-az), chcete tohoto která registru zapsat,registry jsou tyto:
registry:
Jednobytová Dvoubytoví
P,D,C,O,E,I-LL,I-I,LX,I-JY,LY. l,R PF,OC,DCj-IL,lX,lY.SF
:
registry
Foitadlo T—cyklů Famitová Stavově
T
ukazatele registr
ti stavováho registru F následujícím zpbsobem: Id
f,c
Id
f,s
Id
f,z
Id
f,p
—
—
—
—
:
)(,Y
:
F
registr)
(viz editor
je
možno
zmini
hodnotu CPRRY
zmíní
hodnotu SItN
zmíní
hodnotu ZERRO
zmíní
hodnotu FPRITY
Nastavení
bErĎ
Nt na C
flagu z F
oblastí
na M
flagu z NZ flagu z
a
—
jednotlivá bity
minit
flagu z
zakázaniich oblasti
Nastavení
ěelniho panelu)
na
a naopak
a naopak Z
a naopak
FO na PC
a zpit
jinqch parametrů
klávesa
I
dovoluje Monitor nastavovat oblasti, která budou p?i vpisu disassemblerem vypsány jako data, jednobytová takovch oblastí si můžete nadefinovat celkem S. Každá oblast je zadána prvním a posledním bytem (vEctru). Fo stisku I klávesy se do vqpisováho okna vypíší souEasne nastavená oblasti. kazdi rádek zacínú cislem oblasti (0 až L.), za ním je vypsána adresa prvního bytu oblasti a pokud je stejná jako hodnota nejakáho návesti, je vypsáno taká toto ruávejtj, nakonec je vypsána adresa posledního bytu oblasti a pripadni návestí. Nyní můžete stisknou bud klávesu s cislem nekterá oblasti tato oblast se vymaže a znovu vypjse se seznam nastavenich oblastí twindows—okna), nebo klávesu I. v tomto pFípadi se program zeptá na první a FirsC na poslední Last adresu oblasti, proverí, platí, ze jestli ‘FirsUc—tast. a přidá novou oblast za již definovaná oblasti. pokud je jiz vsech pet oblastí definováno, klávesa nebude I reagovat. Stisknete—li jinou klávesu nez 2,1,2,3,4,1, program se vrátí do hlavni smycky. Za oblast s jednobytovmi je hodnotami povazován taká prostor pameti a obsazeni ladícím syslámem zdrojovm te,tem. -
Nastaveni
DCFW oblasti
—
klávesa 2
balu která lze typ oblasti, používat jsou oblasti dvoubytovmj hodnotami (tabulky adres), jejich nastaveni úplní stejná jako u oblasti DCFD.
Nastavení
FF1
Iadini
oblastí, programu
z
nichž je
se nesmí
vhodná
mít
Eíst
—
klávesa
jistotu,
že
s je
3
program
-35proto urEena, nejsou reřte data z míst v pamiti. která k tomu zakazat. instrukcím místa tato byla do programu dána moznost každá instrukce. která nijakiqm zpZ.sobem cte data z pameti. napr. nebo indexregistrů přímo z adresy, z adresy ‘ registru, pomoci bude nejprve P registr (tedy i REl. FDP a CX (SFLHL), pres pokud kde to má zakázáno, provcrena. zda tak necjní z oblasti, ano, její simulace se neprovede a bude ohláseno chybove hlasem. prostor pame1ovj Za oblast se zákazem Et.ní je navíc povazován definice Vlastní obsazenu ladícím systámem a zdrojovjm textem. No read‘ oblastí je stejní jako u DCPD oblasti. táchto
Nastavení
oblastí,
do nichž
zapisovat
se nesmí
klávesa Z,
—
zda program nečte data z míst Důlezitojgí, nez zjišovat, aby •z nichž by nemal, je mít moznost hlídat program, pamiti, U kazdá nametL úseků povojench nes nezapisoval do jinuch COLL instrukcí (včetne instrukce. která provádí zápis do pameti neprepísí se PSi, FUSl1, CX (SF),NL) se provede kontrola jestli bude a neprovede se ano, simulace pokud zakázaná oblasti, Li jako obdobná hlášena chyba ‘REOD,‘WRITE Error‘. Nastaveni je je textem zdrojovým DEPfl oblastí. Oblast s ladícím systám.m a No write. taká považována za oblast se zákazem zápisu
V
—
Nastavení
se
oblasti
zákazem bihu
—
klávesa S
Fosledním typem oblastí, kde je možnost nico zakázat, jsou nejaká provedeni po se by Jakmile oblasti se zákazem tibu. instrukce instrukce ocitl program v oblasti se zakázanům behem. stcjná je Zadáváni se nevykoná a ohlásí se chyba ‘RUN Error‘. nejak potreba není jako u všech předchozích. Použiti snad ani mel, kam by například když se program nevrací tam. vysvitlovat se jakmile programem, s oblasti vlastní zakažte vše, krotni povolenou mimo pokusí o skok nijaká instrukce při trasování nejcasteji vyvolává tyto problápy oblast, bude hlášena chyba instrukci pomoci adres chybná práce se zásobníkem návratovuch obvykle neco chybí nebo prebúvá. FUSH a POP —
—
-
Definování
adres pro přímá
voláni
-
klávesa 6
je programů, trasování jak urychlit způsob. Vúhodnú kazdou (nesimulovat přímo provádit vybraná příkazy COLL a PSI podprogram celu ch volat podprograme instrukci ve volaných adres. deset najednou), K tomuto účelu si můzete zvolit celkem DEP) Pokud nastavíte rozim voláni defjnovan,chpodprogramú (Cafl jehoz adresní cást Je rovna bude se každiq příkaz COLL nebo PSI, príkazam. tímto definovanóho ze seznamu adrese nikterá ladeni Fn adrese. na táto nahrazovat zavoláním podprogramu pouzívá na jiz odladená a dobre vuhodni moznomt e tato programu fungující podprogramy (nehrozí tu již nebezpečí ztráty kontroly. znaku. tisk podprogram se vrací zpit tam, odkud byl zavolán) na a taká přerušeni používáno test klávesnice pokud není a nahráváni zpoma!it podprogramy, jejichž práci není mono je Editace v príloze. pouzití Ukázky podprogramy. zvuková navíc mozno je vymazávání podobná jako u definovúni oblasti, az 9. provádit klávesami —.
—
—
—
Zmina
režimu provádin
instrukci
COLL
a PSI
-
klávesa X
PSI a instrukce ‚COLL me Jak bylo dříve uvedeno, mohou a provádit třemi různumi způsoby, která 5e Iiii hlavns rwchlosti jsou rezimy ůmirne. iyto neprímo bohužel bezpečnosti a jejich vuznam uz (NDN/DEF.‘OLL) indikovány v editacnip řádku —
-36byl
popsn
dříve.
Zapnutí
/
vypnutí
instrukcí
kontroly
—
SYPIDOL
si-uri
4
X
provdiní vjQch vypnout Tímto příkazem lze najednou provdení zvgsi rychlost dvojnisobni nejmáne to kontrol, Tuto možnost pouzíveite uvzene. trasovni
Eelního
Editor
FFechod do editoru Eelního panelu
panelu
—
klívesy SYMDDL
SHIFT
-‚
ti
Fo pFepnuti do editoru Eelniho panelu se vymaže obrazovka. v jedna z položek se obnoví vpis Eelního panelu a rozsvítí definovat její celním panelu. Nyní je možno pro každou položku viz dile. umistini. způsob vpisu a další možnosti —
bvldní
CDFS
SI-IlrT
-#
1
EDIT
editoru Eelního panelu
—
opuštini
editoru delního panelu
položku v
seznamu
—
p?echod na nůsledující
J
-
pFechod na
5
-
posun položky
o
jednu pozici
6
-
posun položky o
jednu pozici
dolů
7
-
posun položky o
jednu pozici
nahoru
S
—
posun položky o
jednu pozici
doprava
D
až
Z
—
p?edchozj
položku v
dile)
seznamu
doleva
nastavení velikosti položky (5 až 25), pro budou nebo registry znamená, jestli se nebudou vypisovat, ro pameová vpisy se která se vypisují takto mení pocet adres, vpisu
taká
H — zapnutí nebo vypnutí šestnSctková soustavi
vjpisu
laků
vypnutí
vlpisu
taká
nebo vypnutí
vúpisu
laků
SYMbOL SI-ll! O zapnuti nebo vypnutí v desítková soustavá -
-
SYMbOL
si-uri
SYMbOL
SHIFT 4 fl zapnutí nebo ve dvojková soustavi
SYMbOL
SHIrT - C — zapnutí ve znaková formi
SYMbOL
SHIFT 4 T — zmina typu vúpisu v4psů vypisuji bud se dvouby ty
—
—
SYMbOL
(viz
u pami1ovch jednobyty nebo
vqpi5u u pami1ovch SHIFT 4 S zmina smiru výpisů - obsahy adres jsou jednotlivtch vypisovóny bud vedle sebe nebo pod sebe —
která lze poujvt
er‘m položek,
Editační
-dek
—
kter‘ dek Dudo
lze ovlivnit pouze. tyto úcejy
pOuZjvn pro Vp‘jsc,vó
lze ovljvr,jt počet idk6, která Dudou okrc pouzjty, lze toká zmir‘it polohu okno
Ypjsc,vá
Eulnho mři obnovovaní okno disossombleru vypisuje rrekolik rdkr instrukci se por-relu pocet odresy. oktulr.i od strojovóho kódu o polohu okno lze r,ostvit
gtO,
—
—
ení
pQrL
-
Ul
v‘is
nebo Dl
C.D.LH,L. l.R.l-1X,LX,I-1.LY remisl.ry ve kterch Dudou lze volit soustovy, r-eistry mohou dr-roty vypisoviny jejich bqt vypisovány vQ rrecfl pojednou, u reitru mezi (YI1flOL StIIF1 4 ) volit mezno F je splnerrrth O “4Pl5O vpisem binárním podm ir-rek
Jednobytová
P
—
F
-
—
Dvojbytová
se Vpis
resistry
—
hrc
E,t-lL,‘lX,7V
nztovit
lze počítzdjo T—cyklit, ctvojbytov registr
Pdresovó
-
podobá
reqistrC,m
jednobytovm —
tojr-r
joko
vpisy od zodná odr-esy Cukozotelo )C.Y) která u techto v4pisú lze volit počet byt‘ kterim e Dudou vypjsová,-ry, lze minit smer, tol‘ró már-rit lze vypisují, hodnoty jednotlivá Dudou vypi5ovot jednobytová nebo se jestli dvoubytová hodnoty
dvojremjstru stejná nostovit lze joko u pedcházejícj položky
Pdreovó vpjsy od odr-esy
-
—
vjostnostj
editoru Nejjistáj zpisoD, jok si osvojit zprsob poujtj nemjete nic zkozit. celního popelu, je ho zkusit pouzjt —
—SR—
V.
Příklady práce s
1•
Fříklad
-
ladícím systómem
zpitnů preklad
jak Tento příklad Vám pomůže vyzkoušet a pochopit způsob presni lze převóst trojovg kód do zdrojovóho textu. Provádeite vqsledky. a popsaná úkony sledujte Nahrajte PROMrTF4EUS na adresu 26000 a instalujte ho vóetni objeví vPis se monitoru, V assembleru vložte prikaz MONITOR. óelního panelu, nyní stisknete klávesu SPOrE, dojní rádek panelu a objeví se kurzor, napiste Hdbytes emu $555 a stisknete zmin vložte text INTER. Nyní stisknete klávesu M a na dotaz tiemory dbytes uvidíte Po odeslání se obnoví vúpis celního panelu a 1366 vsak vfpi5 obsahu pameti ROM od adresy 1356, místo císla bude vypsáno návižtí LOSYTIS. objeví (dále SS) a 6, Nyní stisknbte klávesy SYMDOL SNIn ve objeví e nikolik řádků vqpisu disassembleru, až se vúpisu EDIT. Stisknete instrukce call 151V, preruste vpis klávesou opit klávesu SF521 a vložte ‘ldedqei cpu 151V. adresu Opakujete-li znovu disassemblování naleznete dali ldbreak emu 1387 a vylistujte instrukci jr nc.138?. Vložte objevilo návestí LOSREQK se na si nikolik instrukci (SS4), podobne tak návestí vsech místech, kde bylo dríve cislo 1387, aby návesti LDDREP)< LOEDCEI. Vypjte instrukce tak. na si zaóátku řádku bylo v horní cásti vúpisu. v
Oalí adresa Obnovte vqpi5.
je
číslo
1!96,
vložte
ldwait
emu
1396.
Ve výpisu můžete vidit instrukci toto jr nc.LO5REPk1, je skok na druhou instrukci od adresy LODREPK. pokud by se mezi vložila dalí tyto dvi instrukce pozdiji už ve zdrojovóm textu radiji instrukce, nepracoval by prosram správná. Vložte tedy ldstart emu ldbreakV, uvidomte si. ze můžete používat již pravdipodobnost deľjnovená náviití místo adres, snižíte si tak vkládáni. omylu Fn Pbychom
se
nezdržovali ldedme2 ldleader ldsync ldmarker ldflas ldverify ldnext lddec ld8bits ldloop
vložte emu emu emu emu emu emu emu emu emu emu
postupná
tato návití
1557 1608 1623 1690 1659 1659 1676 1676 1692 1669
Prohlúdnite disassemblerem ramiI.. v hlavni si části programu je každá adresa nahrazena návestím. Nyní se podíváme na LOUDIlI a oba podpromramy LOUDIL? nejprve L010212, nastavte aktuúlní adresu na LOUDIL? (klávesa ti) a disassemblování při naleznete adresy isis ; 1517, vložte náviiti LOOILPY a LOSPMFLE, pokud dctre je LOEOIEI jste všimli, návičtí na si třetí za návestim LOUDIl? a tedy instrukci spolecná cást jiz neobsahuje adresy, která by nebyly nahrazeny návičtími. Nyní provedeme zpitnt překlad Stisknite SS a O, na dotaz nirst: ldbytes a na dotaz vložte LasU vložte 15604V Po odeslání uvidíte vgpis disassemblovzná cásti pameti ez nyní adres pred instrukcemi, pouze s návestímj Po skoncení stisknete klávesu I opet se zapne vipis adres pred instrukcemi. ‘
.
—
-
Vralte
se
do
assembleru stiskem kLávesy O.
Pokud jste vžechno provedli přesni podle pokynů, mil by zdrojové text konřit na adrese 605R7. Stisknite 55—k a dostanete se na začátek zdroiováho textu. Najdete instrukci ‘Id hl,133‘, je to sedmi instrukce Od začátku, nastavte do přjstupovóho řádku následujicj instrukci ‘pustl hl a stisknite dvakrát CQPS SJllrT49 a vymazete tyto dva rádky. ‘
Začátek
programu bude po provedení LODV‘TES
Zdrojov
zmin následující
d af,af‘ d
inc ey dec di Id out in
»,15 (251fl,,a .) 1 a,(25
text bude končit na
adrese
L.RS9S.
V tomto okamžiku je nejvyjj čas pro uložení zdrojováho textu na kazetu. Stisknite SS‘S a vložte loader‘. spusIte volnou kazetu a nijakou stisknite klávesu, o provedení 55V stisknite (VLRIY) a odeslání po vralte kazetu z zkontrolujte nahrávku, pokud bude chybná, opakujte VLRlr‘t a kdyz bude neúsmiinú. opakujte SDVL, nyní už můžete odeslat jen SOVE bez ničeho a jako jmáno se vezme posledne zadaná jmáno. Nyní
připište před program org ent Id Id Id scf cafl ret
STPRT
instrukce RRRPR S 38 ix,1 6 de,5912 a,255 LDDYTES
Vezmite kazetu s libovolnou obrazovkou a nastavte ji před (55.*) blok dat (za hlavičku) a zadejte prikaz RUN a spusl.te magnetofon, po skoncení nahráváni bude program čekat na stisk libovolná klávesy, aby se mohl vrátit do editoru. Vložte ‘rigo s:or z rozsahu R. .7. zmení dvojice
se
2‘, zminí te—li číslo 2 na nijaká číslo barva pruhů zachovány zůstanou —
-
cerná bílí modrá žluti červená svetle modrá fialoví zelení —
—
-
—
Další instrukce. která mini barvy pruhů je jnstrukco CPL, zamiř‘te ji za instrukci xor 11111111, zminite—li jednicky na posledních třech místech za nuly (ne všechny, různi zkousejte), můžete získat další kombinace barev. Poslední instrukce menicí barvy je instrukce za návistim LDSYNC. která mení xor 3 barvy zavádicích pruhů na barvy při nahráváni, Vložte příkaz ‘MONITOR a‘ (SS‘t1). provede překlad a se skok do monitoru. Nastavte aktuální adresu na LOEOr1, stisknste SS—N a zadejte ‘t,R‘ vynuluje se počítadlo ‘T cyklú, Stisknete 55T a vložte ‘ldsample—l‘ trasování do adresy LOSPMPLE—1. Po skončení ukazuje počítadlo T cyklů hodnotu 351., Toto je počet cyklů procesoru potrebnj na provedeni tohoto programu: —
—
LOCOCLI LODELPY
bitu
—
Id dec jr
a,22 a nz,LOOELOY
Tato část programu se provede dvakrát mři nahrání každóho tedy celkem IR krát mři nahráni I bytu. Stisknete a Q
se
vralte
do
assembleru.
tři
Nahračlte uvedená
řádky
takto‘ a,7 a 2,a (254),a 3.a nz,LDDELQV
Id dec set out res
LDEDCCI LDDELPY
jr
MONITDR a, nastavte aktuální adresu na HdedgeV. Vložte adresy nastavte poáítadlo T cyklů na R a trasujte program az do tedy o 8 ldsarnple-1‘. Fožítadlo T cyklů ukazuje hodnotu 31.6, cyklů máná. nez by málo, pridejte dve instrukce NOF za instrukci 351, jr nz,LDDELPY, zopakujte vpoEet T cyklů, nyní jQ hodnota a tedy stejná jako dříve a loader bude pracovat opet bez chyb. Spusfle program vsledek uvidíte sami.
RUN
příkazem
a
nahrávání.
vyzkouřejte
Vátšina loaderů reaguje na stisk PRCE, pokud budete chtít za návestim •ret nc tuto možnost vylouEit, nahraate instrukci LDSPMFLE instrukcí nop. balří
2.
Vložte
už
možnosti
musíte vymyslet
Příklad
EL.EPR
příkaz
y,
lLL rlLL2
Frove2te RUN je to jiná, taká ne tak máte smůlu).
—
možnosti
—
napiřte
a
vyzkouiet
sami.
trasování
tento
ent
S
xor out Id 3d Id Id inc dec Id or jr ret
a .).a 1 (25 hl,16381. bc,5912 a,r (hl),a hl bc a,b c nz,rlLL2
krátké program
znovu, to televizi,
v4sledek nevypadá žpatná, zkuste barevnou ořklivá (pokud nemáte
vypadá obrázek jinak, má na Jo, že po každám sputání a instrukci svádomí registr R. Vložte tedy za instrukci xor Id r,a. tentokrát bude vgsledek vždy stejn, registr R má vždy při spuŠtiní hodnotu nastavenu na nulu. ‘
přejdete nastavte Vložte tlONlTORa a do monitoru. je adrese aktuální adresu na návqstí STPR1, zjistete. na která rychlá obrazovku a ret, vymazte (CS48) spusfle instrukce (SS4T), trasováni na dotaz dejte adresu instrukce ret. Last‘ Fo odeslání uvidíte znažná zpomalená vjechny akce, která program provádí nyní můžete: —
a)
nedálat nic
b)
stisknout CRF 5 jednotlivmi znařne zpomal í
c)
stisknout CPPS SNlT a FRCE a trasováni zastavit, prípadne opet spustit nebo krokovat jednotlivá instrukce
—
požkat
až
to
samo
skonEí
SJ-IlrT a CNTER a sledovat co se dáje registry, rychlost trasování se
Chcete—ji PotJzijte pomalá
jednot)ivá trasoviní sledovat při traso‘ěini fl, znovu můzete
registry.
a)
opet nede lat nic tentokrít program pobezi tak dlouho, dokud nenarazí na instrukci, která by provúdila nebezpecnou akci
b)
stisknout CQPS SI4lr‘l a CNTCR. teči e program naopak zrychlí, přestanou e vycisoval, hodnoty registrů
c)
stisknout
—
CflrS
SHlrr
a SRbCI
a zastavit
trasování
51QRT, vymažte náviití Nastavte opit aktuální adresu na Vyzkousojte ocet obrazovku (SS8) a vypnáte provádení kontrol. rychlá i pomalá trasování u rychláho melo patrná by byt zvení rychlosti —
př-esvidEite Qž se do sytosti kontrolu opit zapnite CSSX).
o
v
rozdílu
Zrychlení trasování vypínáním kontrol radiu a pokud ano, tak si dobre rozmyslete zda program nijaká nepFistojnosti —pri prvním spustení vzdy mčjzo Vis stát Nekolik sekund takto usetrenúch ztracenáho nahráváním programu znovu do pocítace.
vložte
Vralte se do tyto Fádky:
assembleru
LOOF
a
takto upravenú program
a
pFed
instrukci
rychlostech, nepoužívejte, nebude páchat kontrolami. s spoustu casu
id
hl.1638L
af ILL ať a 128 c,LCCF
push cafl Poe inc cp jr ret
příkazem RUN.
spuslte
(55411) a pFepnite do monitoru Fo skor,Eeni se pepnite PLL CX). na rezim rezim provádenj instrukcí cafl‘ a rst‘ ctenim na Stisknite klávesu 3 a nastavte okno se zakázanům a zadejte rozsah 8-1 (po vqpisu prázdnáho seznamu stisknete I SR na Pktuálni adresu obi Eísla), potom nastavte registr S. nastavte na 51PR1 a nyní krokujte (55.L7) pomalu (T) nebo rychle vzdy na SR na 8). (SST) trasujte dan4 program (pozor provede cel‘m call rILL najednou Instrukce se i s podprogramem. -
—
3.
FFlkIad
—
trasování
pejdite FRDMCfl4CUS na adresu 25088, do Instalujte $12a2, registry IV na monitoru, nastavte aktuální adresu na (SS-Hl) a povolte spusije hodnotu 23618 a SR na 0, přerujení rychlá trasování, jako poslední adresu uvedte 0. -
-
—
vymaže se obrazovka (uvidíte zpomalená CLS) provede se automatick listing (pokud je co vypsat) objeví se kurzor v editacni sine
Q 5e RLW1, vypíse příkaz Stisknte klát‘esu ‚pomalu INTER. chvíli objeví pFipite jeřti astisknete Fo se 0,8 255,175, tecka, stejne vlozte príkaz ‘DRbl‘ pri psaní Tusíte 55 radeji po klávesu držet ponikud dále než obvykle, při psaní a napsání první Eisljce klávesu na chvíli custte potom oP?t se z pocítace stisknete. klávesu můžete pustit v okamziku kdy ozve cvakání zpomalená klávesová echo. —
Nastavte režim orr a (X) hodnoty fl2C, 16 a 5556 (klávesa 6
a
vložte I —
jako podobni
Call jako *
adresy okna).
-
Nactavte rejstry, aktu]nj adresu zkoušejte vlojt tyto pkazy
a preruseni
jako
predesle
a
OPPy 255175 FLOT OP trplivost, chvíli sočkejte CIRCLL 127,$7,P7 proqram se zastaví na instrukci ROKL 25S22.P která realizuje pFikaz ROKL Hd (bcLa, L I1 LCRLLN a amozFejrn taká pu5te kazetu L000 rop i—2252S TO 2J295:FOKL iFLLK 23672:NLXT i CLL —
-
-
SLEP
—
55L.3
rroram se RONOOMI2L USR 250@ 25552 a bude chtít t-asovat -
Y
Příklad
—
zdrojové
zastaví na assembler
teyt
adrese
na ukúzku
rutina ze Na kazeta je takó hudební vymažte zdrojov text (LLEOP y) a nahrajte ho mez jej a Ae 3 spus příkazem pockejte, se uloží
SKOTL hry do pamiti. RUN.
CRPZY. chvíli
—
43
—
OBSkH Trochu sebechvály sneb odkud to přiělo I. Instalaceladícíhosystému II. III.Ansemb1erPRQMETREUS editor magnetofonová operace
........
4 .5 .
5 9
překlad ‘mbcl,l tabulka ostatní příkazy a moriopti formát zdroj ováho textu a dalěí podrobnosti
11 15
o assembleru
20
18
24
IV. Monitor PRoMETH:Js přístup k psměti (aktuální adxesa) a pcwnocná fuzi)cce
24
volání poóprogremů a pouáití BREAMPOINTU přÍstup na magnetofon — LOAD a SkVE
25 26 28
paměová
V.
1
výpisy
vyhledání posloupnosti by-ta v paměti
30
přenos a plnění bloki editace peměti krokování e trasování progrem práce e registry
30 31
nastavení zakázaných oblastí a jiných parametrd
34
editorěelníhcpanelu
36
Příklady práce s ladícím systámem 1.příklad — zpětný překlad 2.příklad—monostitrasování 3.příklad—traaování 4. příklad — zdroj ový text na uká.zku
32
3.3
.
38 38 41 42