Obsah této stránky: |
Řízení plotteru ze strojového jazyka
Tato kapitola by vám měla umožnit řízení nestandardně
připojeného čtyřbarevného plotteru (MZ-1P16) ze strojového jazyka.
Obsluha plotteru z Basicu je podrobně popsána v originál,
SHARP příručce.Také ve strojovém jazyce si můžete jako v Basicu
vybrat mezi dvěma různými druhy provozu plotteru:
1) Grafický mód
V grafickém módu se dá plotterem kreslit nejrůznějším způsobem.
2) Textový mód
V textovém módu se mohou vytisknout pevně dané znaky (písmena,
číslice,zvláštní znaky).Tyto znaky se mohou vytisknout v různých
velikostech (26,40 a 80 znaků na řádek). Plotter má znaky uvedené v tabulce znaků plotteru (viz
SHARP příručka str.A-26).Jestliže se plotteru dá povel vytisknout
znak, který není v této tabulce, automaticky se vytiskne v další barvě
hexadecimální kód znaku.
Standardní programy monitoru pro řízení plotteru.
V monitoru 1Z-013B jsou dva standardní programy pro říz. plotteru:
a) CALL 018FH
Tento standardní program vydává obsah akumulátoru na plotter.
Obsah akumulátoru přitom může být řídící znak, nebo znak z
tabulky znaků.Před zavoláním tohoto standardního programu se musí do akumulátoru uložit příslušný obsah.
b)CALL 01A5H
Tento standardní program vydává na plotter jednotlivé byty řetězce
znaků.Řetězec znaků přitom může obsahovat řídící znaky, nebo
znaky z tabulky znaků.Řetězec musí být ukončen 0DH, a počáteční adresa
řetězce musí být uložena v registru DE. Oba standardní programy pro plotter mají stejný účinek:
vydávají jeden byte na plotter.Program 01A5H by se měl použít
jestliže chceme na plotter vyslat hodně bytů (znaků nebo říd.
znaků),jinak se používá program 018FH, který vydává pouze jeden
byte na plotter.
Řízení plotteru ve znakovém módu
Po zapnutí MZ-800 je plotter automaticky ve znakovém módu.
Barva tisku je černá a tisková hlava je na levém okraji.
Pomocí obou programů pro řízení plotteru (CALL 018FH a CALL 01A5H)
se na plotter dají posílat různé řídící znaky a znaky z tabulky
znaků.
Tabulka řídících znaků s příslušným účinkem
Řídící znak Účinek
01H Přepíná plotter do znakového módu
02H Přepíná plotter do grafického módu
03H Posune o jednu řádku zpět
04H Test tiskárny (4 čtverce v různých barvách)
0AH Posune o jednu řádku vpřed
0BH Změna velikosti písma ze 40 na 26 znaků na ř.
0CH
" " " 26 40 "
0DH
Návrat vozíku 'CR'
0EH Tisková hlava se posune o pozici do leva
0FH Posun vpřed o stránku
1DH Změna barvy
09H,09H,09H Změna velikosti písma ze 40 na 80 znaků na ř.
09H,09H,0BH " " " 80 40 "
Příklady programů pro obsluhu plotteru ve znakovém módu.
Pomocí výše uvedených řídících znaků, znaků z tabulky znaků
a obou jmenovaných programů se nyní dají provádět různé funkce.
Program 1 :
LD A,0BH ;26 znaků na řádek
CALL 018FH ;program monitoru pro výdej
;obsahu akumulátoru
LD A,42H ;znak 'B'
CALL 018FH
LD A,42H
;znak 'B'
CALL 018FH
LD A,47H
;znak 'G'
CALL 018FH
Tento krátký program přepne plotter na 26 znaků na řádek
a potom vytiskne písmena 'BBG'. Stejný program se dá realizovat také
jinak, a to pomocí druhého programu monitoru.
Program 2 :
LD DE,A000H ;počáteční adr. řetězce znaků
CALL 01A5H ;program monitoru pro výdej
řetězce znaků
Přitom musí být v paměti od A000H následující :
A000H 0BH ;26 znaků na řádek
A001H 42H ;znak 'B'
A002H 42H
A003H 47H ;znak 'G'
A004H 0DH ;značka konce řetězce
Řízení plotteru v grafickém módu
Následující program přepíná plotter ze znakového módu do
do grafického módu.
Program 3:
LD A,O2H ;řídící znak pro graf. mód
CALL 018FH ;program monitoru pro výdej
obsahu akumulátoru
Po provedení tohoto programu se nacházíte v grafickém módu. Řízení plotteru se provádí podobně jako ve znakovém módu.
Navíc jsou k dispozici specielní řídící povely a grafické povely.
pro řízení se též používají standardní programy monitoru 018FH
a 01A5H. Při některých grafických povelech se musí na plotter
předat navíc k povelu hodnoty parametrů.
Všeobecně k hodnotám parametrů.
Všechny hodnoty parametrů jsou decimální hodnoty a mohou
být maximálně trojmístné (stovky, desítky, jednotky). Jestliže
povel potřebuje více parametrů, jsou jednotlivé hodnoty parametrů
odděleny čárkou ( ASCII 2CH ). Jednotlivé číslice hodnot parametrů
se rovněž zadávají v ASCII formátu.
Povely v grafickém módu.
a) povely bez parametrů
Povel ASCII Význam
A 41H Návrat do znakového módu
H 48H Zvedá hrot pera a posouvá tiskovou hlavu do výchozí pozice
I 49H Aktuální pozice tiskové hlavy je definována jako výchozí pozice
b) povely s jedním parametrem
Povel ASCII Význam
C 43H Změna barvy tiskové hlavy
Tento povel musí následovat parametr o hodnotě
0-3 (ASCII 30H-33H). 0 = černá ASCII 30H
1 = modrá ASCII 31H
2 = zelená ASCII 32H
3 = červená ASCII 33H
Násl. program provádí změnu barvy na červenou.
LD A,43H ;C - Povel
CALL 018FH ;program monitoru
LD A,33H ;parametr pro červenou barvu
CALL 018FH ;program monitoru
L 4CH Určuje druh čáry (průběžná nebo tečkovaná)
Tento povel musí následovat hodnota parametru
mezi 0 - 15 (v ASCII formátu)
0 = druh čáry - průběžná
1 - 15 = tečkované druhy čar
Násl. program určuje druh čáry 15.
LD A,4CH ;L - povel
CALL 018FH
LD A,31H ;desítková část hodnoty parametru
;v ASCII formátu
CALL 018FH
LD A,35H ;jednotková část " "
CALL 018FH
Q 51H Určuje směr ve kterém má být vytištěn znak
Po tomto povelu musí následovat hodnota parametru
mezi 0 až 3 (ASCII 30H až 33H).
0 = vzpřímené
1 = doprava ležící
2 = na hlavě stojící
3 = doleva ležící
S 53H Určuje velikost znaků.
Po tomto povelu musí následovat hodnota parametru mezi 0 a 63 (v ASCII formátu).
Následující program mění velikost znaků na 60.
LD A,53H ;S - povel
CALL 018FH
LD A,36H ;desítkové číslo param. 60
CALL 018FH
LD A,30H ;jednotkové číslo param. 60
CALL 018FH
c) povely se dvěma parametry
Povel ASCII Význam
D 44H Kreslí čáry počínaje aktuální pozicí tiskové hlavy na udané souřadnicové body až po konečný bod
(Xn, Yn). D X1,Y1,X2,Y2,....,Xn,Yn kreslí čáru
od aktuální pozice kursoru k bodu (X1, Y1), z tohoto bodu do bodu (X2, Y2) až do koncového
bodu (Xn, Yn).Hodnota prvního parametru (X - pozice ) musí ležet mezi -480 a 480.
Hodnota druhého parametru (Y - pozice ) musí ležet mezi -999 a 999.Hodnoty parametrů musí být
odděleny čárkou ( ASCII 2CH).Po poslední hodnotě
parametru musí následovat označení konce 0DH.
Následující program kreslí čáru z aktuální pozice tiskové hlavy do bodu (-20, 20):
LD A,43H ;D-povel
CALL 018FH
LD A,20H ;" - " znak v ASCII
CALL 018FH
LD A,32H ;desítkové místo X hodnoty v ASCII
CALL 018FH
LD A,30H ;jednotkové " " "
CALL 018FH
LD A,2CH ;čárka (oddělení hodnot obou par.)
CALL 018FH
LD A,32H ;desítkové místo Y hodnoty v ASCII
CALL 018FH
LD A,30H ;jednotkové " " "
CALL 018FH
LD A,0DH ;označení konce dat
CALL 018FH
J 4AH Kreslí čáry, počínaje aktuální pozicí tiskové
hlavy do relativními souřadnicemi daného bodu (X1, Y1) až do
koncového bodu (Xn, Yn). Povel "J" je jako takový identický s povel "D",
ale u povel "D" se udávají absolutní souřadnice
a u povel "J" relativní.
X hodnoty parametru musí ležet mezi -480 až 480.
Y " " " " " -999 až 999.
Hodnoty parametrů jsou navzájem odděleny čárkou (ASCII 2CH) a musí být ukončeny 0DH. Jinak viz. povel "D".
M 4DH Zvedá hrot pera a posouvá tiskovou hlavu do bodu
(X, Y).Po povelu musí následovat dva parametry, které jsou
odděleny čárkou (ASCII 2CH).
X hodnoty parametru musí ležet mezi -480 až 480.
Y " " " " " -999 až 999.
Oba parametry musí být ukončeny 0DH. Následující program posouvá tiskovou hlavu
na pozici (-1, 123).
LD A,4DH ;M povel
CALL 018FH
LD A,2DH ;minus znak v ASCII
CALL 018FH
LD A,31H ;jednotkové místo X hodnoty parametru v ASCII
CALL 018FH
LD A,2CH ;čárka (oddělení hodnot param.)
CALL 018FH
LD A,31H ;stovkové místo Y v ASCII
CALL 018FH
LD A,32H ;desítkové " "
CALL 018FH
LD A,33H ;jednotkové " "
CALL 018FH
LD A,0DH ;označení konce dat
CALL 018FH
R 52H Zvedá hrot pera a posouvá tiskovou hlavu
do pozice bodu (X, Y).Povel "R" je jako takový
identický s povelem "M", ale při povelu "M"
se zadávají absolutní souřadnice a s povelu "R"
relativní.
X hodnoty parametru musí ležet mezi -480 až 480.
Y " " " " " -999 až 999.
Hodnoty parametru jsou odděleny čárkou (ASCII 2CH) a musí být ukončeny 0DH.
Jinak viz. povel "M".
d) povely se třemi parametry
Povel ASCII Význam
X 58H Tento povel kreslí kartézský systém souřadnic.
První hodnota parametru musí být buď 0 nebo 1. Při 0 se kreslí Y-ová
osa, při 1 se kreslí X-ová. Druhý parametr je měřítkový faktor a musí ležet
mezi -999 až 999. Třetí parametr obsahuje počet
značek na osu, a musí ležet mezi 1 až 255.
Tento povel jinak odpovídá povelu AXIS v Basicu. Při dalších otázkách viz. též
příručka SHARP. Jednotlivé hodnoty parametrů musí být odděleny
čárkou a ukončeny 0DH.
e) povely s různým počtem parametrů
Povel ASCII Význam
P 50H Tento povel vytiskne znak.Tento povel musí
následovat alespoň jeden parametr. Vytištěné znaky se udávají v ASCII
kódu jako hodnoty parametrů. Jednotlivé hodnoty parametrů
nemusí být odděleny, ale za posledním znakem musí
následovat 0DH jako označení konce.
Následující program vytiskne písmena BBG.
LD A,50H ;P povel
CALL 018FH
LD A,42H ;"B"
CALL 018FH
LD A,42H ;"B"
CALL 018FH
LD A,47H ;"G"
CALL 018FH
LD A,0DH ;označení konce
CALL 018FH
Kombinace více povelů ve znakovém a grafickém módu.
a) znakový mód
Ve znakovém módu mohou být jednotlivé povely spolu spojeny bez oddělení.
Příklad programu:
LD A,01H ;znakový mód
CALL 018FH
LD A,0FH ;posun o stránku
CALL 018FH
LD A,09H ;přenutí na 80 znaků/řádek
CALL 018FH
LD A,09H
CALL 018FH
LD A,09H
CALL 018FH
LD A,42H ;"B"
CALL 018FH
LD A,42H ;"B"
CALL 018FH
LD A,47H ;"G"
CALL 018FH
LD A,0DH ;označení konce
CALL 018FH
b) grafický mód
V grafickém módu musí být povely, jenž musí být ukončeny pomocí
0DH odděleny čárkou (ASCII 2CH). Přitom 0DH odpadá.
Ale na konci, po posledním povelu, musí být udáno 0DH.
Příklad programu:
LD A,02H ;grafický mód
CALL 018FH
LD A,49H ;I povel
CALL 018FH
LD A,4CH ;L povel
CALL 018FH
LD A,30H ;spojitý druh čáry
CALL 018FH
LD A,43H ;C povel
CALL 018FH
LD A,32H ;zelená barva
CALL 018FH
LD A,4AH ;J povel
CALL 018FH
LD A,31H ;"1"
CALL 018FH
LD A,30H ;"0"
CALL 018FH
LD A,30H ;"0"
CALL 018FH
LD A,2CH ;čárka
CALL 018FH
LD A,2DH ;minusové znaménko
CALL 018FH
LD A,32H ;"2"
CALL 018FH
LD A,30H ;"0"
CALL 018FH
LD A,31H ;"1"
CALL 018FH
LD A,2CH ;čárka
CALL 018FH
LD A,30H ;"0"
CALL 018FH
LD A,2CH ;čárka
CALL 018FH
LD A,30H ;"0"
CALL 018FH
LD A,2CH ;čárka (oddělení poslední
hodnoty parametru a povelu "H")
CALL 018FH
LD A,48H ;H povel
CALL 018FH
LD A,41H ;A povel
CALL 018FH
LD A,0DH ;označení konce
CALL 018FH
Tento program přepíná plotter do grafického módu. Potom se určí momentální pozice tiskové hlavy jako nový počátek.
Další povel určuje druh čáry. Následující povel udává barvu.
Potom se udělá čára mezi relativním bodem (100, -201) a bodem
(0, 0).Nakonec se tisková hlava posune do původní pozice
a plotter se přepne do znakového módu. Tyto programy se dají
uspořádat mnohem lépe pomocí druhého standardního programu
monitoru 01A5H. Pro přehlednost ale byly napsány se standardním
programem 018FH.