Partner WFG, 2FG, 1FG – CELOVIT OPIS STROJNE OPREME
9. SERIJSKA VRATA (Z80 SIO)
===========================
Partner vsebuje dva čipa Zilog Z80 SIO (Serial Input/Output), vsak z dvema neodvisnima serijnima kanaloma. SIO 1 na priključkih 0xD8–0xDB obsluguje tipkovnico (kanal A) in tiskalnik (kanal B). SIO 2 na priključkih 0xE0–0xE3 skrbi za komunikacijo z gostiteljem oziroma sistemom VAX (kanal A) in pomožno serijsko linijo (kanal B). Bit 0 naslova izbira med podatkovnim in nadzornim registrom; bit 1 izbira med kanaloma A in B.
9.1 SIO 1: tipkovnica in tiskalnik (0xD8–0xDB)
| Priključek | Dec | Opis | Smer | Opomba |
0xD8 | 216 | Podatki – kanal A | V/I | Tipkovnica |
0xD9 | 217 | Nadzor – kanal A | V/I | Stanje in konfiguracija tipkovnice |
0xDA | 218 | Podatki – kanal B | V/I | Tiskalnik |
0xDB | 219 | Nadzor – kanal B | V/I | Stanje in konfiguracija tiskalnika |
9.2 SIO 2: gostitelj / VAX (0xE0–0xE3)
| Priključek | Dec | Opis | Smer | Opomba |
0xE0 | 224 | Podatki – kanal A | V/I | Gostitelj / VAX |
0xE1 | 225 | Nadzor – kanal A | V/I | Stanje in konfiguracija |
0xE2 | 226 | Podatki – kanal B | V/I | Pomožna serijska linija |
0xE3 | 227 | Nadzor – kanal B | V/I | Stanje in konfiguracija |
0xE4 | 228 | Vzporedni naslov podatkov A | Vhod | Alias za 0xE0 v tej razporeditvi |
9.3 Najpomembnejši biti stanja (RR0)
| Bit | Ime | Opis |
| 0 | RX_AVAIL | Sprejeti znak na voljo za branje |
| 2 | TX_EMPTY | Oddajni vmesnik prazen, pripravljen za pošiljanje |
| 3 | DCD | Zaznana prisotnost nosilca (Data Carrier Detect) |
| 5 | CTS | Jasno za pošiljanje (Clear to Send) |
Partner WFG, 2FG, 1FG – CELOVIT OPIS STROJNE OPREME
9.4 Primer: pošiljanje znaka prek SIO 2 kanal A
Primer: Inicializacija SIO 2 kanal A in pošiljanje znaka
init_sio2:
; --- WR0: Ponastavi kanal A ---
ld a, #0x18 ; Ukaz: ponastavi kanal
out (#0xE1), a
; --- WR4: Nastavitev enote (x16 takt, 1 stop bit, brez paritete) ---
ld a, #0x04 ; Izberi WR4
out (#0xE1), a
ld a, #0x44 ; x16 takt, 1 stop bit, brez paritete
out (#0xE1), a
; --- WR3: Omogoči sprejemnik (8 bitov / znak) ---
ld a, #0x03 ; Izberi WR3
out (#0xE1), a
ld a, #0xC1 ; 8 bitov, sprejemnik omogočen
out (#0xE1), a
; --- WR5: Omogoči oddajnik (8 bitov / znak) ---
ld a, #0x05 ; Izberi WR5
out (#0xE1), a
ld a, #0xEA ; DTR, 8 bitov, oddajnik omogočen, RTS
out (#0xE1), a
ret
pošlji_znak:
; Počakaj, da je oddajni vmesnik prazen
.cakaj:
in a, (#0xE1) ; Preberi RR0
bit 2, a ; TX_EMPTY (bit 2)
jr z, .cakaj ; Čakaj, če ne prazen
; Pošlji znak v registru C
ld a, c
out (#0xE0), a ; Zapiši na podatkovni register
ret