Untitled

Transkript

Untitled
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<OSM
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