BT100 navod - 1 - TASWORD TWO
Navod na pouzivani programu pro BT100
*******************************************
(C) LZR Soft, 28. kvetna 1990
1. Uvod
*************
Programy umoznuji uzivateli tisknout na jednojehlickove tiskarne
BT100. Slouzi k tisknuti textu a tisknuti kopie obrazovky. Umoz-
nuji vytisknout vsech 256 znaku znakoveho generatoru, typ a roz-
mer pouziteho pisma je volitelny.
2. Provozovani programu
*****************************
2.1. Nutny hardware
=======================
Pripojeni BT100 je realizovano pres output port 40H ( tiskarna )
a input port 37H ( joystick ). Pri tomto zapojeni je nutne vyro-
bit si jednoduchy "interface" ze ctyr tranzistoru,diod a odporu.
Pocitano je ale i s temi uzivateli, kteri vlastni modul PI-5.
Programy lze pro PIO snadno modifikovat. Zapojeni uverejnene ve
Zpravodaji SORD/SCHNEIDER 4/89 neni kompatibilni.
2.2. Sada programu
======================
V programovem baliku je zahrnut univerzalni program, ktery "umi"
vsechny nize uvedene funkce a pak specializovane programy, ktere
umi jen nektere funkce. Programy jsou pak jeste deleny na verze,
ktere se od sebe lisi pouze umistenim v pameti RAM. Obecne zde
bude popsan univerzalni program "BT hand", odlisnosti ostatnich
programu budou uvedeny nize. Az na jednu vyjimku, jsou vsechny
programy ve strojovem kodu.
2.3. Nahrani a spusteni
===========================
2.3.1. V jazyce Basic-F
-------------------------
Program "BT hand" se nahrava prikazem OLD. Po nahrani je odstar-
tovan od adresy START, kde se provede pripojeni noveho zarizeni
"BT:" k jiz existujicim zarizenim jazyka Basic-F. Pokud jsou jiz
nadefinovana jina uzivatelska zarizeni, zustanou zachovana a BT:
se pripoji za ne.
2.3.2. V jazyce Basic-G a Basic-I
-----------------------------------
Program "BT hand" se nahrava prikazem OLD. Po nahrani do jazyka
Basic-G je odstartovan od adresy START. Po nahrani do jazyka Ba-
sic-I je nutne odeslat jeste prikaz CALL START. V obou pripadech
START provede inicializaci programu a ocekava, ze je pripojena
tiskarna, na ktere provede uklizeni hlavy vlevo a posun o jeden
mikroradek.
BT100 navod - 2 - TASWORD TWO
2.4. Ovladani
=================
2.4.1. V jazyce Basic-F
-------------------------
Basic-F je rozsiren o nove zarizeni BT:. Pro toto zarizeni plati
totez co pro zarizeni PRT a PRI. Tisk lze provadet prikazy:
OPEN "BT:[parametry]" [FOR {OUTPUT/APPEND}] AS #chn
PRINT #chn [polozky;]
CLOSE #chn
nebo
LIST "BT:[parametry]"
Parametry nastavuji velikost pisma, velikost mezery mezi radky a
levy doraz. Zadavaji se napriklad takto:
9x4+1/10, coz znamena: sire pisma 9 bodu ( na jeden radek se pak
vejde 53 znaku ), krat vyska pisma zvetsena o 4 body ( minimalni
velikost je 8 bodu, vysledna je tedy 12 bodu ) plus 1 mikroradek
mezi radky ( jeden mikroradek ma vysku jednoho bodu ) lomeno le-
vym dorazem ( v tomto pripade se tiskne az od 10te pozice ).Siri
pisma lze zadavat v rozmezi 6-9, vysku 0-9 a doraz 1-99, pricemz
pokud je levy doraz vetsi nez maximalni pocet znaku na radce,tak
je zmensen na tuto hodnotu. Neuvedou-li se zadne parametry,je to
stejne, jako kdyby se zadaly parametry 6x0+1/1.Tisknout lze take
volanim jednotlivych tiskovych rutin, viz Basic-G a Basic-I.
Kopie obrazovky se provadi volanim rutin GCOPY. Pomer kopie 1:1
znamena, ze jeden bod na obrazovce odpovida jednomu bodu na tis-
karne a kopie 2:1 pak, ze jeden bod na obrazovce odpovida ctyrem
bodum na tiskarne ( 2 krat zvetseno ). Podrobnosti jsou uvedeny
v odstavci pro Basic-G a Basic-I.
2.4.2. V jazyce Basic-G a Basic-I
-----------------------------------
V BG a BI lze ridit tisk pouze "poukovanim" parametru a volanim
tiskovych rutin z programu ve strojovem kodu.
Rutiny volane prikazem nebo instrukci CALL:
PRTINI - inicializace programu
PRTCLO - pokud je v buffru tiskany nejaky text, tak jej vytiskne
PRTTXT - tisk textu od HL v delce B, nebo do CR ci NUL. ( 17C7 )
PRTCHA - tisk 1 znaku, CR provadi, ostatni znaky zobrazi
PRTCHB - tisk 1 znaku, vsechny znaky vcetne CR zobrazi
PRTLIN - tisk textu od HL v delce BC. ( 1805 )
GCOPY0 - kopie opacne obrazovky 1:1, rezim GII, GI a TEXT
GCOPY1 - kopie opacne obrazovky 2:1, pouze rezim GII
PRTCNS - tzv. ECHO, tisk 1 znaku na BT a zaroven na obrazovku
START - autostart. Pripojuje zarizeni BT nebo vola PRTINI
BT100 navod - 3 - TASWORD TWO
Parametry:
USRHGT - zvetseni vysky pisma ( normalne 0 )
USRMLF - pocet mikroradku mezi radky
USRLFT - levy doraz
USRRGT - pravy doraz ( nepouzito )
USRBOT - pocet radku k tisku na jednu stranku
USRFED - po odstrankovani cekat/necekat ( 0/1 )
USRPAG - pocet mikroradku na jedne strance ( 2 byte )
USRNLQ - tzv. NEAR LETTER QUALITY ( 0/1 - NE/ANO )
USRTYP - typ tiskarny ( 0 = prvni verze, 1 = druha verze )
USRNIT - pred servisni opravou 0, po oprave nekdy nutno na 1
Poznamka:
adresy uvedene v zavorkach jsou adresy rutin MONITORu ROM, ktere
provadeji totez na standardni tiskarne.
Tyto rutiny a parametry lze pouzit take z Basiku-F, pricemz pla-
ti, ze parametry predavane v OPEN maji vetsi prioritu, tzn. maji
prednost pred napoukovanymi daty.
2.4.3. Priklady pouziti
------------------------
a)
V pameti ulozen text, ktery chceme vytisknout. Text je ukoncen
znakem CR ( chr$(13) ) nebo NUL ( CHR$(0) ). Nejprve tedy musime
vytvorit kratounky podprogram ve strojovem kodu,ktery nam umozni
predat parametry:
TISK: LD HL,TEXT ;adresa textu
LD B,0 ;pocet tistenych znaku 256 ( maximum )
JP PRTTXT ;skok do rutiny tisku
Kde TISK je adresa naseho programu a TEXT je adresa textu v pa-
meti. Konkretni realizace muze vypadat takto:
POKE &8000,&21:POKEW &8001,&9000:POKE &8003,&06:POKE &8004,&00:
POKE &8005,&C3:POKEW &8006,PRTTXT
Z basiku pak zavolame tisk prikazy:
CALL PRTINI:CALL &8000:CALL PRTCLO
b)
V pameti ulozen text, ktery chceme vytisknout. Text neni ukoncen
znakem CR ani NUL, ale zname jeho delku. Opet musime nejprve vy-
tvorit kratounky podprogram ve strojovem kodu, ktery nam umozni
predat parametry:
TISK: LD HL,TEXT ;adresa textu
LD BC,DELKA ;pocet tistenych znaku
JP PRTTXT ;skok do rutiny tisku
Konkretni realizace muze vypadat takto:
POKE &8000,&21:POKEW &8001,&9000:POKE &8003,&01:POKEW &8004,1000
POKE &8006,&C3:POKEW &8007,PRTTXT
Z basiku pak zavolame tisk stejne jako v minulem prikladu.
Poznamka:
Basic-I nezna prikaz POKEW. Lze jej obejit dvema prizy POKE. Na-
priklad POKEW &8001,&9000 = POKE &8001,&00:POKE &8002,&90
BT100 navod - 4 - TASWORD TWO
c)
V Basiku-F chceme vytisknout cast listingu programu ( od radky
30 do radky 70 vcetne ) nejmensi velikosti pisma. Provedeme to
velmi jednoduse:
LIST "BT:6x0+1" 30,70
d)
Z Basiku-F chceme tisknout ruzne graficke kreace ( ramecky a po-
dobne ). Pro takovy pripad je potreba mit pismo 8x8. Provest to
lze napriklad:
10 OPEN "BT:8x8+0" FOR OUTPUT AS #3%
20 PRINT #3 ",---------+--------."
30 PRINT #3 "| PRIJEZD | ODJEZD |"
40 PRINT #3 "+---------+--------|"
50 FOR I%=1% TO 15%
60 PRINT #3 "| | |"
70 NEXT I%
80 PRINT #3 "`---------+--------'"
90 CLOSE #3:END
e)
Chceme si zvecnit to, co mame na obrazovce. At uz obrazek, nebo
pouhy text.
Kopie obrazovky se provadi velmi jednoduse. Staci zadat z druhe
obrazovky tento prikaz: CALL GCOPY0 nebo CALL GCOPY1. Jediny pa-
rametr, ktery lze pouknutim predat, je pro GCOPY0 levy doraz.
2.5. Typy pisma
===================
Typ pisma muze uzivatel ovlivnit nekolika zpusoby:
1) siri pisma
2) vyskou pisma
3) tvarem pisma
K prvnimu bodu: sire pisma primo ovlivnuje i pocet znaku, ktere
se vejdou na jeden radek. Konkretne plati:
6 ~ 80 ; 7 ~ 68 ; 8 ~ 60 ; 9 ~ 53 ;
Pri siri 6 se tiskne 6 bodu,zbyvajici 2 body ve tvaru znaku jsou
ignorovany.Naopak pri siri 9 se tiskne jen 8 bodu,devaty je vzdy
prazdny ( mezera ).
K druhemu bodu: vyska normalniho pisma je 8 bodu. Pro pouzivani
zvyseneho pisma je nutne mit specialni znakove generatory ( tzv.
fonty ), ktere jsou prislusne "roztazeny". Pri tisku se predpo-
klada, ze se takovy font nachazi ve VRAM od adresy 0000.
Ke tretimu bodu: tvar pisma je ovlivnitelny zmenou znakoveho ge-
neratoru. Pri vysce pisma 8 bodu se tiskne vzdy podle predlohy
ve VRAM procesni obrazovky ( obrazovka, na ktere je kurzor ). Je
pochopitelne,ze font musi odpovidat pouzite siri pisma,aby znaky
nebyly "orezane".
BT100 navod - 5 - TASWORD TWO
2.6. Vymena papiru, pozastaveni tisku
=========================================
Program "BT hand" je vybaven funkcemi, ktere by na standardni
tiskarne odpovidaly priblizne funkcim: STOP/CONT PRINTING, LOCAL
FORM FEED a AUTO FORM FEED, coz prevedeno do cestiny znamena za-
staveni/pokracovani tisku,odstrankovani a automaticke odstranko-
vani pri dotisknuti k dolnimu dorazu. Funkce jsou realizovany
takto: bezi-li tisk, pridrzenim klavesy <FUNC> se tisk po dotis-
teni cele jedne radky zastavi. Po stisku <CTRL> se pokracuje v
tisku dal, eventuelne po stisku <SHIFT> se odstrankuje a ceka se
na stisk <CTRL>. Tyto funkce jsou dulezite proto, aby bylo mozno
vymenovat v tiskarne listy papiru. Dale tiskarna po vytisteni
USRBOT radku sama odstrankuje (nemusime tedy hlidat konec listu)
a pokud je USRFED=0,ocekava stisk <CTRL>,jinak pokracuje v tisku
( vyhodne, je-li pouzita role papiru, nebo skladany papir ).
3. Programovy balik
********************
3.1. Konkretni programy
===========================
K dnesnimu dni existuji pouze tyto soubory:
BT hand 1.CM - univerzalni program, ktery umi vsechny uvedene
funkce. Je umisten v pameti od adresy &F000.
MCPTvDB00.CM - univerzalni program, ktery umi vsechny uvedene
funkce. Je umisten v pameti od adresy &DB00.
TISKTSW.1 az TISKTSW.4 - tisk z TASWORDU
LZR-SET+3.VM - font pro tisk pismem 9x3
AMSTRAD.VM - font pro tisk pismem 8x0
BBC-ACORN.VM - font pro tisk pismem 8x0
IBM-SET 1.VM - font pro tisk pismem 8x0
SINCLAIR.VM - font pro tisk pismem 8x0
a dalsi soubory fontu.
4. Tisk textu z TASWORDu
******************************
Editor TASWORD sice umoznuje i tisk textu na tiskarne, ale pouze
na standardni. Pro tisk TSW textu na BT100, je urcen program
TISKTSW, ktery umoznuje tisk textu ve ctyrech velikostech.
Po spusteni programu nasleduji dotazy:
TEST NA CNS ? [A/N] - A = tiskne se pouze na obrazovku
N = tiskne se na BT100 a na obrazovku
TISK N.L.Q. ? [A/N] - A = tiskne se jen pri pohybu hlavy vpravo
- N = tiskne se obema smery
TEXT SOUBOR K TISKU: <RETURN> = soubor je jiz v pameti
jmeno nebo ? = nahraje uvedeny soubor
Pokud se na prvni dotaz odpovedelo zaporne,tak se jeste vytiskne
hlaska ZAPNI BT100 a ocekava se stisk nejake klavesy. Tisk lze
BT100 navod - 6 - TASWORD TWO
pote pozastavit pridrzenim klavesy <FUNC>.
Do vlastniho textu lze v TSW zapsat tzv. "escape sekvence", t.j.
znaky pro rizeni a formatovani textu:
<ESC><MEZERA> - provede odstrankovani a ceka na stisk klavesy
<ESC>[n - velikost pisma n=6 - 6x2+0
=7 - 7x2+0
=8 - 8x4+0
=9 - 9x4+0
Znak <ESC> se v TSW zapisuje jako <PRAVY SHIFT>+<F>.
Ridici sekvence se na tiskarne nezobrazuji a pokud je jich je na
jedne radce vic, bere se v uvahu ta posledni.Nejsou-li v souboru
zadne ridici sekvence,program nastavi velikost pisma 7x2+0 a pri
tisku si sam hlida konce stranek.
5. Prakticke zkusenosti
*****************************
Z nepochopitelnych duvodu dal vyrobce na trh dva programove ne-
slucitelne typy tiskaren. Program na jedne tiskarne, pri tisku
obema smery, tiskne spravne a na druhe je pismo roztresene. Dal
pak muze nastat komplikace po vymene pretrzene nite ( pretrhla
se mi asi po 150ti hodinach provozu ). V kazdem pripade lze tyto
komplikace obejit modem NLQ,kdyz pouknete 1 na promennou USRNLQ,
nebo odpovite A na dotaz "TISK N.L.Q. ? [A/N]". Nevyhodou tohoto
modu je polovicni rychlost tisku. Pouzivani modu NLQ si vynuti
take opotrebeni mechaniky tiskarny ( vytahana nit ),ktere je jiz
priblizne po 100 hodinach provozu znacne.Pokud vam vsak polovic-
ni rychlost nebude vyhovovat,muzete pokunout na promennou USRTYP
1.V takovem pripade bude program tisknout na starem typu roztre-
sene a na novem spravne. Pokud ani to nepomuze,zkuste jeste pou-
knout 1 na adresu USRNIT. Pokud ani to nepomuze, nezbyva, nez se
spokojit s modem USRNLQ ( to se zatim v praxi jeste nikomu ne-
stalo ).
Aby se predeslo komplikacim s ruznymi typy tiskaren, je pro tisk
z TASWORDu program TISKTSW vyhotoven hned ve trech provedenich.
Nazvy programu jsou totozne, lisi se vsak delkou.Hned po nahrani
se se program ohlasi, napriklad: VERZE 12.4.1990 - TYP NITKA.
K cemu je promenna FORFED ? Urcuje, kolik mikro radek se jiz vy-
tisklo. Tato promenna se nuluje pri kazdem basickem OPEN "BT:...
LIST "BT:... atd. Nazorne je pouziti v TISKTSW.2.BF.
Rutina ROL odroluje papir o jeden mikroradek.
Pocet znaku na radce ovlivnuje ( pri volani programu ve strojo-
vem kodu ) systemova promenna PMXCLM na adrese &705B, ktera pu-
vodne slouzila k urceni maximalniho poctu tistenych znaku na
jednom radku standardni tiskarny.
BT100 navod - 7 - TASWORD TWO
Program hlida pocet vytistenych radek, aby tak poznal konec pa-
piru. Pokud tisknete "chaoticky", muze se stat, ze tiskarna od-
roluje papir a dal se nic nedeje. V tomto pripade nastal FORM
FEED a program ocekava stisk <CTRL>.
Pokud je tiskarna zapnuta a pripojena k pocitaci,musime zajistit
aby na vystupnim portu byly jednicky. Za normalnich okolnosti je
na vystupnim portu 40H stav 00H, coz pro BT100 znamena posun pa-
piru, pohyb hlavy vlevo a vpravo zaroven a tisk jednoho bodu.
Samozrejme, ze tento stav je nezadouci a je potreba ho zmenit
prikazem OUT&40,&FF. Stav 0FFH na portu zustane az do okamziku
zavolani rutiny MTRON ( zapnuti motoru magnetofonu ).Tato rutina
je volana pri prikazech TAPE, OLD, SAVE, VERIFY a dalsimi, ktere
spolupracuji s magnetofonem a nastavuje na port 40H stav 0.Proto
je potreba pred nahravanim na magnetofon nebo pred nahravanim z
magnetofonu tiskarnu vypnout, nebo odpojit vystup od pocitace.
Pokud je tiskarna pripojena pres PIO, tento problem nenastava.
Pokud je pouzit jako "interface" pro vstup obvod se ctyrmi tran-
zistory a maji-li tyto tranzistory velke zesileni, muze se stat,
ze se budou signaly z BT100 "mixovat" do klavesnice. I proto je
dobre tiskarnu pri nepouzivani vypinat.
Nejdulezitejsi poznamka na konec:
Po nahrani programu hand nebo MCPT je promenna USRNIT nastavena
na 1, proto, pokud mate nit v poradku, pouknete na tuto adresu
nulu! Pak teprve zcnete s experimentama ...
5.1. Konkretni adresy
=========================
program: hand1/TISKTSW/MCPT program: hand1/TISKTSW/MCPT
PRTINI - F000 - 7800 - DB00 USRHGT - F01B - 7809 - DB1B
PRTCLO - F003 - -- - DB03 USRMLF - F01C - 780A - DB1C
PRTTXT - F006 - -- - DB06 USRLFT - F01D - 780B - DB1D
PRTCHA - F009 - -- - DB09 USRRGT - F01E - 780C - DB1E
PRTCHB - F00C - -- - DB0C USRBOT - F01F - 780D - DB1F
PRTLIN - F00F - -- - DB0F USRFED - F020 - 780E - DB20
GCOPY0 - F012 - -- - DB12 USRPAG - F021 - 780F - DB21
GCOPY1 - F015 - -- - DB15 USRNLQ - F023 - 7811 - DB23
PRTCNS - F018 - -- - DB18 USRTYP - F024 - 7812 - DB24
START - F035 - 7803 - DB35 FORFED - F025 - 7813 - DB25
ROL - -- - 7806 - -- USRNIT - F027 - 7815 - DB27
6. Oziveni zapojeni
*************************
Pri ozivovani doporucuji postupovat takto:
Nejprve ozivit vystup ze SORDa. Nejlepe zacit pripojenim vodice
pro posun papiru a hned vyzkouset funkci.Pote pokracovat vodicem
pro tisk jednoho bodu a opet vyzkouset. Nakonec zapojit vodice
pro posun hlavy a zase vyzkouset.
BT100 navod - 8 - TASWORD TWO
Zde jsou prikazy pro vyzkouseni spravnosti zapojeni vodicu. Lze
je pouzit ve kteremkoliv basiku, programy pro rizeni BT100 neni
potreba nahravat.
OUT &40,&FF - zastavi vsechny pohyby a rusi tisk jednoho bodu
OUT &40,&F7 - posun papiru
OUT &40,&FE - tisk jednoho budu, jehlicka jednou tukne
OUT &40,&FD - pohyb hlavy vpravo
OUT &40,&FB - pohyb hlavy vlevo
Pozor! Pri tisku jednoho bodu zustava povel "viset". Proto je
nutne jej pred dalsim pouzitim shodit vyslanim &FF. Aby jehlicka
tukala stale, staci spustit takovyto program:
10 OUT &40,&EF:FOR I=1 TO 200:NEXT:OUT &40,&FF:FOR I=0 TO 200:NE
XT:GOTO 10
Oziveni vstupu ( pravy joystick ) vyzaduje rozebrani tiskarny.
Staci jen odejmout dolni kryt, aby byla kolecka pro posun hlavy
a papiru volne pristupna. Kratounky program nam umozni sledovat
stav vstupniho portu:
10 CLS
20 PRINT CURSOR(0,0);MID$(HEX$(INP(55)),3,1):GOTO 20
Tiskne jednu hexadecimalni cislici, jez predstavuje stav 4 bitu
na vstupu do SORDa. Jednotlive bity znamenaji:
bit 0 - maly zarez na kolecku pro posun hlavy
bit 1 - velky zarez na kolecku pro posun hlavy
bit 2 - hlava je na levem dorazu
bit 3 - velky zarez na kolecku pro posun papiru
Bity testujte pomalym otacenim jednotlivymi kolecky. Doporucuji
zacit opet tim nejjednodussim - dorazem, pak posunem papiru a na
konec posunem hlavy.
7. Uprava programu pro provozovani s modulem PI-5
*******************************************************
Adresy, na nichz jsou instrukce, u kterych je potreba zmenit pa-
rametr prepoukovanim:
Program: BT hand 1 / MCPTvDB00 / TISKTSW.4
INIPIO - F032H - DB32H - 7820H
BTINP - F029H - DB29H - 7817H
BTOUT - F02FH - DB2FH - 781DH
parametry:
INIPIO - CWR = 88H, 8AH, 98H nebo 9AH
BTINP - port = 72H ( puvodni hodnota 37H )
BTOUT - port = 72H ( puvodni hodnota 40H )
BT100 navod - 9 - TASWORD TWO
BT100 pripojit na port C,dolni 4 bity jako vystup a horni 4 bity
jako vstup.Toto zapojeni jsem nemel moznost v praxi overit,takze
za nej nerucim.
8. Pripojeni BT100 k m.5
******************************
Komunikace m.5 ---> BT100
-------------------------
konektor BT 100 PRINTER IN
1 - RIGHT
2 - GROUND
3 - NC
4 - LEFT
5 - PLOT
6 - PAPER
7 - NC
konektor m.5 PRINTER
pin D0 -> 5
D1 -> 1
D2 -> 4
D3 -> 6
propojeno primo.
Komunikace BT100 ---> m.5
-------------------------
konektor BT 100 PRINTER OUT
1 - BILY
2 - NC
3 - ZLUTY
4 - NC
5 - NC
6 - CERVENY
7 - MODRY
konektor m.5 JOY(1)
1 - ZLUTY
2 - NC
3 - BILY
4 - CERVENY
5 - MODRY
6 - GROUND
Cislovani konektoru JOY nesouhlasi s cislovanim originalu. Barvy
vodicu souhlasi.
BT100 navod - 10 - TASWORD TWO
mezi BT100 a m.5 je tento interface:
strana BT100 strana m.5
4x1N400 4xKC509
,----------o
+-----+ |\ | B | / C 1
o-------+ 5K6 +----+ >+-------+<
3 +-----+ |/ | | \
V E
`------.
,------+---o
+-----+ |\ | B | / C | 3
o-------+ 5K6 +----+ >+-------+< |
1 +-----+ |/ | | \ |
V E |
`------o
,------+---o
+-----+ |\ | B | / C | 4
o-------+ 5K6 +----+ >+-------+< |
6 +-----+ |/ | | \ |
V E |
`------o
,------+---o
+-----+ |\ | B | / C | 5
o-------+ 5K6 +----+ >+-------+< |
7 +-----+ |/ | | \ |
V E |
`------o---o
6
Datum poslední editace: 28. 5. 1990
============== Napsal Roman Štec z teamu LZR Soft ==============