Parallellporter i TIKI-100 Rev C
--------------------------------

TIKI-100 inneholder en Z80 PIO krets med 2 stk. 8-bits I/O porter
(hver med kvitteringssignalene RDY og STB). 
Begge disse er koblet opp til parallellport P3. Se portbeskrivelsen
for mer informasjon om pinnetilordning. 

Z80 PIO kontrolleres gjennom 4 I/O porter:

I/O-port 08H: Parallellport A, dataord

Her leses og skrives data for parallellport A. 

I/O-port 09H: Parallellport B, dataord

Her leses og skrives data for parallellport B. 

I/O-port 0AH: Parallellport A, styreord

Her skrives kontrollregisteret til parallellport A.

I/O-port 0BH: Parallellport B, styreord

Her skrives kontrollregisteret til parallellport B. 

Operasjonsmodi

Parallellportene kan settes til en av 4 modi:

Modus 0: Data ut. Data skrevet til dataregisteret blir satt rett ut p
         porten. De kan ogs leses tilbake. Nr gyldige data settes ut
         p porten, gr RDY hy. STB kan settes hy av eksternt utstyr
         for  indikere at data er lest. 
Modus 1: Data inn. Porten klokker inn data utenfra nr det eksterne
         utstyret setter STB hy. Data kan hentes inn til CPU ved 
         lese dataregisteret. Da blir samtidig RDY hy, og indikerer
         til det eksterne utstyret at porten er klar for en ny byte.
         Nr STB settes hy, gr RDY lav, og kretsen kan gi interrupt. 
Modus 2: Bidireksjonal (bde inn og ut). Bare port A kan fungere i
         modus 2. Nr port A settes til modus 2, m samtidig port B
         settes til modus 2 og port B m settes til  ikke generere
         interrupts. 
         Data ut er lik modus 0, bortsett fra at data bare settes ut
         nr ASTB er lav. 
         Data inn er lik modus 1, bortsett fra at kvitteringssignalene
         og interruptmulighetene til port B benyttes. 
Modus 3: Bit kontroll. Individuelle bits i parallellporten kan settes
         enten til inn eller ut. RDY og STB er ikke brukt. I stedet
         genereres en interrupt hvis interruptbetingelsene til
         input-pinnene bestemt under programmering av porten er
         oppfyllt.

Programmering

Programmering av porten foregr ved skriving til portens
kontrollregister. 

Flgende styreord kan skrives til kontrollregisteret:

Mode Control Word: 

Bit 6-7:   Velger modus:
           Bit 7    Bit 6
           0        0        Modus 0
           0        1        Modus 1
           1        0        Modus 2
           1        1        Modus 3
           Nr modus 3 velges, M etterflgende ord skrevet til
           kontrollregisteret vre et retningsord, der en ener i en
           bitposisjon medfrer at tilsvarende I/O-pinne vil bli en
           inngang, mens en nuller vil medfre at I/O-pinnen blir en
           utgang. 
Bit 4-5:   Ubrukt
Bit 0-3:   M settes til 1111 (identifiserer at dette er Mode Control
           Word). 

Interrupt Control Word:

Bit 7 = 1: Skrur p interruptfunksjonen
Bit 7 = 0: Skrur av interruptfunksjonen
Bit 6 = 1: OG funksjon, alle bit med i interruptbetingelsen m g til
           den definerte tilstanden for at interrupt skal genereres. 
Bit 6 = 0: ELLER funksjon, interrupt genereres nr minst ett bit gr
           til den definerte tilstanden. 
Bit 5 = 1: Definert tilstand er hy
Bit 5 = 0: Definert tilstand er lav
Bit 4 = 1: Kun utvalgte bit er med i interruptbetingelsen. Neste byte
           skrevet til kontrollregisteret m vre et maskeord. Dersom
           et utvalgt bit i maskeordet er satt vil den tilsvarende
           pinnen i parallellporten IKKE monitoreres for interrupt.
           Dersom bit 4 er satt, M det alts skrives et slikt
           maskeord til kontrollregisteret umiddelbart etterp.
           Uansett modus, ved  sette bit 4 til 1 vil alle ventende
           interrupts bli slettet.
Bit 0-3:   M settes til 0111 (identifiserer at dette er Interrupt
           Control Word). 

Interrupt Disable Word:

Bit 7 = 1: Skrur p interrupts
Bit 7 = 0: Skrur av interrupts
Bit 4-6:   Ubrukt
Bit 0-3:   M settes til 0011 (identifiserer at dette er Interrupt
           Disable Word). 

Interrupt Vector Word:

Bit 1-7:   Setter interrupt vektoren som skal benyttes ved interrupts
           (med implisitt 0 i minst signifikante bit). 
Bit 0:     M settes til 0 (identifiserer at dette er Interrupt Vector
           word). 

---
18 august 2002
Asbjrn Djupdal, djupdal@stud.ntnu.no
