[#1] Dokumentacja układu CIA 8520
Oryginalna dokumentacja układów CIA z Commodore jest do wykopania w sieci jako komplet 15 skanów. Chcąc przegryźć się przez nią dogłębnie, przerobiłem ją na stronę WWW, przepisując tekst i przerysowując diagramy jako wektorowe obrazy SVG. Dokumentację można przeglądać tutaj. Po wejściu do spisu treści można też sobie zmienić krój i wielkość czcionki.

Zastanawiam się, czy jest sens zrobić polskie tłumaczenie. W sumie każdy projektant elektroniki chyba już przywykł do tego, że dokumentacja techniczna jest z reguły po angielsku.
[#2] Re: Dokumentacja układu CIA 8520

@Krashan, post #1

Miło jest, jak dokumentacja jest w naszym języku. Jednak zdecydowanie bardziej wolę angielski niż niemiecki... jeżeli nie ma innej opcji.
[#3] Re: Dokumentacja układu CIA 8520

@Krashan, post #1

Że też Ci się chciało, szacun! Polski bym olał, bo tak jak mówisz - w najlepszym wypadku dataszity są po angielsku, w najgorszym - po chińsku. ;)

Ostatnio sobie myślałem czy by nie dało rady przyspieszyć CIA implementując go w sposób wstecznie kompatybilny, mianowicie żeby zmusić go do komunikacji na 7MHz i żeby też sterowanie parallel i serial portem z taką prędkością działało, ale żeby timery były dalej taktowane z zegarem dzielonym przez 10. Oczywiście dzisiaj sztuka dla sztuki, ale plipboksy by mogły na tym skorzystać. Może jak przeczytam Twoje opracowanie to wpadnę na to czemu takie coś by nie działało. ;)

Ostatnia aktualizacja: 16.05.2018 12:00:08 przez teh_KaiN
[#4] Re: Dokumentacja układu CIA 8520

@teh_KaiN, post #3

Sygnały CS dla obu układów CIA generuje Gayle (w A600/1200). Co więcej Gayle generuje również sygnały DSACKn dla procesora, kończące cykl szyny. Obawiam się, że nie uda się zmusić Gayle'a do zamknięcia japy w tym zakresie adresów sygnałem OVR. A nawet gdyby, to instalacja ulepszonych CIA wymagałaby przylutowania co najmniej kilku kabelków tu i ówdzie...
[#5] Re: Dokumentacja układu CIA 8520

@teh_KaiN, post #3

Aha, poza tym jest sporo programów (z tych, co widziałem, to i2c.library), które używają „pustych” odczytów z CIA do odmierzania bardzo krótkich odcinków czasu (krótszych, niż możliwości timer.device) w busyloopach. Zaletą takiego rozwiązania jest proste uzyskanie identycznych opóźnień na wszystkich modelach Amig, niezależnie od ewentualnie zainstalowanej karty turbo. Twój „szybki CIA” rozwaliłby to.

Ostatnia aktualizacja: 16.05.2018 17:22:45 przez Krashan
[#6] Re: Dokumentacja układu CIA 8520

@Krashan, post #5

A, bez kitu, sam tak robię w swoim toolu do konfigurowania własnego wariantu plipa. Trzeba by wtedy wykombinować jakiś bit, który można by zapisywać do CIA, a który został zarezerwowany. Teraz widzę, że BFEB01 i BFDB00 są puste - może tam? Ale to już trzeba by obgadać w szerszym gronie, żeby nie wprowadzać miliona różnych rozwiązań niekompatybilnych ze sobą tylko umówić się na jakiś standard.
[#7] Re: Dokumentacja układu CIA 8520

@Krashan, post #5

Mam pytanie odnośnie Twojej wypowiedzi: Napisałeś, że timer.device nie ma takich rozdzielczości czasowych. A czy zasób cia.resource ma taką możliwość?

W dokumentacji do cia.resource jest napisane, że używany jest przez wysoko-wydajne aplikacje czasowe, m.in. przez aplikacje MIDI.

Ostatnia aktualizacja: 16.05.2018 19:26:30 przez Hexmage960
[#8] Re: Dokumentacja układu CIA 8520

@Hexmage960, post #7

Dostep do CIA niezależnie od Amigi odbywa się z prędkością 700kHz, czyli na stockowej A500 jest to 10 razy wolniej niż CPU, na A1200 taktowanej 14MHz już 20 razy wolniej. Stąd jeśli chcesz poczekać 1/700k sekundy to wystarczy zrobić dowolny jeden odczyt z CIA.

Nawet jeśli by istniała funkcja biblioteczna, która by robiła delaye na bazie odczytów, to musiałbyś podać do niej argument który by był wstawiany jako licznik pętli - już samą pętlą jesteś skazany na niedokładność odmierzonego czasu. Tego typu czekanie można by rozwiązań makrem, czy to asemblerowym czy w C, lub jakimś dzikim inline'em w C/C++.

Ostatnia aktualizacja: 16.05.2018 20:23:03 przez teh_KaiN
[#9] Re: Dokumentacja układu CIA 8520

@teh_KaiN, post #8

Jesteś pewien? timer.device liczy w mikrosekundach (UNIT_MICROHZ), zaś timery CIA mają rozdzielczość jeszcze dokładniejszą, bliską mikroprocesorowi (czyli ułamki mikrosekund).

Ostatnia aktualizacja: 16.05.2018 20:35:37 przez Hexmage960
[#10] Re: Dokumentacja układu CIA 8520

@Hexmage960, post #7

A czy zasób cia.resource ma taką możliwość?
Nie, ponieważ najszybszy zegar, jaki mogą zliczać timery CIA to zegar E o częstotliwości 709 kHz. Ten sam, który taktuje dostęp do układu CIA. A dochodzi jeszcze opóźnienie związane z obsłużeniem przerwania, które już będzie zależne od modelu i taktowania procesora. Moim zdaniem przy czasach opóźnień poniżej 100 µs, tylko busyloop z czytaniem CIA daje powtarzalne rezultaty. Powyżej można używać cia.resource, a powyżej jakichś 10 milisekund timer.device.
[#11] Re: Dokumentacja układu CIA 8520

@Hexmage960, post #9

timer.device liczy w mikrosekundach (UNIT_MICROHZ)
Nie, on jest tylko wyskalowany w mikrosekundach, ale zlicza zegar E. I w sumie dokładniejszy na klasycznej Amidze będzie UNIT_ECLOCK, tyle że trzeba samemu przeliczyć jednostki czasu.
[#12] Re: Dokumentacja układu CIA 8520

@Krashan, post #10

Dziękuję za odpowiedź. No, ale w sumie narzut spowodowany cia.resource nie powinien być zbyt duży, skoro rekomendują go do aplikacji, które muszą koniecznie mieć dostęp do bardzo dokładnych liczników czasu.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem