Poznámky k systému s Z80A
                    #########################
_____   _____
BUSRQ ; BUSAK - signály určené na výmenu riadiacich a skokových
                signálov pri odpojení trojstavových budičov
                mikroprocesoru od zberníc, riadene ktorých
                preberá radič kanálu DMA.
__
M1    - signalizuje priebeh fázy čítania inštrukcie
____
MREQ  - spolupráca s pamäťou
_____
IOREQ - spolupráca s I/O
__
RD    - čítanie dát
__
WR    - zápis dát
____
RFSH  - riadi zotavovacie čítanie dynamických pamätí RWM a je
        aktivovaný behom každého taktu M1.
___
NMI   - nemaskovateľné prerušenie
____
HALT  - signalizuje zastavenie činnosti mikroprocesora.
Zápisníková pamäť, strádač a indikátory sú v dvojitom prevedení
a výmenu týchto dvoch súborov (vždy iba jeden je aktívny) možno
uskutočniť dvoma inštrukciami. Táto koncepcia podstatne skracuje
odozvu na prerušenie, pretože je mozné uschovať obsah týchto
registrov behom púhych 8 period. (3.2 mikros.)
Register I(Interrupt Vector Register)sa využíva v jednom z troch
prerušovacích režimov ako časť adresy tabuľky vstupných bodov
obslužných procedúr.
Register R ( Memory Refresh ) je sedembitový čítač adries zota-
vovacieho čítania dynamických pamätí.
Bázové 16-bitové registre IX a IY slúžia ako ukazatele polí dát
v hlavnej pamäti a je ich možné použiť ako ďaľšie 16-bitové
strádače, podobne ako dvojicu HL.
Súbor stavových indikátorov Carry, Sign, Zero, Parity/Owerflow,
half carry, Subtract flag.
 Indikátory C,S,Z,H sú nastavované rovnako ako u 8080, kdežto P
signalizuje párnu paritu iba pri logických operáciach. U artmet.
operácií zastáva funkciu indikátora aritmetického preplnenia.
Indikátor N je nastavovaný inštrukciami rozdielu, negácie,
dvojkového doplnku a dekrementácie a je spolu s indikátorom H
využívaný k dekadickej korekcii po aritmetických operáciach s
číslami v kóde BCD, a to bez zreteľa na ich znamienko.
Procesor Z80 používa k adresácií 256 vstupných a 256 výstupných
zariadení iba 8 dolných vodičov adresovej zbernice, kdežto na
ostatných je vyvedený obsah strádača, registru B alebo C podľa
typu prevádzanej inštrukcie.
                                           ___
Prijatie požiadavky prostredníctvom vstupu INT je závislé na
stave vnútorného klopného obvodu IFF (Interrupt Flip-Flop), ale
požiadavky privedené na vstup NMI sú nezávislé a majú vyššiu
prioritu. Po prijatí každého požiadavku na prerušenie je
vynulovaný klopný obvod IFF a obsah čítača inštrukcií sa uloží
do zásobníkovej pamäti. V prípade nemaskovateľného prerušenia
nastáva prechod do vlastného obslužného programu na adrese 66H,
u maskovateľných prerušení je adresa určená v závislosti na
programovo nastaviteľnom prerušovacom režime (Interrupt Mode)
Režim IM0 je rovnaký ako u 8080 a je automaticky nastavený po
inicializácii riadenej signálom RESET - CPU potom aktivuje
výstupy M1 a IORQ, čo znamená fázu identifikácie prerušujúceho
zariadenia a očakáva, že zariadenie dodá na datovú zbernicu
inštrukciu - obvykle RST.
Režim IM1 neočakáva žiadnu reakciu zo strany periférií a vždy
prechádza priamo na adresu 38h (generuje inštrukciu RST 7)
Režim IM2 je najpružnejší.Vo fázi identifikácie dodáva periféria
8-bitovú hodnotu nižšieho bytu 16 bitovej adresy oblužného
podprogramu v tabuľke, ktorej stránková adresa (horných 8 bitov)
je určená obsahom programovo nastaviteľného ragistru I.
Priamy prístup do pamäte je uskutočňovaný nasledovne: Po prijatí
vstupného signálu BUSRQ dokončí CPU práve prebiehajúci takt a
potom prevedie všetky zbernice do vysokoimpedančného stavu s
signálom BUSAK oznámi odpojenie od zbernice.
 Radič kanálu DMA potom disponuje systémovou zbernicou; v
prípade že je systém vybavený dynamickými RWM, musí prevziať aj
riadenie zotavovacieho čítania pre dielčie prenosy DMA, potom
ale musia byť vnútorné budiče zbernice CPU doplnené ešte
vonkajšími, ktoré sú riadené radičom DMA.
POMOCNÉ OBVODY:
Z80 - PIO (Paralel Input/Output Circuit)
Z80 - SIO (Serial Input/Output Circuit)
Z80 - CTC (Counter/Timer Circuit)
z80 - DMA (DMA Controler)
Z80 - PIO : má dve oddelené brány A,B ,ktoré môžu byť použité vo
            vstupnom, výstupnom, alebo bitovom režime. Brána A
            môže pracovať aj obojsmerne.
Z80 - SIO : je určený na sériovú duplexnú komunikáciu
            v asynchrónnom i synchrónnom režime a môže súčasne
            generovať, priečnu paritu alebo cyklické
            zabezpečovacie znaky (CRC)
Z80 - CTC : obsahuje 4 nezávislé podsystémy pre realizáciu
            časovacích členov alebo čítačov impulzov
            z vonkajších zariadení.
Z80 - DMA : môže súčasne obsluhovať až 2 kanály DMA.
Tieto pomocné obvody majú jediný výstup požiadavku na prerušenie
ktorý zlučuje požiadavky generované jednotlivými podsystémami.
Všetky sú opatrené vývodmi pre vytvorenie sériového prioritného
reťazca. Po prijatí požiadavky na prerušenie nemôže dôjsť k
ďaľšiemu, vloženému prerušeniu s nižšou prioritou dovtedy,pokiaľ
riadiaca logická sieť týchto pomocných obvodov neidentifikuje
čítanie inštrukcie RTI (Return From Interrupt) na datovej
zbernici v takte M1. Táto inštrukcia je v CPU interpretovaná
rovnako ako RET u 8080, ale naviac signalizuje perifériam návrat
z podprogramu obsluhujúceho prerušenie.
                          U 855 D (PIO)
          _____________
D0  <--->| 19       15 |<---> A0
D1  <--->| 20       14 |<---> A1
D2  <--->|  1       13 |<---> A2
D3  <--->| 40       12 |<---> A3
D4  <--->| 39       10 |<---> A4
D5  <--->| 38        9 |<---> A5
D6  <--->|  3        8 |<---> A6
D7  <--->|  2        7 |<---> A7
b/A SEL->|  6       18 |----> A RDY
C/D SEL->|  5          |      _____
__       |          16 |<---- A STB
CE  ---->|  4       27 |<---> B0
__       |          28 |<---> B1
M1  ---->| 37       29 |<---> B2
____     |          30 |<---> B3
IORQ --->| 36       31 |<---> B4
__       |          32 |<---> B5
RD  ---->| 35       33 |<---> B6
+5V ---->| 26       34 |<---> B7
GND ---->| 11       21 |----> B RDY
0   ---->| 25          |      _____
___      |          17 |<---- B STB
INT <----| 23          |
IEI ---->| 24          |
IEO <----| 22          |
         |_____________|
D0-D7   -trojstavová obojsmerná zbernica
B/A SEL -voľba portu A alebo B ; 0-brána A, 1-port B ; k voľbe
         sa používa adresný vodič A0
C/D SEL -voľba riadiaceho alebo datového slova ;1-riadiace slovo
__       0-datové slovo ; k voľbe sa poživa adresný vodič A1
CE      -voľba čipu ; k vytvoreniu signálu CE sa použivajú
__       adresné vodiče A2-A7
m1      -M1 cyklus ; M1 signál je privedený priamo z CPU
____     a synchronizuje vnútornú činnosť
IORQ    -požiadavka na vstupný, resp. výstupný port použitím
__       inštrukcie IN, OUT
RD      -čítací cyklus ; 1-zápisný cyklus, 0-čítací cyklus
___
INT     -požiadavka na prerušenie (otvorený kolektor)
IEI     -vstup povolenia na prerušenie
IEO     -výstup povolenie na prerušenie
A0-A7   -Port A
A RDY   -register A pripravený
_____
A STB   -strobovací vstup portu A
B0-B7   -Port B
B RDY   -register B pripravený
_____
B STB   -strobovací vstup portu B
PIO - programovateľný vstupno-výstupný port:
a) obsahuje dva nezávislé 8-bitové vstupné a výstupné brány
b) každý kanál možno programovať do nasledujúcich režimov:
   - bajtový výstup
   - bajtový vstup
   - bajtový vstup a bajtový výstup (iba port A)
   - bitový vstup/bitový výstup
c) riadiace vodiče pre HARDSHAKE - interface
d) reťazová priorita (Daisy - chair)
e) generovanie Interrupt vektora pri prerušení
f) kompatibilita s TTL logikou
g) napájacie napätie +5V ; jednofázové hodiny
h) 40 pólový číp.
                        PROGRAMOVANIE PIO
 ________________________________________________________
|            |C/D SEL|A/B SEL|                           |
| A7...A2    |  A1   |  A0   |                           |
|------------|-------|-------|---------------------------|
|závisí od   |   0   |   0   | datové slovo pre port A   |
|konfigurácie|   0   |   1   | datove slovo pre port B   |
|systému     |   1   |   0   | riadiace slovo pre port A |
|            |   1   |   1   | riadiace slovo pre port B |
|____________|_______|_______|___________________________|
                       Bloková schéma PIO
                       __________
                      | vnútorná |
                      | riadiaca |         ____
         _______      | logika   |        |    |<====> A0-A7
 D0-D7  |       |     |__________|     ==>|Port|-----> A RDY
<======>|systém |          /\         |   |  A |       _____
 datová |zberníc|          ||         |   |____|<----- A STB
zbernica|zosilo-|<==vnútorná zbernica=|
        |vačov  |          ||         |    ____
=======>|       |      ____\/____     |   |    |<====> B0-B7
riadiaca|_______|     |riadiaca  |     ==>|Port|-----> B RDY
zbernica              |logika    |        |  B |       _____
                      |prerušenia|        |____|<----- B STB
                      |__________|
                    /\
                    || 8 bitový interface voči okoliu
                    ||
  __________________\/__________________
  _____________________________________ |
         /\                            ||
    _____||_____                   ____\/_____
 =>|Register OUT|                 |Register IN|===
|  |____________|     8 bit       |___________|  ||
|        /\                            ||        ||
|8       ||____________________________\/_____________ vnútorná
|        |______________  ____________________________ zbernica
|b                      ||                       ||
|i  __________          ||         __________    ||
|t |Register  |         ||        |Maskovací |   ||
|==|voľby I/O |<========||=======>|register  |<==8 bit
   |__________|         ||        |__________|
                        ||
    __________          ||         __________
   |Register  |         ||        |Riadiaci  |
   |druhu     |<========||=======>|maskovací |
   |prevádzky |         ||        |register  |
   |__________|         ||        |__________|
2 bity                  ||                     2 bity
                        ||
                ________\/________
               | Interrupt vektor |
               |    register      | 7 bit
               |__________________|
REGISTER OUT - datový register,do ktorého sa ukladá datové slovo
               vyslané z CPU do okolia
REGISTER IN  - datový register, v ktorom sa dočasne uchováva
               datové slovo z okolia, z neho potom číta CPU
REGISTER VOĽBY I/O - slúži k voľbe I/O bitov v režime bitový
               vstup/výstup
MASKOVACÍ REGISTER - slúži kurčeniu vstupných riadiacich vodičov
               v prevádzke bitový vstup/výstup, sú určené na
               vyvolanie prerušenia.
REGISTER DRUHU PREVÁDZKY - slúži na určenie 4 nových režimov
RIADIACI MASKOVACÍ REGISTER - slúži k určeniu v prevádzke bitový
               vstup/výstup nové logické prepojenia požiadaviek
               na prerušenie od periférií.
               a) požiadavka prerušenia signálom 1 alebo 0
               b) požiadavka na prerušenie cez spojenie logický
                  súčin (všetky vstupy musia vyvolať prerušenie)
                  požiadavka na prerušenie cez spojenie logický
                  súčet (aspoň jeden vstup musí byť vyvolaný)
INTERRUPT VEKTOR REGISTER - register k zapamätaniu spodnej časti
               vektora, ktorý v režime IM2 spolu s obsahom
               registra I CPU vytvorí 16 bitovú adresú, htorá
               ukazuje v tabuľke so štartovacími adresami
               obslužných podprogramov prerušenia.
                   VYSLANIE INTERRUPT VEKTORA
Riadiace slovo pre vytvorenie INTERRUPT VEKTORA má tvar:
     D7 D6 D5 D4 D3 D2 D1 D0
     _______________________
    |v7|v6|v5|v4|v3|v2|v1|0 |     LSB musí byť nula
    |__|__|__|__|__|__|__|__|
     MSB                  LSB
                      VOĽBA DRUHU PREVÁDZKY
Riadiace slov0 má tvar:
                              _________________________________|
  D7 D6 D5 D4 D3 D2 D1 D0    |M1|M0|                           |
  _______________________    |D7|D6| Druh prevádzky            |
 |M1|M0|X |X |1 |1 |1 |1 |   |__|__|___________________________|
 |__|__|__|__|__|__|__|__|   |0 |0 | 0 (bajtový výstup)        |
                             |0 |1 | 1 (bajtový vstup)         |
                             |1 |0 | 2 (bajtový vstup a výstup)|
                             |1 |1 | 3 (bitový vstup/výstup    |
                             |__|__|___________________________|
Pri voľbe prevádzky druhu 3 za týmto riadiacim slovom treba
bezprostredne vyslať ďaľšie riadiace slovo, ktoré určuje smer
jednotlivých bitových ciest.
 _______________________________         1 - VSTUP
|I/O|I/O|I/O|I/O|I/O|I/O|I/O|I/O|        0 - VÝSTUP
|___|___|___|___|___|___|___|___|
              VYSLANIE RIADIACEHO SLOVA PRERUŠENIA
Pomocou riadiacich slov prerušenia možno programovať spôsob
prerušenia portov PIO. Pôsobením vnútorného klopného obvodu
povolenia prerušenia INT (EI) IFF možno riadiacim slovom pre
všetky druhy prevádzky nastaviť možnosť generovania, respektíve
negenerovania prerušenia
  _______________________________       INT EI
 |INT|   |   |   |   |   |   |   |
 |EI | X | X | X | 0 | 0 | 1 | 1 | 0 - generácia preruš. nemožná
 |___|___|___|___|___|___|___|___| 1 - generácia preruš. možná
  MSB                          LSB