****************************************************************
ZZZZZZZZZ SSSSSS I DDDDD
Z S I D D
Z S I D D
Z SSSSSS I D D
Z S I D D
Z S I D D
Z S I D D
ZZZZZZZZ SSSSSS I DDDDD (C) Scray
Program ZSID je kompletny ladiaci subor pre vytváranie
zdrojoveho textu a spätný preklad do assembleru. Existuju 2
verzie tohto programu:
1.ZSID -urcená pre majiteľov ram 64 kb
(start &4040)
2.ZSID8000 - urcená pre ram 32kb
(start &8000)
Verzia pre 64 kb pamäť je samozreje dokonalejsia.
Postup pre prácu so súborom:
a/ u 64kb pamäti nahrať BASIC-I (pokiaľ už nie je v počítači
zabudovaný.Musí to byť ale BASIC-I,lebo iny Basic by program
ZSID premazal!Po nahratí nahrajem program ZSID.V tomto zložení
možno ZSID používať ako Dissasembler ako aj assembler.Assembler
ale nepracuje so symblolickými návestiamy!.Ak sa pri preklade do
strojového kódu použitie symbolických návestí vyžaduje je nutné
nahrať do pamäte program:EDTASM.CM . Tento program je
dodávaný spolu zo ZSIDom.Program EDTASM.CM bol špeciálne
upravený ku ZSIDU.Nemožno ho preto nahradiť programom EDTASMv80
(assembler zo 602. ZO ZVZARMU v Prahe),lebo by preklad nešiel!!
b/ u 32kb pamäti +Basic-F nahrajeme program ZSID8000 do pamäti
a mBžeme ho používať ako u 64kb,ale možnosť použita symbolických
navestí odpadá.To je hlavná nevýhoda oproti režimu 64 kb.Po spustení programu sa nám ZSID ohlási znakom: #
Ak zadáme príkaz,ktorému ZSID nerozumie,odpovie nám: ?
Je úplne jedno,či sa píšu príkazy malými,alebo veľkými písmenami
Všetky kody sa zapisujú aj vypisujú hexadecimálne.Pred desiatko-
vé číslo je nutné písať znak: #
Popis príkazov ZSIDu:
: A -assembluj priamo do pamäte.Napr:
AC000 (RET.) -zapisovať sa bude od C000
ZSID vypíše adresu,kam sa zapisuje.My mBžeme zapisovať
inštrukcie jazyka assembler.(LD HL,0FF atď...)
Zápis treba ukončiť bodkou: . (RET) B -/read or write/ nahrávanie alebo zápis vytvoreného súboru
pre EDTASM.(Len u režimu 64 kb) C -CALL volanie adresy podprogramu.
D 1.adresa,2.adresa - zobrazí stav pamäte na určenej adrese
v 2 riadkoch:
1.riadok=kod prislušnej inštrukcie
2.riadok=znak kódu ak znak existuje,
ak nie,zobrazí bodku.Japonské znaky
nie su brané do úvahy!
Pri nepoužitom 2. parametri vypíše 16
adries po 1.adrese.
Pri nepoužitom ani 1.parametri vypíše
16 adries od tiaľ,kde s výpisom napo-
sledy skončil E -nemá význam
F 1.adresa,2.adresa,kód -zaplní pamäť konštantou
1.adresa=odkiaľ
2.adresa=pokiaľ
kód=kód ktorým sa má pamäť napl-
niť.Ak uvedieme namiesto kódu do
apostrofu znak,zaplní sa pamäť
daným znakom. Napr.
FD000,D800,'s' G 1.adresa,2.adresa =JUMP na adresu -tvrdý skok
1.adresa=Jump adresa
2.adresa=STOP adresa H -hexadecimálny prevod na desiatkový a opačne ako aj sčíta
nie a odčítanie ( + - ) Napr. H56 (RET)
ZSID vypíše: 0056 #86 'V'
hex. dek. kód,ak existuje
alebo H#118 (RET)
ZSID vypíše: 0076 #118 'v'
hex. dek. kód,ak existuje I NANE - meno suboru alebo [?] pre príkaz R
J -nemá význam
K -nemá význam
L 1.adresa,2.adresa -listovanie=ako dissasembler
Parametre nie sú zaväzné.Bez použi-
tých parametrov listuje od tial,kde
naposledy skončil;po 11 riadkoch M 1.adresa,2.adresa,3.adresa -presun bloku pamäti.
1.adresa=odkiaľ
2.adresa=pokiaľ
3.adresa=kam N -nemá význam
O -nemá význam
P adresa,počet prechodov -pasca=pre ladenie programu;urču-
je koľko krát má prebehnúť prog-
ram bez zastavenia danou adresou
Každej adrese môžeme prideliť
rôzny počet pascí/max 255/.
Napr. P D200,8 :
Cez adresu D200 prebehne 8 krát
program a pri 9. prechode sa za-
staví. R -nahrávanie ďalšieho súboru ku ZSIDu (napr.EDTASM) podľa
názvu z funkcie I S 1.adresa -prezeraj a zmeň obsah pamäti.ZSID
vypisuje od 1.adresy obsah pamäťovej
buňky a čaká na zmenu.Ak danú buňku
nechceme meniť stačí stlačiť RETURN.
Možno zapisovať kód,alebo znak v
apostrofoch.Je to ako príkaz POKE
v Basicu.Zápis sa ukončuje bodkou. SW 1.adresa -to isté ako u S , ale forma zápisu
odpovedá príkazu POKEW v Basicu. T počet krokov -krokovanie testovaného programu so
sledovaním.ZSID vypíše všetky regis-
tre.Počet krokov=počet inštrukcií ,
ktoré má ZSID vykonať a vypísať re-
gistre od poslednej adresy. TW -to isté ako T ,ale CALL sa berie ako 1 inštrukcia
U počet krokov -to isté ako T ,ale ZSID vypíše iba
poslednú inštrukciu. UW - to isté ako U ,ale CALL sa berie ako 1 inštrukcia
V -nemá význam
W -nemá význam
X -prezeraj a zmeň stav registrov CPU.Ak zadáme iba X ZSID
vypíše obsah registrov od poslednej adresy.
Ak zadáme Xreg tak vypíše obsah daného registra a čaká
na novú hodnotu.(napr XHL).To isté platí aj pre záložné
registre,ktoré označíme apostrofom.(napr.XBC') Y -nemá význam
Z -nemá význam
V blízkej budúcnosti uvedieme do používania ďaľšiu dokonalejšiu
verziu ZSIDu na ktorej sa už pracuje.Myslí sa tým prerobenie
ZSIDu tak,aby sa sa nahral do pamäte tam,kde si to zadá
uživateľ.Tým umožníme prácu s dokonalou verziou aj v 32 kb re-
žime.Podobne ako je to u MONS3.CM , ktorý má ale chyby.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%