1

Będe zobowiązany za konkretne odpowiedzi od praktyków:

1. Jaki prąd można pociągnąć z Vcc na szynie carta?

2. Czy częstotliwosc F/2 jest to dokładnie częstotliwość taktowania 6502 = 1,77MHz?

3. Jak szybka musi być pamięć podłączona do carta? Nie chodzi mi o konkretny model, ale raczej o zrozumienie timingu - kiedy program wykonuje LDA / STA $D5xx to tak naprawdę co się dzieje z sygnałami.
W pewnym momencie (z opisu wynika że na opadającym zboczu F/2) na szynie pojawia się ważny adres i teraz:
- ile czasu ma zewnętrzna pamięć na ustawienie szyny danych dla Atari (przy LDA) bądź odczytanie danych z Atari (przy STA)? 1 takt F/2 (do następnego zbocza opadającego)?

4. Czy jeśli LDA (i dowolna inna operacja na pamięci) zajmuje min. 4 cykle to można mieć pewność, że następna zmiana na szynie adresowej (żądanie danych) nigdy nie nastąpi szybciej niż za 4 takty właśnie?

Dzięki za pomoc.

2

Hej!

ad 2) tzw. "FI2" dostępne w porcie karta to 1.77MHz. Taką częstotliwością jest taktowany CPU (tylko Fi2 jest generowane przez 6502 z FI0, sygnały są przesunięte w fazie ale mają tę samą częstotliwość)

ad 4) musisz założyć że w każdym cyklu będzie możliwy dostęp do pamięci która znajduje się carcie. Nie koniecznie CPU może się do tej pamięci dobierać, przecież masz również ANTIC który właściwie w dowolnym wybranym przez siebie momencie może sobie pobrać dane z dowolnego miejsca pamięci Atari.

3

wazny adres masz przy rosnacym zboczu fi2, przy opadajacym masz wazne dane
w obu przypadkach masz 20ns lub mniej (faza ksiezyca, temperatura pieca kaflowego u babci heni, itd) na zrobienie czegos z informacja ktora dostales

przechodze na tumiwisizm

4 Ostatnio edytowany przez nosty (2012-03-05 18:27:41)

@Seban -ale czy Antic może zhaltowac 6502 w środku wykonywania rozkazu? Czy tez na dostęp do pamięci musi czekac aż procek zrobi swoje?

@Candle - Czyli mam czas od zbocza do zbocza. No to skąd ta liczba?  Jeśli 20ns miałoby być polowa okresu, to oznaczaloby częstotliwośc 25MHz! Ja rozumiem ze zbocza nie są idealnie pionowe, ale 20ns?? Gdyby tak było, to pamięć M27C@1001 o szybkości 35ns, ktorej używałem w setkach cartow by nie działała...

5

masz 280ns, ale po zboczu masz bardzo malo czasu...

antic haltuje cpu w dowolnym cyklu, procek bedzie czekal az antic pozwoli mu dalej dzialac - nie wazne czy je kanapke, czy popija kola

przechodze na tumiwisizm

6 Ostatnio edytowany przez epi (2012-03-05 19:53:15)

ad 4. LDA abs trwa cztery cykle, bo dokładnie tyle potrzebuje dostępów do pamięci: 1 bajt na kod rozkazu, 2 bajty na adres, 1 bajt na daną spod tego adresu. W szczególnych przypadkach rozkazy wykonują się dłużej (niżby to wynikało z potrzebnych dostępów do pamięci), ale procesor i tak coś czyta lub zapisuje. W tym pierwszym przypadku odczytane dane olewa, w tym drugim (rozkazy read-modify-write) najpierw zapisuje wartość oryginalną, a potem dopiero zmodyfikowaną. W szczególności np. INC $8000 w trzech cyklach z rzędu robi kolejno odczyt i dwa zapisy pod adres $8000.

W 6502C różnica jest taka, że HALT odcina procesor od magistrali, ale wtedy (w Atari) korzysta z niej ANTIC, a więc i tak zawsze coś się dzieje.

Wiedząc, że wiele opcode'ów ma zawsze tę samą sekwencję (wyjątki to np. odgałęzienia warunkowe i tryby indeksowane), można skorzystać z sygnału SYNC (oraz HALT) i przewidywać co w danym momencie robi procesor, ale taka zabawa chyba przewyższa stopniem komplikacji układ, który chcesz zbudować. W każdym razie może to mieć praktyczne zastosowanie: http://homepage.mac.com/jorgechamorro/a … index.html

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

7

Nosty, po tym co tu czytam uwazam (nie wiem czy slusznie), ze powinienes zwrocic uwage na to aby to co budujesz nie mialo rejestrow wrazliwych na odczyt (zadne urzadzenie podlaczone do atari nie powinno miec takich rejestrow) - moze to rodzic pewne problemy.

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

8

nosty napisał/a:

2. Czy częstotliwosc F/2 jest to dokładnie częstotliwość taktowania 6502 = 1,77MHz?

czy to oznacza że jak wyłączy się ANTIC, 6502 ma dostęp do ramu co cykl zegara?   1,770,000 dostępów na sekundę? czy co drugi cykl - 885000 na sekundę

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

9

ja tam nie wiem skad wzieliscie f/2
xxl: a maxflash widzial?

przechodze na tumiwisizm

10

Np z pierwszego obrazka w tym artku:
http://www.atarionline.pl/v01/index.php … =wynalazki

Ale to nie oznacza ze jest to częstotliwosc dzielona przez 2, tylko chyba po prostu takie oznaczenie... Moze "2" sugeruje "drugie" - opadające zbocze jako ważne?

W zachodnich zrodlach jest to czasami opisywane jako "PHI2".

11

phase 2

przechodze na tumiwisizm

12 Ostatnio edytowany przez epi (2012-03-06 14:22:23)

Tak się tworzą bajki. Kolesie przepisują bez zrozumienia a potem inni kolesie, nie do końca zorientowani, wyciągają z tego bezsensowne wnioski.
W tym przypadku to dość przykre, że podpisany nad tym artykułem jest Zenon, który zwykł walczyć z demonem ignorancji.

Podstawowym sygnałem zegarowym jest Phi0, Fi0, Φ0, czy jak tam to sobie zapiszecie. 6502 generuje z tego Fi1 i Fi2, których najważniejszą cechą jest to, że w dowolnej chwili t co najwyżej jeden z nich jest w stanie wysokim. Różnią się fazą i wypełnieniem, ale częstotliwość jest ta sama.
http://impulzus.sch.bme.hu/6502/6502/im … Image1.gif

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

13

gdzies pewnie ktos przedrukowal to jako fi/2, co nastepna osoba w gluchym telefonie zinterpretowala jako fi-pół i pozamiatane...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

14

@epi, @jellonek - ale teraz wlasnie Wy przeklamujecie rzeczywistosc. Zenon przeciez nigdzie nie napisal ze to jest częstotliwosc dzielona /2. Po prostu uzyl takiego symblu na oznaczenie pinu na zlaczu carta. Rownie dobrze moglby napiac "DUPA+2", prawda?
Nawet opisal to tak: "F/2 - podstawowy sygnał zegarowy wyznaczający takt pracy procesora i pozostałych układów Atari."

Ja zadalem pytanie, aby sie upewnic czy to jest ten sam sygnal co taktowanie procesora i dostalem odpowiedz: czestotliwosc ta sama, ale faza i wypelnienie inne.

Dzieki.

15 Ostatnio edytowany przez epi (2012-03-06 15:01:05)

Niczego nie przekłamuję (ba, nawet nie napisałem, że Zenon to napisał - wszak umieszczenie tam dowolnego innego imienia nie stanowiłoby żadnego problemu).
Użyte symbole są ważne i, jak widać, F/2 (które prawdopodobnie wzięło się z próby odczytania "FI2" na źle skserowanym i/lub przerysowywanym ręcznie schemacie) potrafiło skutecznie zmylić co poniektórych. Nie chce być inaczej - inżynierom w kontekście sygnału zegarowego "F" kojarzy się z częstotliwością, a "/2" z dzieleniem przez 2.
Opis też nie jest do końca precyzyjny, tzn. sygnał ten nie jest "podstawowy", w tym sensie, że jest wytwarzany z innego. Ale tutaj to już się tylko czepiam.

Ale istotnie, Fi0 nigdzie indziej nie jest używany i wszystko (łącznie z CPU) jest taktowane przez Fi2. To JEST dokładnie ten sam sygnał co taktowanie CPU (inna sprawa, że pasożytnicze R i C mogą go tu i ówdzie trochę poprzesuwać i zniekształcać).

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

16

W istocie, zapewne słynne F/2 o które toczy się bój wzięło się z przekłamania, odczytania którejś wersji ksero jakiegoś tam schematu kupionego na giełdzie za ciężkie pieniądze.
Gdy nie miałem dostępu do oryginalnych schematów (wy pewno też nie) używałem tego co było pod ręką, gdy zorientowałem się że powinno być FI2 (na pewno?) (Franek Irena 2) nie zmieniałem już oznaczenia na swoich schematach z prostego powodu. F/2 to F/2 i tyle, by mi się (i wam) kojarzyło z sygnałem który jest sygnałem ważnym.
Koniec.
Na schematach różnych spotkałem oznaczenie tego sygnału B02, FI2 jako kółeczko przekreślone, tak jak oznacza się średnicę przedmiotów etc...etc...etc...) nieważne jak się to oznaczy ważne co to znaczy i jaki to sygnał i do czego.
Zatem, literatura podaje....
Zresztą co będę pisał i się produkował i przepisywał.
Proszę popatrzeć do książki Mikroprocesor 6502 i jego rodzina H. Kruszyński, K.Kulpa
Miedzy innymi strony 42 - 46, 50, 55,
Nigdy. i nigdzie nie pisałem że F/2 to sygnał dzielony, owszem on jest dzielony ale powstaje jako sygnał wynikowy z sygnału właściwego generatora który to sygnał doprowadza się do pinu, zresztą niuanse generowania tego sygnału są opisane w wyżej podanej książce.
Nie upieram się że wszystko tam jest opisane dobrze i na "zicher" ale jest.
I jeszcze...
Kto tu pisze że rejestry nie powinny mieć opcji ... ODCZYT?
Dlaczego moje "wynalazki" działają? Mają odczyt. W takim wypadku komórka pamięci też nie powinna mieć opcji ODCZYT bo to przecież zwykła komórka/rejestr. Pamięć działa, dlaczego rejestr ma nie działać? ? ?
Ale tak, rodzą się problemy różne, z którymi i ja walczyłem aż opanowałem i wiem na czym rzecz polega.
A to co wiem, opisałem, (SERIOUSy), jak są błędy proszę poprawić. Ja też się uczę.

17

> xxl: a maxflash widzial?

jesli ma to zwiazek z tematem to o konkrety prosze

> Kto tu pisze że rejestry nie powinny mieć opcji ... ODCZYT?

nikt. nie mowie o rejestrach do odczytu.

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

18

Zenon/Dial napisał/a:

Kto tu pisze że rejestry nie powinny mieć opcji ... ODCZYT?

Chyba... nikt? :)
Odczyt z rejestru nie powinien jedynie mieć ubocznych skutków, jak np. przejście do następnego słowa, które ma miejsce w kontrolerze IDE. A i to zależy od tego, gdzie ten rejestr ma się znajdować, i dotyczy tylko niektórych sytuacji jak np. tryby indeksowane z przekroczeniem granicy strony. O ile dobrze pamiętam jest to również opisane u Kruszyńskiego i Kulpy.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

19

Siła rozpędu ...:)

20

Siła rozpędu ...:)

21 Ostatnio edytowany przez jellonek (2012-03-06 17:29:20)

nosty: nadintepretowujesz moje slowa.
btw. nawet nie wiedzialem ze Zenon gdzies uzyl takiego opisu.

xxl napisał/a:

nie mialo rejestrow wrazliwych na odczyt (zadne urzadzenie podlaczone do atari nie powinno miec takich rejestrow)

tj. rejestry do odczytu wlasciwie na wszelki wypadek nie powinny byc na ten odczyt odczytywalne ;)
chyba ze chodzi o jakis inny rodzaj wrazliwosci, np. jak zmiana wartosci (autoinkrementacja) przy samym odwolaniu?
sam ciekaw jestem co autor mial na mysli ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

22

A co będzie gdy urządzenie błędnie zinterpretuje adres i np. do swojego rejestru wstawi nową wartość zakładając, że stara została odczytana

23

@jellonek, odpowiedz masz np. w poscie 18

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

24 Ostatnio edytowany przez nosty (2012-03-15 02:15:05)

Nie potrafię znaleźć w 100% pewnych odpowiedzi jeszcze na kilka zagadnien. Sprawdzalem "Podstawowe procedury systemu operacyjnego" Zientary, ale juz np. schemat blokowy procedury RESET mnie rozwalił. No jak mozna napisac w algorytmie: "cartridge wyjęty lub włożony?" TAK/NIE :) 

(EDITED: wczytałem się w asm i już rozumiem to sprawdzenie, które wydało mi się śmieszne. Nalezy to chyba czytać jako sprawdzenie "czy cartridge ZOSTAŁ wyjęty lub włożony?")


Więc po kolei:

1. (EDITED: pierwsze pytanie juz nieaktualne - źle zrozumialem tekst Zientary)


2. Czy włożenie lub wyjęcie carta ze slotu w czasie pracy Atari (poza ryzykiem czysto elektrycznym) nie spowoduje żadnych "efektow ubocznych" w pracy Atari jesli w obszarze pamieci mapowanym na carta nie ma kodu programu/DL/pamieci ekranu itp itd.?

EDITED: Na to tez znalazlem juz odpowiedz: w tekscie Zenona http://www.atarionline.pl/v01/index.php … =wynalazki
Nie mozna ot tak sobie wyjac carta z gniazda.

3. Sygnaly R4 i R5 wymuszają przełączenie odpowiednich 8kB obszarow adresowych z wewnętrznego RAM na szyne carta. Ale robią to czysto "elektrycznie" czyli układami cyfrowymi. Z opisu rejestru TRIG3 (http://atariki.krap.pl/index.php/Rejestry_GTIA) wyczytalem ze stan R5 "odkłada się" w tym rejestrze. Ten rejestr jest wykorzystywany w procedurze bootowania jako wskaźnik czy jest wlozony cart (u Zientary rozdział 2.3.1. Procedury rozpoznania cartridge'a i RAM").

Ale w ten sposob nie wykryje się carta wpiętego w obszar $8000-$9FFF (sygnalizowanego R4, bo R4 nie wpływa na rejestr TRIG3). Jak system to robi? Wiem, że testuje możliwość zapisu każdej strony pamięci, żeby w razie braku zapisu umieścić DL i pamięc obrazu gdzie indziej.
Z moich eksperymentow z RAM-CART'em Zenona pracującym na obszarze $8000-$9FFF (R4) wynika, ze Atari nie podejmie próby bootowania z carta (mimo prawidłowego nagłówka $9FFA-$9FFF) jeśli wykryje, że pamięć jest zapisywalna (ram-cart ustwiony w tryb ZAPIS).

Czy tak faktycznie jest i czy to samo dotyczy obszaru $A000-$BFFF (R5)? Czyli jesli system wykryje że jest tu pamięć zapisywalną RAM, to mimo że R5 będzie ustawione (a więc i rejestr TRIG3) to nie spróbuje poszukac nagłówka cartridga i wykonać z niego bootowania?

EDITED: znów znalazłem sam odpowiedz w książce Zientary: http://tajemnice.atari8.info/ksiazki/pp … utera.html
W pewnym momencie procedury RESET jest sprawdzane czy RAMSIZ>$B0, czyli czy powyżej adresu $B000 udało się testowo coś zapisać do pamięci. Jesli tak to NIE jest wywolywana inicjalizacja carta.

25 Ostatnio edytowany przez nosty (2012-03-15 02:20:14)

W poprzednim poście trochę namieszalem, pospieszylem sie z pytaniami, a potem jednak znalazlem sam odpowiedzi.
Ale teraz mam jeszcze jedno krotkie pytanie, na ktore odpowiedzi na pewno  łatwo nie znajdę ;)

Jak szybko startuje Atari??

Każdy układ mikroprocesorowy potrzebuje chwili czasu na rozruch. Chodzi mi o czas w ms od włączenia zasilania do rozpoczęcia wykonania pierwszej instrukcji procedury zimnego startu przez procesor.