toriman napisał/a:EXTSEL~ do pracy urządzeń PBI nie jest niezbędny... Właściwie... jest niepotrzebny :)
Jak pewnie wszyscy wiedzą, na elektronice się znam tyle co nic. Myślę jednak, że się mylisz. Bez ExtSel urządzenia PBI nie mogłyby działać, to po pierwsze. Po drugie, ten sygnał daje właśnie możliwości ingerencji z zewnątrz (przez PBI) w obszar poza rejestrami I/O.
Wyjaśniam pierwsze: jak sam napisałeś, "Całość PBI ma z założeń OS zawierać się w obszarach $D1XX, $D6XX, $D7XX, $D8XX" - no właśnie. Pod $D8XX (w rzeczywistości - pod $D800-$DFFF) jest pakiet matematyczny i zarazem jest to miejsce przeznaczone na wewnętrzną pamięć urządzenia PBI (z założenia jest to pamięć ROM z programem jego obsługi). Urządzenie PBI, żeby podstawić tam własną pamięć, musi usunąć pakiet matematyczny. Służy do tego sygnał MPD - po jego zapodaniu komputerowi w miejscu pakietu FP pojawia się pustka. Do tego, żeby komputer zamiast pustki zobaczył w tym miejscu pamięć urządzenia, służy właśnie sygnał ExtSel. Pojawienie się zaś tej pamięci tamże jest gwożdziem programu - bez tego urządzenie PBI nie może być zainicjowane w czasie RESET-u, czyli przekładając to na ludzką codzienność: komputer np. nie może się zbootować z twardego dysku.
Wyjaśniam drugie: sygnał ExtSel bynajmniej nie służy do maskowania układów I/O siedzących sobie na D0, D2, D3 i D4. Założenie jest takie, że one sobie tam cały czas są. Dla *rejestrów* I/O zlokalizowanych na PBI (czyli na zewnątrz kompa, w układzie wpiętym przez PBI) przeznaczona jest strona D1 (na temat stron D6 i D7 panuje w dokumentacji Atari takie zamieszanie, że właściwie nie wiadomo, jakie miało być przeznaczenie - prawdodpodobnie samo Atari nie zdążyło się zdecydować, zanim projekt 1090 poleciał do kosza). Tak więc na D1 mają być rejestry urządzenia, a na D8-DF jego program obsługi. Jedno i drugie dostępne jest tylko wtedy, kiedy urządznie jest "wybrane" przez ustawienie bitu w rejestrze $D1FF - jeśli nie jest, na D1 nic nie ma, a pod D8-DF jest pakiet FP.
Gwarantuję ci, że to wystarcza i świetnie działa :) Ale na tym nie koniec.
Jak sam zauważyłeś, przez ExtSel można wstawić cokolwiek gdziekolwiek - podałeś przykład rejestrów I/O umieszczonych w obszarze $2000-$3FFF. Można tak zrobić, tylko że to jest bez sensu - gdyż rejestry I/O dodatkowych układów świetnie zmieszczą się na D1, gdzie jest od pyty miejsca (8 x 255 bajtów, gdyby się kto uparł). Poza ten obszar (czyli m.in. np. pod $2000-$3FFF) można za to wstawić zgoła coś innego, co sie będzie tam bardziej nadawać.
Patrz niżej.
powiem tylko - pomysł fajny ale w praktyce poważnie skomplikowany :( zwłaszcza, że istnieją już urządzenia
PBI samodzielnie obsługujące szynę...
Wiem, że istnieją, sam mam na sumieniu jedno. Tylko że to nie jest "way to go" - dlatego że np. interfejs twardego dysku wsadzony w gniazdo CART/ECI ... no, co robi? Blokuje to gniazdo, tak jest. Przeto bez dziwacznych łamańców (urządzenia przelotowe, piramidki gniazdek, węże interfejsów) nie da się wykorzystać tego, co oferuje system - to znaczy podpięcia ośmiu urządzeń na raz. Trzeba po prostu skończyć z partyzantką - epoka urządzeń PBI niezależnych jedno od drugiego, albo co gorsza gryzących się miedzy sobą ma odejść w przeszłość, tam gdzie jej miejsce, bo to nie tak miało wyglądać - założenia Atari były inne. Miał byc moduł 1090 (= rozgałęziacz) ze slotami na karty. Trzeba po prostu do tego wrócić, skoro możemy.
No i architektura Atari nie wygląda tak jak, np. w PC... Nie jest zbyt otwarta
Właśnie PBI czyni ją otwartą. Wprawdzie slotów PBI nie ma bezpośrednio na płycie głównej, a rozgałęziacz nie jest zintegrowany z płytą, ale co to za różnica - funkcjonalnie żadna. Chodzi o to, żeby można było sobie skonstruować system nie grzebiąc we wnętrzu atarynki, i żeby uniknąć konfliktów między rozszerzeniami (jak VBXE vs Covox). Ktoś chce miec kartę z Covoxem, z dwoma przetwornikami? A nawet z dwudziestoma, proszę bardzo. Jednocześnie VBXE mające 32 rejestry? A czemu nie. A twardy dysk (64 bajty zajmuje)? Proszę uprzejmie. Karta graficzna, RS-232, ethernet, bógwico? Proszę bardzo - jeśli każdy slot będzie miał dla siebie całą stronę (dekodowaną w momencie wybrania urządzenia na D1), to wszystko nie będzie się gryźć. Będzie 8x255 wolnych rejestrów do dyspozycji.
Więcej - sygnał ExtSel pozwala podstawić z zewnątrz całą przestrzeń adresową komputera (czego dowodem jest moduł 64k dla 600XL, podpinany przez PBI) - a to znaczy, że można zrobić KARTĘ GRAFICZNĄ Z DMA.
To znaczy, wyłączyć Antica, a za to podstawić układ zewnętrzny, który - na przykład - będzie z Antikiem zgodny w dół, ale będzie miał nowe możliwości. Oczywiście rejestry będa gdzie indziej, bo Antic sam się dekoduje i nic mu nie można zrobić, ale poza tym zewnętrzna karta może interpretować DL po staremu i skanować pamięć atarynki (HALT jest na PBI, a jakże), dzięki czemu mozna zrobić nie tylko lepsze GTIA (jak electron zrobił VBXE) - ale tez lepszego Antica.
Mi osobiście taki bajer nie byłby potrzebny, mi by wystarczyła karta, która "robi" 80-kolumnowy tryb tekstowy przez PBI. Ale myślę, warto podkreślić, że możliwości PBI są sporo większe.