SIO FIFO: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
mNie podano opisu zmian
mNie podano opisu zmian
Linia 1: Linia 1:
Rozszerzenie funkcji układu [[POKEY]] skonstruowane przez [[simius]a: dokłada do układu jednobajtowy bufor (FIFO) dla danych odbieranych przez komputer ze [[Gniazdo SIO|złącza szeregowego]]. Pozwala to na znaczne rozluźnienie wymagań co do czasu, w jakim procesor Atari musi odebrać bajt z [[Rejestry POKEY-a#SERIN|rejestru SERIN]] zanim nastąpi jego przepełnienie (serial overrun).
Rozszerzenie funkcji układu [[POKEY]] skonstruowane przez [[simius]]a: dokłada do układu jednobajtowy bufor (FIFO) dla danych odbieranych przez komputer ze [[Gniazdo SIO|złącza szeregowego]]. Pozwala to na znaczne rozluźnienie wymagań co do czasu, w jakim procesor Atari musi odebrać bajt z [[Rejestry POKEY-a#SERIN|rejestru SERIN]] zanim nastąpi jego przepełnienie (serial overrun).


Np. normalnie uzyskanie transmisji z szybkością 127 kbps wymaga zastosowania własnych procedur szeregowych, działających na zasadzie pollingu, oraz zastąpienia systemowej procedury [[VBL]] znacznie skróconą wersją. Jest to konieczne, gdyż przesłanie bajtu z tą szybkością trwa tylko ok. 140 cykli standardowego zegara 1,773 MHz, a zatem, przy normalnej aktywności układu [[ANTIC]], normalnie działających przerwaniach [[NMI]] i standardowych procedurach transmisji SIO działających na przerwaniach [[IRQ]], procesor nie nadąża z odbiorem i transmisja ulega zerwaniu. Natomiast przy użyciu SIO FIFO można uzyskać stabilny odczyt 127 kbps bez tych wszystkich szykan, wykorzystując procedury transmisji działające na IRQ i bez modyfikacji VBL.
Np. normalnie uzyskanie transmisji z szybkością 127 kbps wymaga zastosowania własnych procedur szeregowych, działających na zasadzie pollingu, oraz zastąpienia systemowej procedury [[VBL]] znacznie skróconą wersją. Jest to konieczne, gdyż przesłanie bajtu z tą szybkością trwa tylko ok. 140 cykli standardowego zegara 1,773 MHz, a zatem, przy normalnej aktywności układu [[ANTIC]], normalnie działających przerwaniach [[NMI]] i standardowych procedurach transmisji SIO działających na przerwaniach [[IRQ]], procesor nie nadąża z odbiorem i transmisja ulega zerwaniu. Natomiast przy użyciu SIO FIFO można uzyskać stabilny odczyt 127 kbps bez tych wszystkich szykan, wykorzystując procedury transmisji działające na IRQ i bez modyfikacji VBL.

Wersja z 8 sty 2014, 17:37

Rozszerzenie funkcji układu POKEY skonstruowane przez simiusa: dokłada do układu jednobajtowy bufor (FIFO) dla danych odbieranych przez komputer ze złącza szeregowego. Pozwala to na znaczne rozluźnienie wymagań co do czasu, w jakim procesor Atari musi odebrać bajt z rejestru SERIN zanim nastąpi jego przepełnienie (serial overrun).

Np. normalnie uzyskanie transmisji z szybkością 127 kbps wymaga zastosowania własnych procedur szeregowych, działających na zasadzie pollingu, oraz zastąpienia systemowej procedury VBL znacznie skróconą wersją. Jest to konieczne, gdyż przesłanie bajtu z tą szybkością trwa tylko ok. 140 cykli standardowego zegara 1,773 MHz, a zatem, przy normalnej aktywności układu ANTIC, normalnie działających przerwaniach NMI i standardowych procedurach transmisji SIO działających na przerwaniach IRQ, procesor nie nadąża z odbiorem i transmisja ulega zerwaniu. Natomiast przy użyciu SIO FIFO można uzyskać stabilny odczyt 127 kbps bez tych wszystkich szykan, wykorzystując procedury transmisji działające na IRQ i bez modyfikacji VBL.

Urządzenie ma formę płytki o wielkości 50x21mm i postać podstawki DIL40 pod POKEY. Montuje się ją w miejsce POKEY-a, a sam POKEY umieszcza się w podstawce na płytce.

SIO FIFO jest konfigurowalne i można je programowo ustawić w tryb przezroczysty, niezależnie od ustawionej w POKEY prędkości odbioru. Służy do tego nieużywany przez POKEY rejestr $D20C.

Wpis pod ten adres dowolnej wartości ze skasowanym najstarszym bitem (np. zerowanie rejestrów podczas inicjowania systemu) powoduje inicjalizację FIFO (czyli m.in. usunięcie wszystkich zalegających tam danych). Zapis wartości w postaci (binarnie) 10xxxxxx ustawia granicę przestawienia w tryb przezroczysty od wartości AUDF3 określonej przez sześć najmłodszych bitów, czyli $00-$3F. Dodatkowo, jeśli wpisywany bajt ma ustawiony 6 bit, wartość określona sześcioma najmłodszymi bitami zostanie potraktowana jako domyślna. Zatem wpisanie $80 przełączy urządzenie w tryb przezroczysty bez względu na baudrate, a wpisanie $C0 spowoduje, że zawsze będzie w takim trybie wstawało.

Zobacz też