MCPnavod - 1 - TASWORD TWO
Machine Code Pet
******************
(C) LZR Soft, 12. zari 1989
Dostava se vam do rukou vyborny pomocnik pro praci se strojovym
kodem mikroprocesoru Z80 a s ruznymi typy dat.
1. Uvod
=======
MCP vznikl jako nastupce programu MONS 3 firmy HiSoft. Je urcen
k praci s daty a programy ve strojovem kodu a s obrazovymi daty.
MCP zpristupnuje uzivateli veskerou ROM a RAM CPU a VRAM VDP.
ROM, RAM a VRAM jsou z hlediska pristupu uzivatele rovnocenne,
plati jen dve hardwareova omezeni: do ROM nelze provadet zapis a
ve VRAM nelze spoustet programy.
Protoze MONS 3 je osvedceny a oblibeny program,je mu i MCP hod-
ne podobny.
2. Moznosti programu MCP
========================
Ve srovnani s programem MONS 3, neumi MCP aritmeticke operace
( lze je velice snadno provadet ve kteremkoliv basiku ),relokaci
a trasovani strojoveho programu ( k tomu slouzi specializovane
programy jako je RELM, EMON, DEBUG a dalsi ). Na rozdil od pro-
gramu MONS 3 umi MCP navic porovnavat dve libovolne oblasti dat,
ma ascii, binarni a dekadicky dump, umi hledat textovy retezec,
nastavit zaznamovou rychlost, provest prikaz TAPE, pracovat s
posunem adres a pri disassemblaci s tabulkami DEFB. Prikaz SAVE
umoznuje oproti MONSu plnou specifikaci hlavicky.
3. Zakladni filosofie MCP
=========================
Pri tvorbe MCP byl kladen duraz na tyto vlastnosti:
Snadna ovladatelnost - jednotlive funkce se volaji stiskem jedne
klavesy ( bez ohledu na mod LETTER, CAPS ci GRAPH ), bez potreby
odeslani. Jen u dvou relativne destruktivnich funkci je potreba
pridrzet jeste nektery prerazovac.Klavesa <RETURN> vola posledni
pouzity prikaz, pripadne, v pripade ze naposledy pouzita funkce
premisti ukazatel, funkci 'adresa'. Vsechna cisla jsou tistena
hexadecimalne ( pri DUMP i dekadicky ) a rovnez hexadecimalne se
zadavaji. Vzdy je nabidnut default ( implicitni hodnota,ktera se
dosadi pri stisku <RETURN> ).Stiskem 'necisla' ( tj. chybou ) se
zadavani ukoncuje,cislo se neodesila stiskem <RETURN>,ten slouzi
pouze pro prijeti defaultu. Pokud se zadava text, jsou prijmuty,
az na dve vyjimky, vsechny znaky, vcetne <RETURN> ( CR ). Pravy
<SHIFT> funguje podobne jako v Taswordu 2 a umoznuje psat texty
vcetne diakritickych znamenek ( tj. hacky, carky,vokan a prehla-
sovani ).Ceska a slovenska narodni abeceda je rozmistena ve zna-
kovem generatoru podle standardu LZR, rozmisteni znaku na klave-
sach je totozne s programem CESKY+GRF.Do textu lze vlozit vsech-
ny ridici znaky vcetne kurzoru ( CTRL/[, tzv. ridici znak ESCAPE
pro vetsinu tiskaren ). Nelze vlozit CHR$(0) a CHR$(1), protoze
pro znak NUL neni CTRL/klavesa a CTRL/A slouzi pro ukonceni za-
davani textu. Nekolik funkci ocekava stisk <SPACE>, pak teprve
pokracuje provadeni dal,nebo stisk <RETURN>,pote je funkce ihned
ukoncena.Je-li pozadovana specifikace oblasti ( ROM, RAM, VRM ),
MCPnavod - 2 - TASWORD TWO
pak <RETURN> schvaluje nabidnuty default,jinak staci stisk jedne
ze tri klaves, kterymi se nastavuje pracovni oblast. Nelze poro-
vnavat a presouvat dve totozne oblasti ( nema to vyznam ) a pri
zadavani adres od a do musi byt pocatecni adresa vzdy mensi nebo
alespon rovna koncove adrese. Ke snadne praci s programem MCP
nemalou merou prispiva take to, ze veskera jeho hlaseni jsou
napsana v cestine.
Univerzalnost - MCP je schopen spravne spolupracovat se sestavou
pocitace SORD m.5, ve ktere je zasunut jeden z nasledujicich mo-
dulu: EM-5 32 KB RAM, EM-64, 64KBI, 64KBF a 64KRD. Pokud ma uzi-
vatel k dispozici jiny modul pridavne pameti, pak ma moznost na-
definovat si vlastni ovladani tohoto modulu, aby s nim MCP umel
spolupracovat. MCP umoznuje pracovat s RAM od adresy 0000 a to i
v pripade, ze je tato RAM prekryta pameti ROM. Timto je uzivatel
odpoutan od nutnosti mit v RAM zkopirovany MONITOR ROM. Velikost
pameti RAM a ROM zalezi na sestave pocitace a pokud ji lze hard-
warove menit, MCP se zmene prizpusobi.Velikost VRM je dana veli-
kosti VRAM, ktere je v m.5 16KB. Standardni velikost je nabizena
12KB, adresove 0000-2FFF a lze ji temer libovolne menit.Nejmensi
velikost lze zvolit 1 byte a nejvetsi pak 16KB. Horni hranice je
tedy omezena na adresu 3FFF. Pokud bude provaden zapis do VRM na
adresy vetsi nez 2FFF, dojde ke kolizi s obrazovkou a znakovym
generatorem, ktere MCP pouziva.Po skonceni prace MCP,nejsou data
ve VRM nijak chranena a lze je zmenou zobrazovaciho rezimu pos-
kodit, pripadne uplne znicit.
Bezpecny provoz - MCP chrani sam sebe pred poskozenim a pokud je
horni hranice VRM mensi nez 3000, tak i obrazovku a znakovy ge-
nerator. Do oblasti, ktere jsou chraneny, nelze provadet zapis a
pri jejich cteni ( zobrazovani a pod ) je vracen kod 0FFh. Totez
plati i pro oblasti,kde dana pamet neni ( napriklad VRAM od 4000
vyse a podobne ). MCP pozna, ze byl nahran prikazem TAPE. To je
dulezite, protoze obecne plati, ze se po TAPE neni kam vratit,
tudiz by se mohlo stat, ze se pri zakonceni prace s MCP pocitac
'zakousne'. Proto, by-li MCP nahran prikazem TAPE, je po odchodu
z neho nastartovan basic ( JP 00E4 ). MCP pozna, nachazi-li se v
sestave s 64KB RAM a paklize ano, pozna,jestli byl odstartovan s
pripojenou ROM, nebo jestli byl odstartovan ze systemu bezicim v
RAM s odpojenou ROM. Vsechny rutiny pouzivane programem MCP se
odkazuji na MONITOR ROM, proto si jej MCP pripojuje.Pri zakonce-
ni prace pak MCP vi, ma-li pripojit RAM, nebo nechat pripojenou
ROM. Pokud by to nevedel, mohlo by se stat napriklad toto: V mo-
dulu 64KBI je nahran Basic-F a z neho je odstartovan MCP. MCP si
pripoji ROM ( tzn. Basic-I ) a pri navratu ji neodpoji. Takze by
jsme 'spadli' do Basicu-I, coz by bylo provazeno ruznymi, ruzne
destruktivnimi efekty.Dale ma MCP svuj vlastni zasobnik navrato-
vych adres a pri navratu kontroluje,jestli nebyl nahodou puvodni
zasobnik poskozen.Pokud ano,stane se totez,jako kdyby se stiskla
kombinace klaves <SHIFT>+<RESET>.Pokud je posledni navratova ad-
resa vporadku, provede se normalni navrat.
MCPnavod - 3 - TASWORD TWO
4. Jednotlive funkce programu MCP
=================================
4.1 Seznam funkci
-----------------
A - nastaveni ukazatele na novou/starou adresu
B - konec prace
C - porovnani dvou oblasti
D - disassemblace strojoveho kodu
E - vkladani textu
F - zaplneni oblasti bytem
G - hledani bytoveho retezce
H - hledani textoveho retezce
I - inteligentni presun dat
J - volani podprogramu
K - pracovni/cilova oblast bude ROM
L - pracovni/cilova oblast bude RAM
M - pracovni/cilova oblast bude VRM
N - hledej dalsi retezec
O - nacteni souboru z pasky
P - vkladani bytu
Q - nastaveni konstanty pro posunuti adres
R - nastaveni zaznamove rychlosti
S - zaznamenani souboru na pasek
T - stejne jako basicky prikaz TAPE
U - hex, dec, ascii a bin dump
V - napoveda
W - zadavani tabulek DEFB pro disassembler
X - disassemblace strojoveho kodu na tiskarnu
Y - plny ascii dump
Z - zaznamenani tabulek DEFB na pasek
= - nastaveni adresy rutiny tisku na tiskarnu
/@:; - sipky pro posun ukazatele o +1, -1, +16, -16
4.2 Funkce ADRESA
-----------------
Nastavi ukazatel na zadanou adresu. Funkce nabizi jako default
adresu, na ktere se naposledy nachazel ukazatel,takze se lze po-
hodlne vratit na misto, kde se s nejakou funkci zacalo.Kazda ob-
last ma svuj aktualni a stary ukazatel, takze se pri prepnuti na
jinou oblast spravne nastavi i oba ukazatele.
4.3 Funkce BYE
--------------
Provede navrat do basiku,pripadne do systemu,ktery MCP spustil.
Pri stisku B musi byt stisknut jeste nektery z prerazovacu
( SHIFTy ), jinak je ohlasena chyba.
4.4 Funkce COMPARE
------------------
Porovnava dve oblasti a vypisuje rozdily. Zadava se pocatecni
a koncova adresa prohledavani u pracovni oblasti, pocatecni ad-
resa u porovnavane oblasti a cilova oblast.Lze porovnavat cokoli
s cimkoli. Nejmensi mozna delka k porovnani je jeden byte, jako
defaulty se nabizi naposledy pouzite adresy a pracovni oblast.
Pri nalezeni rozdilu jsou zobrazeny obe adresy a hodnoty bajtu,
ktere se na nich nachazeji ( hexadecimalne a dekadicky ). Po na-
lezeni 16ti rozdilu ( plna obrazovka ), se ceka na stisk klavesy
<SPACE> nebo <RETURN>.
Pozor! Nelze COMPARE od 0000 do FFFF !
MCPnavod - 4 - TASWORD TWO
4.5 Funkce DISASS
-----------------
Provadi disassemblaci programu ve strojovem kodu od pozice uka-
zatele do stisku klavesy <RETURN>. Pri disassemblaci je akcepto-
van posun adres, takze pokud neni posun nastaven na 0000,je pro-
gram ve strojovem koud disassemblovan, jako kdyby se nachazel na
jinem miste pameti. Velikost posunu je zobrazena vedle prikazu.
Pri disassemblaci jsou brany v uvahu i oblasti dat, ktere jsou
primo urceny tabulkami DEFB. Tabulky se zadavaji absolutne, tzn.
vcetne posunu adresy.Jako posledni provadeny prikaz je nastavena
funkce ADRESA, takze po ukonceni disassemblace staci dvakrat
stisknout klavesu <RETURN> a ukazatel se nastavi na adresu, kde
se s disassemblaci zacalo.
4.6 Funkce EDIT
---------------
Uklada do pracovni oblasti text od pozice ukazatele.Ukladani se
zakonci stiskem CTRL/A. Vkladat lze i znaky narodni abecedy pri
stisku praveho SHIFTu. Jako posledni provadeny prikaz se nastavi
funkce ADRESA,takze po ukonceni staci stisknout dvakrat <RETURN>
a ukazatel se nastavi na adresu, kde se s editaci zacalo.
4.7 Funkce FILL
---------------
Zaplni pracovni oblast zadanym bytem. Zadava se adresa zacatku
a konce oblasti a byte,kterym se ma oblast zaplnit.Nejmensi moz-
na delka k zaplneni je jeden byte.Po zaplneni je ukazatel nasta-
ven na zacatek zaplnovane oblasti. Funkci lze predcasne zakoncit
chybou. Jako defaulty jsou nabizeny naposledy pouzite adresy.Ja-
ko posledni provadeny prikaz se nastavi funkce ADRESA, takze po
ukonceni staci stisknout dvakrat <RETURN> a ukazatel se nastavi
na adresu, kde se plneni zadalo.
4.8 Funkce GET
--------------
Hleda v pracovni oblasti retezec bytu od pozice ukazatele do
konce oblasti. Doporucena maximalni delka retezce je 33 byte.Lze
ale hledat i delsi retezec ( az 255 byte ), pak je ovsem 'nadby-
tecnymi' byty porepsana tabulka DEFB. Zadavani bytu se ukoncuje
chybou. Pri nalezeni se ukazatel nastavi na zacatek nalezeneho
retezce.Jako defaulty jsou nabizeny byty naposledy hledaneho re-
tezce ( byl-li hledan text,tak byty tohoto textu ).Jako posledni
provadeny prikaz se nastavi funkce ADRESA, takze po nalezeni re-
tezce staci stisknout dvakrat <RETURN> a ukazatel se nastavi na
adresu, kde se s hledanim zacalo.
4.9 Funkce HLEDEJ
-----------------
Hleda v pracovni oblasti textovy retezec od pozice ukazatele do
konce oblasti. Zadavani se ukoncuje stiskem CTRL/A. Plati totez
co pro GET, default neni nabizen.
4.10 Funkce PRESUN
------------------
Presune data z jedne pozice v pracovni oblasti na jinou,pripad-
ne z pracovni oblasti do jine oblasti.Pro adresy a defaulty pla-
ti totez co u funkce COMPARE. Je-li presouvano pouze v pracovni
oblasti, je ukazatel nastaven na zacatek presunute oblasti. Jako
posledni provadeny prikaz je nastavena funkce ADRESA.
MCPnavod - 5 - TASWORD TWO
4.11 Funkce GOSUB
-----------------
Provede volani podprogramu s naplnenim registru v tomto poradi:
AF,BC,DE,HL. Jako default je nabidnuta naposledy volana adresa a
0000 pro registry.Je-li pri volani pracovni oblast ROM,lze spus-
tit cokoli v ROM a neprekryte RAM. Je-li pracovni oblast RAM,pak
lze spustit podprogram v RAM s pripojenou ROM, je-li adresa vo-
lani vesti nez konec ROM,nebo lze spustit podprogram v RAM s od-
pojenou ROM, je-li adresa volani mensi nez konec ROM. Pri volani
s odpojenou ROM musi byt bud v RAM zkopirovan MONITOR ROM, nebo
se nesmi povolit preruseni ( instrukci EI ).Pri volani se pohled
i kurzor nastavi na opacnou obrazovku ( coz je obrazovka 0 ) a
po navratu se zase vrati zpet na druhou obrazovku. Pokud volany
podprogram zasahuje do VRAM, inicializuje zobrazeni,nebo zobrazi
kurzor,muze dojit k poskozeni dat ve VRM a k poskozeni obrazovky
MCP ( ktera se po navratu neobnovuje ). Po navratu je zobrazen
obsah registru AF, BC, DE a HL.
4.12 Funkce ROM
---------------
Nastavi jako pracovni oblast ROM. Ukazatel je nastaven na stej-
nou adresu, na jake se nachazel pri odchodu z teto oblasti. Jako
posledni pouzity prikaz je nastavena funkce ADRESA.
4.13 Funkce RAM
---------------
Nastavi jako pracovni oblast RAM. Plati totez co pro ROM.
4.14 Funkce VRM
---------------
Nastavi jako pracovni oblast VRM. Plati totez co pro ROM.
4.15 Funkce NEXT
----------------
Hleda v pracovni oblasti dalsi vyskyt bytoveho ci textoveho re-
tezce od pozice ukazatele+1. Plati totez co pro GET a HLEDEJ.
4.16 Funkce OLD
---------------
Nacte z pasky soubor do pracovni oblasti. U RAM plati omezeni,
ze nelze nahravat do oblasti prekryte pameti ROM. U VRM,ze nelze
nahravat na adresy vetsi, nez 3FFF. Specifikuje se jmeno a poca-
tecni adresa ulozeni souboru. Pokud je potreba nahrat soubor do
pameti od adresy v hlavicce a neni-li tato adresa predem znama,
stiskne se pri dotazu na adresu klavesa <SPACE>.Pokud je pracov-
ni oblast ROM, je ohlasena chyba. Pri nacitani se nekontroluje
umisteni a pokud soubor zasahne do chranene oblasti,dojde k pos-
kozeni chranenych dat.Pri nalezeni hlavicky jsou vypsany zaklad-
ni udaje o souboru a informace, je-li soubor prijat a nacitan
( F jako FIND ), nebo je-li preskocen ( S jako SKIP ).Nastane-li
behem nahravani chyba, je za posledni udaj na radce se jmenem
souboru vytisten vykricnik. Fukci lze prerusit stiskem klavesy
<RESET>.
4.17 Funkce POKE
----------------
Uklada do pracovni oblasti byty od pozice ukazatele.Ukladani se
zakoncuje chybou.Jako defaulty jsou nabizeny byty na pozici uka-
zatele. Jako posledni provadeny prikaz nastavi funkci ADRESA,
takze po ukonceni staci stisknout dvakrat RETURN a ukazatel se
nastavi na adresu, kde se s poukovanim zacalo.
MCPnavod - 6 - TASWORD TWO
4.18 Funkce QUASI
-----------------
Slouzi pro funkci DUMP a DISASS. Zadava se konstanta posunuti
adres. Data jsou zobrazena a disasemblovana jako kdyby se nacha-
zela na adrese, ktera je vypoctena jako soucet absolutni adresy
umisteni a konstanty posunuti. Kazda oblast ( ROM, RAM, VRM ) ma
svou vlastni konstantu posunuti,ukazatel je vzdy nastaven na ab-
solutni adrese.Jako default je nabidnut naposledy pouzity posun.
4.19 Funkce RYCHLOST
--------------------
Umoznuje nastavit zaznamovou rychlost ( RATE FACTOR ). Jako de-
fault nabizi aktualni zaznamovou rychlost. Meze rychlosti se ne-
kontroluji, doporucene se pohybuji od 12 do 21.
4.20 Funkce SAVE
----------------
Zaznamena na pasek cast pracovni oblasti. Specifikuje se poca-
tecni a koncova adresa dat v pracovni oblasti a attribut, jmeno,
pocatecni a startovaci adresa pro hlavicku souboru. U RAM plati
omezeni, ze nelze zaznamenat oblast prekrytou pameti ROM. Pokud
soubor zasahuje do zakazane oblasti, tato se zaznamena. Jako de-
faulty jsou nabizeny data z naposledy pouzite hlavicky ( pri OLD
nebo SAVE ) a naposledy pouzite hodnoty. Pri SAVE jsou zobrazeny
zakladni udaje o zaznamenavanem souboru, tak jak by byly zobra-
zeny v hlavickari. SAVE lze prerusit stiskem klavesy <RESET>.
4.21 Funkce TAPE
----------------
Provede totez co basicky prikaz TAPE. Pri zadavani teto funkce
musi byt stisknut jeste nektery s prerazovacu ( SHIFTy ).
4.22 Funkce DUMP
----------------
Zobrazuje od pozice ukazatele do stisku <RETURN> obsah pracovni
oblasti. Jako prvni je na radku zobrazena hexadecimalne adresa,
vedle ni pak byte na teto adrese jako hexadecimalni cislo, deka-
dicke cislo, znak, binarni cislo a predloha. Pri dumpu je akcep-
tovan posun adres, stejne jako u DISASS. Velikost posunu je zob-
razena vedle prikazu. Jako posledni provadeny prikaz se nastavi
funkce ADRESA,takze po ukonceni staci stisknout dvakrat <RETURN>
a ukazatel se nastavi na adresu, kde se s dumpem zacalo.
4.23 Funkce NAPOVEDA
--------------------
Vytiskne na posledni radek seznam pouzitelnych klaves.Tato fun-
kce se nastavi jako posledni volany prikaz vzdy po chybnem zada-
ni prikazu ( stisk neplatne klavesy ).
4.24 Funkce DEFINE BYTE AREAS
-----------------------------
Slouzi pro funkci DISASS. Zadavaji se adresy oblasti dat, ktere
se pri disassemblaci nemaji prekladat jako mnemonika.Tyto oblas-
ti se pak prekladaji jako "DB data,...". Tyto tabulky jsou spo-
lecne pro vsechny oblasti a doporuceny maximalni pocet je 55 ob-
lasti. Lze jich zadat i vice, ale jiz pri 70ti hrozi prepsani
interniho zasobniku. Zadavani se ukoncuje chybou. Jako defaulty
jsou nabizeny naposledy pouzite adresy. Pokud se jako prvni zada
adresa 0000, nebudou akceptovany zadne tabulky. Adresy musi byt
serazeny podle velikosti.Tuto tabulku je mozne zaznamenat na pa-
sek pro dalsi pouziti.
MCPnavod - 7 - TASWORD TWO
4.25 Funkce DISASS na tiskarnu
------------------------------
Umoznuje vytisknout disassemblovany program na tiskarnu nebo
jine zarizeni. Zadava se adresa zacatku a konce prekladu.Program
je tisten na obrazovku a zaroven na tiskarnu.Funkci lze predcas-
ne ukoncit stiskem <SHIFT>+<RESET>.
4.26 Funkce FULL ASCII DUMP
---------------------------
Zobrazi 512 bytu od pozice ukazatele jako ascii znaky. Ocekava
stisk <SPACE>,pote zobrazi dalsich 512 bytu,nebo stisk <RETURN>,
pak se funkce ukonci. Ukazatel je nastaven za posledni zobrazeny
byte. Jako posledni provadeny prikaz se nastavi funkce ADRESA,
takze po ukonceni staci stisknout dvakrat <RETURN> a ukazatel se
nastavi na adresu, kde se se zobrazovanim zacalo.
4.27 Funkce SAVE STRING AND DEFB
--------------------------------
Zaznamena na pasek buffer,ve kterem je ulozen naposledy hledany
retezec a tabulka DEFB. Zadava se jmeno, pod jakym se ma tento
soubor zaznamenat.Implicitne je nabidnuto naposledy pouzite jme-
no. Fukci lze prerusit stiskem klavesy <RESET>. Zpetne lze tato
data nahrat do MCP prikazem OLD ( adresa=<SPACE> ) pri pracovni
oblasti RAM. Pote nelze ihned pouzit funkci NEXT ani DISASS.Nej-
prve se musi data 'ozivit' funkci GET a DEFINE BYTE AREAS.
4.28 Funkce NASTAV ADRESU TISKU
-------------------------------
Slouzi k nastaveni adresy provadeci rutiny tisku. Normalne je
nastavena na adresu 17C7h, kde je v MONITORU ROM rutina tisku
retezce znaku od adresy v HL do nalezeni ukoncovace ( CR ).Pokud
vlastnite nestandardni tiskarnu ( BT100, dalnopis a pod. ) a ma-
te-li pro tyto periferie ovladaci programy, zmente si prislusne
tuto adresu.
4.29 Funkce pro POSUN UKAZATELE
-------------------------------
Dve klavesy slouzi pro posun ukazatele o jednu adresu nahoru a
dolu, dve klavesy pro posun ukazatele o 16 adres nahoru a dolu
( tj. na obrazovce vlevo a vpravo ).
5. Provozovani MCP
==================
11. zari byla uzivatelum dana posledni demonstracni verze pro-
gramu ( predtim ji predchazely dve DEMO verze,ktere nebyly zcela
funkcni ), ktera je jiz plne funkci a slouzi k otestovani MCP.
Pripadne zjistene nedostatky budou odstraneny a finalni verze je
pak jiz obsahovat nebude. Tato DEMO verze sestava ze tri casti:
MCPLv7300.CM MCPLvE300.CM zavadec
VRAM-MCP.VM VRAM-MCP.VM obrazovka a znakovy generator
MCPDv7300.CM MCPDvE300.CM vlastni program
Existuji tedy dve verze, prvni v7300 je umistena od adresy 7300h
a druha pak od E300h. Prvni verze je provozovatelna v minimalni
sestave pocitace s 8KB RAM, tj. s modulem Basic-G nebo BASIC-F a
je nutne ji nahravat prikazem TAPE. Zavadeci program a VRAM neni
nutne nahravat, slouzi jen ke sdeleni zakladnich informaci. VRAM
obsahuje uplny znakovy generator ve standardu LZR. Nahraje-li se
samotny MCPD,je znakovy generator doplnen pouze o nezbytne nutne
znaky ceske abecedy.
MCPnavod - 8 - TASWORD TWO
Samotny MCPD lze nahrat basickymi prikazy OLD a TAPE. V Basiku-I
je nutne jej po nahrani prikazem OLD jeste odstartovat prikazem
CALL startovaci adresa. MCP ma studeny a horky start. Plati, ze
studeny start je zaroven pocatecni adresa MCP a horky start je o
3 byte dal. Skutecne adresy zavisi na verzi programu ( 7300,7303
ci E300 a E303 ).
Jako autostart se provadi studeny start, pri kterem se iniciali-
zuje zobrazeni. Horky start zobrazeni neinicializuje, vyzaduje
tedy, aby byl ve VRAM od adresy 3000 znakovy generator dle stan-
dardu LZR. Protoze pri BYE zustava znakovy generator beze zmen,
lze po odchodu, nebyl-li mezi tim generator zmenen, bez potizi
pouzit horky start.
Inicializace zobrazeni poskodi data ve VRM od adresy 2000 do ad-
resy 3FFF. Po odchodu z MCP zustanou data ve VRM od adresy 0000
do adresy 2FFF nedotcena, pokud se neprepne kurzor na obrazovku
0. Po odchodu je kurzor i pohled umisten na obrazovce 1. Na teto
obrazovce lze provadet cokoli, krome ( pochopitelne ) zapisu do
VRAM ve vyse uvedenem rozsahu adres, zmeny zobrazovaciho rezimu
( GII a MCOLOR bezpecne data znici ) a prepnuti kurzoru na obra-
zovku 0 ( CTRL/U, CTRL/Z ). Pokud se vam podari dostat kurzor na
nultou obrazovku, jsou znicena data ve VRM od adresy:
PEEKW(7099)+8*27, tzn zpravidla 2908 v delce 8mi bytu.Pokud zme-
nite rezim obrazovky ( ne na GII ci M ), zustanou zachovana data
minimalne v rozsahu 0000-1FFF. Pokud data presahuji adresu 2000,
je zmenen generator spritu obou obrazovek a pokud data presahuji
2800, je zmenen generator znaku obrazovky 0. To se projevi pri
prepnuti na obrazovku 0 tim,ze tam neni standardni znakovy gene-
rator.
Po startu se provede test pameti a zobrazi se aktualni stav ROM,
RAM a VRM. Dotaz slouzi ke zmene adres u VRM. Po stisku A se po-
kracuje dal, po stisku cehokoli jineho lze zmenit VRM a pokud je
u 64KBI prepinac omylem v poloze WRITE DISABLE, je mozne jej v
teto chvili prepnout.MCP si znovu otestuje pamet a opetovne zob-
razi jeji stav. Za behu MCP nedoporucuji menit stav prepinacu na
modulech s 64KB RAM.
Je-li nalehava potreba znenit velikosti ROM,RAM ci VRM pri praci
s MCP a neni-li zadouci z neho odejit, lze pouzit funkci GOSUB
a jako parametr zadat adresu horkeho startu. Pak jiz ovsem nelze
pouzit funkci BYE, protoze se MCP stale vraci sam do sebe.
Uzivatel s netypickym mudulem pro rozsireni pameti RAM ma moz-
nost "pouknout" z basiku do MCP tri byte, ktere mu reknou,jak se
modul pripojuje a odpojuje od systemu. Napriklad v 64KBI a EM-64
se ROM pripoji OUT &6C,0 a odpoji OUT &6C,1.Proto jsou v tabulce
byty: DB 6C,00,01. Pokud se uzivateluv modul bude ovladat napri-
klad OUT &A8,7 a OUT &A8,0 poukne se do tabulky na volnou pozici
A8,07,00. Tabulka lezi nekde ke konci MCP.Konkretni adresa zale-
zi na verzi MCP. Staci MONSem 3 MCP nahrat a hledat tyto byte:
7F,00,03,6C,01,00,30,01,00,00,00,00,00. Oznacene jsou pak volne
byte pro uzivatele. ^^ ^^ ^^
6. Zaver
========
Pokud se vam zda, ze MACHINE CODE PERFECT & EXCLUSIVE TOOL neco
postrada, nebo naopak, pokud je neco zbytecne ( a zrusenim se u-
setri dost mista ) ci mate-li pocit, ze je neco hloupe vyreseno,
piste sve pripominky do konce roku 1989 na adresu naseho teamu.
LZR Soft
MCPnavod - 9 - TASWORD TWO
Aplikacni poznamky:
===================
Znakovy generator si MCP po COLD upravi do podoby, jakou potre-
buje - tzn. vyrobi nekolik ceskych znaku dle std LZR. Ostatni
znaky zustavaji beze zmeny. Na prvni radce pod prvni linkou je
zobrazena jedna disassemblovana instrukce. Akceptovan je posun
adres. Pri zadavani textu, nelze provadet DEL. RETURN slouzi pro
ulozeni kodu 0Dh. Ukoncuje se CTRL/A. Kod NUL a CTRL/A lze zadat
prikazem POKE jako kody 00 a 01. Pri zadavani jmena, nelze pro-
vadet DEL. RETURN slouzi pro ukonceni zadavani. Je prijato bud
naposledy pouzite jmeno ( nabidnuty default ), nebo nove zadane
jmeno ukoncene stiskem RETURN, pripadne devatym znakem.Pokud pri
OLD nevime nebo nechceme zadavat jmeno a soubor presto chceme
nahrat, zadame "?". Pokud nahravame soubor prikazem OLD do RAM,
nelze nahravat bez rizika do oblasti 7000-7300 a do oblasti, kde
se MCP nachazi.Pokud nahravame do VRAM nelze principielne nahra-
vat do oblasti nad 3FFF, oblast nad 2FFF je vyhrazena pro gene-
rator a obrazovku MCP.Pokud chceme zmenit znakovy generator MCP,
lze jej prehrat jinym znakovym generatorem ( ve std. LZR ) nor-
malne prikazem OLD pri pracovni oblasti VRM. Adresa umisteni se
zada 3000.
Update
======
4.2.1991 vznikly nove dve verze MCPvE400 a MCPv2000. Tyto sestavaji
jiz z jedne casti, zcela modifikuji znakovy generator a jsou vhodne
pro praci s barevnym monitorem ( bila na modre ). Urceny jsou pouze
pro modul 64KRD a 64 KRX. Pro jine moduly je potreba je prepoukovat
( D3 7F na D3 kanal a s tim i hodnotu nasledujici za 3E [ LD A,x ])
na vice mistech. MCP netestuje velikost RAM a tim, ze je urcen jen
pro jeden modul se jeho rychlost trochu zvysila.
Datum poslední editace: 12. září 1989
============== Napsal Roman Štec z teamu LZR Soft ==============