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 ==============