-------------------------------------------------------------------------------- Programovatelný paralelní interfejs I8255 -------------------------------------------------------------------------------- 1. Řídící registr, adresa - mód 700 : 0E003H ( paměťové adresování ) pouze pro zápis adresa - mód 800 : 0D3H Volba módu činnosti bran : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | 0 ... bity 0 - 3 brány C výstupní | | | | | | | 1 ... bity 0 - 3 brány C vstupní | | | | | | | | | | | | | 0 ... brána B výstupní | | | | | | 1 ... brána B vstupní | | | | | | | | | | | 0 ... brána B v módu 0 | | | | | 1 ... brána B v módu 1 ( strobovaný vstup/výstup ) | | | | | | | | | 0 ... bity 4 - 7 brány C výstupní | | | | 1 ... bity 4 - 7 brány C vstupní | | | | | | | 0 ... brána A výstupní | | | 1 ... brána A vstupní | | | | 0 0 ... brána A v módu 0 | 0 1 ... brána A v módu 1 ( strobovaný vstup/výstup ) | 1 X ... brána A v módu 2 ( obousměrný strobovaný vstup/výstup ) 1 Nastavení ROM monitorem - řídící slovo : 8AH brána A : výstupní v módu 0 brána B : vstupní v módu 0 brána C , bity b0 - b3 : výstupní brána C , bity b4 - b7 : vstupní Nastavování jednotlivých bitů brány C : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | 0 ... určený bit bude nastaven na úroveň 0 | | | | | | | 1 ... určený bit bude nastaven na úroveň 1 | | | | | | | | | | | 0 0 0 ... bit b0 brány C | | | | 0 0 1 ... bit b1 brány C | | | | 0 1 0 ... bit b2 brány C | | | | 0 1 1 ... bit b3 brány C | | | | 1 0 0 ... bit b4 brány C | | | | 1 0 1 ... bit b5 brány C | | | | 1 1 0 ... bit b6 brány C | | | | 1 1 1 ... bit b7 brány C 0 X X X -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 2. Brána A adresa - mód 700 : 0E000H ( paměťové adresování ) adresa - mód 800 : 0D0H Zápis signálů pro ovládání periferií : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | 0 0 0 0 ... aktivace řádku 0 klávesnice | | | | 0 0 0 1 ... aktivace řádku 1 klávesnice | | | | 0 0 1 0 ... aktivace řádku 2 klávesnice | | | | 0 0 1 1 ... aktivace řádku 3 klávesnice | | | | 0 1 0 0 ... aktivace řádku 4 klávesnice | | | | 0 1 0 1 ... aktivace řádku 5 klávesnice | | | | 0 1 1 0 ... aktivace řádku 6 klávesnice | | | | 0 1 1 1 ... aktivace řádku 7 klávesnice | | | | 1 0 0 0 ... aktivace řádku 8 klávesnice | | | | 1 0 0 1 ... aktivace řádku 9 klávesnice | | | | 1 0 1 X ... není aktivován žádný řádek | | | | 1 1 X X ... není aktivován žádný řádek | | | | | | | 0 ... aktivace joysticku 1 | | | 1 ... joystick 1 není aktivován | | | | | 0 ... aktivace joysticku 2 | | 1 ... joystick 2 není aktivován | X 0 ... nulování generátoru signálu pro blikání kursoru 1 ... signál pro blikání kursoru je generován -------------------------------------------------------------------------------- 3. Brána B adresa - mód 700 : 0E001H ( paměťové adresování ) adresa - mód 800 : 0D1H Čtení aktivovaného řádku klávesnice : [ b7 b6 b5 b4 b3 b2 b1 b0 ] - 0 ... klávesa stištěna | | | | | | | | 1 ... klávesa nestištěna BL GRAPH 1) ALPHA TAB ; : CR ... řádek 0 , 1) šipka dolu Y Z @ [ ] ... řádek 1 Q R S T U V W X ... řádek 2 I J K L M N O P ... řádek 3 A B C D E F G H ... řádek 4 1 2 3 4 5 6 7 8 ... řádek 5 \ 2) - SP 0 9 , . ... řádek 6 , 2) šipka nahoru INST DEL 3) 4) 5) 6) ? / ... řádek 7 , 3)-6) kursorové kl. 3) nahoru ESC CTRL SHIFT ... řádek 8 4) dolu 5) vpravo F1 F2 F3 F4 F5 ... řádek 9 6) vlevo -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 4. Brána C adresa - mód 700 : 0E002H ( paměťové adresování ) adresa - mód 800 : 0D2H Zápis signálů pro ovládání periferií : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | 0 ... výstup čítače 0 I8253 odpojen od akustického výstupu | | | | | | | 1 ... výstup čítače 0 I8253 připojen na akustický výstup | | | | | | | | | | | | | signál zapisovaný na kazetu | | | | | | | | | | | 0 ... přerušení z výstupu čítače 2 I8253 blokováno | | | | | 1 ... přerušení ( mód IM1 ) z výstupu čítače 2 I8253 povoleno | | | | | | | | | přechod z 0 na 1 rozběhne/zastaví motor magnetofonu X X X X Čtení signálů z periferií : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | X X X X ... kopíruje výstupní signály | | | | | | | 0 ... motor magnetofonu stojí | | | 1 ... motor magnetofonu běží | | | | | signál čtený z kazety,klidová úroveň 0,polarita shodná se zápisem | | | signál pro blikání kursoru , f=1,5 Hz , při nulování má úroveň 0 | vertikální zatemňovací impulsy, aktivní 0 , T=7,2 ms , f=50 Hz -------------------------------------------------------------------------------- Pomocný řídící port -------------------------------------------------------------------------------- adresa - mód 700 : 0E008H ( paměťové adresování ) mód 800 : port nepřístupný Zápis - nastavení signálu GATE čítače 0 I8253 : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | přivedeno na vstup GATE čítače 0 I8253 X X X X X X X Čtení časovacích signálů : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | periodický signál pro tempo hudby , f=35 Hz | 0 0 0 0 0 0 | horizontální zatemňovací impulsy , aktivní 0 , f=15611 Hz -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Programovatelné čítače I8253 -------------------------------------------------------------------------------- 1. Řídící registr, adresa - mód 700 : 0E007H ( paměťové adresování ) pouze pro zápis adresa - mód 800 : 0D7H Volba módu činnosti čítačů : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | 0 ... binární čítání | | | | | | | 1 ... dekadické čítání | | | | | | | | | | | 0 0 0 ... mód 0 | | | | 0 0 1 ... mód 1 | | | | X 1 0 ... mód 2 | | | | X 1 1 ... mód 3 | | | | 1 0 0 ... mód 4 | | | | 1 0 1 ... mód 5 | | | | | | 0 1 ... čtení / zápis jen vyšších slabik obsahu čítačů | | 1 0 ... čtení / zápis jen nižších slabik obsahu čítačů | | 1 1 ... čtení / zápis obou slabik v pořadí nižší - vyšší | | 0 0 ... čítač 0 0 1 ... čítač 1 1 0 ... čítač 2 Nastavení ROM monitorem - řídící slova : 36H , 74H , 0B0H čítač 0 : mód 3 , čtení/zápis obou slabik , binární čítání čítač 1 : mód 2 , čtení/zápis obou slabik , binární čítání čítač 2 : mód 0 , čtení/zápis obou slabik , binární čítání Vzorkování obsahu běžícího čítače před čtením jeho obsahu : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | 0 0 X X X X | | 0 0 ... čítač 0 0 1 ... čítač 1 1 0 ... čítač 2 --------------------------------------------------------------------------------- 2. Čítač 0 adresa - mód 700 : 0E004H ( paměťové adresování ) adresa - mód 800 : 0D4H Hodiny CLK : periodický signál , f=1108405 Hz Hradlování GATE : mód 700 ... nastaveno bitem b0 výstupního portu 0E008H mód 800 ... trvale 1 Výstup OUT : a) akustický výstup,je-li bit b0 brány C I8255 nastaven na 1. b) negace tohoto signálu je přivedena na bit b4 brány A Z80-PIO. Tabulka hodnot předvolby pro frekvence temperované oktávy : C ... 4232H E ... 348AH GIS ... 29B4H CIS ... 3E7BH F ... 3197H A ... 275CH D ... 3AFAH FIS ... 2ECFH AIS ... 2527H DIS ... 37AAH G ... 2C2EH H ... 2311H Tabulka odpovídá druhé nejnižší celé generovatelné oktávě ( A=110 Hz ), pro každou následující vyšší oktávu je nutné hodnoty dělit dvěma. -------------------------------------------------------------------------------- 3. Cítač 1 adresa - mód 700 : 0E005H ( paměťové adresování ) adresa - mód 800 : 0D5H Hodiny CLK : horizontální synchronizační impulsy , f=15611 Hz Hradlování GATE : trvale 1 Výstup OUT : přiveden na vstup CLK čítače 2 -------------------------------------------------------------------------------- 4. čítač 2 adresa - mód 700 : 0E006H ( paměťové adresování ) adresa - mód 800 : 0D6H Hodiny CLK : přivedeny z výstupu OUT čítače 1 Hradlování GATE : trvale 1 Výstup OUT : při úrovni 1 generuje přerušení ( mód IM1 ),je-li bit b2 brány C I8255 nastaven na 1. -------------------------------------------------------------------------------- 5. Módy činnosti čítačů Mód 0 : Po nastavení módu i během zápisu předvolby je výstup OUT na úrovni 0. Po proběhnutí nastaveného počtu period hodin CLK za ukončením předvolby přejde výstup OUT na úroveň 1.Na té zůstane až do zápisu nové předvolby,po které začne další odpočítávání s výstupem OUT na úrovni 0. Zápis první slabiky před koncem nastaveného intervalu zastaví čítání, zápis druhé slabiky odstartuje čítání s novým obsahem čítače. Hradlování GATE na úrovni 0 blokuje čítání. Mód 1 : Po nastavení módu i během zápisu předvolby je výstup OUT na úrovni 1. Čítání,během něhož je výstup OUT na úrovni 0,se startuje vzestupnou hranou signálu GATE.Po proběhnutí nastaveného počtu period hodin CLK se výstup OUT vrátí do úrovně 1,na které zůstane až do dalšího odstartování přes GATE. Zápis nové předvolby v průběhu čítání se uplatní až po nejbližší vzestupné hraně signálu GATE. Hradlování GATE při přechodu z 0 na 1 startuje čítání s naposledy nastavenou předvolbou.Úroveň 0 čítání neovlivňuje ! Mód 2 : Po nastavení módu i běhěm zápisu předvolby je výstup OUT na úrovni 1. Po proběhnutí nastaveného počtu period hodin CLK je automaticky provedeno nové odstartování a v začátku opakujícího se čítání přejde výstup OUT na dobu jedné periody hodin CLK do úrovně 0. Zápis nové předvolby v průběhu čítání se uplatní až v další periodě výstupního signálu. Hradlování GATE na úrovni 0 blokuje čítání a nastavuje výstup OUT na úroveň 1.Přechod z 0 na 1 startuje čítání s naposledy nastavenou předvolbou. Mód 3: Po nastavení módu je výstup OUT na úrovni 1.Po ukončení předvolby začne čítač odpočítávat daný počet period hodin CLK a v druhé polovině čítaného intervalu přejde výstup OUT na úroveň 0.Při liché předvolbě je první část o jednotku delší.Po dočítání je automaticky provedeno nové odstartování a čítání se opakuje. Zápis nové předvolby v průběhu čítání se uplatní až v další půlperiodě výstupního signálu. Hradlování GATE na úrovni 0 blokuje čítání a nastavuje výstup OUT na úroveň 1.Přechod z 0 na 1 startuje čítání s naposledy nastavenou předvolbou. Mód 4 : Po nastavení módu i během zápisu předvolby je výstup OUT na úrovni 1. Po proběhnutí nastaveného počtu period hodin CLK za ukončením předvolby přejde výstup OUT na dobu jedné periody do úrovně 0.Další čítání začne až po zapsání nové předvolby. Změna předvolby v průběhu čítání nemá vliv na délku probíhajícího intervalu. Hradlování GATE na úrovni 0 blokuje čítání. Mód 5 : Po nastavení módu i během zápisu předvolby je výstup OUT na úrovni 1. Čítání se startuje vzestupnou hranou signálu GATE.Po proběhnutí nastaveného počtu period hodin CLK přejde výstup OUT na dobu jedné periody do úrovně 0. Další čítání začne až po novém odstartování přes GATE. Zápis nové předvolby v průběhu čítání se uplatní až po nejbližší vzestupné hraně signálu GATE. Hradlování GATE při přechodu z 0 na 1 startuje čítání s naposledy nastavenou předvolbou.Úroveň 0 čítání neovlivňuje ! Pozn. : Aktivní hranou signálu CLK je hrana sestupná,t.j.přechod z úrovně 1 na úroveň 0. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Programovatelný paralelní interfejs Z80-PIO -------------------------------------------------------------------------------- 1. Řídící registr, adresa pro oba módy - kanál A : 0FCH pouze pro zápis adresa pro oba módy - kanál B : 0FDH Přerušovací vektor ( mód přerušení IM2 ) : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | V7 V6 V5 V4 V3 V2 V1 0 ... spolu s registrem I jako vyšší slabikou udává,kde v paměti je uložena adresa obslužného programu. Volba režimu činnosti kanálu : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | X X 1 1 1 1 | | 0 0 ... kanál výstupní 0 1 ... kanál vstupní 1 0 ... kanál obousměrný ( jen pro kanál A , kanál B pak musí být v bitový ) 1 1 ... bitový mód kanálu,následuje zápis bytu určujícího rozdělení linek kanálu na vstupy a výstupy : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | L7 L6 L5 L4 L3 L2 L1 L0 - 0 ... výstupní 1 ... vstupní Volba zdroje přerušení : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | 0 1 1 1 | | | 0 ... maska se nezapisuje | | | 1 ... následuje zápis bytu masky | | | | | 0 ... přerušení při úrovni 0 | | 1 ... přerušení při úrovni 1 | | | 0 ... vazba jednotlivých linek OR | 1 ... vazba jednotlivých linek AND | 0 ... přerušení zakázáno 1 ... přerušení povoleno Maskování přerušení od jednotlivých linek kanálu : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | M7 M6 M5 M4 M3 M2 M1 M0 - 0 ... přerušení nemaskováno 1 ... přerušení maskováno Povolení / zákaz přerušení : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | X X X 0 0 1 1 | 0 ... přerušení zakázáno 1 ... přerušení povoleno Nastavení monitorem BASICu 800 : řídící slova pro kanál A : 0FCH , 0FFH , 3FH , 17H , 0EFH řídící slova pro kanál B : 0FEH , 0FH kanál A : v bitovém módu,bity b6,b7 výstupní,přerušovací vektor 0FCH, přerušení při úrovni 0 na bitu b4,po nastavení zakázáno. kanál B : výstupní,přerušovací vektor 0FEH,přerušení zakázáno. ( Pozn.: v registru I je hodnota 0FH ) -------------------------------------------------------------------------------- 2. Kanál A adresa pro oba módy : 0FEH Zápis signálů pro řízení tiskárny : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | X X X X X X | | | 0 ... neaktivní | 1 ... inicializace tiskárny ( MZ ... IRT , Centr. ... INIT ) | 0 ... neaktivní 1 ... zápis dat do tiskárny ( MZ ... RDP , Centr. ... STB ), smí přijít,jen pokud je signál BUSY/RDA na úrovni 0,a pro MZ by měl trvat až do přechodu BUSY/RDA na úroveň 1. Čtení signálů z tiskárny a časování : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | | 0 ... tiskárna připravena pro příjem dat | | | | | | | 1 ... tiskárna nepřipravena pro příjem dat | | | | | | | ( MZ ... RDA , Centr. ... BUSY ) | | | | | | | | | | | | | 0 ... závada tiskárny | | | | | | 1 ... tiskárna vpořádku | | | | | | ( MZ ... STA , Centr. ... ERROR ) | | | | 0 0 | | | | | | | přes invertor přivedený výstup čítače 0 I8253 | | | | | vertikální zatemňovací impulsy , aktivní 0 , T=7,2 ms , f=50 Hz | | X X ... kopíruje výstupní signály -------------------------------------------------------------------------------- 3. Kanál B adresa pro oba módy : 0FFH Výstup dat na tiskárnu : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | D7 D6 D5 D4 D3 D2 D1 D0 ... datové linky interfejsu tiskárny Tento kanál generuje přerušení ( pokud je povoleno ) vždy po přijetí dat tiskárnou ... přechodu signálu BUSY/RDA z úrovně 1 na úroveň 0. -------------------------------------------------------------------------------- Programovatelný zvukový generátor -------------------------------------------------------------------------------- Pouze pro zápis adresa pro oba módy : 0F2H Nastavení frekvence tónového kanálu : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | 0 N3 N2 N1 N0 ... nižší bity nastavení frekvence | | | | 0 0 ... kanál 0 | 0 1 ... kanál 1 | 1 0 ... kanál 2 1 [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | 0 X N9 N8 N7 N6 N5 N4 ... vyšší bity nasatvení frekvnece Pořadí těchto dvou bytů je nutné dodržet. Frekvence f=110,84 KHz/N , pro N=0 f=108,24 Hz Tabulka hodnot N pro frekvence temperované oktávy : c ... 034FH e ... 02A1H gis ... 0216H cis ... 0320H f ... 027BH a ... 01F8H d ... 02F3H fis ... 0257H ais ... 01DCH dis ... 02C9H g ... 0236H h ... 01C1H Hodnoty odpovídají nejnižší celé generovatelné oktávě ( a=220 Hz ),pro každou následující vyšší oktávu je nutné N dělit dvěma. Nastavení frekvence šumového kanálu : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | | | 0 0 ... f=6,93 KHz | | | | | | 0 1 ... f=3,46 KHz | | | | | | 1 0 ... f=1,73 KHz | | | | | | 1 1 ... f=f3/16 ( f3 ... frekvence tónového kanálu 3 ) | | | | | | | | | | | 0 ... synchronní šum | | | | | 1 ... bílý šum 1 1 1 0 X Nastavení hlasitosti kanálů : [ b7 b6 b5 b4 b3 b2 b1 b0 ] | | | | | | | | | | | | A3 A2 A1 A0 ... utlumení 1.26^A , pro A=15 je kanál odpojen | | | 1 | 0 0 ... tónový kanál 0 | 0 1 ... tónový kanál 1 | 1 0 ... tónový kanál 2 | 1 1 ... šumový kanál 1 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Interfejs joysticků -------------------------------------------------------------------------------- Pouze pro čtení adresa pro oba módy - joystick 1 : 0F0H adresa pro oba módy - joystick 2 : 0F1H Signály z aktivovaného joysticku : [ b7 b6 b5 b4 b3 b2 b1 b0 ] - 0 ... spínač sepnut | | | | | | | | 1 ... spínač nesepnut | | | | | | | | | | | | | | | vpřed | | | | | | | | | | | | | vzad | | | | | | | | | | | vlevo | | | | | | | | | vpravo | | | | | | | spoušť 1 | | | | | spoušť 2 ( kontakt 7 konektoru,některé joysticky zde vyžadují +5V ) X X -------------------------------------------------------------------------------- lobeně se vrátil zpět do své kanceláře. Potom dlouho na v