Rejestry Multi I/O: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
mNie podano opisu zmian
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
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==
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)]]:

Aktualna wersja z 11 kwi 2010, 00:47

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ż