ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
Mikropočítač IQ151 | Moduly k IQ151 | Dokumentace
Budu se zde výhradně věnovat technickým prostředkům a to proto, že již existují stránky které se věnují tomuto počítači např. ZDE (jejich zrcadlo) a nebo ZDE.
Originální a další dokumentace je k dispozici například ZDE a zrcadlo, technický popis nemusí vždy odpovídat schématům, co jsem spáchal, protože až na vzácné výjimky šlo o získaní schémat metodou zpětného inženýrství.
Popis modulu byl převzat se souhlasem autora z webu www.iq151.net
MS151(A) a Minigraf (0509)
Tyto moduly slouží pro připojení kresliče (souřadnicového zapisovače/plotru) k IQ 151.
Pro souřadnicové zapisovače typu XY 4120-4150 slouží moduly MS151 nebo MS151A. Tyto dva se od sebe liší pouze přítomností resp. nepřítomností 2kB Eprom s ovládacím programem. V praxi se setkáme pouze s novějšími moduly MS151A které ovládací program obsahují a není třeba nic zavádět z kazety. Modul Minigraf (někdy označovaný též jako Modul 0509) je určen pro kreslič Minigraf 0507 který vyráběla firma Aritma Praha. Lze se setkat s minimálně 2 verzemi tohoto modulu, jedna verze byla určena pouze pro spolupráci s modulem Basic6 a druhá verze modulu (novější) je univerzální pro libovolný z modulů Basic6/BasicG. U modulu Minigraf je drobná chyba v obsahu Eprom a nelzepoužít příkaz SIZE bez parametrů jako u modulu MS151. Autoři programu na tuto možnost pozapoměli a nastaví se nesmyslné hodnoty pro velikost a sklon písma. U Minigrafu je ještě třeba dát pozor na rok výroby vlastního kresliče - přístroje vyráběné do roku 1986 mají menší rychlost kreslení a je proto potřeba udělat příslušnou úpravu nastavení parametrů.
Oba moduly obsahují prováděcí rutiny basicových příkazů pro kresliče, inicializační hodnoty pro své proměnné a znakovou sadu pro psaní písmen. Vlastní obsah paměti Eprom se mapuje od adresy C000 a přítomnost modulů je testována před provedením příkazů.
Jen pro informaci seznam příkazů pro ovládání kresličů v Basicu: ORG, MOVA, MOVR, VECTA, VECTR, POINTA, POINTR, SPEED, SIZE, WRITE, WIDE, NARROW.
Podrobný popis příkazů a práce s vlastními kresliči najdete například v knize: Školní mikropočítač IQ 151 od Ing. Přívětivého.
Souřadnicové zapisovače MINIGRAF 0507 a AMAGRAF 0517.
ARITMA
1988
Připojovací modul 0509
verse 1986
NÁVOD K OBSLUSE
k.p. Aritma Praha
Vydání III.
1988
V tomto návodu k obsluze jsou uvedeny pokyny a podmínky nutné pro správné používání a funkci připojovacího modulu, který je označen typovým číslem 0509.
Moduly 0509/86 (tj. vyráběné od roku 1986) jsou určeny pro Minigrafy 0507/86, které umožňují vyšší rychlost kreslení než Ninigrafy 0507/85. Nové moduly 0509/86 se liší od původních 0509/85 obsahem paměti EPROM.
Moduly 0509/85 lze použít přímo i pro Minigrafy 0507/86, ale opačně moduly 0509/86 lze pro Minigrafy 0507/85 použit pouze po úpravě uživatelského programu (viz kap.7.4.2.).
Programy psané pro modul 0509/85 je nutno pro modul 0509/86 přeprogramovat a naopak.
Modul 0509 je zásuvný modul do počítače IQ151 a umožňuje připojení výstupní grafické jednotky Minigraf 0507 k počítači IQ151.
Modul 0509 je určen pro práci v těchto klimatických podmínkách:
Technické údaje modulu 0509:
1. | Rozměry: | délka 168 mm |
hloubka 20 mm | ||
výška 96 mm | ||
2. | Hmotnost: | 0,33 kg |
3. | Napájení: | interní z IQ151 (+5 V) |
Sestavu modulu tvoří print osazený elektronickými součástkami a konektorem K1 FRB TY 5176211 pro připojeni k IQ151. K printu je přiletován kabel s konektorem K2 pro připojení Minigrafu 0507. Modul je zakrytován typizovaným krytem (výrobce ZPA Jičín) určeným pro veškeré zásuvné moduly počítače IQ151.
Modul 0509 obsahuje paměť typu EPROM MHB 2716 (ekv. K573RF2 nebo RF5 - poz.2), kde je uložen obslužný program pro Minigraf 0507, včetně generátoru znaků, port MH 3212 (pozice 3) pro komunikaci s databusem IQ151, port MH 3212 (pozice 12) pro ovládání Minigrafu 0507 a TTL logiku tvořící adresový dekodér (pozice 10,11,17,19 pro generaci signálu -RAM) a dekodér adresy výstupního portu (pozice 15,17).
Modul 0509 se zasouvá do IQ151, odkud je napájen napětím 5V. Schéma modulu 0509 je uvedeno v příloze 1.
Závady modulu 0509 vzniklé po uplynutí záruční lhůty doporučujeme nechat opravit u výrobce či organizace pověřené servisem tohoto zařízení.
Modul 0509 je dodáván zabalen v ochranném obalu, včetně záručního listu a návodu k obsluze.
Modul 0509 nevyžaduje zvláštní údržbu. Je nutno dbát na čistotu obou konektorů modulu. V případě potřeby se kontaktní plochy konektorů očistí technickým benzinem.
Základní charakteristika
Dále popisovaná základní programová podpora pro řízení Minigrafu 0507 zajišťuje počáteční nastavení pisátka, kreslení bodů, úseček a posun v souřadném systému X-Y, psaní textu (s volitelným tvarem písma a směru řádky), výpis Basic-programu (listing), opis obsahu obrazovky a testovací program. Pro pochopení následujících kapitol se předpokládá znalost programování v Basicu (např."Programování počítače IQ151 v jazyku Basic") .
Uloženi a adresováni programové podpory Minigrafu
Programová podpora (podprogramy ve strojovém kódu 8080 a konstanty) je uložena v 2KB paměti EPROM v připojovacím modulu 0509. Zabírá adresy C000H až C7FFH a dále používá pro proměnné v paměti RAM adresy 160H až 185H.
Základní funkce se provádějí pomocí klíčových slov (např. MOVE, WRITE atd.), která jsou již “zabudovány“ v základním modulu BASIC6 počítače IQ151.
Několik dalších funkcí se volá standardním příkazem "CALL adresa,parametry" (viz tab.1.)
Vzhledem k omezenému paměťovému prostoru (programové vybavení pro Minigraf nemůže přesáhnout 2KB) není prováděna úplná kontrola parametrů pro jednotlivé funkce. Uživatel proto musí přesně dodržovat předepsané rozsahy parametrů.
Souřadnicový systém Minigrafu 0507
Pracovní prostor Minigrafu je obdélník o rozměrech 187,5 x 262,5 mm uvnitř formátu A4 ("na výšku"). Každý bod je určen souřadnicemi X a Y. Souřadnice cílových bodů pro jednotlivé funkce Minigrafu sa udávají počtem základních kroků tj. v 1/8 mm. Podtek souřadnic je standardně v levém spodním rohu pracovního prostoru (ev. posun počátku viz kap.9.), osa X je vodorovná, osa Y svislá. Pisátko se tedy pohybuje v prvním kvadrantu i absolutní souřadnice bodů mohou nabývat hodnot:
0 <= x <= 1500 a 0 <= y <= 2100 – viz obr. 1.
Obr.1. Pracovní prostor Minigrafu 0507
Popis funkci Minigrafu
Přehled příkazů (klíčových slov)
V této kapitole je uveden nejprve přehled příkazů pro Minigraf 0507 (tab.1.) a v dalších kapitolách jsou jednotlivé funkce podrobně vysvětleny.
Příkaz | Parametry | Význam |
ORG | xa,ya | inic. a přesun pisátka do xa,ya |
MOVA VECTA POINTA | xa,ya | přesun pisátka do xa,ya úsečka do xa,ya přesun do xa,ya a tečka |
MOVR VECTR POINTR | xr,yr | přesun pisátka o xr,yr kroků úsečka xr,yr kroků přesun o xr,yr kroků a tečka |
SIZ NARROW WIDE WRITE | xx,xy,yx,yy - - w$ | volba tvaru, sklonu a směru tisku úzká (normální) mezera široká mezera tisk znakového řetězce w$ |
SPEED | s | modifikace rychlosti |
CALL list (49314) CALL copy (49317) CALL test (49326) | n1,n2 xa,ya - | "listing" programu od n1 do n2 kopie obrazovky do xa,ya testovací program (tab.ASCII) |
Tab.1. Přehled příkazů (klíčových slov)
Parametrem "w$" může být řetězec nebo název řetězcové proměnné, ostatní parametry jsou obecně výrazy jazyka Basic. Není-li parametrem celé číslo, uplatní se (u počítače IQ151) jeho celistvá část. Přípustné hodnoty mezi pro jednotlivé parametry budou uvedeny dále v popisu příslušných příkazů.
Příkaz ORG xa,ya
Příkaz ORG má pro Minigraf 0507 poněkud odlišný význam než pro některé jiné zapisovače.
Příkaz ORG se musí provést vždy po zapnutí Minigrafu po založení papíru,před použitím ostatních příkazů dále uvedených (kromě příkazu "CALL test" viz kap.7.4.16). Příkaz ORG předpokládá papír založený tak, že se jeho horní hrana kryje s horní hranou otevřené zadní klopny. ORG zajistí synchronizaci motorků s polohou pisátka evidovanou v paměti vzhledem k souřadným osám. Přesune pisátko vlevo "na doraz" (aby byla definována souřadnice X) a pak ho nastaví nad bod xa,ya.
Příkaz ORG též nastaví konstanty pro správné časování motorků a rychlost a parametry pro tisk:
SPEED 3 SIZE 3,0,0,3 NARROW "diakr.režim" - viz další popis
Poznámka: Při použití modulu 0509/86 s Minigrafem 0507/85 je nutno vždy po příkazu ORG (a též po "CALL test") provést přikaž "POKE 389,20" pro omezení max.rychlosti.
Příkaz MOVA xa,ya
Příkaz "MOVA xa,ya" přesune (bez kresby) pisátko z jeho dosavadní polohy do bodu o souřadnicích xa,ya (absolutních).
Příkaz VECTA xa,ya
Příkaz "VECTA xa,ya" nakreslí úsečku z dosavadní polohy do bodu xa,ya. Pisátko zůstane spuštěno.
Příkaz POINTA xa,ya
Příkaz "POINTA xa,ya" přesune (bez kresby) pisátko z jeho dosavadní polohy do bodu xa,ya, udělá tam tečku a zvedne pisátko.
Příkaz MOVR xr,yr
Příkaz "MOVR xr,yr" přesune (bez kresby) pisátko z jeho dosavadní polohy xd,yd do bodu o souřadnicích xd+xr,yd+yr, kde xr a yr udává počet kroků (relativně) a může nabývat i záporných hodnot - samozřejmě pouze takových, aby cílový bod zůstal v pracovním prostoru Minigrafu.
Poznámka: Příkaz "MOVR 0,0" způsobí pouze zvednutí pisátka.
Příkaz VECTR xr,yr
Příkaz "VECTR xr,yr" nakreslí úsečku z dosavadní polohy xd,yd do bodu o souřadnicích xd+xr,yd+yr (hodnoty xr,yr -viz "Příkaz MOVR"). Pisátko zůstane spuštěno.
Příkaz POINTR xr,yr
Příkaz SIZE xx,xy,yx,yy
Soubor znaků
Základní programové vybavení pro Minigraf 0507 obsahuje kompletní sadu tisknutelných znaků ASCII a diakritická znaménka (čárka, kroužek, háček, vokáň a přehláska). Netisknutelné znaky (tj.00H až 1FH) budou, kromě znaků 00H a 08H, nahrazeny mezerou (space). Znak 00H je rezervován pro uživatele, který si tak může v programu určit další speciální znaky (řeckou abecedu, azbuku aj.) - jejich deklarování a použití bude popsáno dále. Znak 08H označuje "krok zpět" a zařazuje se do příslušného řetězce jako CHR$(8) - to způsobí, že následující znak bude kreslen do stejného místa jako předcházející.
Uživatel může programem volit 2 režimy: "ASCII-režim" - tj. kompletní sada znaků ASCII, nebo "diakritický režim" -tj. sada ASCII, ale s jinou interpretací posledních 5 znaků podle tab.2. Režim je určen obsahem adresy 371 (dekadicky) tak, že 0 znamená "diakritický režim" a 1 "ASCII režim". "Diakritický režim" lze tedy volit příkazem "POKE 371,0" a "ASCII-režim" příkazem "POKE 371,1". Příkazy "ORG, CALL list, CALL copy a CALL test" nastavují "diakriticky režim". Tisk písmena s diakr. znaménkem se pak zadává podobně jako na psacím stroji tak, že se vloží nejprve jeden z 5 posledních znaků sady ASCII odpovídající požadovanému znaménku a pak vlastní písmeno. Má-li být např. příkazem WRITE napsáno "Ř", musí příslušný řetězec obsahovat dvojici "}R" (pravá složená závorka a písmeno R).
Poznámka: Po diakritickém znaménku nebo po "krok spět" bude následující znak vždy (i např. ještě po příkazu NOVA) kreslen do místa předcházejícího znaku)
Základní tvar znaku
Všechny znaky jsou kódovány v paměti základním tvarem v rastru 4x8 kroků - 7 kroků nad linkou (z toho 1 krok pro ev. diakritické znaménko) a 1 krok pod linkou - viz obr.2.
Speciální znaky definované uživatel
Pro psaní znakových řetězců poskytuje programové vybavení uživateli přímo k dispozici kompletní soubor znaků ASCII a diakritická znaménka (viz odst. "Příkaz SIZE"). Kromě těchto znaků si může uživatel ve zdrojovém Basic-programu deklarovat prakticky libovolný počet dalších vlastních znaků.
Pro definici takového znaku je nutné nejprve nakreslit základní tvar (složený z úseček) do rastru 4x8 čtverečků tj. 5x9 bodů, přičemž nelze využít nejvyšší řádku, a jednotlivým vrcholům znaku (tj. koncovým bodům úseček) přiřadit čísla a1., a2,……,an (kde "n" Počet vrcholů znaku) podle levé části tab.3.
######################################### ######################################### # ! ! ! # # ! ! ! # #56 !57 !58 !59 #60 #8 !9 !: !; #< #---------!---------!---------!---------# #---------!---------!---------!---------# #120 !121 !122 !123 #124 #x !y !z !{ #| # ! ! ! # # ! ! ! # #48 !49 !50 !51 #52 #0 !1 !2 !3 #4 #---------!---------!---------!---------# #---------!---------!---------!---------# #112 !113 !114 !115 #116 #p !q !r !s #t # ! ! ! # # ! ! ! # #40 !41 !42 !43 #44 #( !) !* !+ #, #---------!---------!---------!---------# #---------!---------!---------!---------# #104 !105 !106 !107 #108 #h !i !j !k #l # ! ! ! # # ! ! ! # #32 !33 !34 !35 #36 #space !! !CHR$(34) !# #$ #---------!---------!---------!---------# #---------!---------!---------!---------# #96 !97 !98 !99 #100 #' !a !b !c #d # ! ! ! # # ! ! ! # #24 !25 !26 !27 #28 #CHR$(24) !CHR$(25) !CHR$(26) !CHR$(27) #CHR$(28) #---------!---------!---------!---------# #---------!---------!---------!---------# #88 !89 !90 !91 #92 #X !Y !Z ![ #\ # ! ! ! # # ! ! ! # #16 !17 !18 !19 #20 #CHR$(16) !CHR$(17) !CHR$(18) !CHR$(19) #CHR$(20) #---------!---------!---------!---------# #---------!---------!---------!---------# #80 !81 !82 !83 #84 #P !Q !R !S #T # ! ! ! # # ! ! ! # #8 !9 !10 !11 #12 #CHR$(8) !CHR$(9) !CHR$(10) !CHR$(11) #CHR$(12) #---------!---------!---------!---------# #---------!---------!---------!---------# #72 !73 !74 !75 #76 #H !I !J !K #L # ! ! ! # # ! ! ! # #0 !1 !2 !3 #4 #CHR$(0) !CHR$(1) !CHR$(2) !CHR$(3) #CHR$(4) ######################################### ######################################### 64 65 66 67 68 @ A B C D torní čísla - pisátko nahoře horní znaky - pisátko nahoře dolní čísla - pisátko dole dolní znaky - pisátko dole
Tab.3. Rastr pro uživatelské znaky
Pak uživatel deklaruje znakový řetězec, jehož prvním členem je CHR$(0), dalšími členy jsou CHR$(a1), CHR$(a2),........,CHR$(an) a posledním členem je CHR$(128), takto:
CHR$ (0) +CHR$(a1) +CHR$(a2) +... +CHR$(an) +CHR$(128).
Při psaní takového řetězce příkazem WRITE bude pak nakreslen požadovaný znak - vytvořený postupným spojováním vrcholů odpovídajících číslům 0,a1 ,a2,...,an (s pisátkem dole či nahoře podle tab.3.). Poslední člen řetězce – CHR$(128) - zajistí zvednutí pisátka a návaznost pro psaní ev. dalších znaků.
Např. pro znak "±" může být řetězec deklarován takto:
PM$ = CHR$(0)+ CHR$(17)+CHR$(83)+ CHR$(35)+CHR$(97)+CHR$(42)+CHR$(90)+CHR$(128)
Pokud některým členům definičního řetězce odpovídají tisknutelné znaky kódu ASCII, je možno řetězec deklarovat stručněji přímo uvedením těchto tisknutelných znaků podle pravé části tab.3.
Pro uváděný příklad lze tedy psát:
PM$ = CHR$(0)+CHR$(17)+"S#a*Z"+CHR$(128)
Dále lze ještě ukončovací člen CHR$(128) sloučit s posledním vrcholem CHR$(an) do jednoho členu CHR$(an+128).
V našem příkladu lze tedy řetězec pro znak "±" nejstručněji deklarovat takto:
PM$ = CHR$(0) +CHR$(17)+ "S#a*"+CHR$(218)
Má-li být nyní např. napsána Minigrafem zpráva CHYBA ±5%, provede se to příkazem
WRITE "CHYBA "+PM$+"5%" .
Další příklady vytvořeni speciálních znakůt
znak: | deklarační řetězec: |
"přeškrtnuté kolečko" | "0"+CHR*(8)+"X" |
"šipka vzhůru" | "I"+CHR$(8)+"^" (v "ASCII-režimu") |
© | "0"+CHR*(8)+CHR$(0)+"+riYR"+CHR$(219) |
Výsledný tvar znaku
Příkaz "SIZE xx,xy,yx,yy" není výkonným příkazem, pouze nastavuje parametry určující velikost, sklon a směr tisku. Parametry xx,xy,yx,yy jsou průměty šířky a výšky základního tvaru znaku do souřadných os podle obr.3. Mohou nabývat i záporných hodnot - pouze ovšem takových, aby kreslený znak nepřesáhl pracovní prostor.
Několik příkladů volby tisku příkazem SIZE uvádí tab.4.
xx,xy,yx,yy | znak | řádka | ||
tvar | výška | šířka | ||
1,0,0,1 | kolmý | 1 m | 0,5 mm | vodorovně |
4,0,0,7 | štíhlý,kolmý | 7 mm | 2 mm | vodorovně |
4,0,1,4 | skloněn vpravo | 4 mm | 2 mm | vodorovně |
0,6,-4,0 | širší,kolmý | 4 mm | 3 mm | svisle vzhůru |
4,4,-4,4 | kolmý | 5,7 mm | 2,3 mm | šikmo vzhůru |
Tab.4. Příklady použití "SIZE xx,xy,yx,yy"
Příkaz NARROW
Příkaz NARROW nastaví základní (úzkou) šířku mezery mezi znaky řetězce kresleného příkazem WRITE - viz dále. Tato šířka je 2 kroky pro základní tvar znaku, tj. 0,25.xx mm pro výsledný tvar znaku. (Příkaz ORG nastavuje mezeru "NARROW".)
Příkaz WIDE
Příkaz WIDE nastaví širokou mezeru mezi znaky řetězce kresleného příkazem WRITE. Tato šířka je 5 kroků pro základní tvar znaku, tj. 0,625.xx mm pro výsledný tvar znaku.
Příkaz WRITE w$
Příkaz "WRITE w$" napíše řetězec určený parametrem w$. Může to být libovolný řetězcový výraz jazyka Basic. Výchozí bod (viz obr.2.) pro první znak kresleného řetězce w$ je:
Směr řádky a tvar znaku určuje příkaz SIZE, rozteč znaků je dána příkazem NARROW nebo WIDE.
Příklad: Výpis řetězce "ARITMA-PRAHA" vodorovně na řádce z bodu 100,200, písmena kolmá, vysoká 8 mm s mezerami 2 mm lze programovat např.takto:
MOVA 100,200 SIZE 8,0,0,8: NARROW A$="PRAHA" WRITE "ARITMA-"+A$
Příkaz SPEED s
Příkaz "SPEED s" dovoluje uživateli modifikovat rychlost kreslení v rozsahu ±10%. Změna rychlosti může v některých případech (v závislosti na použitém pisátku a papíru) ovlivnit kvalitu kresby. Parametr "s" smí nabývat hodnot 1,2,3,4,5, což odpovídá změně jmenovité rychlosti přibližně o +10%,+5%, 0,-5%,-10%. Příkaz ORG nastavuje SPEED 3.
Příkaz CALL list,n1,n2
Příkaz "CALL Iist,n1,n2" nejprve nastaví parametry pro tisk (SIZE 3,0,0,3, NARROW a "ASCII-režim") a pak vypíše požadovanou část zdrojového Basic-programu z paměti IQ151 na Ninigrafu.
Adresa "list" musí mít hodnotu 49314 (startovací adresa rutiny LISTING).
Parametr "n1" určuje číslo příkazu první požadované řádky (není-li v programu řádka s číslem "n1", začne výpis od řádky s nejblíže vyšším číslem, pokud ovšem není větší než "n2").
Parametr "n2" určuje číslo příkazu poslední požadované řádky. Výpis skonči bud po tisku řádky s číslem "n2" (není-li v programu řádka s tímto číslem, skončí po tisku řádky s číslem nejblíže nižším), nebo po dosažení konce stránky.
Výpis "listingu" začíná na levém okraji řádky, na níž právě stojí pisátko, a je tedy nutné ho předem správně nastavit na požadovanou souřadnici Y např. příkazem "NOVA 0,ya".
Číslo řádky (příkazu) se tiskne 5místné s nahrazením neplatných nul mezerami. Rozteč řádek je 4,5 mm (na stránku lze tedy napsat 58 řádek).
Pokud jsou ve vypisovaném programu též znaky v inverzním, resp. grafickém módu, budou v "listingu" označeny pruhem pod, resp. nad příslušným znakem.
Po skončení výpisu bude pisátko připraveno na začátku další řádky a parametry pro tisk nastaveny jako po příkazu ORG.
Příkaz CALL copy,xa,ya
Příkaz "CALL copy,xa,ya" nejprve nastaví parametry pro tisk (SIZE 3,0,0,3, NARROW a "ASCII-režim"). Pak nakreslí obdélníkový rámeček (šířka = 606 kroků, výška = 1046 kroků). Do něj opíše obsah obrazovky - pouze tisknutelné znaky ASCII - 32 řádek po 32 znacích. Inverzní znaky označí podtržením, grafické znaky nahradí mezerou.
Adresa "copy" musí mít hodnotu 49317 (startovací adresa rutiny COPY).
Parametry xa,ya určuji souřadnice levého horního rohu rámečku kolem výpisu. Rozteč řádek je 4 mm, na stránku A4 lze umístit celkem 4 výpisy obrazovky.
Po skončení výpisu budou parametry pro tisk nastaveny jako po příkazu ORG.
Příkaz CALL test
Příkaz "CALL test" provede nejprve funkci ORG, pak nastaví nižší rychlost (aby mohl probíhat i na Minigrafech 0507/85) a parametry pro tisk (SIZE 10,0,0,10, WIDE a "ASCII-režim") a potom vypíše tabulku tisknutelných znaků ASCII ve tvaru jako tab.2. bez řádky "režim diakr.". Slouží k ověření základních funkcí Minigrafu 0507 a softwarového vybavení v modulu 0509.
Adresa "test" musí mít hodnotu 49326 (startovací adresa rutiny TEST. Papír musí být předem založen jako pro příkaz ORG.
Po skončení testu bude rychlost i parametry pro tisk nastaveny jako po příkazu ORG.
Poznámka: Příkaz "CALL test" může být zadán i jen v tzv. "monitorovém" režimu IQ151 (ev. i bez modulu BASIC6 a televizoru) pouhým zadáním "CC0AE" z klávesnice.
Pro ilustraci programování je uveden na obr.4. krátký program ('listing") s jeho výslednou kresbou na Minigrafu 0507. (Minigrafem byly nakresleny i tab.2. a tab.3.)
1 REM: UKAZKOVY PROGRAM 3 ORG 0,2076:CALL 49314,1,430 5 XS=750:YS=670:FI=-PI/6:R=450 10 CLS:PRINT&15,7 "POCITAM A KRESLIM" 20 REM: KRESLENI OBRAZCE 30 FOR I=0 TO 30 40 MI=FI+I*PI/60:GOSUB400:MOVA X,Y:X1=X:Y1=Y 50 FOR J=1 TO 5:MI=MI+PI/3:GOSUB400:VECTA X,Y:NEXT J:VECTA X1,Y1 60 R=R*.971:NEXT I 65 REM: POPIS OBRAZCE 70 MOVA 360,911:SIZE 7,4,0,7:WRITE "MINIGRAF" 80 MOVA 832,1085:SIZE 14,-8,0,7:WRITE "0507" 90 MOVA 462,298:SIZE 7,-4,4,7:WRITE "ARITMA" 100 MOVA 811,166:SIZE 7,4,-4,7:WRITE "PRAHA" 110 REM: ZNAK ARITMA 120 R=112:GOSUB420:MOVA XS,YS+R:U=R/SQR(2) 130 VECTA XS-U,YS-U:VECTA XS,YS:VECTA XS+U,YS-U:VECTA XS,YS+R 140 R=29.22:YS=YS-56:GOSUB 420 150 FOR I=1 TO -1 STEP -2 160 MOVA XS-19,YS+14*I 170 FOR J=1 TO 5:Y=YS+I*(4-10*(J<2 OR J>3)):X=XS-19*(J<3)+19*(J>2) 180 VECTA X,Y:NEXT J:NEXT I:MOVA 750,2500:END 390 REM: PODPROGRAMY 400 X=INT(R*COS(MI)+XS+.49):Y=INT(R*SIN(MI)+YS+.49):RETURN 420 MOVA XS+R,YS:FOR I=0 TO 360 STEP 5 430 MI=I*PI/180:GOSUB 400:VECTA X,Y:NEXT I:RETURN
Tato kapitola předpokládá znalost programováni mikroprocesoru 8080. Programové vybaveni Minigrafu 0507 obsahuje podprogramy ve strojovém kódu 8080, které zajišťují provádění funkcí popsaných v kap.7. Tyto funkce lze po vložení vstupních hodnot do příslušných registrů či paměťových míst volat přímo "strojovou" instrukci "CALL adr" podle tab.5. Označení vstupních hodnot (parametrů) je shodné s označením v tab.1. Funkce SIZE, NARROW a WIDB se nevolají (nevyžaduji provádění podprogramu), je pouze nutné naplnit příslušná paměťová místa. Např. "162,3:-xx" se provede Instrukcemi:
LXI H, xx SHLD 162H
Volané podprogramy nezachovávají obsah žádného registru!
Funkce | Startovací adresa (hex) | Vstupní hodnoty připravené v registru nebo na. adrese (hex) |
ORG | C099 | DE:=xa, BC:=ya |
MOVA VECTA POINTA | C000 C058 C062 | DE:=xa, BC:=ya |
MOVR VECTR POINTR | C06C C085 C08F | DE:=xr, BC:=yr |
SIZE | - | 162,3:=xx, 164,5:=xy, 166,7:=yx, 168,9:=yy |
NARROW WIDE | - - | 172:=80H 172:=0 |
WRITE | C1F1 | HL:=adr.1.zn.řet.w$ E:=délka řetězce w$ |
SPEED | C0A8 | A:=s |
LIST COPY TEST | C0A2 C0A5 C0AE | BC:=n1, DE:=n2 BC:=xa, DE:=ya - |
Tab.5. Přehled volání funkcí ve strojovém kódu 8080
Je-li v některých případech výhodnější mít počátek souřadnic jinde než v levém dolním rohu pracovního prostoru, je možné ho přemístit tímto postupem:
Má-li být pro následující adresování bodů počátek přemístěn z levého dolního rohu např. do středu pracovního prostoru, je nutno pisátko přesunout do tohoto bodu a pak vynulovat paměťová místa 16AH až 171H, kde je evidována okamžitá poloha pisátka. Provede se to např. těmito příkazy:
MOVA 750,1050 FOR N=HEX(16A) TO HEX(171): POKE N,0: NEXT N
Od tohoto okamžiku budou body pracovního prostoru adresovány souřadnicemi X,Y v rozsahu:
-750 <= x <= 750 a -1050 <= y <= 1050
V tomto případě lze tedy používat i záporné absolutní souřadnice.
Správnost obsahu programového vybavení v paměti EPROM v připojovacím modulu 0509 lze zkontrolovat sečtením obsahů všech adres od C000H do C7FFH. Na nejnižších 6 bitech tohoto součtu musí být samé "1" (binárně), tj. zbytek po dělení součtu číslem 256 musí být 255.
SCHEMA PŘIPOJOVACÍHO MODULU ARITMA 0509 a černobílá verze ZDE.
Obsah EPROM ovladače ve fotmátu INTELHEX.
Verze 050986.
:200000003E00CD3EC3C338C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 :20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 :20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD46C3C338C1FFFF28 :20006000FFFFCD3EC3CD38C1C39CC0FFCD3EC3C32DC1FFFFFFFFFFFFFFFFFFFFFFFFFFFF5F :20008000FFFFFFFFFFCD46C3C32DC1FFFFFFFFCD3EC3CD2DC1C39CC0FFC3D0C0CD46C3C34F :2000A0003EC3C373C3C38CC4C608327C01C9C3FDC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 :2000C000FFFFFFFFFFFFFFFFFFFFFFFFFFC3E7C13E14327C01328501D5C53E013276010186 :2000E00008005059CD6CC03E0B327C0121A406226A01226C01C1C5110000CD00C0C1C511BC :200100005000CD00C0AF326A01C1D1CD00C03E0A3285012103002262012268012E002264AF :20012000012266012273013E80327201C92A6A0119EB2A6C0109444D2A6A01EB226A01227A :200140006E01CDCDC1E5C54FD12A6C01EB226C01227001CDCDC10707070747B1327E01D176 :20016000C87D937C9A79DA6BC1EB78327F01228001211400CD65C33E29327D01424BAF934A :200180006F3E009A67AF7A1F577B1F5FE5D5EB6069292B19217D01D2A2C13A8501BECAA280 :2001A000C1353E2896913E0098DAADC1342A8001D119EBE1E5193A7F01D2C0C1EB3A7E015A :2001C000D5CD22C30B78B1D1E1C28CC1C97D936F7C9A6729D2E1C1AF956F3E009C673E0F00 :2001E000C97CB5C83E01C92A60015E23237E23666FAF3275017BB7C83A7501B7C212C27EC4 :20020000B7CA0BC27ECD3FC2C322C23C327501CD27C27ECDABC27EB7F222C2AF327501CD1C :200220009BC2231DC3F5C1E5217401AFBE77C23DC22A6E012278012A7001227A01E1C9E58D :20024000217401FE08C24BC277E1C9E67F4FCD27C23A7301B7C262C279FE7BDA62C2C605A2 :200260004F3479FE20DA9AC2E6F81F1FC6F8C6406F3E00CEC5677E23666F79E6074FCA8B27 :20028000C27EB723F281C20DC281C23E08CDABC27ECDABC27E23B7F290C2E1E53A720107AF :2002A00017C6F62F0E00CDAEC2E1C94FE607E5D5F52A6201EB2A7801CD10C3EB79E6381F00 :2002C0001F1F21740186472A6601EBCD10C3F1E52A6401EB2A7A01CD10C378EB2A6801EBEB :2002E000CD10C3E579E640CA02C32A6E01EB2A7001444D3A7601B7CC00C0C1D1CD58C0C36D :200300000DC3CD3EC3E1227001E1226E01D1E1C91C1DC8E52100003DFA1FC319C317C3D137 :2003200019C92A77016785E60F5F7CE6F085E6F0B3327701AF673A7D011F6FC353C33A760A :20034000013DC0C34DC33A76013DC83E0132760121F401E52A76017CE60EB56F7CE6E00FAD :20036000B50FD3F0E13A7C013DC268C32B7CB5C265C3C9CD13C13E01327301D5C5D1CD5215 :20038000CDC52A6C01C392C301DCFF2A700109D24CC4444D110000CD00C0AF328201328372 :2003A00001328401C1D160694E234678B1CA4EC4237B96237A9EDA4EC42BD5C55E23562354 :2003C000E5EB11F6C3D5E34E23462379B0F202C4E3AF5D54CE0009DAD2C3EB4779E601B045 :2003E0004F3A8401B13E20CAF0C33E30328401B0CD3FC2C3C6C3F0D818FC9CFFF6FFFFFF0A :200400002000E1CD3FC2E17EB7CA88C3F22FC411D7C8E67F4FCA22C41A13B7F218C40DC268 :2004200018C41ACD51C41AB713F222C4C348C4FE20DA3AC4CD51C4C348C4118201FE10DA36 :2004400045C4118301E6011223C307C4F1F1C313C1CD3FC20118003A8201B7C469C401FD91 :20046000FF3A8301B7C469C4C9D5E52A78012B2B2BEB2A7A0109444DCD00C0111200010095 :2004800000CD85C03E06CDABC2E1D1C9C5D5C1D1C5D5CD00C0115E02010000C5CD85C0D1E4 :2004A000D501EAFBCD85C011A2FDC1CD85C0D1C1CD58C011120001DCFFCD6CC0CD13C13E9E :2004C000013273012A6A01EB2100EC7EE660CAD2C47ECD3FC27EB701FDFFFC69C4237DE697 :2004E0001FC2CBC4E5D501E0FF2A700109444DCD00C0D1E17CE60FC2CBC4C313C11186018D :20050000010807CDD0C03E0A32620132680187328501AF3272013C32730126207CCD3FC2F1 :20052000247CE607C21CC5E5626B226E012A70010180FF09227001E17CB7F21CC5C30EC118 :200540005AC58DC5A6C5E0C518C655C67CC6B2C6CDC606C73AC769C78DC7803A5A0ACA3169 :200560007A32FB39490B7B2C6818DC10535C63616871743ACA7C39706972791B524B54DB10 :200580000C6870797A736B50494ADC3BF23B6959CB396B5BC91173246031D3206432D21284 :2005A000C120E40ACAFC7C34544B495070797BF4297BCB30797B746C48CC30797B746C6378 :2005C0005C544B49D00B7B58DC10494B545C636078FC347B797050494B545C6361D87CF886 :2005E00009505861636C747B79706861635C544BC910494B54747B7970686163EC1A5A2ACC :20060000EA015222E23361D3286C18DC3163D130797B746C5A520ACA6871736C544B4A51CF :20062000616A63CB7A4C21E3787B746C6360635C544BC8347B797050494BD4787B74544BE5 :20064000C83C78484C20E2787C20E2347B797050494B545CDA783C4C20E4094B4A7A79FBFC :2006600010494B54FC783C60CC3848CC78627CCC784CFC095070797B74544BC9787B746C0C :2006800063E0095070797B74544B491ACC787B746C6360CC10494B545C63616870797BF4DE :2006A000387C3ACA3850494B54FC384AFC38496A4BFC7C38CC38627C22CA387C48CC3B7968 :2006C00049CB38CC397B4BC9317AF300C439F2296B64544B4950595B54CC78286B64544B9B :2006E000C82C69605049CC3C4C49506069EC185C646B69605049CC0A727B7C21E300434C8B :200700006C69605851D478286B64CC094B4A6A693AFA01424B6B6A3BFB782C58CC094B4A48 :200720007AF9686069624A226B64CC6860696B64CC095060696B64544BC900686B645C53A1 :20074000D0046C69605851D40969616A6BE44B545B596069EC0C4B527A29EB2850494B54E8 :20076000EC284AEC2849624BEC6C28CC00434C6C285851D4286C48CC0B525A616A72FB0A84 :20078000FA09525A636A72F920695BE48032FB2A717A73EA3972FB317AF339793BFBFFFF61 :2007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 :2007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 :2007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2050986BF :00000001FF
Verze 010787.
:200000003E00CD3EC3C338C13A01C8FE17CAF7CDC352CD4F3A01C8FE1711D9C879C811D74E :20002000C8C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D :20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD46C3C338C1FFFF28 :20006000FFFFCD3EC3CD38C1C39CC0FFCD3EC3C32DC1FFFFFFFFFFFFFFFFFFFFFFFFFFFF5F :20008000FFFFFFFFFFCD46C3C32DC1FFFFFFFFCD3EC3CD2DC1C39CC0FFC3D0C0CD46C3C34F :2000A0003EC3C373C3C38CC4C608327C01C9C3FDC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 :2000C000FFFFFFFFFFFFFFFFFFFFFFFFFFC3E7C13E14327C01328501D5C53E013276010186 :2000E00008005059CD6CC03E0B327C0121A406226A01226C01C1C5110000CD00C0C1C511BC :200100005000CD00C0AF326A01C1D1CD00C03E0A3285012103002262012268012E002264AF :20012000012266012273013E80327201C92A6A0119EB2A6C0109444D2A6A01EB226A01227A :200140006E01CDCDC1E5C54FD12A6C01EB226C01227001CDCDC10707070747B1327E01D176 :20016000C87D937C9A79DA6BC1EB78327F01228001211400CD65C33E29327D01424BAF934A :200180006F3E009A67AF7A1F577B1F5FE5D5EB6069292B19217D01D2A2C13A8501BECAA280 :2001A000C1353E2896913E0098DAADC1342A8001D119EBE1E5193A7F01D2C0C1EB3A7E015A :2001C000D5CD22C30B78B1D1E1C28CC1C97D936F7C9A6729D2E1C1AF956F3E009C673E0F00 :2001E000C97CB5C83E01C92A60015E23237E23666FAF3275017BB7C83A7501B7C212C27EC4 :20020000B7CA0BC27ECD3FC2C322C23C327501CD27C27ECDABC27EB7F222C2AF327501CD1C :200220009BC2231DC3F5C1E5217401AFBE77C23DC22A6E012278012A7001227A01E1C9E58D :20024000217401FE08C24BC277E1C9E67F4FCD27C23A7301B7C262C279FE7BDA62C2C605A2 :200260004F3479FE20DA9AC2E6F81F1FC6F8C6406F3E00CEC5677E23666F79E6074FCA8B27 :20028000C27EB723F281C20DC281C23E08CDABC27ECDABC27E23B7F290C2E1E53A720107AF :2002A00017C6F62F0E00CDAEC2E1C94FE607E5D5F52A6201EB2A7801CD10C3EB79E6381F00 :2002C0001F1F21740186472A6601EBCD10C3F1E52A6401EB2A7A01CD10C378EB2A6801EBEB :2002E000CD10C3E579E640CA02C32A6E01EB2A7001444D3A7601B7CC00C0C1D1CD58C0C36D :200300000DC3CD3EC3E1227001E1226E01D1E1C91C1DC8E52100003DFA1FC319C317C3D137 :2003200019C92A77016785E60F5F7CE6F085E6F0B3327701AF673A7D011F6FC353C33A760A :20034000013DC0C34DC33A76013DC83E0132760121F401E52A76017CE60EB56F7CE6E00FAD :20036000B50FD3F0E13A7C013DC268C32B7CB5C265C3C9CD13C13E01327301D5C5D1CD085F :20038000C0C52A6C01C392C301DCFF2A700109D24CC4444D110000CD00C0AF32820132837F :2003A00001328401C1D160694E234678B1CA4EC4237B96237A9EDA4EC42BD5C55E23562354 :2003C000E5EB11F6C3D5E34E23462379B0F202C4E3AF5D54CE0009DAD2C3EB4779E601B045 :2003E0004F3A8401B13E20CAF0C33E30328401B0CD3FC2C3C6C3F0D818FC9CFFF6FFFFFF0A :200400002000E1CD3FC2E17EB7CA88C3F22FC4CD13C0E67F4FCA22C41A13B7F218C40DC278 :2004200018C41ACD51C41AB713F222C4C348C4FE20DA3AC4CD51C4C348C4118201FE10DA36 :2004400045C4118301E6011223C307C4F1F1C313C1CD3FC20118003A8201B7C469C401FD91 :20046000FF3A8301B7C469C4C9D5E52A78012B2B2BEB2A7A0109444DCD00C0111200010095 :2004800000CD85C03E06CDABC2E1D1C9C5D5C1D1C5D5CD00C0115E02010000C5CD85C0D1E4 :2004A000D501EAFBCD85C011A2FDC1CD85C0D1C1CD58C011120001DCFFCD6CC0CD13C13E9E :2004C000013273012A6A01EB2100EC7EE660CAD2C47ECD3FC27EB701FDFFFC69C4237DE697 :2004E0001FC2CBC4E5D501E0FF2A700109444DCD00C0D1E17CE60FC2CBC4C313C11186018D :20050000010807CDD0C03E0A32620132680187328501AF3272013C32730126207CCD3FC2F1 :20052000247CE607C21CC5E5626B226E012A70010180FF09227001E17CB7F21CC5C30EC118 :200540005AC58DC5A6C5E0C518C655C67CC6B2C6CDC606C73AC769C78DC7803A5A0ACA3169 :200560007A32FB39490B7B2C6818DC10535C63616871743ACA7C39706972791B524B54DB10 :200580000C6870797A736B50494ADC3BF23B6959CB396B5BC91173246031D3206432D21284 :2005A000C120E40ACAFC7C34544B495070797BF4297BCB30797B746C48CC30797B746C6378 :2005C0005C544B49D00B7B58DC10494B545C636078FC347B797050494B545C6361D87CF886 :2005E00009505861636C747B79706861635C544BC910494B54747B7970686163EC1A5A2ACC :20060000EA015222E23361D3286C18DC3163D130797B746C5A520ACA6871736C544B4A51CF :20062000616A63CB7A4C21E3787B746C6360635C544BC8347B797050494BD4787B74544BE5 :20064000C83C78484C20E2787C20E2347B797050494B545CDA783C4C20E4094B4A7A79FBFC :2006600010494B54FC783C60CC3848CC78627CCC784CFC095070797B74544BC9787B746C0C :2006800063E0095070797B74544B491ACC787B746C6360CC10494B545C63616870797BF4DE :2006A000387C3ACA3850494B54FC384AFC38496A4BFC7C38CC38627C22CA387C48CC3B7968 :2006C00049CB38CC397B4BC9317AF300C439F2296B64544B4950595B54CC78286B64544B9B :2006E000C82C69605049CC3C4C49506069EC185C646B69605049CC0A727B7C21E300434C8B :200700006C69605851D478286B64CC094B4A6A693AFA01424B6B6A3BFB782C58CC094B4A48 :200720007AF9686069624A226B64CC6860696B64CC095060696B64544BC900686B645C53A1 :20074000D0046C69605851D40969616A6BE44B545B596069EC0C4B527A29EB2850494B54E8 :20076000EC284AEC2849624BEC6C28CC00434C6C285851D4286C48CC0B525A616A72FB0A84 :20078000FA09525A636A72F920695BE48032FB2A717A73EA3972FB317AF339793BFBFFFF61 :2007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 :2007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 :2007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9010787CD :00000001FF
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
Mikropočítač IQ151 | Moduly k IQ151 | Dokumentace