Pri prevádzke 3 (bitový vstup/výstup) sa týmto riadiacim slovom
určuje ešte:
a) generovanie prerušenia signálom 1 alebo 0 na vodiči
b) generovanie prerušenia cez logický súčin alebo logický súčet
   spojenia signálov
c) maskovacie prerušenie schopných vodičov
   D7  D6  D5  D4  D3  D2  D1  D0
  ________________________________
 |INT|UND/|   |   |   |   |   |   |
 |EI |ODER|0/1|MA | 0 | 1 | 1 | 1 |
 |___|____|___|___|___|___|___|___|
 _____ __________________________________________________
|D6|D5|                             | D4|                |
|__|__|_____________________________|___|________________|
|0 |0 | logický súčet so signálom 0 | 0 - bez maskovania |
|0 |1 | logický súčet so signálom 1 | 1 - s maskovaním   |
|1 |0 | logický súčin so signálom 0 |                    |
|1 |1 | logický súčin so signálom 1 |                    |
|__|__|_____________________________|____________________|
Ak je D4=MA=1 musí sa za týmto riadiacim slovom prerušenia
vyslať ešte maskovacie riadiacie slovo
  D7 D6 D5 D4 D3 D2 D1 D0
  _______________________
 |MB|MB|MB|MB|MB|MB|MB|MB|  MB  0 - maskovací bit bude určený
 |__|__|__|__|__|__|__|__|          ku generovaniu prerušenia
                                1 - maskovací bit nebude určený
                                    ku získaniu prerušenia
                        INICIALIZÁCIA PIO
prevedie sa vtedy, ak je pripojené napájacie napátie a ak sa
pripojí sigmál M1 bez pohotovosti signálov RD alebo IORQ.
(s nástupnou hranou nasleduje inicializácia)
Inicializácia spósobí:
a) zbernice portov budú v treťom stave; READY výstupy dávajú 0
b) výstupný register bude zhodený
c) maskovací register bude zhodený
d) INTERRUPT klopný obvod FF bude zhodený
   (generovanie prerušenia bude zablokované)
e) INTERRUPT vektor register nebude anulovaný !!!
                  PREVÁDZKA 0    (výstup bajtu)
Časový priebeh:
1) Signálom WR CPU zapíše výstupné data, ktoré sú na datovej
   zbernici do výstupného registra a zostupnou hranou hodín sa
   vytvorí signál RDY, ktorým PIO oznámi periférii platnosť dát.
2) Od periférie prišlý strobovací STB signál slúži ako signál
   potvrdenia, že periféria prevzala výstupné slovo. Signál STB
   trvá počas signálu RDY, jeho nástupnou hranou nastáva
   generovanie signálu INT a zhodenie signálu RDY.
                  PREVÁDZKA 1    (vstup bajtu)
1) Data, ktoré sú na vstupe portu budú signálom STB od periférie
   zapísané do vstupného registra.
2) Nástupnou hranou STB sa vytvorí signál RDY1,ktorým periféria
   oznamuje, že nemôže vyslať ďaľšie slovo. Paralelne s týmto
   nastane vyvolanie prerušenia INT a pomocou obslužného progr.
   sa toto slovo prečíta procesorom signálom RD.
3) Nástupnou hranou signálu RD sa zhodí signál RDY1, čím PIO
   oznamuje, že je schopný prijať ďaľšie data.
             PREVÁDZKA 2    (vstup aj výstup bajtu)
Ako riadiace signály pre výstup slúžia A STB a A RDY a pre
výstup B STB a B RDY
              PREVÁDZKA 3    (bitový vstup/výstup)
Zmeny dát vyvolajú prerušenie, odpovedajúce maske, úrovni
a logickému spojeniu. Vytvorením signálu RD nasleduje zápis dat
ležiacich na zbernici. Pri výstupe bitov bude vyslaný obsah
registra OUT. Výstup sa deje ako pri prevádzke 0, avšak bez
vplyvu vodičov STB a RDY.
                            Z80 - CTC
           ___________
 D0  <--->| 25     23 |<---- CLK/TRG0
 D1  <--->| 26     22 |<---- CLK/TRG1
 D2  <--->| 27     21 |<---- CLK/TRG2
 D3  <--->| 28     20 |<---- CLK/TRG3
 D4  <--->|  1      7 |----> ZC/TO0
 D5  <--->|  2      8 |----> ZC/TO1
 D6  <--->|  3      9 |----> ZC/TO2
 D7  <--->|  4        |      __
 __       |        16 |<---- CE
 RD  ---->|  6     19 |<---- CS0
 ____     |        18 |<---- CS1
 IORQ --->| 10        |      _____
 IEI <----| 11     17 |<---- RESET
 ___      |        15 |<---- o
 IEO ---->| 13     24 |<---- + 5V
 ___      |         5 |<---- GND
 INT <----| 12        |
 __       |           |
 M1  ---->| 14        |
          |     U857D |
          |___________|
D0-D7  - datové vstupy-výstupy  ; trojstavové
__
RD     - signál vyslaný priamo od CPU   1-cyklus zápisu
____                                    0-cyklus čítania
IORQ   - požiadavka na spoluprácu s vstupno-výstupným obvodom.
         Tento signál vzniká ako následok použitia ištrukcie
         OUT, IN  priamo od CPU.
IEI    - Interrupt-Enable-In : tento signál nachádza uplatnenie
         v spojení s určovaním priority prerušenia.
IEO    - Interrupt-Enable-Out : rovnako ako IEI
___
INT    - požiadavka na prerušenie
__
M1     - M1 - cyklus ; prichádza priamo od CPU a synchronizuje
         vnútorný beh.
CLK/TRG- taktovací,resp. spúšťací vstup; externý taktovací vstup
         pre režim "čítač"(kmitočet nex o/2)alebo spúšťací vstup
         pri externom spustení časovača (šírka impulzu >=100 ns)
ZC/TO  - prechod nulou ; výstupný signál aktívny v nule, dľžka
         impulzu 1 takt. perioda. Prepojením výstupu so vstupom
         nasledujúceho čítača možno zväčšiť kapacitu čítača
__       respektíve časovača.
CE     - výber (select) čipu
CS0-1  - voľba kanálu
_____
RESET  - inicializácia čipu
                   ________
                  |register|         _______
                  |vektorov|        |       |
                  |preruš. |<==||==>|kanál 3|
                  |________|   ||   |_______|<--- CLK/TRG 3
                   ________    ||
                  |interná |   ||    _______
                  |riadiaca|   ||   |       |---> ZC/TO 2
                  |logika  |<==||==>|kanál 2|
                  |________|   ||   |_______|<--- CLK/TRG 2
        _________              ||
 D0-D8 |budič    |             ||    _______
<=====>|zosilovač| vnútorná    ||   |       |---> ZC/TO 1
       |zbernice |<============||==>|kanál 1|
======>|_________| zbernica    ||   |_______|<--- CLK/TRG 1
riadenie 6 bit     ________    ||
                  |logika  |   ||    _______
                  |riadiaca|   ||   |       |---> ZC/TO 0
<=================|preruš. |<==||==>|kanál 0|
     3 bit        |________|        |_______|<--- CLK/TRG 0
         ______________       ________
        |              |     |        |
 takt o | 8 bitový     |     | vratný |------> ZC/TO
------->| delič        |---->| čítač  |
        | 16 alebo 256 |     | 8 bit  |<----- CLK/TRG
        |______________|     |________|
                 ^             ||  /\
 vnútorná        |             ||  ||
===============================||  ||
 zberinica   ||  |             ||  ||
        _____\/__|_          __\/__||_
       | riadiaci  |        |register |     (jeden kanál)
       | register  |        |konštanty|
       | kanálu    |        | 8 bit   |
       | 8 bit     |        |_________|
       |___________|
Obsahuje 4 nezávislé programovateľné čítače s taktovacím vstupom
CLK/TRG a výstupom ZC/TO. Každý kanál obsahuje 8-stupňový spätný
čítač; 8-stupňový delič; riadiaci register a 8-stupňový register
konštanty. CTC je pripojený na datovú zbernicu a riadiacimi
signálmi M1,IORQ,RD je spojený s CPU a taktovaný hodinami
systému o. Každý čítač môže pracovať v dvoch režimoch:
a) čítač
b) časovač
V režime ČÍTAČ sa bude čítač vyprázdňovať nábežnou alebo
zostupnou hranou externého signálu privedeného na vstup CLK.
Vstupný signál je synchronizovaný nábežnou hranou hodinového
signálu o. Pri prechode čítača cez nulu sa na výstupe ZC objaví
impulz úrovne H. Potom čítač sa znovu začne vyprázdňovať od
hodnoty, nastavenej v registri konštanty. V okamihu prechodu
čítača cez nulu možno vyvolať požiadavku na prerušenie ak
programovaním CTC a stav prioritného reťazca pre daný kanál je
odblokovaný vstup pre prerušenie. Vnútri CTC majú vyššiu priori-
tu kanály s nižším číslom.
V režime ČASOVAČ je čítač kanálu vyprázdňovaný hodinami o,pričom
tieto sú delené buď 16-timi alebo 256-timi. Spustenie časovača
nastáva nástupnou, alebo zostupnou hranou externého TRG signálu.
Nulový stav čítača je oznámený na výstupe TO (mimo čítača kanálu
 3) alebo ako požiadavka na prerušenie sa vyhodnotí.
Aktuálny stav čítača všetkých štyroch kanálov u oboch registrov
možno zistiť prostredníctvom CPU v ľubovoľnom čase.
Výstupné operácie smerom k CTC sú obmedzené iba na programovanie
a stopnutie, prípadne štartnutie čítača.
Vektor prerušenia pre všetky štyri kanály je daný 5-timi
najvyššími bitmi v kanáli 0. Bit B0 musí byť nulový  (B0=0)
Interrupt vektory pre jednotlivé kanály sú rozlíšené bitmi B1,B2
Riadiace slovo ( B0=1 ) slúži na zvolenie režimu a funkcie pre
každý kanál.
VÝZNAM JEDNOTLIVÝCH BITOV RIADIACEHO SLOVA
B7 - 0 blokovanie prerušenia
   - 1 uvoľnenie prerušenia
B6 - 0 režim Casovač
   - 1 režim čítač
B5 - 0 deliteľ 16  hodín systému o v prevádzke časovač
   - 1 deliteľ 256 hodín systému 0 v prevádzke časovač
B4 - 0 zostupná hrana dekrementuje čítač, prípadne štartuje
       časovač
   - 1 nábežná hrana dekrementuje čítač, prípadne štartuje
       časovač
B3 - 0 štart časovača programove po riadiacom slove
       v nasledujúcom strojovom cykle pri B2=0 alebo
       po konštante pri B2=1
   - 1 štart časovača po strojovom cykle, v ktorom príde
       spúšťacia hrana externého signálu (B2=0) ; po naplnení
       čas. konštantou (B2=1)
B2 - 0 za riadiacim slovom neprichádza nová konštanta
       (stará zostáva platná)
   - 1 za riadiacim cyklom prichádza nová konštanta
B1 - 0 bežiace odpočítavanie nebude riadiacim slovom prerušené
   - 1 bežiace odpočítavanie bude stopnuté. Kanálu prislúchajúci
       výstup ZC/TO bude neaktívny, kanál nebude generovať
       prerušenie. Kanál bude neaktívny až do dodania novej
       časovej konšanty.
B0 - 0 interrupt vektor
   - 1 riadiace slovo
         _____
Signálom RESET možno počiatočný stav CTC kedykoľvek nastaviť.
VRATNÝ ČÍTAČ - naplní sa hodnotou registra konštanty
a dekrementuje vnútorný alebo vonkajším signálom. Pri dosiahnutí
nuly generuje výstupný signál, generuje prerušenie a opätovne sa
naplní hodnotou časovej konštanty. V režime čítač možno v ľubo-
voľnom čase zistiť čítaním z CPU stav čítača
RIADIACI REGISTER - naplní sa slovom z CPU
INTERRUPT VEKTOR REGISTER - 5-bitový register k uchovaniu nižšej
časti vektora, ktorý dopľňa v móde IM2 CPU obsah registra I CPU
na 16-bitovú adresu.
RIADIACA LOGIKA PRERUŠENIA obstaráva riadenie priority.
Kanál 0 má najvyššiu prioritu, so vzrastajúcim číslom kanálu
priorita klesá.
PROGRAMOVANIE KANÁLOV
   ___________________
  | CS1 | CS0 | kanál |
  | A1  | A0  |       |
  |_____|_____|_______|
  |  0  |  0  |   0   |
  |  0  |  1  |   1   |
  |  1  |  0  |   2   |
  |  1  |  1  |   3   |
  |_____|_____|_______|
Obsah Interrupt vektora + I registra vytvorí 16-bitovú adresu
ktorá slúži ako ukazovateľ pre tabuľku, v ktorej ležia príslušné
obslužné rutiny prerušenia.
Kanál vyvolávajúci prerušenie vytvára a na datovú zbernicu
(D1-D2) dodáva číslo kanálu
Riadiace slovo pre časovú konštantu musí nasledovať za riadiacim
slovom,v ktorom je bit2=0. Časová konštanta 00 je interpretovaná
ako 256.
INICIALIZÁCIA CTC
signálom RESET nastane:
a) prerušenie počítania u všetkých kanálov
b) zablokovanie prerušení u všetkých kanalov
c) výstupy INT, ZC/TO0 až ZC/TO2 budú neaktívne
d) všetky ostatné výstupy budú v treťom stave
Pomocou zápisného cyklu budú zapísané do CTC vektor prerušenia,
riadiace slovo a časová konštanta. Pomocou čítacieho cyklu možno
zistiť okamžitý stav čítača, ktorý odpovedá nábežnej hrane taktu