Rejestry Multi I/O

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 18:12, 6 kwi 2010
KMK (Dyskusja | wkład)

← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)
(Procedura dostępu)
Linia 1: Linia 1:
-====Procedura dostępu====+==Procedura dostępu==
-Poniżej wymienione rejestry nie są dostępne wprost. Stają się dostępne po wybraniu urządzenia odpowiednim dla niego bitem w rejestrze [[Rejestry PBI#PDVREG|PDVREG ($D1FF)]]. System operacyjny komputera wykonuje to automatycznie przy każdym resecie (celem zainicjowania urządzeń) oraz przy odwołaniach do [[SIO]] (celem przeprowadzenia transferu danych).+Poniżej wymienione rejestry dostępne są zawsze, gdy [[Multi I/O]] jest podłączone do komputera - rejestr [[Rejestry PBI#PDVREG|PDVREG ($D1FF)]], teoretycznie służący do wyboru konkretnego urządzenia [[PBI]], służy w Multi I/O tylko jako rejestr wyboru banku ROM-u, jaki ma się pojawić w obszarze [[ROM PBI|ROM-u PBI]]. System operacyjny komputera wybiera je automatycznie przy każdym resecie (celem zainicjowania urządzeń) oraz przy odwołaniach do [[SIO]] (celem przeprowadzenia transferu danych).
-====Lista rejestrów====+==Lista rejestrów==
<table border = 1 cellpadding = 5> <table border = 1 cellpadding = 5>
Linia 30: Linia 30:
<tr><td>$D1E0 (R)</td><td>SCSI RESET</td><td>Reset magistrali SCSI.</td></tr> <tr><td>$D1E0 (R)</td><td>SCSI RESET</td><td>Reset magistrali SCSI.</td></tr>
-<tr><td>$D1E0 (W)</td><td>MIO0</td><td>Bity 15-8 adresu pamięci widocznej pod $D600.</td></tr>+<tr><td>$D1E0 (W)</td><td>MIORAM</td><td>Bity 15-8 adresu pamięci widocznej pod $D600.</td></tr>
<tr><td>$D1E1</td><td>DATA</td><td>Rejestr danych.</td></tr> <tr><td>$D1E1</td><td>DATA</td><td>Rejestr danych.</td></tr>
-<tr><td>$D1E2 (R)</td><td>GPIO</td><td>Rejestr wejściowy ogólnego przeznaczenia.</td></tr>+<tr><td>$D1E2 (R)</td><td>GPIO</td><td>Rejestr wejściowy ogólnego przeznaczenia:
 +* bit 7 = 1 - [http://en.wikipedia.org/wiki/Shugart_Associates_System_Interface#History SASI] REQ-
 +* bit 6 = 1 - drukarka zajęta
 +* bit 5 = 1 - SASI BUSY-
 +* bit 4 = 0 - błąd drukarki
 +* bit 3 - zarezerwowany
 +* bit 2 = 1 - SASI I/O-
 +* bit 1 = 1 - SASI MSG-
 +* bit 0 = 1 - SASI C/D-
 +<p>Odczyt kasuje sygnał RST-</p>
 +</td></tr>
-<tr><td>$D1E2 (W)</td><td>GPIO</td><td>Rejestr wyjściowy ogólnego przeznaczenia.</td></tr>+<tr><td>$D1E2 (W)</td><td>GPIO</td><td>Rejestr wyjściowy ogólnego przeznaczenia:
 +* bit 7 = 1 - włączenie przerwań [[IRQ]] pochodzących z Multi I/O
 +* bit 6 = 1 - ustawienie linii STROBE-
 +* bit 5 = 1 - włączenie dostępu do wewnętrznego [[RAM]]-u przez "okno" pod $D600-$D6FF
 +* bit 4 = 1 - ustawienie linii SEL-
 +<p>Bity 3-0 odpowiadają bitom 19-16 adresu wewnętrznej pamięci RAM Multi I/O (lub inaczej, numerowi banku 64k tej pamięci).</p>
 +</td></tr>
<tr><td>$D1E3 (R)</td><td>MIO CTRL</td><td>Rejestr-cień [[Rejestry PBI#PDVINT|PDVINT ($D1FF)]]: <tr><td>$D1E3 (R)</td><td>MIO CTRL</td><td>Rejestr-cień [[Rejestry PBI#PDVINT|PDVINT ($D1FF)]]:
Linia 57: Linia 73:
</table> </table>
-====Zobacz też:====+==Zobacz też==
- +
* [[Multi I/O]] * [[Multi I/O]]
* [[Mapa pamięci]] * [[Mapa pamięci]]
[[Kategoria:Programowanie Atari 8-bit]] [[Kategoria:Programowanie Atari 8-bit]]

Aktualna wersja

Procedura dostępu

Poniżej wymienione rejestry dostępne są zawsze, gdy Multi I/O jest podłączone do komputera - rejestr PDVREG ($D1FF), teoretycznie służący do wyboru konkretnego urządzenia PBI, służy w Multi I/O tylko jako rejestr wyboru banku ROM-u, jaki ma się pojawić w obszarze ROM-u PBI. System operacyjny komputera wybiera je automatycznie przy każdym resecie (celem zainicjowania urządzeń) oraz przy odwołaniach do SIO (celem przeprowadzenia transferu danych).

Lista rejestrów

AdresEtykietaOpis
$D1C0 (R)ACIA RECEIVEPort wejściowy układu ACIA.
$D1C0 (W)ACIA TRANSMITPort wyjściowy układu ACIA.
$D1C1 (R)ACIA STATUSRejestr statusu ACIA:
  • bit 7 = 1 - IRQ wystąpiło
  • bit 4 = 1 - rejestr wyjściowy jest opróżniony (= wpisany poprzednio bajt wysłano)
  • bit 3 = 1 - rejestr wejściowy jest pełny (= przysłany bajt jest gotowy do odebrania)
  • bit 2 = 1 - przepełnienie bufora wejściowego (serial overrun)
  • bit 1 = 1 - framing error
  • bit 0 = 1 - błąd parzystości

Odczyt kasuje stan IRQ.

$D1C1 (W)ACIA RESETReset układu ACIA. Zapisywana wartość jest obojętna.
$D1C2ACIA COMMANDRejestr komend układu ACIA.
$D1C3ACIA CONTROLRejestr kontrolny układu ACIA.
$D1E0 (R)SCSI RESETReset magistrali SCSI.
$D1E0 (W)MIORAMBity 15-8 adresu pamięci widocznej pod $D600.
$D1E1DATARejestr danych.
$D1E2 (R)GPIORejestr wejściowy ogólnego przeznaczenia:
  • bit 7 = 1 - SASI REQ-
  • bit 6 = 1 - drukarka zajęta
  • bit 5 = 1 - SASI BUSY-
  • bit 4 = 0 - błąd drukarki
  • bit 3 - zarezerwowany
  • bit 2 = 1 - SASI I/O-
  • bit 1 = 1 - SASI MSG-
  • bit 0 = 1 - SASI C/D-

Odczyt kasuje sygnał RST-

$D1E2 (W)GPIORejestr wyjściowy ogólnego przeznaczenia:
  • bit 7 = 1 - włączenie przerwań IRQ pochodzących z Multi I/O
  • bit 6 = 1 - ustawienie linii STROBE-
  • bit 5 = 1 - włączenie dostępu do wewnętrznego RAM-u przez "okno" pod $D600-$D6FF
  • bit 4 = 1 - ustawienie linii SEL-

Bity 3-0 odpowiadają bitom 19-16 adresu wewnętrznej pamięci RAM Multi I/O (lub inaczej, numerowi banku 64k tej pamięci).

$D1E3 (R)MIO CTRLRejestr-cień PDVINT ($D1FF):
  • bit 4 = 1 - Multi I/O zgłasza IRQ
  • bit 3 = 1 - IRQ sygnalizuje, że drukarka jest zajęta
  • bit 2 = 1 - linia CTS portu RS-232
  • bit 1 = 1 - linia DSR portu RS-232
  • bit 0 = 1 - linia DCD portu RS-232

Pozostałe bity są zarezerwowane i równe 0.

$D1E3 (W)MIO CTRLRejestr-cień PDVREG ($D1FF):
  • bit 5 = 1 - bank nr 1 programu SETUP
  • bit 4 = 1 - bank ze sterownikami drukarki (P:) i RS-232 (R:)
  • bit 3 = 1 - bank nr 2 programu SETUP
  • bit 2 = 1 - bank interfejsu dyskowego SIO

Pozostałe bity są zarezerwowane.

Zobacz też

Personal tools