1

Temat: Kto zapisuje pamięc kiedy pojawia się HALT?

Cześć.

A800XL z Freddie. Wsadziłem 6502 w podstawkę i podpiąłem kilka drutów z magistrali sterującej do analizatora. Puściłem całość do momentu właczenia do pojawienia się napisu READY. Chciałem zobaczyć kiedy pojawia się sygnał ~HALT względem Fi2 i czy sa jakies problemy zaraz po resecie. Są ale ...

... kiedy aktywowany jest ~HALT *czasami* pojawia się stan niski na R/~W. Nie wiem kto go tam wystawia. Wydawało mi się że zapis do pamięci jest możliwy tylko przez CPU. Tymczasem obserwuje że niekoniecznie. Czy ANTIC zapisuje pamięć? Do tej pory byłem pewny że on tylko czyta.

Nie pomyliłem drutów. Na ~HALT znakomicie widać sekwencja odświeżania RAM przez ANTICa. Widać również jak po NMI procesor czyta pamięć i robi push na stos. Zakładam więc że grubej pomyłki nie mam. Ponadto raczej wszystko się zgadza poza tym ~W podczas ~HALT.

Zapewne przeoczyłem coś oczywistego. Czy ktoś mógłby mnie oświecić?

Dorzucam jeśli kogoś to interesuje, plik vcd z analizatora (130MB):

https://drive.google.com/open?id=0B_tde … FlKaEs1NGM

Da się obejrzeć np. GtkWave.

Dorzuciłem zrzut z analizatora z taką sytuacją kiedy jest jednocześnie HALT i W oraz Fi2 robi oba zbocza.

Ostatnio edytowany przez heby (2016-10-30 18:56:45)

Post's attachments

halt write.png 39.5 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

2

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

Witaj,

A gdzie masz stan zrzucony stan linii CI (CAS Inhibit) z MMU? Może tu jest odpowiedź i na CI nie jest wystawiany stan niski? Nie próbowałem sprawdzać bo nie mam obecnie jak, więc nie wiem na pewno :) Sprawdź i daj znać czy w tym czasie, o którym piszesz jest w ogóle dostęp do RAM...Bo jest możliwe, że jakieś kombinacje stanów się pojawiają ale nie są znaczące.

Pozdrawiam

P.S. Podepnij jeszcze /REF z MMU

Ostatnio edytowany przez tOri (2016-10-30 21:56:25)

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

3

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

No, nie tylko procek. Nie znam się, ale mały hint: pióro świetlne/light gun. Odczyt z ekranu (nie pamiętam który rejestr), więc oprócz procka Antic/Gtia muszą także przekazywać jakoś dane do rejestru, bo inaczej to by nie działało. I nie wiem jak to jest w momencie przeładowywania licznika Antica?

Sikor umarł...

4

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

Sikor - /HALT wystawia tylko ANTIC i tylko w celu dostępu do pamięci - no jakoś musi odłączyć procka. Cała reszta to procesor...

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

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

Tak, ale pytanie było o zapis do pamięci podczas wstrzymania procka (halt).

Sikor umarł...

6

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

toriman1 napisał/a:

A gdzie masz stan zrzucony stan linii CI (CAS Inhibit) z MMU? Może tu jest odpowiedź i na CI nie jest wystawiany stan niski?
P.S. Podepnij jeszcze /REF z MMU

Jak bym miał brakującą linię analizatora :D Czas kupić taki 16 lini minimum.

Podejrzewam właśnie taką machloję, czyli że CPU mówi "zapisuje" ale MMU zabrania (widzi sygnał ~REF).

Mi to wygląda na to że kiedy linia ~W jest aktywna i pojawi się ~HALT to CPU odpina się od magistrali ale lini ~W nie rusza, "zostaje w ostatnim stanie". Jest to dla mnie bardzo istotne poniewaz nie wiem czy sygnal ~HALT ma również powodować trzeci stan na R/W. Na razie wychodzi na to że może być i wysoka impedancja i jakoś tak przez te kilka cykli jest utrzymywana poprzednia wartość samą pojemnością lini.

A może ktoś może potwierdzić że R/~W w procesorze nie jest trójstanowe? Rozwiązało by mi to pewne problemy :D

Ogólnie jak zrobiłem zrzut na 16MHz taktowaniu analizatora to na lini ~HALT na wstępnych cyklach poczatku lini strasznie dużo wąskich szpilek. Hmm... kiepsko, wygląda na to że ANTIC generuje sieczkę.

Ponadto sam CPU zanim ruszy to upływa ogromna ilość czasu, ANTIC już robi cykle refresh a CPU w ogóle nie pracuje (brak zapisów w pamięć). To też zastanawia.

Ktoś chętny na zrzut z 16MHz analizatora dla przyszłych pokoleń?

7

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

heby napisał/a:

Ktoś chętny na zrzut z 16MHz analizatora dla przyszłych pokoleń?

A co mi tam, tutaj zrzut zrobiony na 16MHz (poprzedni był na 8):

https://drive.google.com/open?id=0B_tde … XFrbnJvNWs

Może się komuś przyda.

Tak mi się wydaje że R/~W musi być chyba trójstanowe bo ANTIC musi na nim wymuszać R. Natomiast to co obserwuje to może jest tylko pojemność linii z powodu że ANTIC nie wysterował na R bo nie musiał (MMU wycięło zapis). Taka robocza hipoteza o lenistwie ANTICa.

8

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

cześć

Wyrzuć z analizatora fi0 i fi1 oraz NMI - będziesz miał full wypas ;)

Sygnał /HALT w wersji SALLY 6502 odpina CAŁKOWICIE procesor od systemu - ino zegar działa...

Pozdrawiam

P.S. gdy podepniesz /CI oraz /REF,  Fi2, R/W, /HALT - wrzuć jakiś nieduży zrzut do obejrzenia

Ostatnio edytowany przez tOri (2016-10-31 22:53:57)

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

9

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

Sygnał HALT nie działa tak, jak myślisz. CPU nie odpina się od magistral w tym cyklu, kiedy HALT przychodzi, tylko w następnym. Stan linii HALT jest sprawdzany na końcu cyklu (na opadającym zboczu PHI2). Jeśli HALT jest 0, CPU się zatrzymuje i odłącza od magistral. Ot i cała tajemnica.

Ceterum censeo Unionem Europaeam delendam esse.

10

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

Simius napisał/a:

CPU nie odpina się od magistral w tym cyklu, kiedy HALT przychodzi, tylko w następnym.

Obejrzałem teraz dokładniej schemat do A400 i tam faktycznie sygnał HALT z Antica synchronizowany jest z dodatnim zboczem O1 przez przerzutnik i dopiero steruje buforami na A0-15. Dodatkowo widać też że HALT przestawia R/W zawsze w stan R. Dzięki za sugestię, muszę to dokładniej obejrzeć.

Zastanawia mnie jednak: dlaczego D0-D7 nie są odpinane od magistrali w A400? Jeśli cpu coś tam wymusza to zakłócało by to czytanie pamięci przez DMA. Czy 6502 ma jakąś dodatkową cechę związaną z D0-D7 typu pół cyklu są trójstanowe (wtedy zatrzymanie zegara powodowało by odpięcie od magistrali)?

11

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

W pierwszych modelach Atari 400 montowano zwykły MOS 6502, dopiero w późniejszych 6502C SALLY z HALT. Może to dlatego?

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

12

Odp: Kto zapisuje pamięc kiedy pojawia się HALT?

dely napisał/a:

W pierwszych modelach Atari 400 montowano zwykły MOS 6502

No i własnie dlatego interesuje mnie schemat do A400 ponieważ logika HALT jest na zewnątrz i zakładam że działa tak samo jak w SALLY skoro ANTIC jest ten sam.