1

zalozmy, ze istnieje urzadzenie ktore podlaczy swoja pamiec w obszar D800-DFFF

nastepnie aplikacja ktora nic nie wie o urzadzeniach zewnetrznch odlaczy ROM w rejestrze PORTB to czy MMU Atari jest na tle sprytne ze odlaczy takze pamiec tego urzadzenia i podlozy tam RAM tak jak powinno byc?

http://atari.pl/hsc/ad.php?i=1.

2

Załóżmy, że napiszesz, jakie to urządzenie. Wtedy może się okaże, że ktoś je posiada i to sprawdzi.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

3

rozmawiamy o mechanizmie dzialania a nie jakims konkretnym urzadzeniu...

http://atari.pl/hsc/ad.php?i=1.

4 Ostatnio edytowany przez tOri (2021-03-12 20:27:20)

Cześć,

Jeżeli urządzenie [ND] zostanie wybrane, wtedy podłącza swój ROM w to miejsce, co jest niezależne od podłączonego/odłączonego OS ROM. ND ma swój dekoder adresowy niezależny od MMU. Inny software nic nie musi wiedzieć ponieważ w czasie, gdy trwa obsługa operacji ND nic innego nie zostanie wykonane (chyba, że jakieś przerwanie) więc tu raczej nie ma możliwości kolizji. Po wykonaniu operacji uprzednio wybrane ND jest odłączane. Nie może pozostać "wiszące" ponieważ kolidowałoby to ogólnie z działaniem systemu, np. inne urządzenia nie mogłyby działać i także byłby problem z dostępem do RAM pod ROM.

https://www.atarimagazines.com/v3n9/Parallel_Bus.html

Pozdrawiam

P.S. O tym co się dzieje powinien decydować sygnał /MPD. MMU podczas jego aktywności nie powinien pozwolić na podłączenie czegokolwiek w obszar $D800-$DFFF. ND samo dekoduje ten zakres. Tak mówi logika, a jak jest w rzeczywistości?

Różne różności dla Atari i nie tylko - przydatne, bądź nie ale i tak warto zajrzeć...
http://atari.myftp.org  Atari - Power without price and necessary elements with some sh*t onboard
https://reversing.pl SSL enabled site

5

nie....
mowie o urzadzeniu ktore:

ma byc niezauwazane przez system czyli aktywne jesli "Hardware Select register" = 0, aktywne oznacza ma podmienic ROM w obszarze D800-DFFF ale nie moze kolidowac z:
- zarzadzaniem pamieci czyli PORTB ma dzialac standardowo - nie moze byc sytuacji ze zapis do PORTB wylaczajacy ROM przy D1FF = 0 nie wylaczyl ROM w adresie D800-DFFF (a nie w taki sposob jak przy new device ze nawet jak aplikacja wylaczy rom a urzadzenie upierdzi sobie ze akurat ma tam swoja pamiec to nagle tracimy 2 kb RAM nic o tym nawet nie wiedzac...)
- ma nie kolidowac jesli w Hardware Select register jakikolwiek bit jest zapalony

zalozmy na poczatek ze to urzadzenie podlaczy swoja pamiec z kopia zawartosci ROM obecnego. gdzie moze pojawic sie sprzetowy problem?

http://atari.pl/hsc/ad.php?i=1.

6 Ostatnio edytowany przez tOri (2021-03-12 21:35:25)

Takie urządzenie, które podmieni ROM w obszarze $D800-$DFFF można wymyślić. Po prostu w odpowiedzi na jakiś warunek logiczny urządzenie wystawi /MPD i odblokuje jednocześnie swój dekoder.

Możesz zrobić sprawdzenie priorytetów sam - w taki na przykład sposób:

1. Najpierw sprawdzasz obecność danych ROM Mathpack. Zakłądam, że jest OK
2. Dołączasz pin /MPD na złączu ECI do masy (odłączasz obszar ROM) i sprawdzasz zawartość obszaru (powinny być same #$FF bo nic tam nie powinno być dane wiszą w powietrzu czyli "1")
3. Poprzez PORTB odłączasz ROM i sprawdzasz czy masz dostęp do RAM pod ROM oczywiście w taki sposób aby OS się nie załamał.

Jeśli będziesz mieć dostęp do RAM mimo obecności aktywnego /MPD to będzie oznaczało, że priorytet ma PORTB i odłączenie ROM bitem 0, wtedy zawsze będziesz mieć dostęp do RAM pod ROM niezależnie od innych sygnałów (poza CasInhibit)

Różne różności dla Atari i nie tylko - przydatne, bądź nie ale i tak warto zajrzeć...
http://atari.myftp.org  Atari - Power without price and necessary elements with some sh*t onboard
https://reversing.pl SSL enabled site

7 Ostatnio edytowany przez xxl (2021-03-12 22:33:08)

to jeszcze inaczej zapytam

1.
zalozmy ze urzadzenie podpiete do eci/car ma byc aktywowane jak wszystkie inne ND poprzez D1FF wrazliwe na konfiurowany wlasny bit 0-7. to czy jest mozliwosc ze jak nie bedzie podlaczalo wlasnej tabliy D800-D81C to przy reset system sie nie zawiesi?

jesli sie nie zawiesi i jestesmy w stanie "zarezerwowac" bit dla siebie to ok. nie chce rejestrowac urzadzenia ale moge sie zgodzic na wpolistnienie takich urzadzen i zajac ktorys bit w d1ff

natomiast jesli nie, to godzimy sie na wspolistnienie innych urzadzen ale zajmujemy kombinacje 0 czyli odlaczone wszystkie ND i po problemie

2.
nie wiem czy MMU moze "zapamietac" ostatnia wartosc wpisana do D1FF (bo jesli moze to sprawy nie ma jak w D1FF = 0 i zapis do PORTB wylacza ROM to ma wylaczyc ROM niezaleznie od tego czy ten MPD jest w stanie wysokim czy nie) natomiast jesli nie wie co bylo zapisane do D1FF to czy dla "systemu" ma to jakies negatywne nastepstwa jesli ewentualny zapis do portb wylaczyc OS przy ustawionym ktoryms bicie D1FF i niebezpieczenstwie ze ktores urzadzenie mialo tam swoja pamiec? - czy taka stuacja wstepuje? chyba tylko gdybysmy mieli skopiowany ROM do RAM i wywolywali new device?

http://atari.pl/hsc/ad.php?i=1.

8

1) opisujesz urządzenie w xml czy czego tam aktualna wersja altirry używa i sprawdzasz
2) nie, mmu nie ma żadnych elementów pamiętających

przechodze na tumiwisizm

9

1. mozemy podlaczc do 8 urzadzen tego typu ale gdybysmy chcieli zeby kazde zarejestrowalo sie w hatabs to braknie miejsca 11-6 (zakladam ze mamy D: ) braknie miejsca dla 3 urzadzen i w..l sie userze ? troche to nie przemyslane...

2. nawet jak urzadzenie nie bedzie rejestrowalo sie w hatabs to musi miec swoj identfikator... a co jesli urzadzenie nie ma identyfikatora? np. najprostrze z nich: rozszerzenie pamieci?

http://atari.pl/hsc/ad.php?i=1.

10

1) zgniłe kompromisy - urządzenia przedłużają wektory i tak możemy mieć więcej niż jedno urządzenie D: - po prostu ostatnie zarejestrowane sprawdzi czy to ono jest wołane, a jeśli nie, przekaże kontrolę do poprzedniego i tak aż przejdziemy do procedury systemowej
2) to, że urządzenie korzysta z jakiegoś złącza nie implikuję, że jest ono urządzeniem typu ND - np standardowe rozszerzenie pamięci nim nie jest, nawet jeśli korzysta ze złącza PBI czy CART/ECI

przechodze na tumiwisizm

11

1 - a kto powiedzial ze to musi byc cos w D: podobie? masz urzadzenia ktore nie sa pamieciami masowymi 8 sztuk i dupa blada - taki "przemyslany" system

2 - prawda. ale jednak jak urzadzenia w ramach ND moga sobie wlaczac i wylaczac D8xx-DF to nie ma zartow tylko trzeba skanowac D1FF i dupa blada, podlaczasz urzadzenie ktore nie jest ND ale i tak musisz !!! SPRZETOWO !!! sprawdzac czy ktores ktore jest ND nie podlaczy swojej pamieci a pozniej OS nie "przywroci" jakiegos innego.

Jedyna mozliwosc podpiecia takich urzadzen to zajecie kombinacji 00000000 ktora OS uwaza za "nic nie ma" :D i na drodze sprzetowej rozliczac D1FF ... "przemyslany system"

http://atari.pl/hsc/ad.php?i=1.

12

turbo badziewny system NevDevice bo jak na 8 kart ktore instaluja swoj sterownik a jedna z nich jest jednak urzadzeniem do podlaczenia np. dysku to kolejnosc kart bedzie miala znaczenie hehe, podlaczysz jako nr 7 lub 8 i nawet DOSa nie zaladujesz :D jedne co mozna bedzie zrobic to boot z dysku bez instalacji sterownika D:

http://atari.pl/hsc/ad.php?i=1.

13

Przyjacielu. ND nie musi być urządzeniem CIO.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

14 Ostatnio edytowany przez xxl (2021-03-13 12:43:49)

a jak jest?

a jak urzadzneie nie ma swojego ID bo nie bedzie wywolywane przez procedury I/O, nie ma wlasnej tablicy, to moge podlaczyc takie urzadzenie?

http://atari.pl/hsc/ad.php?i=1.

15 Ostatnio edytowany przez Pin (2021-03-13 14:06:32)

Znowu jakaś krucjata.

Od strony technicznej to widzę to tak, że mając takie urządzenia NewDevice podłączone jednocześnie:

1. rapidus
2. karin maxi
3. ideplus#1
4. ideplus#2
5 side2/U1MB PBI bios

Nie miałem żadnych problemów z którymkolwiek z tych urządzeń. Wszystko razem ładnie współpracuje.

Fakt tylko taki, że nie każdy komputer w takim tandemie będzie stabilny.

Kontakt: pin@usdk.pl

16

@xxl: Zwróć uwagę, że Rapidus i U1MB w tym wykazie nie są ani urządzeniami CIO ani SIO.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

17

czyli to powinno być nawet 6 urządzeń jednocześnie. Tutaj dodałem U1MB do Side2 bo tylko wówczas side2 jest ND.

I działa to bez problemu i jakoś nie było problemu z bootowaniem urządzenia IDx ND z takiej listy - cokolwiek by to nie było.

Kontakt: pin@usdk.pl

18

Pin wogole nie odnosisz sie do tematu watku,

Mono: nie mowimy o urzadzeniach (o tym zaraz) tylko o systemie NevDevice: ND pozwala na podlaczenie 8 takich urzadzen, jesli sa to urzadzenia ktore instaluja sterownik (CIO) np. kazde inny to przy 6 system sie zawala i nie chodzi o to czy komputer bedzie w stanie udzwinac to elektrcznie tylko to ze brakuje miejsca w tablicy hatabs
sprawa dwa, nawet jesli urzadzenie nie instaluje swojego symbolu w tablicy hatabs to i tam musi miec smbol ID dla podsystemu SIO i tablice podlaczana pod D8xx

a teraz o urzadzeniach: pytanie brzmi czy mozna podlaczyc urzadzenie ktore nie ma swojego ID dla podsystemu SIO, nie ma tablicy pod D8 a moze podmienic pamiec D800-DFFF - jesli ktores z urzadzen ktore wymieniles to potrafia to jestem zainteresowany czy odbywa sie to na tej zasadzie ze urzadzenie podlacza swoja pamiec TYLKO wtedy gdy w D1FF = 0 czyli ZLEWA caly system NevDevice.
pytanie dwa: czy takie urzadzenie moze rowniez (czy w gniezdzie car i eci sa do tego odpowiednie linie) "pamietac" co bylo zapisywane do portb?

http://atari.pl/hsc/ad.php?i=1.

19 Ostatnio edytowany przez mono (2021-03-13 15:19:54)

Takich rzeczy jest więcej, np. olewanie ZLOADA przy ładowaniu sterowników relokowalnych przez ACX.

Pytanie jeden kieruj do Autorów rozwiązań hardware'owych.

Pytanie dwa - na szynie są wszystkie odpowiednie sygnały żeby skanować operacje realizowane przez cokolwiek na całej pamięci.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

20 Ostatnio edytowany przez tOri (2021-03-13 18:37:02)

W kwestie obsługi programowej nie będę wnikał.

Można zaprojektować urządzenie olewające cały mechanizm ND i podłączające swoją pamięć w obszar $D800-$DFFF. Wystarczy by logika urządzenia wystawiała /MPD w odpowiedzi na konkretny warunek logiczny (niekoniecznie związany z $D1FF) i jednocześnie uruchamiała własny dekoder adresowy sterujący czymkolwiek. Może włączyć w ten obszar również rejestry sprzętowe, pamięć RAM, do koloru - do wyboru. Takie urządzenie może również "obserwować" szynę adresową oraz danych i zapamiętywać to co zostało zapisane, np. do PORTB. Co należy najpierw uczynić?

Dokładnie określić założenia - co to ma robić.

P.S. Oczywiście zapamiętując to co zostało zapisane do PORTB może także używać tych danych do sterowania, czyli zwalniać obszar $D800-$DFFF w razie gdy bit 0 PORTB odłączy OS ROM. Na przykład...

Różne różności dla Atari i nie tylko - przydatne, bądź nie ale i tak warto zajrzeć...
http://atari.myftp.org  Atari - Power without price and necessary elements with some sh*t onboard
https://reversing.pl SSL enabled site

21

xxl napisał/a:

a teraz o urzadzeniach: pytanie brzmi czy mozna podlaczyc urzadzenie ktore nie ma swojego ID dla podsystemu SIO, nie ma tablicy pod D8 a moze podmienic pamiec D800-DFFF

Oprócz pamięci w 100% Twoje założenie spełnia jedno z istniejących urządzeń - C:
Co do reszty - robisz sobie urządzenie, które samodzielnie zarządza resztą (takie nowe 1090), od strony Atari widzisz TYLKO JE, a dalszymi zarządza już to urządzenie według własnych potrzeb, de facto Atari używa wtedy 1 nazwy urządzenia, a jak są podpięte inne to już sprawa programowo-sprzętowa. Nie będąc elektronikiem tak to widzę, mogę się mylić.

Sikor umarł...

22 Ostatnio edytowany przez Simius (2021-03-13 21:08:39)

@xxl
Co to w ogóle za pytanie? Nowe urządzenia obsługiwane są przez OS, który je uruchamia po kolei, ustawiając kolejne bity w rejestrze $D1FF. Uruchamia je tylko na czas przeprowadzenia operacji, po czym wyłącza. Kiedy już jakaś aplikacja jest załadowana i zostaje uruchomiona, żadne z urządzeń nie jest już aktywne. Z kolei po wyłączeniu OS ROM przez PORTB nie ma komu włączyć nowego urządzenia. Opisujesz sytuację, która w normalnym trybie ogóle nie wystąpi. Możesz ją co najwyżej sam sztucznie wywołać, uruchamiając nowe urządzenie bez udziału OS, a następnie wyłączając OSROM. Jak się wtedy zachowa nowe urządzenie? Będzie na swoim miejscu. Pamięć nowego urządzenia (wcale niekoniecznie ROM, bo częściowo może to być też RAM) pozostanie nadal obecna w obszarze $D800..DFFF. Bo MMU nie traktuje jej jako części OS ROM, włączanej i wyłączanej przez PORTB, tylko jako zupełnie odrębną przestrzeń adresową, niezależną od stanu PORTB. MMU w ogóle nie ma żadnej linii, przez która mógłby wpływać na pamięć nowego urządzenia. MMU wyłącza tylko ROM w tym obszarze w odpowiedzi na niski stan MPD.

Edit:
Nie jestem pewny na 100% i w tej chwili tego nie sprawdzę, ale jeśli dobrze pamiętam, jedynym problemem w sytuacji, kiedy wyłączony jest OS ROM a nowe urządzenie aktywne, może być konflikt z pamięcią RAM, której MPD nie wyłącza, a która powinna zostać wyłączona przez nowe urządzenie przy użyciu EXSEL.

Ceterum censeo Germaniam esse delendam.

23

skopiujesz rrom do ram, wylaczysz rom i odwolasz sie do ND i masz taka stuacje. poza tym ND nie musi byc interfejscem dla pamieci masowych...

http://atari.pl/hsc/ad.php?i=1.

24

OK, przepiszesz ROM do RAM, wyłączysz ROM, odwołasz się do ND, ND wyłączy RAM w obszarze ND przez EXSEL i co dalej spodziewasz się uzyskać? Możesz sobie w tej sytuacji kłapać bitem 0 PORTB ile tylko chcesz, a sytuacja pozostanie tylko taka, że poza przestrzenią adresową ND będziesz miał albo ROM, albo RAM, a ND będzie się twardo wtrzymać na swoim miejscu.

Ceterum censeo Germaniam esse delendam.

25

no i elegancko. a teraz pytanie czy ND musi miec tablice na poczatku D8xx - czy moze byc urzadzenie ktore NIE ma ani ID dla SIO ani nie rejestruje sie w hatabs - np. po ustawieniu bitu w d1ff podlaczy pusta pamiec do d8 ... jest to mozliwe?

jesli nie jest. to mamy sytuacje w ktorej musimy sprawdzac d1ff i jesli jest <> 0 to nasze urzadzenie nie moze podlaczac swojej pamieci w d8 - to jest to olewanie systemu ND.

dodatkowo, musi sprawdzac portb na wypadek gdy user odlaczy OSROM i oczekuje ze w D8 ma ram a tu dupa.

http://atari.pl/hsc/ad.php?i=1.