Pro 12 2010
Moduly
Rozšiřující moduly IQ 151
Základní: |
AMOS: |
Pro periferie: |
Speciální:
|
Základní moduly
Video32
Základní dodávaný modul. Slouží k vytváření obrazu – 32 řádků po 32 znacích. Obsahuje 1kB RAM která se mapuje na EC00h a 1kB Eprom s vlastní znakovou sadou v rastru 8×8 bodů. Znaky s kódy 00-31 jsou grafické, kódy 32-127 jsou standardní ASCII, kódy 128 a výše jsou totéž jako 00-127 ale inverzně. Jeho přítomnost (nebo Video64) je nutná pro funkci celého počítače jelikož se v něm generují některé důležité signály. Pro vyzkoušení funkčnosti nebo pro práci s Monitorem či pouze s programy ve strojovém kódu z kazety je toto (nebo Video64) jediný modul který musí být zasunutý v IQ151.
Video64
Tento modul nahrazuje Video32 a nesmí se zasunout oba současně! Slouží k vytváření obrazu – 32 řádků s 64 znaky na řádek. Obsahuje 2kB RAM která se mapuje na E800h a 1kB Eprom (některé moduly jsou upraveny na 2kB Eprom) s vlastní znakovou sadou v rastru 6×8 bodů. Znaky s kódy 00-31 jsou grafické, kódy 32-127 jsou standardní ASCII mimo znaků s kódy 7Ch a 7Fh, které slouží k přepínaní režimu na 32 znaků na řádek (7Fh zapne režim 32 znaků na řádek a 7Ch jej vypne, přepnutí zpět na 64 znaků provádí i kód 0D) – tyto znaky jsou nahrazeny mezerou (i odpovídající inverzní hodnoty o 128 vyšší). Přítomnost modulu lze testovat, vrací hodnotu FEh na portech FCh-FFh, při nepřítomnosti modulu (pro Video32) se vrátí hodnota FFh.
Basic6
Základní modul dodávaný s prvními verzemi IQ151. Obsahuje mírně modifikovaný „Minimal Basic“ podle standardu ISO 6373-1984. Vlastní modul obsahuje 4x2kB Eprom většinou „sovětských“, které jsou známy svojí nekvalitou a po letech rády zapomínají svůj obsah. Vlastní Basic je mapován jako 8kB blok od adresy C800h a jeho přítomnost je testována Monitorem při startu. Pokud je modul přítomen je automaticky spuštěn a provede start interpreteru Basicu. Tato verze Basicu nemá žádné příkazy pro jemnou grafiku a ani neumí přímo spolupracovat s případným modulem Grafik. Pro „pseudografiku“ se používá semigrafických znaků a pak je možno „kreslit“ v rastru 64×64 „bodů s modulem Video 32 respektive 128×64 s modulem Video64. Obsahuje příkazy pro práci se souřadnicovými zapisovači a tiskárnami, ale tyto potřebují pro svoji svou činnost další moduly. K tomuto modulu se dělal také doplňový modul „G“, který obsahoval rutiny pro ovládání modulu Grafik. Další zajímavostí je způsob ukládání dat na magnetofonovou pásku. Z důvodu zjednodušení a unifikace výstupu (obrazovka, tiskárna, děrná páska) se data ukládají pouze jako čistý text složený z ASCII znaků a jednotlivé řádky jsou odděleny znaky CR+LF, bez možnosti pojmenovat program (většinou se dával název do prvního řádku programu který obsahoval REM a název) a také bez jakéhokoliv kontrolního součtu. Jednotlivé řádky byly při nahrávání rovnou zpracovávány a přidávány do programu (tak jako by je uživatel psal z klávesnice) což si vynutilo dělat při záznamu pauzy mezi jednotlivými řádky tzv. meziblokové mezery. Pokud byla tato mezera příliš krátká a řádky příliš dlouhé nestihly se tyto řádky zpracovat a další řádek nebyl v pořádku nahrán. Traduje se že někteří jedinci byli schopni zastavovat magnetofony mezi jednotlivými řádky při nahrávání svých programů zpět z kazet do počítače.
G – Rozšíření Basic6
Rozšíření o grafické příkazy pro použití s modulem Grafik. Bohužel Basic u IQ151 neumožňuje uživateli rozšiřovat tabulku příkazů či jejich syntaxi tak v tomto případě bylo ovládání trošku složitější, jednotlivé příkazy se musely volat s „předponou“ CALL HEX(A800). Použití ale bylo problematické protože první verze IQ151 měla podimenzovaný zdroj a přidáním dalších dvou modulů docházelo k jeho poškození (důvodem jsou poddimenzované diody ve zdroji).
BasicG
Modul který nahrazuje Basic6 a rozšiřuje Basic o práci s jemnou grafikou modulu Grafik. Nesmí se použít zároveň s moduly Basic6 ani G. Oproti Basic6 obsahuje navíc další 4kB Eprom (2x2KB) mapované na B000h kde jsou obslužné rutiny nových příkazů. Na úrovni klasických nahrávek na magnetofon je plně kompatibilní s Basic6. Vnitřně však používá jiné kódy pro příkazy a má posunutý začátek programového bufferu (místa kde je uložen vlastní program) dál kvůli dalším proměnným pro grafiku. Díky těmto změnám není možné provozovat programy nahrané přes Monitor s modulem Basic6 na IQ151 s modulem BasicG. K tomuto účelu byl vytvořen konverzní program který toto řešil. Nahráváním Basicových programů přes Monitor se obcházela neexistence kontrolních součtů, bohužel programy však fungovaly zpět jen na přesně dané konfiguraci IQ151 a přídavných modulů. Mimo příkazů pro grafiku obsahuje i příkazy pro uložení grafické paměti do hlavní paměti a zpět a dále příkazy pro práci s dvoubajtovými hodnotami DPEEK a DPOKE a dále je možné nastavit uživatelské rutiny pro INPUT a PRINT příkazy IDEVICE a ODEVICE.
Grafik
Modul jemné grafiky, umožňuje vytvořit černobílý obraz v rozlišení 512×256 bodů. Používá se současně s Video32 (nebo Vide64) z kterého využívá synchronizační signály. Koncepce IQ151 umožňuje míchání obrazu z různých modulů takže jemná grafika se zobrazuje nezávisle na textovém výstupu Video32 (resp. Video64). Zobrazování grafiky lze dokonce programově vypnout a modul může sloužit jako přídavná paměť která se nemaže ani při resetu). Obvodově je to nejsložitější modul a zároveň má i velkou spotřebu, proto bylo jeho využití se staršími IQ151 (bez G pod šipkama na klávesnici) velmi problematické, což byl důsledek nedostatečně dimenzovaných diod ve zdroji napětí. Dále se IQ151 celkem hodně zahřívá, takže v různých příručkách jsou popsány doporučené rozmístění modulů aby se předešlo i jejich přehřívání. Obsahuje 16kB RAM tvořenou osmi obvody 4116. Zvláštností je HW možnost přistupovat k této paměti nejen klasicky po bajtech ale šlo adresovat i přímo jednotlivé bity. K Videopaměti se nepřistuje přímo ale adresuje se jako vstupně výstupní zařízení, kdy se dvěmi OUTy nastaví adresa a třetím IN/OUT se čtou/zapisují data. Tímto je značně snížená rychlost práce s Videopamětí. Například jednoduché vymazání celé paměti trvá skoro 3 sekundy. V dokumentaci k modulu je uvedeno že lze vhodným naprogramováním řídících obvodů (PROM) navolit jiné adresy pro modul a připojit více modulů Grafik naráz (nevím jestli to někdo někdy realizoval v praxi). K tomuto modulu byl navrhnut i modul pro barevný výstup v rozlišení 256×256 bodů (4 barvy na bod) ale k jeho realizaci a zavedení do výroby už nedošlo.
Moduly operačního systému AMOS
OS AMOS je souborově orientovaný operační systém nahrazující Basicový interpretr. Tvoří ho celek 3 (respektive 2) modulů. Modul Assembler nebo Pascal mohou pracovat i samostaně, Pascal 1 obsahuje překladač jazyka Pascal a samostaně není v IQ151 nijak použitelný. Systém si sám zjišťuje v jaké konfiguraci modulů pracuje a podle toho se chová. Systém byl vyvinut studenty mat.fyz. UK pod vedením RNDr. Rudolfa Kryla. Pro zajímavost zdrojový kód překladače Pascal obsahoval přes 28 000 řádek textu. Systém ve své maximální konfiguraci používá 3x16kB Eprom které si automaticky dle potřeby sám přepíná (mapuje se 16kB od 8000h). Systém umí samozřejmě spolupracovat i s 8″ mechanikou se kterou je na úrovni souborů částečně kompatibilní s formátem disket pro CP/M. Rozdíl je v názvech souborů kde CP/M dovoluje 8.3 a OS AMOS pouze 6.3. Existovala i verze pro síť FELNET, kde se systém natahoval na stanice ze sítě (pokud někdo by měl podrobnosti byl bych rád kdyby mne kontaktoval). Editorem obsaženým v modulech Assembler a Pascal (které jsou shodné) lze psát libovolné textové soubory, zdrojové texty pro Assembler nebo i Pascal a tyto si ukládat na disk/kazetu (i děrnou pásku). Zajímavostí je že text může být delší než je aktuální volná paměť v případě že se pracuje se souborem na kazetě/disketě a to platí jak pro editaci tak pro překlad. Moduly mohou za určitých podmínek pracovat i v kombinaci s modulem Basic6 (nesmí se kombinovat s BasicG !), a je možné vytvářet a ladit strojové rutiny pro použití v Basicových programech a přímo přepínat mezi oběma prostředíma. Měl být vyvinut speciální modul BasicG pro kombinaci s moduly AMOS ale podrobnější informace o tom zde došlo k jeho výrobě a distribuci nemám. Spouští se z monitoru příkazem C8000 resp. teplý start C8003 nebo z Basicu příkazem CALL HEX (8000) resp. CALL HEX (8003) ale pro start z Basicu je nutné vytvořit dostatečně velikou oblast USR (popsáno v manuálu k OS AMOS).
Moduly OS AMOS je možno kombinovat a jsou plně kompatiblní s moduly: Basic6, Video32/Video64, Grafik, Staper, Minigraf/MS151(pro XY4131) a DISC2.
Pascal+Pascal1
Modul Pascal obsahuje jádro OS AMOS s editorem a runtime rutiny nutné pro běh přeložených programů, modul Pascal1 pak překladač Pascalu. Dohromady je to 2x16kB v Eprom. Překladač až na několik výjimek, které si vynutila specifika mikropočítače a nedostatek paměti RAM, vyhovuje mezinárodní normě jazyka PASCAL na úrovni 0. To znamená, že nemá implementována konformní schemata polí. Obsahuje navíc řadu rozšíření, která rozšiřují oproti standardu práci se soubory, umožňují spolupráci s podprogramy ve strojovém kódu, ovládání minigrafu a některé další funkce. Repertoár standardních funkcí a procedur půjde rozšiřovat i dodatečně formou modulů nahrávaných do paměti RAM. Dle dokumentace se vyráběl i modul Pascal kde byly místo 2kB Eprom použity 4kB Eprom a obsah obou modulů (+ Pascal1) byl tedy pouze v jednom. Výhody tohoto řešení jsou menším počtu obvodů a volný jeden slot na systémové sběrnici.
Assembler
Obsahuje jádro OS AMOS a k němu Editor a překladač assembleru 8080, dále jednoduchý debugger kterým je možné programy ladit a trasovat. Modul může pracovat samostatně, nebo jako doplněk k Pascalu.
Moduly pro periferie
Staper
Tento modul je určen k připojení STAndardních PERiferních zařízení.
Jsou to: FS 1503 – snímač děrné pásky, DT 105S – děrovač děrné pásky, C2113 jehličková tiskárna (modrý konektor). Dále se používala i polská tiskárna D100(M) nebo jiné s rozhraním Centronics. Obsahuje IO 8255 ale je zapojen tak aby pracoval v režimu 1, přičemž lze využívat pouze 2 zařízení. Přepínání Tiskárna/Děrovač si řeší Basic při provádění příslušných příkazů, ve strojovém kódu je třeba nastavit příslušné bity portu C tohoto obvodu. Pro spolupráci s modulem BASIC slouží tyto příkazy : LLIST výpis na tiskárnu, PLIST vyděrování programu na pásku, PTAPE načtení programu z pásky, LPRINT výpis na tiskárnu (obdoba PRINT na obrazovku).
Sestyk/Sestyk9
Tento modul je určený připojování periferií po seriové lince – název je ze zkratky SEriový STYkový modul.
Oba moduly obsahují IO 8251 pro programování a řízení seriové linky. Modul Sestyk9 obsahuje několik řad přepínačů na nastavení parametrů přenosu a kompletní konektor CANON 25 s vyvedenými všemi signály. Modul Sestyk je zjednodušená verze Sestyk9 s pevně nastavenými parametry (rychlost přenosu lze měnit pouze programově) a jako konektor je použit klasický pětikolík DIN5. Moduly Sestyk byly mimo jiné využity i pro vytvoření sítě počítačů IQ151 – VARIEL.
SERI
Další seriový modul pro počítač IQ151. Tento byl navržen primárně pro použití na vytvoření sítě IQ151 – FELNET.
Obsahuje IO Z80 SIO a 2kB Eprom se zavaděčem systému. Každý modul má svoji unikátní adresu v místní síti která se nastavuje pomocí drátových propojek přímo v modulu. Dále je tam i propojka pro určení typu stanice – Master/Slave. V síti FELNET mohlo být přítomno 10 žákovských (SLAVE) a jedna učitelská (MASTER) stanice.
Modul se nesmí používat současně s moduly Basic.
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.