@xxl: Cieszę się, że to latach negowania ND zacząłeś się uczyć do czego to w ogóle w Atari jest i jak działa.
Nie bardzo rozumiem Twoje obiekcje, bo:
1. PDVREG to nie jest żaden rejestr - kiedy CPU zapisuje pod ten adres każde ND sprawdza na magistrali danych stan odpowiadającego mu bitu i się aktywuje bądź nie - urządzenie w sobie ma odpowiednią elektronikę w której zapamiętuje swój stan i udostępnia lub nie swoje rzeczy w przestrzeni adresowej komputera używając sygnałów PBI.
2. PDVINT to nie jest żaden rejestr - kiedy cokolwiek czyta z tego adresu każde urządzenie wystawia status IRQ (o ile w ogóle urządzenie obsługuje IRQ) na odpowiadającym mu bicie magistrali danych.
3. ND nigdy nie aktywuje i nie dezaktywuje się samo z siebie - ZAWSZE robi to programista - czy to będziesz Ty czy OS to nie ma znaczenia.
4. Interakcja OS-a z ND następuje przy:
- RESET - wtedy OS przeprowadza detekcję urządzeń na magistrali i zapisuje sobie maskę PDVMSK żeby potem wiedzieć które urządzenia są obecne a które nie, po czym wywołuje procedurę inicjalizacyjną ND która to ustawia rejestry OS np. informując w PINTMSK czy obsługiwane są przerwania,
- SIO - wtedy OS zanim zabierze się za magistralę SIO odpytuje każde istniejące ND czy przypadkiem nie zajmuje się obsługą danego DEVID, dopiero kiedy żadne z ND się danym urządzeniem nie zajmuje odbywa się komunikacja przez SIO.
- IRQ - OS najpierw sprawdza czy nie nastąpił odczyt z SIO (jako że jest to operacja najbardziej krytyczna czasowo), następnie testuje czy któreś ND nie zgłosiło przerwania, w dalszej kolejności dopiero idzie reszta. Przy inicjalizacji ND ustawia maskę przerwań wskazując OS-owi czy obsługuje przerwania - OS uwzględnia ją czytając PDVINT bo na bitach magistrali danych nie dopowiadających jakiemukolwiek urządzeniu, albo kiedy urządzenie nie obsługuje przerwań są stany nieustalone.
5. Poza elektroniką obsługującą interakcje z Atari ND może mieć elektronikę która coś robi i działa całkowicie niezależnie od tego co się dzieje w Atari, stąd ND może zgłaszać IRQ, albo grać coś przez linię AUDIO. Szkoda, że nie może generować obrazu, ale co zrobić :/
Tak więc jeśli nie korzystasz z OS-a to wszystko leży w Twoich rękach.
W odnośnikach zewnętrznych http://atariki.krap.pl/index.php/PBI znajdziesz trochę informacji.
Polecam również link w http://atariki.krap.pl/index.php/ROM_PBI str. 32.
Edit: PDVINT a nie PDVSTAT.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje